{"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","Articles/ArticleRepository.ts","Brochure/BrochureRepository.ts","Client/ClientRepository.ts","Coupon/CouponRepository.ts","Deals/DealsRepository.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","Articles/DTO/Article.ts","Articles/DTO/Articles.ts","Brochure/DTO/SendBrochureModel.ts","Client/DTO/ClientMarket.ts","Client/DTO/ClientMarketHeader.ts","Client/DTO/ClientMarketSettings.ts","Client/DTO/ClientMarkets.ts","Coupon/DTO/Coupon.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","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","ArticleRepository","article","saveHeaderImage","articleId","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","CouponRepository","validateCoupon","Coupon","DealsRepository","calculateUpgrade","participantUpgradeDealId","packageUpgradeDealId","payByInvoice","vatNumber","couponCode","salesPackageIdsWithAmounts","CalculatedOrder","getPackageUpgrades","Deals","getDealsForMarket","MarketDealResult","getDiscountForMarket","EarlyBirdDiscount","getCalculatedDeal","dealId","CalculatedDeal","getCombiDealsForMarket","CombiDeals","calculateOrder","requestBody","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","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","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","isValid","IsValid","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","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 {\r\n LandingPage = 0,\r\n LogoTakeOver = 1,\r\n Articles = 2,\r\n SubLeagues = 3,\r\n SubLeagueRanking = 4,\r\n Advertisements = 5,\r\n Interstitials = 6,\r\n OptIns = 7\r\n}\r\n\r\nconst packageBudget = [\r\n Feature.LandingPage,\r\n Feature.LogoTakeOver\r\n];\r\n\r\nconst packageBusiness = [\r\n ...packageBudget,\r\n Feature.Articles,\r\n Feature.SubLeagues,\r\n Feature.SubLeagueRanking\r\n];\r\n\r\nconst packageProfessional = [\r\n ...packageBusiness,\r\n Feature.Advertisements,\r\n Feature.Interstitials,\r\n Feature.OptIns\r\n];\r\n\r\nconst isFeatureSupported = (packageType: Business.PackageType, feature: Feature) => {\r\n if (packageType === Business.PackageType.Budget) {\r\n return packageBudget.indexOf(feature) > -1;\r\n }\r\n\r\n if (packageType === Business.PackageType.Business) {\r\n return packageBusiness.indexOf(feature) > -1;\r\n }\r\n\r\n if (packageType === Business.PackageType.Professional) {\r\n return packageProfessional.indexOf(feature) > -1;\r\n }\r\n}","enum Gender {\r\n Unknown = 0,\r\n Male = 1,\r\n Female = 2\r\n}","enum KnownGameIds {\r\n FootballTournament = 1,\r\n TennisManager = 2,\r\n CyclingManager = 3,\r\n FootballManager = 4,\r\n FootballMatchDuel = 7,\r\n CyclingTeamManager = 9,\r\n DartsManager = 10,\r\n GpManager = 11,\r\n GpTeamManager = 12,\r\n FootballTournamentManager = 13\r\n}\r\n","enum SportType {\r\n Football = 0,\r\n Tennis = 1,\r\n Cycling = 2\r\n}","function createNewRelicConsole(parentConsole: Console): Console {\r\n if (window.location.hostname.indexOf(\"local\") > -1) {\r\n return parentConsole;\r\n }\r\n\r\n if (!window.hasOwnProperty('newrelic')) {\r\n throw new Error('New relic does not exist on \"window\"');\r\n }\r\n\r\n const newrelic = (window as any).newrelic;\r\n\r\n if (!newrelic) {\r\n throw new Error('New relic has not been initialized');\r\n }\r\n\r\n window.addEventListener('unhandledrejection', function (e) {\r\n try {\r\n newrelic.noticeError(JSON.stringify(e));\r\n }\r\n catch (e) { }\r\n });\r\n\r\n window.onerror = function (message, source, lineno, colno, error) {\r\n try {\r\n newrelic.noticeError(JSON.stringify({ message, source, lineno, colno, error }));\r\n }\r\n catch (e) { parentConsole.error(JSON.stringify(e)); }\r\n };\r\n\r\n return {\r\n ...parentConsole,\r\n\r\n error: (message?: any, ...optionalParams: Error[]) => {\r\n parentConsole.error(message, ...optionalParams);\r\n\r\n // @see: https://docs.newrelic.com/docs/browser/new-relic-browser/browser-agent-spa-api/noticeerror-browser-agent-api\r\n newrelic.noticeError(message);\r\n }\r\n };\r\n}","class Email {\r\n public static Validate(email: string): boolean{\r\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,}))$/;\r\n return re.test(email);\r\n }\r\n}","class FormattedDateTime {\r\n private static _defaultFormat: string = 'DD-MM-YYYY HH:mm:ss';\r\n\r\n private _moment: moment.Moment;\r\n\r\n private _dayLongMonthLongWithYearAndTimeFormat: string = 'dddd DD MMMM YYYY HH:mm';\r\n private _dayShortMonthShortWithTimeFormat: string = 'dd DD MMM HH:mm';\r\n private _dayMiddleMonthShortWithTimeFormat: string = 'ddd DD MMM HH:mm';\r\n\r\n public DayLongMonthLongWithYearAndTime: string;\r\n public DayShortMonthShortWithTime: string;\r\n public DayMiddleMonthShortWithTime: string;\r\n\r\n public Formatted: string;\r\n\r\n constructor(moment: moment.Moment, format: string) {\r\n this._moment = moment;\r\n this.DayLongMonthLongWithYearAndTime = moment.format(this._dayLongMonthLongWithYearAndTimeFormat);\r\n this.DayShortMonthShortWithTime = moment.format(this._dayShortMonthShortWithTimeFormat);\r\n this.DayMiddleMonthShortWithTime = moment.format(this._dayMiddleMonthShortWithTimeFormat);\r\n this.Formatted = moment.format(format);\r\n }\r\n\r\n public static FromUtcDate(date: Date): FormattedDateTime{\r\n return this.FromUtcJson(date.toString());\r\n }\r\n\r\n public static FromUtcDateAndFormat(date: Date, format: string): FormattedDateTime{\r\n return this.FromUtcJsonAndFormat(date.toString(), format);\r\n }\r\n\r\n public static FromUtcJson(json: string): FormattedDateTime{\r\n return this.FromUtcJsonAndFormat(json, this._defaultFormat);\r\n }\r\n\r\n public static FromUtcJsonAndFormat(json: string, format: string): FormattedDateTime{\r\n var momentInstance = moment.utc(json);\r\n momentInstance.tz(userTimeZone);\r\n momentInstance.locale(uiCulture);\r\n return new FormattedDateTime(momentInstance, format);\r\n }\r\n}","const LANGUAGE_SELECTOR_ID = \"language-selector\";\r\nconst LANGUAGE_SELECTOR_BTN_ID = \"language-selector__btn\";\r\nconst LANGUAGE_SELECTOR_DROPDOWN_ID = \"language-selector-dropdown\";\r\nconst LANGUAGE_SELECTOR_DROPDOWN_CLASS = \"language-selector-dropdown-wrapper\";\r\nconst LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS = \"language-selector-dropdown-wrapper--visible\";\r\nconst LANGUAGE_SELECTOR_DROPDOWN_CULTURES_ID = \"language-selector-dropdown-cultures\";\r\n\r\nconst sortLanguagesDropdownAsc = () => {\r\n const languageDropdownCultures = document.getElementById(LANGUAGE_SELECTOR_DROPDOWN_CULTURES_ID);\r\n const elements = document.getElementsByClassName(\"culture sort-asc\");\r\n\r\n let cultureElementMap = [];\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n const cultureItem = elements[i];\r\n\r\n const label = cultureItem.getElementsByClassName(\"culture__label\")[0];\r\n const culture = label.innerHTML;\r\n\r\n cultureElementMap.push({ culture, element: cultureItem });\r\n }\r\n\r\n const sorted = cultureElementMap.sort((a, b) => {\r\n if (a.culture < b.culture) return -1;\r\n if (a.culture > b.culture) return 1;\r\n return 0;\r\n });\r\n\r\n languageDropdownCultures.innerHTML = sorted.map(i => `${i.element.outerHTML}`).join(\"\");\r\n};\r\n\r\nclass LanguageSelector {\r\n private readonly languageSelectorEl: HTMLElement;\r\n private readonly languageSelectorBtnEl: HTMLElement;\r\n private readonly languageSelectorDropdownEl: HTMLElement;\r\n private backdropEl: HTMLDivElement | undefined;\r\n\r\n constructor() {\r\n this.languageSelectorEl = this.initLanguageSelectorEl();\r\n this.languageSelectorBtnEl = this.initLanguageSelectorBtnEl();\r\n this.languageSelectorDropdownEl = this.initLanguageSelectorDropdownEl();\r\n this.backdropEl = undefined;\r\n }\r\n\r\n public openDropdown(): void {\r\n this.backdropEl = this.createBackdropEl();\r\n this.languageSelectorEl.appendChild(this.backdropEl);\r\n const el = this.languageSelectorDropdownEl.getElementsByClassName(LANGUAGE_SELECTOR_DROPDOWN_CLASS)[0];\r\n\r\n el.classList.add(LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS);\r\n }\r\n\r\n public closeDropdown(): void {\r\n const el = this.languageSelectorDropdownEl.getElementsByClassName(LANGUAGE_SELECTOR_DROPDOWN_CLASS)[0];\r\n\r\n el.classList.remove(LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS);\r\n\r\n this.destroyBackdropEl(this.backdropEl);\r\n this.backdropEl = undefined;\r\n }\r\n\r\n private initLanguageSelectorEl(): HTMLElement {\r\n const out = document.getElementById(LANGUAGE_SELECTOR_ID);\r\n\r\n return out;\r\n }\r\n\r\n private initLanguageSelectorBtnEl(): HTMLElement {\r\n const out = document.getElementById(LANGUAGE_SELECTOR_BTN_ID);\r\n\r\n out.onclick = () => this.openDropdown();\r\n\r\n return out;\r\n }\r\n\r\n private initLanguageSelectorDropdownEl(): HTMLElement {\r\n const out = document.getElementById(LANGUAGE_SELECTOR_DROPDOWN_ID);\r\n\r\n return out;\r\n }\r\n\r\n private createBackdropEl(): HTMLDivElement {\r\n const out = document.createElement(\"div\");\r\n\r\n out.style.position = \"fixed\";\r\n out.style.top = \"0\";\r\n out.style.bottom = \"0\";\r\n out.style.left = \"0\";\r\n out.style.right = \"0\";\r\n out.style.zIndex = \"100\";\r\n\r\n out.onclick = () => this.closeDropdown();\r\n\r\n return out;\r\n }\r\n\r\n private destroyBackdropEl(el: HTMLDivElement): void {\r\n el.remove();\r\n }\r\n}\r\n\r\nlet languageSelector = undefined;\r\n\r\n$(document).ready(() => {\r\n var current = location.pathname.split(\"/\")[1] ?? \"\";\r\n\r\n const navbarItemEls = document.getElementsByClassName(\"navbar__item\");\r\n\r\n for (var i = 1, len = navbarItemEls.length; i < len; i++) {\r\n const href = navbarItemEls[i].getAttribute(\"href\").split(\"/\")[1] ?? \"\";\r\n\r\n if (href.toLowerCase() === current.toLowerCase()) {\r\n navbarItemEls[i].classList.add(\"navbar__item--active\");\r\n break;\r\n }\r\n }\r\n\r\n languageSelector = new LanguageSelector();\r\n\r\n sortLanguagesDropdownAsc();\r\n});","class NotificationBar {\r\n\r\n private static DisplayHandler = (message: string) => {\r\n $(\".notification-bar__content\").html(message);\r\n $(\".notification-bar\").slideDown(\"fast\").delay(5000).slideUp(\"fast\");\r\n }\r\n\r\n static Display = _.debounce((message: string) => NotificationBar.DisplayHandler(message), 50, true);\r\n}","interface JQueryStatic {\r\n togglePopup(id: string, value: boolean, doScroll: boolean);\r\n newPopup(id: string);\r\n}\r\n\r\n(function ($) {\r\n $.newPopup = function (name: string) {\r\n const all = $(\"body > #\" + name);\r\n if (!all || all.length === 0) {\r\n const popup = $('.' + name).first().clone(false);\r\n popup.attr('id', name);\r\n popup.appendTo(\"body\");\r\n $(\"#\" + name + \" *\").off();\r\n all.off();\r\n return $(\"body > #\" + name);\r\n }\r\n $(\"#\" + name + \" *\").off();\r\n all.off();\r\n return all;\r\n };\r\n $.togglePopup = function (id: string, value: boolean, doScroll: boolean = true) {\r\n const popup = $('body > ' + id);\r\n let scrollTop = $('body').scrollTop() || $('html').scrollTop();\r\n if (value) {\r\n $(\"html,body\").addClass('noscroll');\r\n $(\"html,body\").removeClass('okscroll');\r\n popup.removeClass('popup--close');\r\n popup.addClass('popup--open');\r\n if (doScroll) $(\"body,html\").scrollTop(scrollTop);\r\n $(id).triggerHandler(\"open\");\r\n } else {\r\n $(\"html,body\").removeClass('noscroll');\r\n $(\"html,body\").addClass('okscroll');\r\n popup.removeClass('popup--open');\r\n popup.addClass('popup--close');\r\n if (doScroll) $(\"body,html\").scrollTop(scrollTop);\r\n $(id).triggerHandler(\"close\");\r\n }\r\n };\r\n}(jQuery));","class Vat {\r\n public static validate(vat: string): boolean {\r\n if (!vat)\r\n return false;\r\n\r\n if (vat.length < 5 || vat.length > 25) {\r\n return false;\r\n }\r\n if (!/\\d/.test(vat)) {\r\n return false;\r\n }\r\n if (!/[A-Z]/.test(vat)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public static readonly PLACEHOLDER = \"VAT_PLACEHOLDER\";\r\n}","/// \r\n\r\nclass CookieLocalStorageRepository {\r\n private readonly languageKey = \"LANGUAGE_KEY\";\r\n\r\n public deleteCookieSettingsInLocalStorage(): void {\r\n localStorage.removeItem(this.languageKey);\r\n }\r\n\r\n public getCookieSettingsFromLocalStorage(): string | undefined {\r\n const serializedSettings = localStorage.getItem(this.languageKey);\r\n\r\n return serializedSettings\r\n }\r\n\r\n public userHasAcceptedCookies(): boolean {\r\n const settings = this.getCookieSettingsFromLocalStorage();\r\n\r\n return settings != null && settings.length > 0;\r\n }\r\n\r\n public setUserHasAcceptedCookies() {\r\n localStorage.setItem(this.languageKey, \"true\") \r\n }\r\n}\r\n\r\ntype CheckboxState = {\r\n label: string;\r\n info: string;\r\n checked: boolean;\r\n disabled: boolean;\r\n};\r\n\r\nclass CookiePopupController {\r\n private readonly cookiePopupContainerId = \"cookiePopupContainer\";\r\n private readonly languageSelectorId = \"languageSelector\";\r\n\r\n private readonly cookieRepository: CookieLocalStorageRepository;\r\n\r\n constructor(cookieRepository: CookieLocalStorageRepository) {\r\n this.cookieRepository = cookieRepository;\r\n }\r\n\r\n public show(): void {\r\n this.disableScroll();\r\n this.initPopup();\r\n\r\n const containerEl = document.getElementById(this.cookiePopupContainerId);\r\n containerEl.style.display = \"block\";\r\n }\r\n\r\n public hide(): void {\r\n const containerEl = document.getElementById(this.cookiePopupContainerId);\r\n containerEl.style.display = \"none\";\r\n\r\n this.enableScroll();\r\n this.teardownPopup();\r\n }\r\n\r\n private enableScroll(): void {\r\n document.body.style.overflow = \"visible\";\r\n }\r\n\r\n private disableScroll(): void {\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n\r\n private initPopup(): void {\r\n this.initLanguageSelector();\r\n }\r\n\r\n private teardownPopup(): void {\r\n $(`#${this.cookiePopupContainerId}`).remove();\r\n }\r\n\r\n private initLanguageSelector(): void {\r\n const languageSelectorEl = document.getElementById(this.languageSelectorId);\r\n\r\n const wrappers = languageSelectorEl.querySelectorAll(\".cookie-popup__culture-flag-wrapper\");\r\n\r\n const deselectAll = () => wrappers.forEach(i => {\r\n const otherFlag = i.querySelector(\".cookie-popup__culture-flag\");\r\n const input = i.querySelector(\"input\");\r\n\r\n input.checked = false;\r\n otherFlag.classList.remove(\"cookie-popup__culture-flag--selected\");\r\n });\r\n\r\n if (currentCookieCulture) {\r\n deselectAll();\r\n }\r\n\r\n wrappers.forEach(wrapper => {\r\n const flag = wrapper.querySelector(\".cookie-popup__culture-flag\");\r\n const input = wrapper.querySelector(\"input\");\r\n\r\n wrapper.addEventListener(\"click\", () => {\r\n this.cookieRepository.setUserHasAcceptedCookies();\r\n\r\n deselectAll();\r\n\r\n input.checked = true;\r\n flag.classList.add(\"cookie-popup__culture-flag--selected\");\r\n });\r\n\r\n if (input.value === currentCookieCulture) {\r\n input.checked = true;\r\n flag.classList.add(\"cookie-popup__culture-flag--selected\");\r\n }\r\n });\r\n }\r\n}\r\n\r\nconst cookieLocalStorageRepository = new CookieLocalStorageRepository();\r\n\r\nif (!cookieLocalStorageRepository.userHasAcceptedCookies()) {\r\n $(window).ready(() => {\r\n const cookiePopupController = new CookiePopupController(cookieLocalStorageRepository);\r\n\r\n cookiePopupController.show();\r\n });\r\n}","if (!String.prototype.format) {\r\n String.prototype.format = function () {\r\n var args = arguments;\r\n return this.replace(/{(\\d+)}/g, (match, number) => typeof args[number] != \"undefined\"\r\n ? args[number]\r\n : match);\r\n };\r\n}\r\n\r\n(function ($) {\r\n $.fn.toggleModifiers = function (show: boolean, ...modifiers: string[]) {\r\n return this.each(function () {\r\n if (show) $(this).addModifiers(...modifiers);\r\n else $(this).removeModifiers(...modifiers);\r\n });\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.fn.toggleDisabled = function (disabled: boolean) {\r\n return this.each(function () {\r\n if (disabled) $(this).attr('disabled', 'disabled');\r\n else $(this).removeAttr('disabled');\r\n });\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.fn.toggleHtml = function (show: boolean, html: string | undefined) {\r\n return this.each(function () {\r\n if (show) $(this).html(html);\r\n else $(this).html(null);\r\n });\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.fn.addModifiers = function (...modifiers: string[]) {\r\n return this.each(function () {\r\n const classAttribute = $(this).attr(\"class\");\r\n if (!classAttribute)\r\n return;\r\n\r\n const classList = classAttribute.split(\" \");\r\n if (classList.length < 1)\r\n return;\r\n const baseClass = classList[0].split(\"--\")[0].split(\"[\")[0];\r\n modifiers.forEach(modifier => {\r\n const classToAdd = `${baseClass}--${modifier}`;\r\n if (!$(this).hasClass(classToAdd))\r\n $(this).addClass(`${baseClass}--${modifier}`);\r\n });\r\n });\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.fn.removeModifiers = function (...modifiers: string[]) {\r\n return this.each(function () {\r\n const classAttribute = $(this).attr(\"class\");\r\n if (!classAttribute)\r\n return;\r\n\r\n const classList = classAttribute.split(\" \");\r\n if (classList.length < 1)\r\n return;\r\n\r\n const baseClass = classList[0];\r\n modifiers.forEach(modifier => {\r\n $(this).removeClass(`${baseClass}--${modifier}`);\r\n });\r\n });\r\n };\r\n}(jQuery));\r\n\r\n\r\n(function ($) {\r\n $.fn.hasModifier = function (modifier: string) {\r\n const classAttribute = $(this).attr(\"class\");\r\n if (!classAttribute)\r\n return false;\r\n\r\n const classList = classAttribute.split(\" \");\r\n if (classList.length < 1)\r\n return false;\r\n\r\n const baseClass = classList[0];\r\n const modifierClass = `${baseClass}--${modifier}`;\r\n return $(this).hasClass(modifierClass);\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.whenAll = function (...deferreds: JQueryPromise[]) {\r\n var lastResolved = 0;\r\n var wrappedDeferreds = [];\r\n\r\n for (var i = 0; i < deferreds.length; i++) {\r\n wrappedDeferreds.push($.Deferred());\r\n if (deferreds[i] && deferreds[i].always) {\r\n deferreds[i].always(wrappedDeferreds[lastResolved++].resolve);\r\n } else {\r\n wrappedDeferreds[lastResolved++].resolve(deferreds[i]);\r\n }\r\n }\r\n\r\n return $.when.apply($, wrappedDeferreds).promise();\r\n };\r\n}(jQuery));\r\n\r\n(function ($) {\r\n $.fn.removeClickListeners = function () {\r\n return this.each(function () {\r\n $(this).prop(\"click\", null).off(\"click\");\r\n });\r\n };\r\n}(jQuery));\r\n\r\nfunction kmpStringSearch(pattern: string, text: string, caseInsensitive: boolean = false) { // Knuth-Morris-Pratt algorithm (string search, string.Contains, string.includes alternative)\r\n if (pattern.length == 0)\r\n return 0; // Immediate match\r\n if (caseInsensitive) {\r\n pattern = pattern.toLowerCase();\r\n text = text.toLowerCase();\r\n }\r\n // Compute longest suffix-prefix table\r\n var lsp = [0]; // Base case\r\n for (var i = 1; i < pattern.length; i++) {\r\n var j = lsp[i - 1]; // Start by assuming we're extending the previous LSP\r\n while (j > 0 && pattern.charAt(i) != pattern.charAt(j))\r\n j = lsp[j - 1];\r\n if (pattern.charAt(i) == pattern.charAt(j))\r\n j++;\r\n lsp.push(j);\r\n }\r\n\r\n // Walk through text string\r\n var j = 0; // Number of chars matched in pattern\r\n for (var i = 0; i < text.length; i++) {\r\n while (j > 0 && text.charAt(i) != pattern.charAt(j))\r\n j = lsp[j - 1]; // Fall back in the pattern\r\n if (text.charAt(i) == pattern.charAt(j)) {\r\n j++; // Next char matched, increment position\r\n if (j == pattern.length)\r\n return i - (j - 1);\r\n }\r\n }\r\n return -1; // Not found\r\n}\r\n\r\n\r\nfunction fallbackCopyTextToClipboard(text) { // IE, oude safari etc\r\n let value = false;\r\n if ((window as any).clipboardData) {\r\n try {\r\n value = (window as any).clipboardData.setData('Text', text) ?? false;\r\n }\r\n catch (err) { }\r\n }\r\n if (!value) {\r\n var textArea = document.createElement(\"textarea\");\r\n\r\n textArea.style.position = \"fixed\";\r\n textArea.style.top = \"0\";\r\n textArea.style.left = \"0\";\r\n textArea.style.width = '2em';\r\n textArea.style.height = '2em';\r\n textArea.style.padding = '0';\r\n textArea.style.border = 'none';\r\n textArea.style.outline = 'none';\r\n textArea.style.boxShadow = 'none';\r\n textArea.style.background = 'transparent';\r\n textArea.value = text;\r\n\r\n document.body.appendChild(textArea);\r\n textArea.focus();\r\n textArea.select();\r\n try {\r\n value = document.execCommand('copy');\r\n if (value !== false) value = true;\r\n } catch (err) {\r\n value = false;\r\n }\r\n document.body.removeChild(textArea);\r\n }\r\n return value;\r\n}\r\nfunction copyTextToClipboard(text): JQueryPromise {\r\n var deferred = $.Deferred();\r\n if (!navigator.clipboard || !navigator.clipboard.writeText) {\r\n const didCopy = fallbackCopyTextToClipboard(text);\r\n if (didCopy) deferred.resolve(true);\r\n else deferred.reject(false);\r\n }\r\n else {\r\n navigator.clipboard.writeText(text).then(function () {\r\n deferred.resolve(true);\r\n }, function (err) {\r\n deferred.reject(false);\r\n });\r\n }\r\n return deferred.promise();\r\n}\r\n\r\nfunction parseEnum(value: string | null | undefined, enumType: T): T[keyof T] | undefined {\r\n if (!value) {\r\n return undefined;\r\n }\r\n for (const property in enumType) {\r\n const enumMember = enumType[property];\r\n if (typeof enumMember === \"string\") {\r\n if (enumMember.toUpperCase() === value.toUpperCase()) {\r\n const key = enumMember as string as keyof typeof enumType;\r\n return enumType[key];\r\n }\r\n }\r\n if (typeof enumMember === \"number\") {\r\n if (enumMember.toString() === value) {\r\n return enumMember;\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nconst formatUrlWithProtocol = (url: string) => {\r\n if (!\"http://\".startsWith(url.substring(0, 7)) && !\"https://\".startsWith(url.substring(0, 8))) {\r\n return `http${url.startsWith(\"http://\") ? \"\" : \"s\"}://${url}`;\r\n }\r\n return url;\r\n}","// {{#compare Value OtherValue operator='=='}}{{/compare}}\r\nHandlebars.registerHelper('compare', function (lvalue, rvalue, options) {\r\n if (arguments.length < 3)\r\n throw new Error(\"Handlebars Helper 'compare' needs 2 parameters\");\r\n\r\n var operator = options.hash.operator || \"==\";\r\n\r\n var operators = {\r\n '==': function (l, r) { return l == r; },\r\n '===': function (l, r) { return l === r; },\r\n '!=': function (l, r) { return l != r; },\r\n '<': function (l, r) { return l < r; },\r\n '>': function (l, r) { return l > r; },\r\n '<=': function (l, r) { return l <= r; },\r\n '>=': function (l, r) { return l >= r; },\r\n 'typeof': function (l, r) { return typeof l == r; }\r\n }\r\n\r\n if (!operators[operator])\r\n throw new Error(\"Handlebars Helper 'compare' doesn't know the operator \" + operator);\r\n\r\n var result = operators[operator](lvalue, rvalue);\r\n if (options.fn) {\r\n if (result) {\r\n return options.fn(this);\r\n }\r\n else {\r\n return options.inverse(this);\r\n }\r\n }\r\n else { // used as non-block helper\r\n return result;\r\n }\r\n\r\n});\r\n\r\n//{{math 1 1, operator='+'}}\r\n//2\r\nHandlebars.registerHelper(\"math\", function (lvalue, rvalue, options) {\r\n if (arguments.length < 3)\r\n throw new Error(\"Handlebars Helper 'math' needs 2 parameters\");\r\n\r\n var operator = options.hash.operator.trim();\r\n\r\n var operators = {\r\n '+': function (l, r) { return l + r; },\r\n '-': function (l, r) { return l - r; },\r\n '/': function (l, r) { return l / r; },\r\n '*': function (l, r) { return l * r; }\r\n }\r\n\r\n if (!operators[operator])\r\n throw new Error(\"Handlebars Helper 'math' doesn't know the operator \" + operator);\r\n\r\n return operators[operator](lvalue, rvalue);\r\n});\r\n\r\n//foo.bar = 'abcdefg'\r\n//{{chop foo.bar 4}}\r\n//abcd\r\nHandlebars.registerHelper(\"chop\", function (string, maxLength) {\r\n if (typeof (string) == 'undefined' || string == null) {\r\n return \"\";\r\n }\r\n if (string.length > maxLength) {\r\n return string.substr(0, maxLength) + \"…\";\r\n }\r\n else {\r\n return string;\r\n }\r\n});\r\n\r\n//{{HideAbove 10 foo.bar}}\r\nHandlebars.registerHelper(\"HideAbove\", function (max, input) {\r\n if (input > max) {\r\n return \" \";\r\n }\r\n else {\r\n return input;\r\n }\r\n});\r\n\r\nHandlebars.registerHelper('debug', function (statement, options) {\r\n if (arguments.length < 2) {\r\n throw new Error(\"debug requires a statement\");\r\n }\r\n window.console && console.log(statement);\r\n});\r\n\r\n//{{FormatMSDateTime foo.bar}}\r\n// : woensdag 25-03-1987 00:00:00\r\nHandlebars.registerHelper('FormatMSDateTime', function (MSJsonDateObject) {\r\n if (MSJsonDateObject == null)\r\n return null;\r\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\r\n var momentDate = moment(jsdate).lang(\"nl\");\r\n\r\n return momentDate.format(\"DD-MM-YYYY HH:mm:ss\");\r\n});\r\n\r\n//{{FormatMSDateSimple foo.bar}}\r\n// : 25-03-1987\r\nHandlebars.registerHelper('FormatMSDateSimple', function (MSJsonDateObject) {\r\n if (MSJsonDateObject == null)\r\n return null;\r\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\r\n var momentDate = moment(jsdate).lang('nl');\r\n return momentDate.format('DD-MM-YYYY');\r\n});\r\n\r\n//{{FormatMSDateExplicit foo.bar \"dd/mm/yyyy\"}}\r\nHandlebars.registerHelper('FormatMSDateExplicit', function (MSJsonDateObject, format) {\r\n if (MSJsonDateObject == null)\r\n return null;\r\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\r\n var momentDate = moment(jsdate).lang('nl');\r\n return momentDate.format(format);\r\n});\r\n\r\n// Foo.Bar = banana 2015|2016\r\n//{{ClipYearsFromString Foo.Bar}}\r\n// banana\r\nHandlebars.registerHelper(\"ClipYearsFromString\", function (strg, maxResidualLength) {\r\n if (typeof (strg) == 'undefined') return \"\";\r\n\r\n var pattern = /(\\b\\d{4}.\\b|\\b\\d{4}\\b)/g;\r\n\r\n var clippedString = strg.replace(pattern, \"\");\r\n\r\n if (typeof (maxResidualLength) == \"number\" && maxResidualLength > 0) {\r\n if (clippedString.length > maxResidualLength) {\r\n clippedString = clippedString.substr(0, maxResidualLength) + \"…\";\r\n }\r\n }\r\n return clippedString;\r\n});\r\n\r\nHandlebars.registerHelper('Currency', function (amount) {\r\n var formatMask;\r\n if (amount < 100 && amount > 0) {\r\n formatMask = \"0,000.00\";\r\n }\r\n else {\r\n formatMask = \"0,000\";\r\n if (amount % 1 !== 0) {\r\n formatMask += \".00\";\r\n }\r\n }\r\n\r\n return \"€ \" + numeral(amount).format(formatMask);\r\n});\r\n\r\nHandlebars.registerHelper('CurrencyWithDecimal', function (amount) {\r\n return \"€ \" + numeral(amount).format(\"0,000.00\");\r\n});\r\n\r\nHandlebars.registerHelper('CurrencyWithoutDecimal', (amount) => `€ ${NumeralData.formatCurrency(amount, \"0,0\")}`);\r\n\r\nHandlebars.registerHelper('FormatDecimalAsCurency', function (amount) {\r\n var formatMask;\r\n if (amount < 1000) {\r\n formatMask = \"0,000.00\";\r\n\r\n }\r\n else {\r\n formatMask = \"0,000\";\r\n }\r\n\r\n return numeral(amount).format(formatMask);\r\n});\r\n\r\nHandlebars.registerHelper('FormatNumberWithDot', function (amount) {\r\n var formatMask = \"0,000\";\r\n\r\n return numeral(amount).format(formatMask);\r\n});\r\n\r\n\r\n\r\nHandlebars.registerHelper(\"TranslateHelper\", function (key: string, ...values: (string | undefined)[]) {\r\n const templateString = TranslationData.get(key);\r\n return format(templateString, ...values);\r\n});\r\n\r\nHandlebars.registerHelper('CaseHelper', function (key, isLowerCase) {\r\n if (typeof (key) == 'undefined' || key == null)\r\n return \"\";\r\n\r\n if (isLowerCase)\r\n return key.toLowerCase();\r\n else\r\n return key.toUpperCase();\r\n});\r\n\r\nHandlebars.registerHelper('TranslateWithKeyHelper', function (key, addedKey) {\r\n const translationKey = key + addedKey;\r\n const translation = TranslationData[translationKey];\r\n return translation ? translation : translationKey;\r\n});\r\n\r\n\r\nHandlebars.registerHelper('ToJsonHelper', function (object) {\r\n return new Handlebars.SafeString(JSON.stringify(object));\r\n});\r\n\r\nHandlebars.registerHelper(\"IncHelper\", function (value, options) {\r\n if (!value)\r\n return 1;\r\n\r\n return parseInt(value) + 1;\r\n});\r\n\r\nHandlebars.registerHelper(\"columnIncHelper\", function (column, value, numberOfColumns) {\r\n return (parseInt(column)) + (parseInt(value) * parseInt(numberOfColumns));\r\n});\r\n\r\nHandlebars.registerHelper('FirstHelper', function (object, propertyName) {\r\n return _.first(object)[propertyName];\r\n});\r\n\r\nHandlebars.registerHelper('ForHelper', function (n, block) {\r\n var accum = '';\r\n for (var i = 0; i < n; ++i)\r\n accum += block.fn(i);\r\n return accum;\r\n});\r\n\r\nHandlebars.registerHelper(\"FillupAmountHelper\", function (maxAmount, currentAmount, options) {\r\n var ret = \"\";\r\n for (var i = 0, l = maxAmount - currentAmount; i < l; i++) {\r\n ret = ret + options.fn({ Value: i + currentAmount });\r\n }\r\n return ret;\r\n});\r\nHandlebars.registerHelper(\"FillupHelper\", function (maxAmount, collection, options) {\r\n var ret = \"\";\r\n for (var i = 0, l = maxAmount - collection.length; i < l; i++) {\r\n ret = ret + options.fn({ Value: i + collection.length });\r\n }\r\n return ret;\r\n});\r\n\r\nHandlebars.registerHelper('SkipAndTakeHelper', function (skip, take, collection, options) {\r\n var ret = \"\";\r\n var maxAmount = take;\r\n if (take > collection.length)\r\n maxAmount = collection.length;\r\n\r\n for (var i = skip, l = maxAmount; i < l; i++) {\r\n ret = ret + options.fn(collection[i]);\r\n }\r\n return ret;\r\n});\r\n\r\nHandlebars.registerHelper('BisectHelper', function (firstPart, collection, options) {\r\n if (collection == null)\r\n return;\r\n\r\n var ret = \"\";\r\n var amount = Math.round(collection.length / 2);\r\n var maxItem = collection.length;\r\n var skip = 0;\r\n\r\n if (firstPart)\r\n skip = amount;\r\n else\r\n maxItem = amount;\r\n\r\n for (var i = skip, l = maxItem; i < l; i++) {\r\n ret = ret + options.fn(collection[i]);\r\n }\r\n\r\n return ret;\r\n});\r\n\r\nHandlebars.registerHelper(\"SafeSvgImage\", function (url, overrideWidth, overrideHeight, classes, fallbackExtension, altDescription) {\r\n\r\n if (url == undefined || url === \"\") {\r\n return \"\" + altDescription + \"\";\r\n }\r\n\r\n if (url.toLowerCase().indexOf(\".svg\") === -1) {\r\n return \"\" + altDescription + \"\";\r\n }\r\n\r\n var fallbackExtensionSafe = fallbackExtension.indexOf(\".\") > -1 ? fallbackExtension : \".\" + fallbackExtension;\r\n\r\n var fallbackUrl = url.replace(\".svg\", fallbackExtensionSafe);\r\n\r\n return \"\" + altDescription + \"\";\r\n\r\n});\r\n\r\nHandlebars.registerHelper('FormatPercentage', function (percentageAsFloat) {\r\n if (percentageAsFloat == null) return '---';\r\n\r\n if (percentageAsFloat.toFixed(1) === '100.0') return '100';\r\n\r\n var roundedFloat = Math.abs(Math.round(percentageAsFloat * 10) / 10);\r\n return roundedFloat.toLocaleString(uiCulture, { minimumFractionDigits: 1 });\r\n});\r\n\r\n\r\nHandlebars.registerHelper(\"FormatNumber\", function (nbr) {\r\n if (typeof (nbr) == 'undefined' || nbr == null) {\r\n return \"\";\r\n }\r\n return nbr.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n});\r\n\r\nHandlebars.registerHelper('if_even', function (conditional, options) {\r\n if ((conditional % 2) == 0) {\r\n return options.fn(this);\r\n } else {\r\n return options.inverse(this);\r\n }\r\n});\r\n\r\nHandlebars.registerHelper('SplitOnWhiteSpaceHelper', function (key, part) {\r\n var splittedString = TranslationData[key].split(\" \");\r\n return splittedString[part];\r\n});\r\n\r\nHandlebars.registerHelper(\"FormatDate\", function (datetime, format) {\r\n if (moment) {\r\n return moment(datetime).format(format);\r\n }\r\n else {\r\n return datetime;\r\n }\r\n});\r\n\r\nHandlebars.registerHelper(\"StringFormat\", function (data, template) {\r\n var replaceFormat = \"{0}\";\r\n return template.replace(replaceFormat, data);\r\n\r\n});\r\n\r\nHandlebars.registerHelper(\"switch\", function (value, options) {\r\n this._switch_value_ = value;\r\n this._switch_break_ = false;\r\n var html = options.fn(this); // Process the body of the switch block\r\n delete this._switch_break_;\r\n delete this._switch_value_;\r\n return html;\r\n});\r\n\r\nHandlebars.registerHelper(\"case\", function (value, options) {\r\n if (value == this._switch_value_) {\r\n this._switch_break_ = true;\r\n return options.fn(this);\r\n }\r\n});\r\n\r\nHandlebars.registerHelper(\"if_hasValues\", function (conditional, options) {\r\n if (Object.keys(conditional).length > 0)\r\n return options.fn(this);\r\n});\r\n\r\nHandlebars.registerHelper(\"default\", function (value, options) {\r\n if (!this._switch_break_)\r\n return options.fn(this);\r\n});\r\n\r\nHandlebars.registerHelper('times', function (n, block) {\r\n var accum = '';\r\n for (var i = 0; i < n; ++i)\r\n accum += block.fn(i);\r\n return accum;\r\n});","function removeUrlParameter(url: string, parameter: string) {\r\n //prefer to use l.search if you have a location/link object\r\n var urlparts = url.split('?');\r\n if (urlparts.length >= 2) {\r\n\r\n var prefix = encodeURIComponent(parameter) + '=';\r\n var pars = urlparts[1].split(/[&;]/g);\r\n\r\n //reverse iteration as may be destructive\r\n for (var i = pars.length; i-- > 0;) {\r\n //idiom for string.startsWith\r\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\r\n pars.splice(i, 1);\r\n }\r\n }\r\n\r\n return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');\r\n }\r\n return url;\r\n}\r\n\r\nfunction isValidHttpUrl(string) {\r\n let url;\r\n\r\n try {\r\n url = new URL(string);\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return url.protocol === \"http:\" || url.protocol === \"https:\";\r\n}\r\n\r\nfunction isNumeric(n: any) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n}\r\n\r\nif (!String.prototype.startsWith) {\r\n String.prototype.startsWith = function (search, pos) {\r\n return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\r\n };\r\n}\r\n\r\n(function () {\r\n if (typeof window.CustomEvent === \"function\") return false;\r\n\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: null };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n (window as any).CustomEvent = CustomEvent;\r\n})();\r\n\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n}\r\n\r\nString.isNullOrEmpty = (value: string | null | undefined) => {\r\n return value === \"\" || value == null;\r\n};\r\n\r\nconst format = (templateString: string, ...values: (string | undefined)[]): string => {\r\n return templateString.replace(/{(\\d+)}/g, (match, index) => {\r\n const value = values[index];\r\n return value != null ? value : match;\r\n });\r\n}\r\n","enum ApiResultCode { \r\n Ok = 0,\r\n Failure = 1,\r\n DatabaseError = 2,\r\n ProcessError = 3,\r\n ConstraintFail = 4,\r\n DeadlinePassed = 5,\r\n NotAllowedToGetData = 6\r\n}","module ApiSettings {\r\n export class UserPredictionStatusApiSettings {\r\n public readonly baseUrl: string;\r\n\r\n constructor(apiSettings: any) {\r\n this.baseUrl = apiSettings.BaseUrl;\r\n }\r\n }\r\n} ","module League {\r\n export class ApiSettings {\r\n public readonly sendPrivateMessageUrl: string;\r\n public readonly deleteParticipantUrl: string;\r\n public readonly checkLeagueName: string;\r\n public readonly baseUrl: string;\r\n\r\n constructor(apiSettings: any) {\r\n this.sendPrivateMessageUrl = apiSettings.SendPrivateMessageUrl;\r\n this.deleteParticipantUrl = apiSettings.DeleteParticipantUrl;\r\n this.checkLeagueName = apiSettings.CheckLeagueName;\r\n this.baseUrl = apiSettings.BaseUrl;\r\n }\r\n }\r\n}","module Platform {\r\n export class Profile {\r\n public userId: number;\r\n public userName: string;\r\n public fullName: string;\r\n public year: number;\r\n public amountOfGames: number;\r\n public profileImageUrl: string;\r\n public nationalityFlagUrl: string;\r\n public favoriteFootballTeam: string;\r\n public firstname: string;\r\n public middlename: string;\r\n public lastname: string;\r\n public showOnProfile: boolean;\r\n public email: string;\r\n public birthdate: Date;\r\n public countryId: number;\r\n public timeZoneId: number;\r\n public genderId: number;\r\n public street: string;\r\n public housenumber: string;\r\n public zipcode: string;\r\n public city: string;\r\n\r\n constructor(\r\n userId: number,\r\n userName: string,\r\n fullName: string,\r\n year: number,\r\n amountOfGames: number,\r\n profileImageUrl: string,\r\n nationalityFlagUrl: string,\r\n favoriteFootballTeam: string,\r\n firstname: string,\r\n middlename: string,\r\n lastname: string,\r\n showOnProfile: boolean,\r\n email: string,\r\n birthdate: string,\r\n countryId: number,\r\n timeZoneId: number,\r\n genderId: number,\r\n street: string,\r\n housenumber: string,\r\n zipcode: string,\r\n city: string) {\r\n this.userId = userId;\r\n this.userName = userName;\r\n this.fullName = fullName;\r\n this.year = year;\r\n this.amountOfGames = amountOfGames;\r\n this.profileImageUrl = profileImageUrl;\r\n this.nationalityFlagUrl = nationalityFlagUrl;\r\n this.favoriteFootballTeam = favoriteFootballTeam;\r\n this.firstname = firstname;\r\n this.middlename = middlename;\r\n this.lastname = lastname;\r\n this.showOnProfile = showOnProfile;\r\n this.email = email;\r\n this.birthdate = new Date(birthdate);\r\n this.countryId = countryId;\r\n this.timeZoneId = timeZoneId;\r\n this.genderId = genderId;\r\n this.street = street;\r\n this.housenumber = housenumber;\r\n this.zipcode = zipcode;\r\n this.city = city;\r\n }\r\n\r\n public static fromJson = (data: any): Profile => {\r\n return new Profile(\r\n data.UserId,\r\n data.UserName,\r\n data.FullName,\r\n data.Year,\r\n data.AmountOfGames,\r\n data.ProfileImageUrl,\r\n data.NationalityFlagUrl,\r\n data.FavoriteFootballTeam,\r\n data.Firstname,\r\n data.Middlename,\r\n data.Lastname,\r\n data.ShowOnProfile,\r\n data.Email,\r\n data.Birthdate,\r\n data.CountryId,\r\n data.TimeZoneId,\r\n data.Gender,\r\n data.Street,\r\n data.Housenumber,\r\n data.Zipcode,\r\n data.City);\r\n }\r\n }\r\n}","module Shared {\r\n export abstract class TabController {\r\n protected marketId: number;\r\n protected clientId: number;\r\n protected salesUser: Business.SalesUser;\r\n protected clientSettings: Business.ClientMarketSettingsModel;\r\n protected readonly shouldCheckConfigurationComplete: boolean;\r\n\r\n protected salesApiSettings: ApiSettings.SalesApiSettings;\r\n protected platformApiSettings: Platform.ApiSettings;\r\n protected clientRepository: Business.IClientRepository;\r\n protected tabDataLoaded: boolean;\r\n protected cdnUrl: string;\r\n\r\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings,\r\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean) {\r\n this.cdnUrl = cdnUrl;\r\n this.salesApiSettings = salesApiSettings;\r\n this.platformApiSettings = platformApiSettings;\r\n this.clientRepository = clientRepository;\r\n this.shouldCheckConfigurationComplete = shouldCheckConfigurationComplete;\r\n this.initEventListeners();\r\n }\r\n\r\n protected abstract loadData: (isConfigurationComplete?: boolean) => void;\r\n\r\n protected abstract removePreload: () => void;\r\n\r\n protected setTabDataLoaded = (loaded: boolean): void => {\r\n this.tabDataLoaded = loaded;\r\n }\r\n\r\n protected checkConfigurationComplete = (): void => {\r\n this.clientRepository.getClientMarketSettings(this.marketId).done((settings: Business.ClientMarketSettings) => {\r\n const settingsModel = Business.ClientMarketSettingsModel.fromDto(settings, this.salesUser, this.cdnUrl);\r\n this.clientSettings = settingsModel;\r\n this.loadData(settingsModel.isConfigurationComplete());\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n protected initEventListeners = () => {\r\n addEventListener(Business.ManagementController.MarketSwitchEvent, (event: CustomEvent) => {\r\n this.marketId = event.detail.marketId;\r\n this.salesUser = event.detail.salesUser;\r\n this.clientId = this.salesUser.clientId;\r\n this.setTabDataLoaded(false);\r\n });\r\n }\r\n\r\n protected getMainLeagueId = (): number | null => {\r\n return this.salesUser?.mainLeagueId;\r\n }\r\n\r\n protected displayErrorMessage = (error: JQueryXHR): void => {\r\n let labelKey = \"Common.ErrorOnPage\";\r\n if (error?.status === 403) {\r\n labelKey = \"Business.Management.AccessDenied\";\r\n }\r\n else if (_.contains([413], error?.status)) {\r\n labelKey = \"Business.Management.Configuration.ImageTooLargeError\";\r\n }\r\n NotificationBar.Display(TranslationData.get(labelKey));\r\n }\r\n }\r\n}","module BusinessManagement {\r\n export class ParticipantsRenderer {\r\n private template: HandlebarsTemplateDelegate;\r\n private dataTable;\r\n public participantMailMode: ParticipantMailMode;\r\n\r\n constructor() {\r\n this.participantMailMode = ParticipantMailMode.Manual;\r\n }\r\n\r\n public renderTemplate = (participants: Business.Participants, tabSelector: string, prefixId: string, bindHtmlElements: Function): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#participants-template\").html());\r\n }\r\n\r\n $(`${tabSelector} .business-participants__participants-placeholder`).html(this.template(prefixId));\r\n\r\n if (this.dataTable) {\r\n this.dataTable.destroy();\r\n }\r\n\r\n const columns: any[] = [\r\n {\r\n \"orderable\": false,\r\n \"data\": \"userId\",\r\n\r\n \"render\": () => {\r\n return `
`;\r\n }\r\n },\r\n {\r\n \"data\": \"firstName\",\r\n title: TranslationData.get(\"Common.FirstName\"),\r\n defaultContent: \"\",\r\n \"render\": $.fn.dataTable.render.text()\r\n },\r\n {\r\n \"data\": \"fullLastName\",\r\n title: TranslationData.get(\"Common.LastName\"),\r\n defaultContent: \"\",\r\n \"render\": $.fn.dataTable.render.text()\r\n },\r\n {\r\n title: TranslationData.get(\"User.Username\"),\r\n defaultContent: \"\",\r\n \"data\": \"username\",\r\n \"render\": function (data, type, row) {\r\n var sanitized = $.fn.dataTable.render.text().display(data, type, row);\r\n return '' + sanitized + '';\r\n }\r\n }];\r\n participants.predictionStatusColumns.forEach((column, index) => {\r\n columns.push({\r\n class: \"business-participants-row__center\",\r\n data: `userPredictionStatusList.${index}`,\r\n title: column,\r\n render: (isComplete, type, row) => {\r\n if (isComplete) {\r\n return ``\r\n }\r\n return ``\r\n }\r\n })\r\n })\r\n\r\n columns.push({\r\n class: \"business-participants-row__center\",\r\n title: `
\r\n \r\n \r\n
`,\r\n \"orderable\": false,\r\n \"render\": () => {\r\n if (this.participantMailMode === ParticipantMailMode.All) {\r\n return ``;\r\n }\r\n return ``;\r\n }\r\n });\r\n\r\n const table = $(`table[id='${prefixId}']:visible`);\r\n\r\n this.dataTable = table.DataTable({\r\n \"bInfo\": false,\r\n \"lengthChange\": false,\r\n \"pageLength\": 10,\r\n \"order\": [[1, \"asc\"]],\r\n \"language\": {\r\n \"emptyTable\": TranslationData.get(\"Business.Participants.EmptyTable\"),\r\n \"infoEmpty\": TranslationData.get(\"Business.Participants.EmptyTable\"),\r\n },\r\n \"createdRow\": function (row, data, index) {\r\n $(row).addClass(\"business-participants-row\");\r\n $(row).attr(\"data-participant-id\", data.userId);\r\n },\r\n data: participants.list,\r\n columns: columns,\r\n initComplete: () => {\r\n table.find(\"thead tr\").addClass(\"business-participants__table-header\");\r\n table.find(\"thead tr\").removeClass(\"business-participants-row__center\");\r\n table.find(\"th\").addClass(\"business-participants__table-header-text\");\r\n bindHtmlElements();\r\n }\r\n });\r\n\r\n\r\n $(\".dataTables_filter\").hide();\r\n $(\".sorting\").css(\"background-image\", \"\");\r\n }\r\n\r\n public drawSearch = (search: string) => {\r\n this.dataTable.search(search).draw();\r\n }\r\n\r\n public setMode = (mode: ParticipantMailMode) => {\r\n this.participantMailMode = mode;\r\n this.dataTable.rows().invalidate().draw();\r\n }\r\n\r\n private getColumns(isMainLeague: boolean): Array {\r\n var columnDefinition: Array = [\r\n {\r\n \"class\": \"business-participants-row__center\",\r\n \"orderable\": false,\r\n \"data\": \"userId\",\r\n \"render\": () => {\r\n return isMainLeague\r\n ? \"\"\r\n : `
`;\r\n }\r\n },\r\n {\r\n \"data\": \"firstName\",\r\n \"render\": $.fn.dataTable.render.text()\r\n },\r\n {\r\n \"data\": \"lastName\",\r\n \"render\": $.fn.dataTable.render.text()\r\n },\r\n {\r\n \"data\": \"userName\",\r\n \"render\": function (data, type, row) {\r\n var sanitized = $.fn.dataTable.render.text().display(data, type, row);\r\n return '' + sanitized + '';\r\n }\r\n }\r\n ]\r\n\r\n columnDefinition.push({\r\n \"class\": \"business-participants-row__center\",\r\n \"orderable\": false,\r\n \"render\": () => {\r\n if (this.participantMailMode === ParticipantMailMode.All) {\r\n return ``;\r\n }\r\n return ``;\r\n }\r\n });\r\n\r\n return columnDefinition;\r\n }\r\n\r\n public renderServerSideTemplate = (prefixId: string, url: string, isMainLeague: boolean, onDraw: Function) => {\r\n if (this.dataTable) {\r\n this.dataTable.destroy();\r\n }\r\n\r\n this.dataTable = $(`table[id='${prefixId}']:visible`).DataTable({\r\n \"bInfo\": false,\r\n \"lengthChange\": false,\r\n \"processing\": true,\r\n \"serverSide\": true,\r\n \"ajax\": {\r\n \"url\": url,\r\n \"beforeSend\": function (xhr) {\r\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + API._token);\r\n }\r\n },\r\n \"columns\": this.getColumns(isMainLeague),\r\n \"createdRow\": function (row, data, index) {\r\n $(row).addClass(\"business-participants-row\");\r\n $(row).attr(\"data-participant-id\", data.userId);\r\n },\r\n \"pageLength\": 10,\r\n \"order\": [[1, \"asc\"]],\r\n \"language\": {\r\n \"emptyTable\": TranslationData.get(\"Business.Participants.EmptyTable\"),\r\n \"infoEmpty\": TranslationData.get(\"Business.Participants.EmptyTable\"),\r\n }\r\n });\r\n\r\n $(\".dataTables_filter\").hide();\r\n\r\n this.dataTable.on('draw', () => {\r\n onDraw();\r\n });\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n export class UpgradeParticipantModel {\r\n public participantCount: number;\r\n public price: number;\r\n\r\n constructor(participantCount: number, price: number) {\r\n this.participantCount = participantCount;\r\n this.price = price;\r\n }\r\n }\r\n}","/// \r\n\r\nimport cropperConfig = Business.cropperConfig;\r\nmodule LeagueAdministrator {\r\n import LeagueAdministratorStepModel = Business.LeagueAdministratorStepModel;\r\n import ConfigurationStatusType = Business.ConfigurationStatusType;\r\n import LeagueAdminTabType = Business.LeagueAdminTabType;\r\n import RankingSettingsViewModel = Business.RankingSettingsViewModel;\r\n import SubLeague = Business.SubLeague;\r\n import IMailValidation = Business.IMailValidation;\r\n import SettingsStepType = Business.SettingsStepType;\r\n import ActionsController = Business.ActionsController;\r\n import LeagueActions = Business.LeagueActions;\r\n\r\n export class SettingsController extends LeagueAdministratorTabController {\r\n private static settingsCompletedLocalStorageKey = `sales.SettingsCompleted.${location.hostname}`;\r\n\r\n private readonly settingsRenderer: Business.LeagueAdministratorSettingsRenderer;\r\n private readonly actionsRepository: Business.ActionsRepository;\r\n private readonly leagueActionsEnabled: boolean;\r\n private readonly settingsCompletionModel: SettingsCompletionModel;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository, leagueActionsEnabled: boolean) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, LeagueAdminTabType.Settings, clientRepository, true);\r\n this.settingsRenderer = new Business.LeagueAdministratorSettingsRenderer();\r\n this.actionsRepository = new Business.ActionsRepository(salesApiSettings);\r\n this.leagueActionsEnabled = leagueActionsEnabled;\r\n this.settingsCompletionModel = SettingsCompletionModel.fromLocalStorage();\r\n }\r\n\r\n protected loadTabData = (isConfigurationComplete: boolean): void => {\r\n const subLeague = this.leagues.getById(this.selectedSubLeagueId);\r\n if (!subLeague)\r\n return;\r\n\r\n if (this.salesUser.isSubLeagueAdministrator() && !this.salesUser.isClientAdministrator()) {\r\n ActionsController.getInstance().initialize(this.marketId, 0, this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\r\n }\r\n\r\n let leagueActions;\r\n if (this.leagueActionsEnabled)\r\n leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\r\n else\r\n leagueActions = this.settingsCompletionModel.get(this.selectedSubLeagueId.toString());\r\n\r\n const subLeaguesModel = this.clientSettings.multiSubLeaguesModel;\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, subLeaguesModel.subLeagueIsAllowedToChangeName ? (leagueActions?.nameCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, subLeaguesModel.subLeagueIsAllowedToChangeRankingLogo ? (leagueActions?.rankingLogoCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.MailingText, subLeaguesModel.subLeagueIsAllowedToChangeEmail ? (leagueActions?.welcomeEmailCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\r\n\r\n this.settingsRenderer.renderNameTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), subLeaguesModel.subLeagueIsAllowedToChangeName), () => {\r\n this.bindNameSlide(subLeague);\r\n });\r\n\r\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), subLeaguesModel.subLeagueIsAllowedToChangeRankingLogo), () => {\r\n this.bindRankingLogoSlide(subLeague);\r\n this.bindCropRankingLogoSlide(subLeague);\r\n });\r\n\r\n this.getWelcomeMail(subLeaguesModel, subLeague.leagueId);\r\n ActionsController.getInstance().refresh(this.marketId, this.selectedSubLeagueId);\r\n\r\n $(\".league-administrator-dropdown__select-list[val='\" + this.getMainLeagueId() + \"'\").remove();\r\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\r\n };\r\n\r\n protected leagueChanged = (): void => {\r\n this.loadTabData(true);\r\n };\r\n\r\n private bindHeaderClick = () => {\r\n const leagueAdminContentElem = $(\".league-administrator__tabs-content\");\r\n leagueAdminContentElem.find(\".configuration-header-placeholder\").removeClickListeners();\r\n leagueAdminContentElem.find(\".configuration-header-placeholder\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const stepType: SettingsStepType = +elem.closest(\".league-administrator-settings__step\").data(\"step-id\");\r\n const contentPlaceholder = elem.next();\r\n const shouldOpenSlide = !contentPlaceholder.hasModifier(\"open\");\r\n\r\n this.settingsRenderer.toggleSlide(stepType, shouldOpenSlide);\r\n\r\n if (stepType === SettingsStepType.Name && shouldOpenSlide) {\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\r\n this.markCompletion(SettingsStepType.Name);\r\n }\r\n\r\n if (stepType === SettingsStepType.RankingLogo && !shouldOpenSlide) {\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\r\n this.markCompletion(SettingsStepType.RankingLogo);\r\n }\r\n\r\n if (stepType === SettingsStepType.MailingText && !shouldOpenSlide) {\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.MailingText, ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\r\n this.markCompletion(SettingsStepType.MailingText);\r\n }\r\n });\r\n }\r\n\r\n private bindNameSlide = (subLeague: SubLeague): void => {\r\n $(\".subleague-name-slide__input\").on(\"change input\", e => {\r\n const elem = $(e.currentTarget);\r\n const leagueName = elem.val();\r\n\r\n if (leagueName === \"\" || leagueName.length > 25 || leagueName.length < 5) {\r\n elem.addModifiers(\"invalid\");\r\n $(\".subleague-name-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\r\n $(\".subleague-name-slide__save-button\").addModifiers(\"disabled\");\r\n }\r\n else {\r\n elem.removeModifiers(\"invalid\");\r\n $(\".subleague-name-slide__error-message\").hide();\r\n $(\".subleague-name-slide__save-button\").removeModifiers(\"disabled\");\r\n }\r\n });\r\n\r\n $(\".subleague-name-slide__save-button\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n elem.addModifiers(\"disabled\");\r\n const leagueName = $(\".subleague-name-slide__input\").val();\r\n this.subLeagueRepository.updateSubLeagueName(this.selectedSubLeagueId, leagueName).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n subLeague.leagueName = leagueName;\r\n this.updateDropdown();\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\r\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), true));\r\n\r\n this.markCompletion(SettingsStepType.Name);\r\n\r\n $(\".subleague-name-slide__input\").removeModifiers(\"invalid\");\r\n $(\".subleague-name-slide__error-message\").hide();\r\n\r\n if (subLeague.isMainLeague) {\r\n $(\".main-league-slide_input,.ranking-logo-slide__subleague-name\").text(leagueName);\r\n $(\".main-league-slide__input\").val(leagueName);\r\n }\r\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n $(\".subleague-name-slide__input\").addModifiers(\"invalid\");\r\n $(\".subleague-name-slide__error-message\").text(apiResult.message).show();\r\n elem.removeModifiers(\"disabled\");\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n elem.removeModifiers(\"disabled\");\r\n });\r\n });\r\n }\r\n\r\n private bindRankingLogoSlide = (subLeague: SubLeague): void => {\r\n const uploadButton = $(\".subleague-ranking-logo-slide__upload-button\");\r\n const uploadInput = $(\".subleague-ranking-logo-slide__input\");\r\n const exampleLogoContainer = $(\".subleague-ranking-logo-slide__logo-example-container\");\r\n\r\n uploadButton.on(\"click\", _ => {\r\n uploadInput.click();\r\n });\r\n\r\n exampleLogoContainer.on(\"click\", _ => {\r\n uploadInput.click();\r\n })\r\n\r\n uploadInput.on(\"change\", () => {\r\n const file = uploadInput.prop(\"files\")[0];\r\n if (!file) {\r\n return NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n uploadButton.addModifiers(\"disabled\");\r\n this.subLeagueRepository.saveRankingLogo(this.selectedSubLeagueId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\r\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true), () => {\r\n this.bindRankingLogoSlide(subLeague);\r\n this.bindCropRankingLogoSlide(subLeague);\r\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\r\n })\r\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true));\r\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\r\n\r\n this.markCompletion(SettingsStepType.RankingLogo);\r\n\r\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".subleague-ranking-logo-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".ranking-preview__ranking-logo-preview\",\r\n aspectRatio: 1,\r\n }));\r\n $(\".subleague-ranking-logo-slide__upload-button\").hide()\r\n $(\".subleague-ranking-logo-slide__crop-button\").show()\r\n $(\".ranking-preview__ranking-logo\").hide()\r\n exampleLogoContainer.off()\r\n }\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n uploadButton.removeModifiers(\"disabled\");\r\n });\r\n });\r\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\r\n }\r\n\r\n private bindCropRankingLogoSlide = (subLeague: SubLeague) => {\r\n const cropButton = $(\".subleague-ranking-logo-slide__crop-button\");\r\n cropButton.bind(\"click\", () => {\r\n const $image_elem = $(\".subleague-ranking-logo-slide__logo-example\")\r\n const cropper = $image_elem.data(\"cropper\")\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n const formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n\r\n cropButton.addModifiers(\"disabled\");\r\n this.subLeagueRepository.saveRankingLogo(this.selectedSubLeagueId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\r\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true), () => {\r\n this.bindRankingLogoSlide(subLeague);\r\n })\r\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true));\r\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\r\n\r\n this.markCompletion(SettingsStepType.RankingLogo);\r\n\r\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n\r\n $(\".subleague-ranking-logo-slide__upload-button\").show()\r\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\r\n $(\".ranking-preview__ranking-logo\").show()\r\n\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n cropButton.removeModifiers(\"disabled\");\r\n });\r\n })\r\n })\r\n }\r\n\r\n private getWelcomeMail = (subLeaguesModel: Business.MultiSubLeaguesModel, leagueId: number): void => {\r\n this.subLeagueRepository.getWelcomeEmail(leagueId).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n const inviteMail = Business.InviteMail.fromJson(apiResult.content);\r\n\r\n this.settingsRenderer.renderMailingTextTemplate(new Business.WelcomeEmailModel(inviteMail.title, inviteMail.body, inviteMail.headerImage, inviteMail.headerLogo, false), subLeaguesModel.subLeagueIsAllowedToChangeEmail, () => {\r\n if (subLeaguesModel.subLeagueIsAllowedToChangeEmail) {\r\n CKEDITOR.replace(\"subleague-mailing-text-slide__mail-message\");\r\n CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].setData(inviteMail.body);\r\n CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].on(\"change\", () => {\r\n $(\".subleague-mailing-text-slide__button--save\").removeModifiers(\"disabled\");\r\n $(\".subleague-mailing-text-slide__button--example\").removeModifiers(\"disabled\");\r\n });\r\n $(\".subleague-mailing-text-slide__email-title-input\").on(\"change input\", () => {\r\n $(\".subleague-mailing-text-slide__button--save\").removeModifiers(\"disabled\");\r\n $(\".subleague-mailing-text-slide__button--example\").removeModifiers(\"disabled\");\r\n });\r\n\r\n this.bindSaveWelcomeEmail();\r\n this.bindSendExampleEmail();\r\n }\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n\r\n private bindSaveWelcomeEmail = () => {\r\n $(\".subleague-mailing-text-slide__button--save\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n const mailValidation = this.getMailValidation();\r\n if (!mailValidation.valid)\r\n return;\r\n\r\n elem.addModifiers(\"disabled\");\r\n this.subLeagueRepository.saveWelcomeEmail(this.selectedSubLeagueId, mailValidation.title, mailValidation.body).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\r\n\r\n this.markCompletion(SettingsStepType.MailingText);\r\n }\r\n else {\r\n elem.removeModifiers(\"disabled\");\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n elem.removeModifiers(\"disabled\");\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n }\r\n\r\n private bindSendExampleEmail = () => {\r\n $(\".subleague-mailing-text-slide__button--example\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n const mailValidation = this.getMailValidation();\r\n if (!mailValidation.valid)\r\n return;\r\n\r\n elem.addModifiers(\"disabled\");\r\n this.subLeagueRepository.sendExampleWelcomeEmail(this.selectedSubLeagueId, mailValidation.title, mailValidation.body).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.ExampleSend\");\r\n }\r\n else {\r\n elem.removeModifiers(\"disabled\");\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n elem.removeModifiers(\"disabled\");\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n }\r\n\r\n private getMailValidation = (): IMailValidation => {\r\n let valid = true;\r\n\r\n const titleElement = $(\".subleague-mailing-text-slide__email-title-input\");\r\n const title = titleElement.val();\r\n\r\n const bodyElement = $(\".cke_editor_subleague-mailing-text-slide__mail-message\");\r\n const body = CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].getData();\r\n\r\n if (title === undefined || title === \"\") {\r\n valid = false;\r\n titleElement.addModifiers(\"invalid\");\r\n }\r\n\r\n if (body === undefined || body === \"\") {\r\n valid = false;\r\n bodyElement.addModifiers(\"invalid\");\r\n }\r\n return { valid, title, body };\r\n }\r\n\r\n private markCompletion = (stepType: SettingsStepType) => {\r\n if (this.leagueActionsEnabled) {\r\n const leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\r\n switch (stepType) {\r\n case SettingsStepType.Name:\r\n if (!leagueActions?.nameCompleted) {\r\n this.actionsRepository.markNameComplete(this.selectedSubLeagueId);\r\n ActionsController.getInstance().completeLeagueName(this.marketId, this.selectedSubLeagueId);\r\n }\r\n break;\r\n case SettingsStepType.RankingLogo:\r\n if (!leagueActions?.rankingLogoCompleted) {\r\n this.actionsRepository.markRankingLogoComplete(this.selectedSubLeagueId);\r\n ActionsController.getInstance().completeRankingLogoName(this.marketId, this.selectedSubLeagueId);\r\n }\r\n break;\r\n case SettingsStepType.MailingText:\r\n if (!leagueActions?.welcomeEmailCompleted) {\r\n this.actionsRepository.markWelcomeEmailComplete(this.selectedSubLeagueId);\r\n ActionsController.getInstance().completeWelcomeMail(this.marketId, this.selectedSubLeagueId);\r\n }\r\n break;\r\n }\r\n this.checkConfigurationCompletion();\r\n }\r\n else {\r\n this.checkConfigurationCompletionFromLocalStorage(stepType);\r\n }\r\n }\r\n\r\n private checkConfigurationCompletionFromLocalStorage = (stepType: SettingsStepType) => {\r\n let subLeagueCompletion = this.settingsCompletionModel.get(this.selectedSubLeagueId.toString());\r\n if (!subLeagueCompletion) {\r\n subLeagueCompletion = new LeagueActions(this.marketId, this.selectedSubLeagueId, false, false, false);\r\n }\r\n\r\n switch (stepType) {\r\n case SettingsStepType.Name:\r\n subLeagueCompletion.nameCompleted = true;\r\n break;\r\n case SettingsStepType.RankingLogo:\r\n subLeagueCompletion.rankingLogoCompleted = true;\r\n break;\r\n case SettingsStepType.MailingText:\r\n subLeagueCompletion.welcomeEmailCompleted = true;\r\n break;\r\n }\r\n\r\n this.settingsCompletionModel.put(this.selectedSubLeagueId.toString(), subLeagueCompletion);\r\n localStorage.setItem(Business.ManagementController.settingsCompletedLocalStorageKey, this.settingsCompletionModel.toString());\r\n\r\n if (!subLeagueCompletion.isComplete())\r\n return;\r\n\r\n this.showConfigurationCompletePopup();\r\n\r\n }\r\n\r\n private checkConfigurationCompletion = () => {\r\n const leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\r\n if (leagueActions == null || !leagueActions.isComplete())\r\n return;\r\n\r\n const key = `${SettingsController.settingsCompletedLocalStorageKey}.${this.selectedSubLeagueId}`;\r\n if (localStorage.getItem(key)) return;\r\n\r\n localStorage.setItem(key, \"true\");\r\n\r\n this.showConfigurationCompletePopup();\r\n }\r\n\r\n private showConfigurationCompletePopup = (): void => {\r\n const popup = $.scoritoPopup({\r\n elementId: \"section-completed-popup\",\r\n popupTitle: $(\".section-completed-popup-content\").data(\"title\"),\r\n contentHtml: $(\".section-completed-popup-content\").html(),\r\n widthInPixels: 591,\r\n follow: [false, false],\r\n });\r\n\r\n $(\".section-completed-popup__description\").text(TranslationData.get(\"Business.Management.SectionCompletedDescription\")?.format(TranslationData.get(\"Business.TabSettings\")?.toLowerCase(), TranslationData.get(\"Business.Management.Configuration.GoToInvite\")?.toLowerCase()));\r\n $(\".section-completed-popup__continue-button\").on(\"click\", () => {\r\n popup.close();\r\n $(`.league-administrator__tab[data-tab-id=${LeagueAdminTabType.Invite}]`).click();\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class StepModel {\r\n public cdnUrl: string;\r\n\r\n constructor(cdnUrl: string) {\r\n this.cdnUrl = cdnUrl;\r\n }\r\n\r\n }\r\n}","enum DateTimeFormatType {\r\n Short,\r\n Middle,\r\n Long,\r\n TimeOnly,\r\n TimeOnlyWithNotationShort,\r\n TimeOnlyWithNotationLong,\r\n ShortDateOnly,\r\n DateOnlyLong,\r\n DateOnly,\r\n DateOnlyWithYear,\r\n MiddleDateOnly,\r\n MiddleDateNumber,\r\n DayFullMonthYear\r\n}\r\n\r\nclass DateTimes {\r\n private readonly defaultFormat = \"DD-MM-YYYY HH:mm:ss\";\r\n\r\n public getValue(date: any, formatType?: DateTimeFormatType): string {\r\n const instance = moment.utc(date);\r\n\r\n instance.locale(uiCulture);\r\n\r\n return instance.format(this.getDateTimeFormat(formatType));\r\n }\r\n\r\n private getDateTimeFormat(formatType?: DateTimeFormatType) {\r\n switch (uiCulture) {\r\n case \"de-DE\":\r\n return this.getGermanFormat(formatType);\r\n default:\r\n return this.getDefaultFormat(formatType);\r\n }\r\n };\r\n\r\n private getDefaultFormat(formatType?: DateTimeFormatType) {\r\n switch (formatType) {\r\n case DateTimeFormatType.Short:\r\n return \"DD-MM-YY\";\r\n case DateTimeFormatType.Middle:\r\n return \"ddd DD MMM HH:mm u\";\r\n case DateTimeFormatType.Long:\r\n return \"dddd DD MMMM YYYY HH:mm uur\";\r\n case DateTimeFormatType.DateOnlyLong:\r\n return \"dddd DD MMMM\";\r\n case DateTimeFormatType.TimeOnly:\r\n return \"HH:mm\";\r\n case DateTimeFormatType.TimeOnlyWithNotationShort:\r\n return \"HH:mm u\";\r\n case DateTimeFormatType.TimeOnlyWithNotationLong:\r\n return \"HH:mm uur\";\r\n case DateTimeFormatType.ShortDateOnly:\r\n return \"D MMMM YYYY\";\r\n case DateTimeFormatType.DateOnly:\r\n return \"DD-MM\";\r\n case DateTimeFormatType.DateOnlyWithYear:\r\n return \"DD-MM-YYYY\";\r\n case DateTimeFormatType.MiddleDateOnly:\r\n return \"ddd DD MMM\";\r\n case DateTimeFormatType.MiddleDateNumber:\r\n return \"dd DD-MM\";\r\n case DateTimeFormatType.DayFullMonthYear:\r\n return \"DD MMMM YYYY\";\r\n default:\r\n return this.defaultFormat;\r\n };\r\n }\r\n\r\n private getGermanFormat(formatType?: DateTimeFormatType) {\r\n switch (formatType) {\r\n case DateTimeFormatType.Short:\r\n return \"DD.MM.YY\";\r\n case DateTimeFormatType.Middle:\r\n return \"ddd D. MMM HH:mm u\";\r\n case DateTimeFormatType.Long:\r\n return \"dddd, D. MMMM YYYY, HH:mm [Uhr]\";\r\n case DateTimeFormatType.TimeOnly:\r\n return \"HH:mm\";\r\n case DateTimeFormatType.TimeOnlyWithNotationShort:\r\n return \"HH:mm u\";\r\n case DateTimeFormatType.TimeOnlyWithNotationLong:\r\n return \"HH:mm [Uhr]\";\r\n case DateTimeFormatType.DateOnlyLong:\r\n return \"dddd D. MMMM\";\r\n case DateTimeFormatType.ShortDateOnly:\r\n return \"D. MMMM YYYY\";\r\n case DateTimeFormatType.MiddleDateOnly:\r\n return \"ddd D. MMM\";\r\n default:\r\n return this.getDefaultFormat(formatType);\r\n }\r\n }\r\n}\r\n\r\nvar DateTimeData = new DateTimes();","enum Culture {\r\n Dutch = \"nl-nl\",\r\n Belgium = \"nl-be\",\r\n France = \"fr\",\r\n Spanish = \"es-es\",\r\n German = \"de\",\r\n English = \"en-gb\",\r\n Unknown = \"na-NA\"\r\n}\r\n\r\nconst getCulture = (): Culture => {\r\n switch (uiCulture) {\r\n default: return Culture.Unknown;\r\n case \"nl-NL\": return Culture.Dutch;\r\n case \"nl-BE\": return Culture.Belgium;\r\n case \"fr-FR\": return Culture.France;\r\n case \"es-ES\": return Culture.Spanish;\r\n case \"de-DE\": return Culture.German;\r\n case \"en-GB\": return Culture.English;\r\n }\r\n};\r\n\r\nnumeral.locale(getCulture().toString());\r\n\r\nclass Numbers {\r\n private readonly defaultCurrencyFormat = \"\";\r\n\r\n public formatCurrency(value: any, format?: string): string {\r\n return numeral(value).format(format ?? this.defaultCurrencyFormat);\r\n }\r\n}\r\n\r\nNumeralData = new Numbers();","/// \r\n\r\nclass ApiResult {\r\n public readonly resultCode: ApiResultCode;\r\n public readonly message: string;\r\n public readonly content: any;\r\n\r\n private constructor(resultCode: ApiResultCode, message: string, content: any) {\r\n this.resultCode = resultCode;\r\n this.message = message;\r\n this.content = content;\r\n }\r\n\r\n public isSuccess(): boolean {\r\n return this.resultCode === 0;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new ApiResult(data.ResultCode, data.ErrorMessage, data.Content);\r\n }\r\n}","/// \r\n\r\nclass Dictionary implements IDictionary {\r\n\r\n private internalDict: { [key in K]?: V };\r\n\r\n constructor() {\r\n this.internalDict = {};\r\n }\r\n\r\n public getKeys() {\r\n let keys: K[] = [];\r\n for (let key in this.internalDict) {\r\n keys.push(key);\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n // Type predicate to ensure v exists\r\n private isNotNull(v: V | undefined): v is V {\r\n return v != null && typeof v !== \"undefined\";\r\n }\r\n\r\n public getValues() {\r\n let vals: V[] = [];\r\n\r\n for (let key in this.internalDict) {\r\n let v = this.internalDict[key];\r\n if (this.isNotNull(v)) {\r\n vals.push(v);\r\n }\r\n }\r\n\r\n return vals;\r\n }\r\n\r\n public get(key: K) {\r\n let v = this.internalDict[key];\r\n return this.isNotNull(v)\r\n ? v\r\n : null;\r\n }\r\n\r\n public put(key: K, val: V): void {\r\n this.internalDict[key] = val;\r\n }\r\n\r\n public toString = (): string => {\r\n return JSON.stringify(this.internalDict);\r\n }\r\n}","class Authentication {\r\n\r\n public static isLoggedIn() {\r\n return apiToken != null && apiToken !== \"\";\r\n }\r\n\r\n public static getUserId(): number {\r\n return parseInt(API.parseJwt(API._token)?.sub ?? 0);\r\n }\r\n}","class BaseList {\r\n public list: Array;\r\n\r\n constructor(list?: Array) {\r\n this.list = list ? list : new Array();\r\n }\r\n\r\n public add(t: T): void {\r\n this.list.push(t);\r\n }\r\n\r\n public count(): number {\r\n return this.list.length;\r\n }\r\n\r\n public any = (): boolean => {\r\n return this.count() > 0;\r\n }\r\n\r\n public multiple = (): boolean => {\r\n return this.count() > 1;\r\n }\r\n\r\n public first(): T {\r\n return _.first(this.list);\r\n }\r\n\r\n public last(): T {\r\n return _.last(this.list);\r\n }\r\n\r\n public map(callback: (value: T, index: number) => U): U[] {\r\n return this.list.map((value, index) => {\r\n return callback(value, index);\r\n });\r\n }\r\n\r\n public each(callback: (value: T, index: number) => U): void {\r\n _.each(this.list, (value, index) => {\r\n callback(value, index);\r\n });\r\n }\r\n}","class LocalStorageProxy {\r\n private static HasLocalStorageSupport(): boolean {\r\n if (typeof localStorage !== 'undefined') {\r\n try {\r\n localStorage.setItem('feature_test', 'yes');\r\n if (localStorage.getItem('feature_test') === 'yes') {\r\n localStorage.removeItem('feature_test');\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch (e) {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public static SetItem(key: string, value: string): void {\r\n if (LocalStorageProxy.HasLocalStorageSupport()) {\r\n localStorage.setItem(key, value);\r\n }\r\n else {\r\n LocalStorageProxy.SetCookie(key, value, 365);\r\n }\r\n }\r\n\r\n public static GetItem(key: string): string {\r\n if (LocalStorageProxy.HasLocalStorageSupport()) {\r\n return localStorage.getItem(key);\r\n }\r\n else {\r\n return LocalStorageProxy.GetCookie(key);\r\n }\r\n }\r\n\r\n public static DeleteItem(key: string): void {\r\n if (LocalStorageProxy.HasLocalStorageSupport()) {\r\n return localStorage.removeItem(key);\r\n }\r\n else {\r\n return LocalStorageProxy.SetCookie(key,\"\",-1);\r\n }\r\n }\r\n\r\n private static GetCookie(key: string): string{\r\n var nameEQ = key + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0) {\r\n var value = c.substring(nameEQ.length, c.length);\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private static SetCookie(key: string, value: string, days: number): void{\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n var expiration: string = \"; expires=\" + date.toUTCString();\r\n var cookie = key + \"=\" + value + expiration + \"; path=/\";\r\n document.cookie = cookie;\r\n }\r\n}","\r\n\r\nmodule League {\r\n\r\n export class Repository {\r\n private readonly apiSettings: ApiSettings;\r\n\r\n public constructor(apiSettings: ApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public checkPoolName = (regionId: number, marketId: number, name: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n const data = JSON.stringify({ SubLeagueName: name });\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.checkLeagueName}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data\r\n })\r\n .done((data: any) => deferred.resolve(data.Content))\r\n .fail((data: any) => deferred.reject(data));\r\n\r\n return deferred.promise();\r\n };\r\n\r\n public sendPrivateMessage = (subLeagueId: number, recipientUserId: number, subject: string, message: string, isFromBusiness: boolean = false): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.sendPrivateMessageUrl}/${subLeagueId}/${recipientUserId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n subject,\r\n message,\r\n isFromBusiness\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public removeParticipant = (subLeagueId: number, participantUserId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.deleteParticipantUrl}/${subLeagueId}/${participantUserId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nclass API {\r\n public static _token: string;\r\n\r\n static ajax(settings: JQueryAjaxSettings): any {\r\n if (!this._token) {\r\n NotificationBar.Display(TranslationData['Identity.API.NoAccessToken'])\r\n }\r\n settings.headers[\"Authorization\"] = \"Bearer \" + this._token\r\n if (window.navigator.userAgent.toLowerCase().indexOf('trident/') != -1) {\r\n settings.cache = false;\r\n settings.dataType = 'json';\r\n }\r\n\r\n return $.ajax(settings).fail(err => {\r\n if (err?.status === 401) {\r\n NotificationBar.Display(TranslationData['Identity.API.NoAccessToken']);\r\n }\r\n });\r\n }\r\n\r\n static InitializeAuthorization(token: string, serverTimestamp: number, version: string) {\r\n if (this.ClientTimeIsValid(serverTimestamp)) {\r\n this._token = token;\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData['Identity.API.ClientTimeOffset']);\r\n }\r\n }\r\n\r\n private static ClientTimeIsValid(serverTimestamp: number): boolean {\r\n\r\n var maxDiff = 3600 * 6; // UTC cannot be more off sync than 6 hours\r\n var clientUtc = Math.floor((new Date().getTime()) / 1000);\r\n var diff = Math.abs(serverTimestamp - clientUtc);\r\n\r\n return diff < maxDiff;\r\n }\r\n\r\n static parseJwt(token: string) {\r\n if (!token)\r\n return null;\r\n\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n };\r\n}","/// \r\n/// \r\n\r\nmodule Platform {\r\n\r\n export class Countries extends BaseList {\r\n\r\n public getByCode = (code: string): Country => {\r\n return _.find(this.list, c => c.code?.toLowerCase() === code?.toLowerCase());\r\n }\r\n\r\n public getByCallingCode = (countryCallingCode: string): Country => {\r\n return _.find(this.list, c => c.countryCallingCode?.toLowerCase() === countryCallingCode?.toLowerCase());\r\n }\r\n\r\n public getById = (id: number): Country => {\r\n return _.find(this.list, c => c.id === id);\r\n }\r\n\r\n public getCountryCallingCodes = (): Array => {\r\n return this.list.map(c => c.countryCallingCode);\r\n }\r\n\r\n public static fromJson(data: any): Countries {\r\n const list = new Array();\r\n _.each(data, (country: any) => {\r\n list.push(Country.fromJson(country));\r\n });\r\n return new this(list);\r\n }\r\n\r\n public sortByName = (): Countries => {\r\n const list = _(this.list.sort((a, b) => a.name.localeCompare(b.name)))\r\n .chain()\r\n .sortBy((country: Country) => country.sortOrder)\r\n .sortBy((country: Country) => country.sortOrder != null)\r\n .value();\r\n\r\n return new Countries(list);\r\n }\r\n\r\n public sortByCallingCodes = (): Countries => {\r\n const list = _(this.list).chain()\r\n .sortBy((country: Country) => +country.countryCallingCode)\r\n .sortBy((country: Country) => country.sortOrder)\r\n .sortBy((country: Country) => country.sortOrder != null)\r\n .value();\r\n\r\n return new Countries(list);\r\n }\r\n\r\n\r\n }\r\n} ","module Platform {\r\n export class Country {\r\n public id: number;\r\n public name: string;\r\n public code: string;\r\n public regionId: number;\r\n public sortOrder: number;\r\n public countryCallingCode: string;\r\n\r\n constructor(id: number, name: string, code: string, regionId: number, sortOrder: number, countryCallingCode: string) {\r\n this.id = id;\r\n this.name = name;\r\n this.code = code;\r\n this.regionId = regionId;\r\n this.sortOrder = sortOrder;\r\n this.countryCallingCode = countryCallingCode;\r\n }\r\n\r\n public isNetherlands = (): boolean => {\r\n return Country.isNetherlands(this.code);\r\n }\r\n\r\n public static isNetherlands = (code: string) => {\r\n return code === \"NLD\";\r\n }\r\n\r\n public static fromJson(data: any): Country {\r\n return new this(data.Id, data.Name, data.Code, data.RegionId, data.Order, data.CountryCallingCode);\r\n }\r\n }\r\n} ","/// \r\n\r\nmodule Platform {\r\n export class GameInfo {\r\n public onlineDate: string;\r\n public signUpDeadline: string;\r\n public gameId: number;\r\n public title: string;\r\n public description: string;\r\n public sportType: SportType;\r\n public eventName: string;\r\n public marketName: string;\r\n public gameName: string;\r\n\r\n constructor(onlineDate: string, signUpDeadline: string, gameId: number, title: string, description: string, sportType: SportType, eventName: string, marketName: string, gameName: string) {\r\n this.onlineDate = onlineDate;\r\n this.signUpDeadline = signUpDeadline;\r\n this.gameId = gameId;\r\n this.title = title;\r\n this.description = description;\r\n this.sportType = sportType;\r\n this.eventName = eventName;\r\n this.marketName = marketName;\r\n this.gameName = gameName;\r\n }\r\n\r\n public isOnline = (): boolean => {\r\n return moment.utc().isAfter(moment.utc(this.onlineDate));\r\n }\r\n\r\n public daysBeforeOnlineDate = (): number => {\r\n const online = moment.utc(this.onlineDate).hour(0).minute(0).second(0).millisecond(0);\r\n const momentNow = moment.utc().hour(0).minute(0).second(0).millisecond(0);\r\n return Math.abs(momentNow.diff(online, 'days'));\r\n }\r\n\r\n public static fromJson(data: any): GameInfo {\r\n return new GameInfo(data.OnlineDate, data.SignUpDeadline, data.GameId, data.Title, data.Description, data.SportType, data.EventName, data.MarketName, data.GameName);\r\n }\r\n }\r\n}","module Platform {\r\n type MarketPredictionItem = {\r\n name: string;\r\n order: number;\r\n };\r\n\r\n export interface Market {\r\n id: number;\r\n gameId: number;\r\n marketPredictionItems: MarketPredictionItem[];\r\n }\r\n\r\n export const marketFromJson = (data: any): Market => ({\r\n id: data.Id,\r\n gameId: data.GameId,\r\n marketPredictionItems: data.MarketPredictionItems.map(i => ({\r\n name: i.Name,\r\n order: i.Order,\r\n })),\r\n });\r\n} ","/// \r\n\r\nmodule Platform {\r\n export class MarketRound {\r\n public deadlineDeficitInMilliseconds: number;\r\n public id: number;\r\n public order: number;\r\n public name: string;\r\n public deadline: FormattedDateTime;\r\n\r\n constructor(deadlineDeficitInMilliseconds: number, id: number, order: number,\r\n name: string, deadline: FormattedDateTime) {\r\n this.deadlineDeficitInMilliseconds = deadlineDeficitInMilliseconds;\r\n this.id = id;\r\n this.order = order;\r\n this.name = name;\r\n this.deadline = deadline;\r\n }\r\n\r\n public static fromJson(data: any): MarketRound {\r\n const formattedDateTime = FormattedDateTime.FromUtcJson(data.Deadline);\r\n return new MarketRound(data.DeadlineDeficitInMilliseconds, data.Id, data.Order, data.Name, formattedDateTime);\r\n }\r\n }\r\n}","module Platform {\r\n export class MarketRounds {\r\n public list: Array;\r\n\r\n constructor(list: Array) {\r\n this.list = list;\r\n }\r\n\r\n public static fromJson(data: any): MarketRounds {\r\n const list = new Array();\r\n _.each(data, (marketRound: any) => {\r\n list.push(MarketRound.fromJson(marketRound));\r\n });\r\n\r\n return new this(list);\r\n }\r\n\r\n public getById(marketRoundId: number): MarketRound {\r\n return _.find(this.list, (marketRound: MarketRound) => {\r\n return marketRound.id === marketRoundId;\r\n });\r\n }\r\n\r\n }\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Platform {\r\n\r\n export class Repository {\r\n private readonly apiSettings: ApiSettings;\r\n private readonly marketId: number;\r\n private countries: Countries;\r\n private readonly gameInfoCache: Dictionary = new Dictionary();\r\n\r\n public constructor(apiSettings: ApiSettings, marketId: number) {\r\n this.apiSettings = apiSettings;\r\n this.marketId = marketId;\r\n }\r\n\r\n public activeAndUpcoming = (regionId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.activeAndUpcoming}/${regionId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(data.Content.map(i => Platform.marketFromJson(i)));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred;\r\n };\r\n\r\n public getCountries(): JQueryPromise {\r\n const deferred = $.Deferred();\r\n if (this.countries != null) {\r\n deferred.resolve(this.countries);\r\n }\r\n else {\r\n $.ajax({\r\n url: `${this.apiSettings.getAllCountriesUrl}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n this.countries = Countries.fromJson(data.Content);\r\n this.countries = this.countries.sortByCallingCodes();\r\n deferred.resolve(this.countries);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n }\r\n return deferred.promise();\r\n }\r\n\r\n public sendBusinessMessageAnonymous = (data: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this.apiSettings.sendBusinessMessageAnonymousUrl}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n processData: false,\r\n contentType: false,\r\n data: data\r\n }).done((data: any) => {\r\n deferred.resolve(data);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getGameInfo = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n const cacheKey = `gameInfo.${marketId}`;\r\n const gameInfo = this.gameInfoCache.get(cacheKey);\r\n\r\n if (gameInfo) {\r\n return deferred.resolve(gameInfo);\r\n }\r\n\r\n $.ajax({\r\n url: `${this.apiSettings.gameInfoUrl}/${marketId}/${uiCulture}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n }).done((data: any) => {\r\n const gameInfo = GameInfo.fromJson(data.Content);\r\n this.gameInfoCache.put(cacheKey, gameInfo);\r\n deferred.resolve(gameInfo);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","class Translations {\r\n\r\n public get = (key: string): string => {\r\n if (key == null)\r\n return \"\";\r\n\r\n return this[key] ?? key;\r\n }\r\n}","module Shared {\r\n\r\n export class TermsAndConditionsController {\r\n\r\n private url: string;\r\n private culture: string;\r\n\r\n private static instance: TermsAndConditionsController;\r\n\r\n public static GetInstance(): TermsAndConditionsController{\r\n return this.instance;\r\n }\r\n\r\n constructor(url: string, culture: string){\r\n TermsAndConditionsController.instance = this;\r\n this.url = url;\r\n this.culture = culture;\r\n\r\n if (!jQuery.isReady) {\r\n $(document).on(\"ready\", this.onDomLoaded.bind(this));\r\n }\r\n else {\r\n this.onDomLoaded();\r\n }\r\n\r\n }\r\n\r\n private onDomLoaded(): void{\r\n \r\n }\r\n\r\n public GetTermsAndConditionsContent(): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: this.url + \"?culture=\" + this.culture,\r\n type: 'GET',\r\n dataType: \"json\",\r\n success: (data) => { deferred.resolve(data); },\r\n error: (data) => { deferred.reject(data);}\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","class TranslationStorageData {\r\n public readonly dateModified: Date;\r\n public readonly translationData: Object;\r\n\r\n constructor(dateModified: Date, translationData: Object) {\r\n this.dateModified = dateModified;\r\n this.translationData = translationData;\r\n }\r\n\r\n public static fromStorageData(data: string): TranslationStorageData {\r\n const json = JSON.parse(data);\r\n return new this(json.dateModified, json.translationData);\r\n }\r\n}","/// \r\n/// \r\n\r\nvar TranslationData: Translations = new Translations();\r\n\r\nclass TranslationController {\r\n private constructor() { }\r\n\r\n private static readonly translationsKey = `translations`;\r\n private static readonly translationStorageKey = `${TranslationController.translationsKey}:${uiCulture}`;\r\n\r\n public static initialize(dateModified: Date, translationsUrl: string): void {\r\n const data = LocalStorageProxy.GetItem(this.translationStorageKey);\r\n\r\n if (!data) {\r\n TranslationController.loadTranslations(dateModified, translationsUrl);\r\n }\r\n else {\r\n const storageData = TranslationStorageData.fromStorageData(data);\r\n if (storageData.dateModified < dateModified) {\r\n TranslationController.loadTranslations(dateModified, translationsUrl);\r\n }\r\n else {\r\n _.mapObject(storageData.translationData, (value: string, key: string) => {\r\n TranslationData[key] = value;\r\n });\r\n }\r\n }\r\n }\r\n\r\n private static loadTranslations(dateModified: Date, url: string): void {\r\n $.ajax({\r\n url: `${url}/labels/frontend/${uiCulture}.json`,\r\n async: false\r\n }).done((json: string) => {\r\n const newData = new TranslationStorageData(dateModified, json);\r\n\r\n Object.keys(localStorage).forEach(objKey => {\r\n if (objKey.indexOf(TranslationController.translationsKey, 0) > -1) {\r\n LocalStorageProxy.DeleteItem(objKey);\r\n }\r\n });\r\n\r\n LocalStorageProxy.SetItem(this.translationStorageKey, JSON.stringify(newData));\r\n _.mapObject(newData.translationData, (value: string, key: string) => {\r\n TranslationData[key] = value;\r\n });\r\n }).fail(err => {\r\n console.error(`Failed to load translations: ${err}`);\r\n });\r\n }\r\n}","interface IRegion {\r\n regionId: number;\r\n description: string;\r\n culture: string;\r\n}\r\n\r\nconst getRegionById = (regions: IRegion[], regionId: number) => _.find(regions, r => r.regionId === regionId);","module ApiSettings {\r\n export class SalesApiSettings\r\n {\r\n public gameTabUrl: string;\r\n public dealsForMarketUrl: string;\r\n public discountForMarketUrl: string;\r\n public combiDealsUrl: string;\r\n public packageOptionUrl: string;\r\n public packageOptionLayoverUrl: string;\r\n public calculateDealUrl: string;\r\n public calculateOrderUrl: string;\r\n public couponUrl: string;\r\n public faqUrl: string;\r\n public faqCategoryUrl: string;\r\n public footerCarouselImagesUrl: string;\r\n public salesAccountDataUrl: string;\r\n public paymentUrl: string;\r\n public createSessionUrl: string;\r\n public createSalesAccountDataUrl: string;\r\n public createBusinessLinkUrl: string;\r\n public paymentMethodsUrl: string;\r\n public clientMarketDataUrl: string;\r\n public clientMarketSettingsUrl: string;\r\n public saveClientAdministratorUrl: string;\r\n public deleteClientAdministratorUrl: string;\r\n public saveClientLogoUrl: string;\r\n public saveLeagueNameUrl: string;\r\n public saveClientHeaderColorUrl: string;\r\n public saveClientHeaderIconUrl: string;\r\n public saveRankingLogoUrl: string;\r\n public saveSubLeagueRankingLogoUrl: string;\r\n public saveHasOpenedAdminsUrl: string;\r\n public upgradeDealsUrl: string;\r\n public packageUpgradesUrl: string;\r\n public saveLandingPageLogoUrl: string;\r\n public saveOptinRequiredUrl: string;\r\n public calculateUpgradeUrl: string;\r\n public saveLogoTakeOverUrl: string;\r\n public saveBackgroundColorUrl: string;\r\n public saveHeaderIconColorUrl: string;\r\n public saveWelcomeEmailUrl: string;\r\n public sendExampleEmailUrl: string;\r\n public sendExampleSubLeagueEmailUrl: string;\r\n public hasSeenEmailUrl: string;\r\n public subLeagueWelcomeEmailUrl: string;\r\n public inviteMailContentUrl: string;\r\n public deleteArticleUrl: string;\r\n public companyDetailsUrl: string;\r\n public hasChangedSubLeagueSettingUrl: string;\r\n public articlesUrl: string;\r\n public articleHeaderImageUrl: string;\r\n public purchasesUrl: string;\r\n public purchaseInvoiceUrl: string;\r\n public purchaseDetailUrl: string;\r\n public participantsUrl: string;\r\n public subLeaguesUrl: string;\r\n public administratorsUrl: string;\r\n public deleteAdminUrl: string;\r\n public deleteInvitationUrl: string;\r\n public inviteAdminUrl: string;\r\n public validateInviteUrl: string;\r\n public acceptInviteUrl: string;\r\n public declineInviteUrl: string;\r\n public subLeagueAdministratorsUrl: string;\r\n public deleteSubLeagueAdminUrl: string;\r\n public sendReminderUrl: string;\r\n public subLeagueInviteUrl: string;\r\n public frontendOrderingAndFilteringThreshold: number;\r\n public updateSubLeagueNameUrl: string;\r\n public getSubLeaguesUrl: string;\r\n public getSubLeaguesAnonymousUrl: string;\r\n public getSubLeagueAdminsUrl: string;\r\n public nameLeagueActionsUrl: string;\r\n public rankingLogoLeagueActionsUrl: string;\r\n public welcomeEmailLeagueActionsUrl: string;\r\n public leagueActionsCollectionByMarketUrl: string;\r\n public getInviteMailUrl: string;\r\n public userPredictionStatusUrl: string;\r\n public requestOptInUrl: string;\r\n public advertisementUrl: string;\r\n public saveSalesPackageImageUrl: string;\r\n public promotionalPackageUrl: string;\r\n public advertisementImageUrl: string;\r\n public interstitialUrl: string;\r\n public interstitialImageUrl: string;\r\n public rankingRequestUrl: string;\r\n public sendSubLeagueMessageUrl: string;\r\n public getMarketSalesPackagesByRegionUrl: string;\r\n public getMarketSalesPackagesByCountryUrl: string;\r\n public brandingPackageUrl: string;\r\n public brochureUrl: string;\r\n public steamReferralUrl: string;\r\n\r\n constructor(apiSettings: any) {\r\n this.gameTabUrl = apiSettings.GameTabUrl;\r\n this.dealsForMarketUrl = apiSettings.DealsForMarketUrl;\r\n this.discountForMarketUrl = apiSettings.DiscountForMarketUrl;\r\n this.combiDealsUrl = apiSettings.CombiDealsUrl;\r\n this.packageOptionUrl = apiSettings.PackageOptionUrl;\r\n this.packageOptionLayoverUrl = apiSettings.PackageOptionLayoverUrl;\r\n this.calculateDealUrl = apiSettings.CalculateDealUrl;\r\n this.calculateOrderUrl = apiSettings.CalculateOrderUrl;\r\n this.couponUrl = apiSettings.CouponUrl;\r\n this.faqUrl = apiSettings.FaqUrl;\r\n this.faqCategoryUrl = apiSettings.FaqCategoryUrl;\r\n this.footerCarouselImagesUrl = apiSettings.FooterCarouselImageUrl;\r\n this.salesAccountDataUrl = apiSettings.SalesAccountDataUrl;\r\n this.paymentUrl = apiSettings.PaymentUrl;\r\n this.createSessionUrl = apiSettings.CreateSessionUrl;\r\n this.createSalesAccountDataUrl = apiSettings.CreateSalesAccountDataUrl;\r\n this.createBusinessLinkUrl = apiSettings.CreateBusinessLinkUrl;\r\n this.paymentMethodsUrl = apiSettings.PaymentMethodsUrl;\r\n this.clientMarketDataUrl = apiSettings.ClientMarketDataUrl;\r\n this.clientMarketSettingsUrl = apiSettings.ClientMarketSettingsUrl;\r\n this.saveClientAdministratorUrl = apiSettings.SaveClientAdministratorUrl;\r\n this.deleteClientAdministratorUrl = apiSettings.DeleteClientAdministratorUrl;\r\n this.saveClientLogoUrl = apiSettings.SaveClientLogoUrl;\r\n this.saveLeagueNameUrl = apiSettings.SaveLeagueNameUrl;\r\n this.saveClientHeaderColorUrl = apiSettings.SaveClientHeaderColorUrl;\r\n this.saveClientHeaderIconUrl = apiSettings.SaveClientHeaderIconUrl;\r\n this.upgradeDealsUrl = apiSettings.UpgradeDealsUrl;\r\n this.packageUpgradesUrl = apiSettings.PackageUpgradesUrl;\r\n this.saveLandingPageLogoUrl = apiSettings.SaveLandingPageLogoUrl;\r\n this.saveOptinRequiredUrl = apiSettings.SaveOptinRequiredUrl;\r\n this.saveRankingLogoUrl = apiSettings.SaveRankingLogoUrl;\r\n this.saveSubLeagueRankingLogoUrl = apiSettings.SaveSubLeagueRankingLogoUrl;\r\n this.saveHasOpenedAdminsUrl = apiSettings.SaveHasOpenedAdminsUrl;\r\n this.calculateUpgradeUrl = apiSettings.CalculateUpgradeUrl;\r\n this.saveLogoTakeOverUrl = apiSettings.SaveLogoTakeOverUrl;\r\n this.saveHeaderIconColorUrl = apiSettings.SaveHeaderIconColorUrl;\r\n this.saveWelcomeEmailUrl = apiSettings.SaveWelcomeEmailUrl;\r\n this.sendExampleEmailUrl = apiSettings.SendExampleEmailUrl;\r\n this.sendExampleSubLeagueEmailUrl = apiSettings.SendExampleSubLeagueEmailUrl;\r\n this.hasSeenEmailUrl = apiSettings.HasSeenEmailUrl;\r\n this.subLeagueWelcomeEmailUrl = apiSettings.SubLeagueWelcomeEmailUrl;\r\n this.inviteMailContentUrl = apiSettings.InviteMailContentUrl;\r\n this.deleteArticleUrl = apiSettings.DeleteArticleUrl;\r\n this.saveBackgroundColorUrl = apiSettings.SaveBackgroundColorUrl;\r\n this.companyDetailsUrl = apiSettings.CompanyDetailsUrl;\r\n this.hasChangedSubLeagueSettingUrl = apiSettings.HasChangedSubLeagueSettingUrl;\r\n this.articlesUrl = apiSettings.ArticlesUrl;\r\n this.articleHeaderImageUrl = apiSettings.ArticleHeaderImageUrl;\r\n this.purchasesUrl = apiSettings.PurchasesUrl;\r\n this.purchaseInvoiceUrl = apiSettings.PurchaseInvoiceUrl;\r\n this.purchaseDetailUrl = apiSettings.PurchaseDetailUrl;\r\n this.participantsUrl = apiSettings.ParticipantsUrl;\r\n this.subLeaguesUrl = apiSettings.SubLeaguesUrl;\r\n this.administratorsUrl = apiSettings.AdministratorsUrl;\r\n this.deleteAdminUrl = apiSettings.DeleteAdminUrl;\r\n this.deleteInvitationUrl = apiSettings.DeleteInvitationUrl;\r\n this.inviteAdminUrl = apiSettings.InviteAdminUrl;\r\n this.validateInviteUrl = apiSettings.ValidateInviteUrl;\r\n this.acceptInviteUrl = apiSettings.AcceptInviteUrl;\r\n this.declineInviteUrl = apiSettings.DeclineInviteUrl;\r\n this.subLeagueInviteUrl = apiSettings.SubLeagueInviteUrl;\r\n this.updateSubLeagueNameUrl = apiSettings.UpdateSubLeagueNameUrl;\r\n this.subLeagueAdministratorsUrl = apiSettings.SubLeagueAdministratorsUrl;\r\n this.deleteSubLeagueAdminUrl = apiSettings.DeleteSubLeagueAdminUrl;\r\n this.sendReminderUrl = apiSettings.SendReminderUrl;\r\n this.frontendOrderingAndFilteringThreshold = apiSettings.FrontendOrderingAndFilteringThreshold;\r\n this.getSubLeaguesUrl = apiSettings.GetSubLeaguesUrl;\r\n this.getSubLeaguesAnonymousUrl = apiSettings.GetSubLeaguesAnonymousUrl;\r\n this.getSubLeagueAdminsUrl = apiSettings.GetSubLeagueAdminsUrl;\r\n this.nameLeagueActionsUrl = apiSettings.NameLeagueActionsUrl;\r\n this.rankingLogoLeagueActionsUrl = apiSettings.RankingLogoLeagueActionsUrl;\r\n this.welcomeEmailLeagueActionsUrl = apiSettings.WelcomeEmailLeagueActionsUrl;\r\n this.leagueActionsCollectionByMarketUrl = apiSettings.LeagueActionsCollectionByMarketUrl;\r\n this.getInviteMailUrl = apiSettings.GetInviteMailContentUrl;\r\n this.userPredictionStatusUrl = apiSettings.UserPredictionStatusUrl;\r\n this.requestOptInUrl = apiSettings.RequestOptInUrl;\r\n this.advertisementUrl = apiSettings.AdvertisementUrl;\r\n this.advertisementImageUrl = apiSettings.AdvertisementImageUrl;\r\n this.interstitialUrl = apiSettings.InterstitialUrl;\r\n this.interstitialImageUrl = apiSettings.InterstitialImageUrl;\r\n this.sendSubLeagueMessageUrl = apiSettings.SendSubLeagueMessageUrl;\r\n this.rankingRequestUrl = apiSettings.RankingRequestUrl;\r\n this.getMarketSalesPackagesByRegionUrl = apiSettings.GetMarketSalesPackagesByRegionUrl;\r\n this.getMarketSalesPackagesByCountryUrl = apiSettings.GetMarketSalesPackagesByCountryUrl;\r\n this.saveSalesPackageImageUrl = apiSettings.SaveSalesPackageImageUrl;\r\n this.promotionalPackageUrl = apiSettings.PromotionalPackageUrl;\r\n this.brandingPackageUrl = apiSettings.BrandingPackageUrl;\r\n this.brochureUrl = apiSettings.BrochureUrl;\r\n this.steamReferralUrl = apiSettings.SteamReferralUrl;\r\n }\r\n }\r\n}\r\n","module ApiSettings {\r\n\r\n export class UserApiSettings {\r\n public readonly requestEmailChangeUrl: string;\r\n public readonly confirmEmailChangeUrl: string;\r\n public readonly passwordChangeUrl: string;\r\n public readonly checkUserEmailUrl: string;\r\n public readonly checkUsernameUrl: string;\r\n public readonly lostPasswordUrl: string;\r\n public readonly genderUrl: string;\r\n public readonly nameUrl: string;\r\n public readonly phoneNumberUrl: string;\r\n public readonly birthDateUrl: string;\r\n public readonly profileDetailsUrl: string;\r\n\r\n constructor(apiSettings: any) {\r\n this.requestEmailChangeUrl = apiSettings.RequestEmailChangeUrl;\r\n this.confirmEmailChangeUrl = apiSettings.ConfirmEmailChangeUrl;\r\n this.passwordChangeUrl = apiSettings.PasswordChangeUrl;\r\n this.checkUserEmailUrl = apiSettings.CheckUserEmailUrl;\r\n this.checkUsernameUrl = apiSettings.CheckUsernameUrl;\r\n this.lostPasswordUrl = apiSettings.LostPasswordUrl;\r\n this.genderUrl = apiSettings.GenderUrl;\r\n this.nameUrl = apiSettings.NameUrl;\r\n this.phoneNumberUrl = apiSettings.PhoneNumberUrl;\r\n this.birthDateUrl = apiSettings.BirthDateUrl;\r\n this.profileDetailsUrl = apiSettings.ProfileDetailsUrl;\r\n }\r\n }\r\n} ","module Platform {\r\n export class ApiSettings {\r\n public readonly activeAndUpcoming: string;\r\n public readonly getAllCountriesUrl: string;\r\n public readonly sendBusinessMessageAnonymousUrl: string;\r\n public readonly gameInfoUrl: string;\r\n public readonly sendPrivateMessageUrl: string;\r\n public readonly deleteParticipantUrl: string;\r\n public readonly checkLeagueName: string;\r\n public readonly baseUrl: string;\r\n \r\n constructor(apiSettings: any) {\r\n this.activeAndUpcoming = apiSettings.ActiveAndUpcomingForRegionUrl;\r\n this.getAllCountriesUrl = apiSettings.GetAllCountriesUrl;\r\n this.sendBusinessMessageAnonymousUrl = apiSettings.SendBusinessMessageAnonymousUrl;\r\n this.gameInfoUrl = apiSettings.GameInfoUrl;\r\n this.sendPrivateMessageUrl = apiSettings.SendPrivateMessageUrl;\r\n this.deleteParticipantUrl = apiSettings.DeleteParticipantUrl;\r\n this.checkLeagueName = apiSettings.CheckLeagueName;\r\n this.baseUrl = apiSettings.BaseUrl;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n export class UserRepository {\r\n private readonly userApiSettings: ApiSettings.UserApiSettings;\r\n\r\n constructor(userApiSettings: ApiSettings.UserApiSettings) {\r\n this.userApiSettings = userApiSettings;\r\n }\r\n\r\n public checkUsername = (username: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: this.userApiSettings.checkUsernameUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ username }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result = ApiResult.fromJson(data);\r\n deferred.resolve(result.isSuccess());\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public checkEmail = (email: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: this.userApiSettings.checkUserEmailUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ email, currentLanguage: uiCulture }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result = ApiResult.fromJson(data);\r\n deferred.resolve(result.isSuccess());\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public sendPasswordResetMail(email: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: this.userApiSettings.lostPasswordUrl,\r\n type: \"PUT\",\r\n processData: true,\r\n dataType: \"json\",\r\n data: JSON.stringify({ email }),\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(() => {\r\n deferred.resolve(true);\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public setGender(gender: Gender): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this.userApiSettings.genderUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ gender }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(data => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public setName(firstName: string, lastName: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this.userApiSettings.nameUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ firstName, lastName }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(data => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public setPhoneNumber(countryCallingCode: string, phoneNumber: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this.userApiSettings.phoneNumberUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ phoneNumber: `${countryCallingCode} ${phoneNumber}` }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(data => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public setBirthDate(birthDate: Date): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this.userApiSettings.birthDateUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ birthdate: birthDate }),\r\n accepts: \"application/json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(data => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getProfileDetails = (): JQueryPromise =>{\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this.userApiSettings.profileDetailsUrl,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done(data => {\r\n deferred.resolve(Platform.Profile.fromJson(data.Content));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","module Business {\r\n export enum AdyenAuthResult {\r\n Authorised = 0,\r\n Refused = 1,\r\n Cancelled = 2,\r\n Pending = 3,\r\n Error = 4,\r\n None = 5\r\n }\r\n}","module Business {\r\n export enum CartRenderType {\r\n All = 0,\r\n OnlySideView = 1\r\n }\r\n}","module Business {\r\n export enum ClientAdminTabType {\r\n Upgrade = 0,\r\n Configuration = 1,\r\n Invite = 2,\r\n SubLeagues = 3,\r\n Participants = 4,\r\n Marketing = 5,\r\n Help = 6\r\n }\r\n}","module Business {\r\n export enum ConfigurationStatusType {\r\n Completed = 0,\r\n InComplete = 1,\r\n UnAvailable = 2\r\n }\r\n}","module Business {\r\n export enum ConfigurationStepType {\r\n Administrators = 0,\r\n MainLeagueName = 1,\r\n LogoTakeOver = 2,\r\n LandingsPage = 3,\r\n RankingLogo = 4,\r\n MailingText = 5,\r\n SubLeagues = 6,\r\n PromotionalPackage = 7,\r\n BrandingPackage = 8\r\n }\r\n}","module Business {\r\n export enum DiscountTypes {\r\n EarlyBird = 1,\r\n CombiDeal = 2\r\n }\r\n}","module Business {\r\n export enum FaqType {\r\n Order = 1,\r\n BusinessClientAdmin = 2,\r\n BusinessSubleague = 3,\r\n BusinessClientAdminAndSubleague = 4\r\n }\r\n}","module Business {\r\n export enum GeneralTabType {\r\n CompanyDetails = 0,\r\n Purchases = 1,\r\n Administrator = 2\r\n }\r\n}","module Business {\r\n export enum HeaderIconColorType {\r\n None = 0,\r\n White = 1,\r\n Black = 2\r\n }\r\n}","module Business {\r\n export enum LeagueAdminTabType {\r\n Settings = 0,\r\n Invite = 1,\r\n Participants = 2,\r\n Articles = 3,\r\n Help = 4\r\n }\r\n}","module Business {\r\n export enum ManagementInvitationStatus {\r\n Pending = 1,\r\n Accepted = 2,\r\n Declined = 3,\r\n Expired = 4\r\n }\r\n} ","module Business {\r\n export enum MarketingTabType {\r\n Articles = 0,\r\n Advertisements = 1,\r\n Interstitials = 2,\r\n OptIns = 3\r\n }\r\n}","module Business {\r\n export enum PackageType {\r\n Budget = 1,\r\n Business = 2,\r\n Professional = 3\r\n }\r\n}","module Business {\r\n export enum RoleType {\r\n ClientAdministrator = 1,\r\n SubLeagueAdministrator = 2\r\n }\r\n}","module Business {\r\n export enum SettingsStepType {\r\n Name = 0,\r\n RankingLogo = 1,\r\n MailingText = 2\r\n }\r\n}","module Business {\r\n export enum UserValidationPopupRedirectPage {\r\n Order = 0,\r\n SalesPackage = 1\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class SalesAccountData {\r\n public isLoggedInWithBusinessAccount: boolean;\r\n public isClientAdministrator: boolean;\r\n\r\n public companyOrganisationName: string;\r\n public companyAddress: string;\r\n public companyZipCode: string;\r\n public companyCityName: string;\r\n public companyCountryId: number;\r\n public companyPhoneNumber: string;\r\n public companyVATNumber: string;\r\n\r\n public invoiceRecipientName: string;\r\n public invoiceRecipientEmail: string;\r\n public poNumber: string;\r\n\r\n public administratorGender: Gender;\r\n public administratorName: string;\r\n public administratorInfix: string;\r\n public administratorSurname: string;\r\n\r\n public administratorPhoneNumber: string;\r\n public administratorEmail: string;\r\n\r\n constructor(isLoggedInWithBusinessAccount: boolean,\r\n isClientAdministrator: boolean,\r\n companyOrganisationName: string,\r\n companyAddress: string,\r\n companyZipCode: string,\r\n companyCityName: string,\r\n companyCountryId: number,\r\n companyPhoneNumber: string,\r\n companyVatNumber: string,\r\n invoiceRecipientName: string,\r\n invoiceRecipientEmail: string,\r\n purchaseOrderNumber: string,\r\n administratorGender: Gender,\r\n administratorName: string,\r\n administratorInfix: string,\r\n administratorSurname: string,\r\n administratorPhoneNumber: string,\r\n administratorEmail: string) {\r\n this.isLoggedInWithBusinessAccount = isLoggedInWithBusinessAccount;\r\n this.isClientAdministrator = isClientAdministrator;\r\n this.companyOrganisationName = companyOrganisationName;\r\n this.companyAddress = companyAddress;\r\n this.companyZipCode = companyZipCode;\r\n this.companyCityName = companyCityName;\r\n this.companyCountryId = companyCountryId;\r\n this.companyPhoneNumber = companyPhoneNumber;\r\n this.companyVATNumber = companyVatNumber;\r\n this.invoiceRecipientName = invoiceRecipientName;\r\n this.invoiceRecipientEmail = invoiceRecipientEmail;\r\n this.poNumber = purchaseOrderNumber;\r\n this.administratorGender = administratorGender;\r\n this.administratorName = administratorName;\r\n this.administratorInfix = administratorInfix;\r\n this.administratorSurname = administratorSurname;\r\n this.administratorPhoneNumber = administratorPhoneNumber;\r\n this.administratorEmail = administratorEmail;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new SalesAccountData(data.IsLoggedInWithBusinessAccount,\r\n data.IsClientAdministrator,\r\n data.CompanyOrganisationName,\r\n data.CompanyAddress,\r\n data.CompanyZipCode,\r\n data.CompanyCityName,\r\n data.CompanyCountryId,\r\n data.CompanyPhoneNumber,\r\n data.CompanyVATNumber,\r\n data.InvoiceRecipientName,\r\n data.InvoiceRecipientEmail,\r\n data.PONumber,\r\n data.AdministratorGender,\r\n data.AdministratorName,\r\n data.AdministratorInfix,\r\n data.AdministratorSurname,\r\n data.AdministratorPhoneNumber,\r\n data.AdministratorEmail);\r\n }\r\n\r\n public compareData(other: SalesAccountData): { updateUser: boolean, updateCompany: boolean } {\r\n let updateUser: boolean = false;\r\n let updateCompany: boolean = false;\r\n\r\n if (this.administratorGender !== other.administratorGender\r\n || this.administratorName !== other.administratorName\r\n || this.administratorInfix !== other.administratorInfix\r\n || this.administratorSurname !== other.administratorSurname\r\n || this.administratorPhoneNumber !== other.administratorPhoneNumber\r\n || this.administratorEmail !== other.administratorEmail)\r\n updateUser = true;\r\n\r\n if (this.companyOrganisationName !== other.companyOrganisationName\r\n || this.companyAddress !== other.companyAddress\r\n || this.companyZipCode !== other.companyZipCode\r\n || this.companyCityName !== other.companyCityName\r\n || this.companyCountryId !== other.companyCountryId\r\n || this.companyPhoneNumber !== other.companyPhoneNumber)\r\n updateCompany = true;\r\n\r\n return { updateUser, updateCompany }\r\n }\r\n\r\n public administratorFullName = () => {\r\n let name = this.administratorName;\r\n if (this.administratorInfix) {\r\n name += \" \" + this.administratorInfix;\r\n }\r\n if (this.administratorSurname) {\r\n name += \" \" + this.administratorSurname;\r\n }\r\n return name;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class AccountDataRepository implements IAccountDataRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getSalesAccountData(): JQueryPromise {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this._apiSettings.salesAccountDataUrl}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(SalesAccountData.fromJson(data.Content));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createSalesAccount(checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, password: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: this._apiSettings.createSalesAccountDataUrl,\r\n type: \"POST\",\r\n processData: true,\r\n dataType: \"json\",\r\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, { password, regionId, isAdult: true })),\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createBusinessLink(checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this._apiSettings.createBusinessLinkUrl,\r\n type: \"POST\",\r\n processData: true,\r\n dataType: \"json\",\r\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, { regionId, isAdult: true })),\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public saveCompanyDetails = (companyDetails: CompanyDetailsModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: this._apiSettings.companyDetailsUrl,\r\n type: \"POST\",\r\n processData: true,\r\n dataType: \"json\",\r\n data: JSON.stringify(companyDetails),\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class ActionsRepository implements IActionsRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getByMarket = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.leagueActionsCollectionByMarketUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(LeagueActionsCollection.fromJson(data.Content));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public markNameComplete = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.nameLeagueActionsUrl}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public markRankingLogoComplete = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.rankingLogoLeagueActionsUrl}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public markWelcomeEmailComplete = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.welcomeEmailLeagueActionsUrl}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class AdministratorRepository implements IAdministratorRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n private readonly platformApiSettings: Platform.ApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings) {\r\n this.apiSettings = apiSettings;\r\n this.platformApiSettings = platformApiSettings;\r\n }\r\n\r\n public deleteAdmin = (userId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.deleteAdminUrl}/${userId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public deleteSubLeagueAdmin = (userId: number, subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.deleteSubLeagueAdminUrl}/${userId}/${subLeagueId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n\r\n public sendReminder = (invitationId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.sendReminderUrl}/${invitationId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public sendMessage = (userId: number, subLeagueId, subject: string, message: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.platformApiSettings.sendPrivateMessageUrl}/${subLeagueId}/${userId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n data: JSON.stringify({ subject, message })\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public inviteSubLeague = (subLeagueId: number, inviteModel: InviteModel, invitationId?: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.inviteAdminUrl}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n data: JSON.stringify(_.extend(inviteModel, { invitationId }))\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public deleteInvitation = (inviteLinkId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.deleteInvitationUrl}/${inviteLinkId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public get = (): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.administratorsUrl}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const administrators = Administrators.fromJson(data.Content);\r\n deferred.resolve(administrators);\r\n }).fail((data: any) => {\r\n if (data.status === 402) {\r\n location.href = \"business/paymenterror\";\r\n }\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getBySubLeague = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.subLeagueAdministratorsUrl}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const administrators = Administrators.fromJson(data.Content);\r\n deferred.resolve(administrators);\r\n }).fail((data: any) => {\r\n if (data.status === 402) {\r\n location.href = \"business/paymenterror\";\r\n }\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public invite = (inviteModel: InviteModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.inviteAdminUrl}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n data: JSON.stringify(inviteModel)\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public validateInvite = (code: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: `${this.apiSettings.validateInviteUrl}/${code}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public acceptInvite = (code: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: `${this.apiSettings.acceptInviteUrl}/${code}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public declineInvite = (code: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: `${this.apiSettings.declineInviteUrl}/${code}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}\r\n","/// \r\n\r\nmodule Business {\r\n export class AdvertisementRepository implements IAdvertisementRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings\r\n }\r\n\r\n get(marketId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.advertisementUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(Advertisements.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createOrUpdate = (marketId: number, advertisement: Advertisement): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.advertisementUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify(advertisement),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public uploadHeaderImage = (marketId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.advertisementImageUrl}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data: formData,\r\n contentType: false,\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public delete = (marketId: number, advertisementId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.advertisementUrl}/${marketId}/${advertisementId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class ArticleRepository implements IArticleRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n get(marketId: number, subLeagueId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.articlesUrl}/${marketId}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(Articles.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createOrUpdate = (marketId: number, subLeagueId: number, article: Article): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.articlesUrl}/${marketId}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify(article),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveHeaderImage = (marketId: number, subLeagueId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.articleHeaderImageUrl}/${marketId}/${subLeagueId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data: formData,\r\n contentType: false,\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public delete(articleId: number, subLeagueId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.articlesUrl}/${articleId}/${subLeagueId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class BrochureRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public requestBrochure = (marketId: number, emailAddress: string, regionId: number, culture: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n const requestSettings = {\r\n url: `${this.apiSettings.brochureUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Content-Type': \"application/json\"\r\n },\r\n contentType: \"application/json\",\r\n data: JSON.stringify(new SendBrochureModel(emailAddress, regionId, culture)),\r\n };\r\n\r\n (Authentication.isLoggedIn()\r\n ? (API.ajax(requestSettings))\r\n : ($.ajax(requestSettings))).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class ClientRepository implements IClientRepository {\r\n\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getClientMarketHeader = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.clientMarketDataUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(ClientMarketHeader.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getClientMarketSettings = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.clientMarketSettingsUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(ClientMarketSettings.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public saveClientAdministrator = (clientId: number, firstName: string, lastName: string, email: string, countryCode: string, phoneNumber: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveClientAdministratorUrl}/${clientId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber: countryCode + \" \" + phoneNumber\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public deleteClientAdministrator = (clientId: number, email: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.deleteClientAdministratorUrl}/${clientId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveLeagueName = (marketId: number, subLeagueName: string, subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveLeagueNameUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({ SubLeagueName: subLeagueName, PoolId: subLeagueId }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveLogoTakeOverLogo = (marketId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveLogoTakeOverUrl}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data: formData,\r\n contentType: false,\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveLogoTakeOverColor = (marketId: number, color: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.saveBackgroundColorUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n color\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveLogoTakeOverHeaderIcon = (marketId: number, headerIconId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveHeaderIconColorUrl}/${marketId}/${headerIconId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveLandingPageLogo = (marketId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveLandingPageLogoUrl}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data: formData,\r\n contentType: false,\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveOptInRequired = (marketId: number, optInRequired: boolean): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveOptinRequiredUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n optInRequired\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n };\r\n\r\n public saveRankingLogo = (marketId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveRankingLogoUrl}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: formData,\r\n contentType: false\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveSalesPackageImage = (marketId: number, salesPackageType: SalesPackageType, formData: FormData): JQueryPromise => {\r\n let path = \"\";\r\n switch (salesPackageType) {\r\n case SalesPackageType.BrandingPackage:\r\n path = \"/branding\";\r\n break;\r\n case SalesPackageType.PromotionalPackage:\r\n path = \"/promotional\";\r\n }\r\n\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveSalesPackageImageUrl}${path}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: formData,\r\n contentType: false\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public confirmPromotional = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.promotionalPackageUrl}/send/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n contentType: false\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveHasOpenedAdmins = (marketId: number): JQueryPromise => {\r\n\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveHasOpenedAdminsUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveWelcomeEmail = (emailTitle: string, emailBody: string, marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.saveWelcomeEmailUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n Title: emailTitle,\r\n Body: emailBody\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public sendExampleWelcomeEmail = (emailTitle: string, emailBody: string, marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.sendExampleEmailUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n Title: emailTitle,\r\n Body: emailBody\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public hasSeenEmail = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.hasSeenEmailUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public hasChangedSubLeagueSetting = (marketId: number, multiSubLeaguesModel: MultiSubLeaguesModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.hasChangedSubLeagueSettingUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n data: JSON.stringify({\r\n SubLeagueIsAllowedToChangeRankingLogo: multiSubLeaguesModel.subLeagueIsAllowedToChangeRankingLogo,\r\n SubLeagueIsAllowedToChangeEmail: multiSubLeaguesModel.subLeagueIsAllowedToChangeEmail,\r\n SubLeagueIsAllowedToChangeName: multiSubLeaguesModel.subLeagueIsAllowedToChangeName,\r\n }),\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public delete = (): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.companyDetailsUrl}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public requestPreviewPrint = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.brandingPackageUrl}/previewprint/${marketId}`,\r\n type: \"GET\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n }\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public confirmPreviewPrint = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.brandingPackageUrl}/confirmprint/${marketId}`,\r\n type: \"GET\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class CouponRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public validateCoupon(code: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.couponUrl}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture\r\n },\r\n data: JSON.stringify({ code })\r\n }).done((data: any) => {\r\n var result = Coupon.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class DealsRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getDealsForMarket(marketId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.dealsForMarketUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: MarketDealResult = Business.MarketDealResult.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getDiscountForMarket(marketId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.discountForMarketUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: EarlyBirdDiscount = Business.EarlyBirdDiscount.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getCalculatedDeal(dealId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.calculateDealUrl}/${dealId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: CalculatedDeal = Business.CalculatedDeal.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getCombiDealsForMarket(marketId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.combiDealsUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result = CombiDeals.fromJson(data.Content.CombiDeals);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public calculateOrder(requestBody: string): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.calculateOrderUrl}`,\r\n type: \"POST\",\r\n processData: false,\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: requestBody,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: CalculatedOrder = CalculatedOrder.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public calculateUpgrade = (marketId: number, participantUpgradeDealId: number, packageUpgradeDealId: number, payByInvoice: boolean, countryId: number, vatNumber: string, couponCode: string, salesPackageIdsWithAmounts: Record): JQueryPromise => { \r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this._apiSettings.calculateUpgradeUrl}`,\r\n type: \"POST\",\r\n processData: false,\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify({\r\n marketId,\r\n participantUpgradeDealId,\r\n packageUpgradeDealId,\r\n payByInvoice,\r\n countryId,\r\n vatNumber,\r\n couponCode,\r\n salesPackageIdsWithAmounts\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: CalculatedOrder = CalculatedOrder.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getPackageUpgrades = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.upgradeDealsUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result = Deals.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n export class FaqRepository implements IFaqRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getCategories = (gameId: number, faqType: FaqType): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this._apiSettings.faqCategoryUrl}/${gameId}/${faqType}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(FaqCategories.fromJson(data.Content));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getFaqForGame(gameId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.faqUrl}/${gameId}/${FaqType.Order}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: FaqQuestions = FaqQuestions.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class FooterImageRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getFooterImageUrlsForRegion(regionId: number): JQueryPromise> {\r\n const deferred = $.Deferred>();\r\n $.ajax({\r\n url: `${this._apiSettings.footerCarouselImagesUrl}/${regionId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: Array = data.Content.FooterCarouselImageUrls;\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class InterstitialRepository implements IInterstitialRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings\r\n }\r\n\r\n get(marketId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.interstitialUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(Interstitials.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createOrUpdate = (marketId: number, interstitial: Interstitial): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.interstitialUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify(interstitial),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public uploadHeaderImage = (marketId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.interstitialImageUrl}/${marketId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n data: formData,\r\n contentType: false,\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public delete = (marketId: number, interstitialId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.interstitialUrl}/${marketId}/${interstitialId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class InviteRepository implements IInviteRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getInviteMailContent = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.inviteMailContentUrl}/${subLeagueId}`,\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n type: \"GET\",\r\n dataType: \"json\",\r\n }).done(data => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess() && apiResult.content != null) {\r\n const inviteMail = InviteContent.fromJson(apiResult.content);\r\n deferred.resolve(inviteMail);\r\n }\r\n\r\n deferred.resolve(new InviteContent(null, null, null, false));\r\n }).fail(err => {\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class OptInRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public request = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.requestOptInUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class PackageOptionsRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n private readonly packageOptionsCache = new Dictionary();\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getPackageOptions = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n const cacheKey = `getPackageOptions:${marketId}`;\r\n const result = this.packageOptionsCache.get(cacheKey);\r\n\r\n if (result)\r\n return deferred.resolve(result);\r\n\r\n $.ajax({\r\n url: `${this._apiSettings.packageOptionUrl}/${marketId}/${uiCulture}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: PackageOptionsResult = Business.PackageOptionsResult.fromJson(data.Content);\r\n this.packageOptionsCache.put(cacheKey, result);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getPackageOptionLayoverContent = (packageOptionId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.packageOptionLayoverUrl}/${packageOptionId}/${uiCulture}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: PackageOptionDescription = Business.PackageOptionDescription.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule Business {\r\n export class ParticipantRepository implements IParticipantRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public get = (subLeagueId: number, pageIndex: number, participantsPerPage: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.participantsUrl}/${subLeagueId}/${pageIndex}/${participantsPerPage}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(Participants.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n\r\n public sendMessageToSubLeague = (subLeagueId: number, subject: string, message: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.sendSubLeagueMessageUrl}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n subject,\r\n message\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class PaymentRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public savePayment = (countryId: number, checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, clientData: ClientInformationModel, checkoutSessionReference: string) => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: this._apiSettings.paymentUrl,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, clientData, countryId, { checkoutSessionReference })),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public createSession = (countryId: number, checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, clientData: ClientInformationModel) => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this._apiSettings.createSessionUrl}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, clientData, countryId)),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getPaymentMethods = (regionId: number, countryId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: `${this._apiSettings.paymentMethodsUrl}/${regionId}/${countryId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n },\r\n })\r\n .done((data: any) => deferred.resolve(PaymentMethods.fromJson(data.Content)))\r\n .fail((data: any) => deferred.reject(data));\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","module Business {\r\n export class PurchaseRepository implements IPurchaseRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n\r\n public get = (): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.purchasesUrl}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const purchases = Purchases.fromJson(data.Content);\r\n deferred.resolve(purchases);\r\n }).fail((data: any) => {\r\n if (data.status === 402) {\r\n location.href = \"business/paymenterror\";\r\n }\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n \r\n public getInvoice = (orderId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.purchaseInvoiceUrl}/${orderId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n var invoice = Invoice.fromJson(data.Content);\r\n deferred.resolve(invoice);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getDetails = (orderId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.purchaseDetailUrl}/${orderId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => { \r\n deferred.resolve(createPurchaseDetail(data.Content));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}\r\n","/// \r\n\r\nmodule Business {\r\n export class RankingRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public request = (subleagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.apiSettings.rankingRequestUrl}/${subleagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n deferred.resolve(apiResult);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class SalesPackageRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public getSalesPackagesByMarketAndRegion(marketId: number, regionId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.getMarketSalesPackagesByRegionUrl}/${marketId}/${regionId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n var result = MarketSalesPackagesResult.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getSalesPackagesByMarketAndCountry(marketId: number, countryId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.getMarketSalesPackagesByCountryUrl}/${marketId}/${countryId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n var result = MarketSalesPackagesResult.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class SalesUserRepository implements ISalesUserRepository {\r\n private readonly apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public get = (marketId?: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url: `${this.apiSettings.clientMarketDataUrl}${marketId ? \"/\" + marketId : \"\"}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(SalesUser.fromJson(data.Content));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class SteamReferralRepository {\r\n private apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public create = (organization: string, address: string, fullName: string, phoneNumber: string, emailAddress: string, marketId: number, packageType: PackageType, participantCount: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n const requestSettings = {\r\n url: `${this.apiSettings.steamReferralUrl}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n 'Content-Type': \"application/json\"\r\n },\r\n contentType: \"application/json\",\r\n data: JSON.stringify({ organization, address, fullName, phoneNumber, emailAddress, marketId, package: PackageType[packageType], participantCount }),\r\n };\r\n\r\n $.ajax(requestSettings).done((data: any) => {\r\n deferred.resolve(data.Content);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule Business {\r\n export class SubLeagueRepository implements ISubLeagueRepository {\r\n private readonly salesApiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings) {\r\n this.salesApiSettings = salesApiSettings;\r\n }\r\n\r\n public getInviteLink = (leagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeagueInviteUrl}/${leagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public get = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public getMine = (marketId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}/mine`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public createSubLeague = (marketId: number, subLeagueName: string, adminOneIsUser: boolean, adminOne: AdministratorModel, adminTwo: AdministratorModel = undefined): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n contentType: \"application/json\",\r\n data: JSON.stringify({\r\n subLeagueName,\r\n adminOneIsUser,\r\n adminOneFirstName: adminOne.firstName,\r\n adminOneLastName: adminOne.lastName,\r\n adminOneEmail: adminOne.emailAddress,\r\n adminTwoFirstName: adminTwo?.firstName,\r\n adminTwoLastName: adminTwo?.lastName,\r\n adminTwoEmail: adminTwo?.emailAddress\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public deleteSubLeague = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeaguesUrl}/${subLeagueId}`,\r\n type: \"DELETE\",\r\n dataType: \"json\",\r\n processData: false,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public updateSubLeagueName = (subLeagueId: number, subLeagueName: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.updateSubLeagueNameUrl}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n subLeagueName\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveRankingLogo = (subleagueId: number, formData: FormData): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.saveSubLeagueRankingLogoUrl}/${subleagueId}`,\r\n type: \"POST\",\r\n processData: false,\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: formData,\r\n contentType: false\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public getWelcomeEmail = (subLeagueId: number): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeagueWelcomeEmailUrl}/${subLeagueId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n public saveWelcomeEmail = (subLeagueId: number, title: string, body: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.subLeagueWelcomeEmailUrl}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n title,\r\n body\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public sendExampleWelcomeEmail = (subLeagueId: number, title: string, body: string): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n API.ajax({\r\n url: `${this.salesApiSettings.sendExampleSubLeagueEmailUrl}/${subLeagueId}`,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n processData: false,\r\n contentType: \"application/json\",\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept-Language': uiCulture,\r\n },\r\n data: JSON.stringify({\r\n title,\r\n body\r\n }),\r\n }).done((data: any) => {\r\n deferred.resolve(ApiResult.fromJson(data));\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n\r\n\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class TabsRepository {\r\n private _apiSettings: ApiSettings.SalesApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\r\n this._apiSettings = apiSettings;\r\n }\r\n\r\n public GetGamesAndMarkets(regionId: number): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `${this._apiSettings.gameTabUrl}/${regionId}`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const result: GameTabs = GameTabs.fromJson(data.Content);\r\n deferred.resolve(result);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n}","/// \r\n\r\nclass TerritoryRepository {\r\n private readonly apiSettings: Platform.ApiSettings;\r\n private regions: IRegion[];\r\n\r\n public constructor(apiSettings: Platform.ApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getRegions = (): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n\r\n if (this.regions) {\r\n deferred.resolve(this.regions);\r\n }\r\n else {\r\n $.ajax({\r\n url: `${this.apiSettings.baseUrl}/territory/v1.0/region/all`,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture\r\n }\r\n }).done((data: any) => {\r\n const regions = _.map(data.Content, region => ({\r\n regionId: region.RegionId,\r\n description: region.Description,\r\n culture: region.Culture\r\n }));\r\n this.regions = regions;\r\n deferred.resolve(regions);\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n }\r\n return deferred.promise();\r\n }\r\n}\r\n","module Business {\r\n export class UserPredictionStatusRepository implements IUserPredictionStatusRepository {\r\n private readonly version = \"v1.0\";\r\n private readonly controller = \"userpredictionstatus/users\";\r\n\r\n private readonly apiSettings: ApiSettings.UserPredictionStatusApiSettings;\r\n\r\n constructor(apiSettings: ApiSettings.UserPredictionStatusApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public get = (regionId: number, marketId: number, userIds: number[]): JQueryPromise => {\r\n const regionPath = this.apiSettings.baseUrl.indexOf('local') >= 0 ? `` : `${regionId}/`;\r\n const url = `${this.apiSettings.baseUrl}/${regionPath}${this.version}/${this.controller}/${marketId}?${userIds.map(userId => `UserIds[]=${userId}`).join('&')}`;\r\n\r\n const deferred = $.Deferred();\r\n\r\n API.ajax({\r\n url,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n headers: {\r\n 'Accept-Language': uiCulture,\r\n },\r\n }).done((data: any) => {\r\n const apiResult = ApiResult.fromJson(data);\r\n if (apiResult.isSuccess()) {\r\n deferred.resolve(UserPredictionStatuses.fromJson(apiResult.content));\r\n }\r\n }).fail((data: any) => {\r\n deferred.reject(data);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n }\r\n}","module Business {\r\n export class ClientActions {\r\n public clientId: number;\r\n public marketActionsCollection: MarketActionsCollection;\r\n\r\n constructor(clientId: number, marketActionsCollection: MarketActionsCollection) {\r\n this.clientId = clientId;\r\n this.marketActionsCollection = marketActionsCollection;\r\n }\r\n\r\n public static fromJson = (data: any): ClientActions => {\r\n return new ClientActions(data.ClientId, MarketActionsCollection.fromJson(data.MarketActionsCollection));\r\n }\r\n\r\n public getActionsForMarket = (marketId: number) => {\r\n return _.find(this.marketActionsCollection.list,\r\n function (marketActions) {\r\n return marketActions.marketId === marketId;\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class LeagueActions {\r\n public leagueId: number;\r\n public marketId: number;\r\n public nameCompleted: boolean;\r\n public rankingLogoCompleted: boolean;\r\n public welcomeEmailCompleted: boolean;\r\n\r\n constructor(leagueId: number, marketId: number, nameCompleted: boolean, rankingLogoCompleted: boolean, welcomeEmailCompleted: boolean) {\r\n this.leagueId = leagueId;\r\n this.marketId = marketId;\r\n this.nameCompleted = nameCompleted;\r\n this.rankingLogoCompleted = rankingLogoCompleted;\r\n this.welcomeEmailCompleted = welcomeEmailCompleted;\r\n }\r\n\r\n public isComplete = (): boolean => {\r\n return this.actionCount() <= 0;\r\n }\r\n\r\n public actionCount = (): number => {\r\n return (this.nameCompleted ? 0 : 1) + (this.rankingLogoCompleted ? 0 : 1) + (this.welcomeEmailCompleted ? 0 : 1);\r\n }\r\n\r\n public static fromJson = (data: any): LeagueActions => {\r\n return new LeagueActions(data.LeagueId, data.MarketId, data.NameCompleted, data.RankingLogoCompleted, data.WelcomeEmailCompleted);\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n export class LeagueActionsCollection extends BaseList {\r\n\r\n public getByLeagueId = (subLeagueId: number): LeagueActions => {\r\n return _.find(this.list, l => l.leagueId == subLeagueId);\r\n }\r\n\r\n public getByMarketId = (marketId: number): LeagueActionsCollection => {\r\n return new LeagueActionsCollection(_.filter(this.list, l => l.marketId == marketId));\r\n }\r\n\r\n public totalActions = (): number => {\r\n return _.reduce(this.list, (memo: number, actions: LeagueActions) => {\r\n return memo + actions.actionCount();\r\n }, 0);\r\n }\r\n\r\n public isComplete = (): boolean => {\r\n return this.totalActions() <= 0;\r\n }\r\n\r\n public update = (leagueActionsCollection: LeagueActionsCollection): void => {\r\n const leagueIds = leagueActionsCollection.getLeagueIds();\r\n this.list = _.reject(this.list, l => {\r\n return _.contains(leagueIds, l.leagueId);\r\n });\r\n\r\n leagueActionsCollection.each(l => {\r\n this.add(l);\r\n });\r\n }\r\n\r\n public getLeagueIds = (): number[] => {\r\n return this.map(l => l.leagueId);\r\n }\r\n\r\n public static fromJson = (data: any): LeagueActionsCollection => {\r\n const list = new Array();\r\n _.each(data, (leagueActions: any) => {\r\n list.push(LeagueActions.fromJson(leagueActions));\r\n });\r\n return new LeagueActionsCollection(list);\r\n }\r\n\r\n\r\n }\r\n} ","module Business {\r\n export class MarketActions {\r\n public marketId: number;\r\n public clientActions: number;\r\n\r\n constructor(marketId: number, clientActions: number) {\r\n this.marketId = marketId;\r\n this.clientActions = clientActions;\r\n }\r\n\r\n public static fromJson = (data: any): MarketActions => {\r\n return new MarketActions(data.MarketId, data.ClientActions);\r\n }\r\n }\r\n}","module Business {\r\n export class MarketActionsCollection extends BaseList {\r\n\r\n constructor(marketActions: Array){\r\n super(marketActions);\r\n }\r\n\r\n public static fromJson(data: any) {\r\n const list = new Array();\r\n _.each(data.MarketActions, (marketActions: any) => {\r\n list.push(MarketActions.fromJson(marketActions));\r\n });\r\n return new this(list);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class Administrator {\r\n public id: number;\r\n public clientId: number;\r\n public emailAddress: string;\r\n public firstName: string;\r\n public managementInvitationStatus: ManagementInvitationStatus;\r\n public isPrimary: boolean;\r\n public lastName: string;\r\n public phoneNumber: string;\r\n public phoneNumberCountryId: number;\r\n public userId: number | null;\r\n public inviteDate: string;\r\n\r\n constructor(id: number, clientId: number, emailAddress: string, firstName: string, managementInvitationStatus: ManagementInvitationStatus,\r\n isPrimary: boolean, lastName: string, phoneNumber: string,\r\n phoneNumberCountryId: number, userId: number | null, inviteDate: string) {\r\n this.id = id;\r\n this.clientId = clientId;\r\n this.emailAddress = emailAddress;\r\n this.firstName = firstName;\r\n this.managementInvitationStatus = managementInvitationStatus;\r\n this.isPrimary = isPrimary;\r\n this.lastName = lastName;\r\n this.phoneNumber = phoneNumber;\r\n this.phoneNumberCountryId = phoneNumberCountryId;\r\n this.userId = userId;\r\n this.inviteDate = inviteDate;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.Id, data.ClientId, data.EmailAddress, data.FirstName, data.ManagementInvitationStatus, data.IsPrimary,\r\n data.LastName, data.PhoneNumber, data.PhoneNumberCountryId, data.UserId, data.InviteDate);\r\n }\r\n\r\n public getFullName = () => {\r\n return `${this.firstName} ${this.lastName}`;\r\n }\r\n\r\n public isAcceptedAdmin = () => {\r\n return this.isPrimary || (this.managementInvitationStatus === ManagementInvitationStatus.Accepted && this.userId != null);\r\n }\r\n\r\n public isPending = (): boolean => {\r\n return this.managementInvitationStatus === ManagementInvitationStatus.Pending;\r\n }\r\n\r\n public isAccepted = (): boolean => {\r\n return this.managementInvitationStatus === ManagementInvitationStatus.Accepted;\r\n }\r\n\r\n public isDeclined = (): boolean => {\r\n return this.managementInvitationStatus === ManagementInvitationStatus.Declined;\r\n }\r\n\r\n public getStatusLabel = (): string => {\r\n return TranslationData.get(`Business.ManagementInvitationStatus.${this.managementInvitationStatus}`);\r\n }\r\n\r\n public invitationStatusText = (): string => {\r\n return ManagementInvitationStatus[this.managementInvitationStatus].toLowerCase();\r\n }\r\n\r\n public formattedInviteDate = (): string => {\r\n const momentLocale = moment.utc(this.inviteDate).local().locale(uiCulture);\r\n return `${momentLocale.format(\"DD MMMM YYYY\")} ${TranslationData.get(\"Common.Time.At\")} ${momentLocale.format(\"HH:mm\")} ${TranslationData.get(\"Common.Hour\")}`;\r\n }\r\n\r\n public update = (firstName: string, lastName: string, email: string): void => {\r\n this.firstName = firstName;\r\n this.lastName = lastName;\r\n if (this.emailAddress !== email) {\r\n this.inviteDate = moment.utc().local().toISOString();\r\n }\r\n this.emailAddress = email;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class Administrators extends BaseList {\r\n\r\n constructor(administrators: Array) {\r\n super(administrators);\r\n }\r\n\r\n public static fromJson(data: any) {\r\n const list = new Array();\r\n _.each(data, (administrator: any) => {\r\n list.push(Administrator.fromJson(administrator));\r\n });\r\n\r\n return new this(list).sortByPrimaryAdmin();\r\n }\r\n\r\n public getByUserId = (userId: number) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.userId === userId;\r\n });\r\n }\r\n\r\n public getById = (id: number) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.id === id;\r\n });\r\n }\r\n\r\n public getByEmailAddress = (emailAddress: string) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.emailAddress === emailAddress;\r\n });\r\n }\r\n\r\n public getByInviteLinkId = (inviteLinkId: number) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.id === inviteLinkId;\r\n });\r\n }\r\n\r\n public hasForEmailAddress = (emailAddress: string) => {\r\n return _.some(this.list, administrator => {\r\n return administrator.emailAddress === emailAddress;\r\n });\r\n }\r\n\r\n public hasMultipleAdmins = () => {\r\n return _.filter(this.list, (administrator: Administrator) => {\r\n return administrator.isAcceptedAdmin();\r\n }).length > 1;\r\n }\r\n\r\n public sortByPrimaryAdmin = () => {\r\n return new Administrators(_.sortBy(this.list, (admin: Administrator) => {\r\n return admin.isPrimary;\r\n }).reverse());\r\n }\r\n\r\n public getStatusList = (): Array => {\r\n const statusList = _.map(this.list, a => a.managementInvitationStatus);\r\n while (statusList.length < 2) {\r\n statusList.push(undefined);\r\n }\r\n return statusList;\r\n }\r\n }\r\n} ","module Business {\r\n export class InviteModel {\r\n public EmailAddress: string;\r\n public FirstName: string;\r\n public LastName: string;\r\n public PhoneNumber: string;\r\n public PhoneNumberCountryId: number;\r\n\r\n constructor(emailAddress: string, firstName: string, lastName: string,\r\n phoneNumber: string, phoneNumberCountryId: number) {\r\n this.EmailAddress = emailAddress;\r\n this.FirstName = firstName;\r\n this.LastName = lastName;\r\n this.PhoneNumber = phoneNumber;\r\n this.PhoneNumberCountryId = phoneNumberCountryId;\r\n }\r\n }\r\n} ","module Business {\r\n export class Advertisement {\r\n public id: number;\r\n public imageName: string;\r\n public imagePath: string;\r\n public imageLink: string;\r\n public isActive: boolean;\r\n\r\n constructor(\r\n id: number,\r\n imageName: string,\r\n imagePath: string,\r\n imageLink: string,\r\n isActive: boolean) {\r\n this.id = id\r\n this.imageName = imageName\r\n this.imagePath = imagePath\r\n this.imageLink = imageLink\r\n this.isActive = isActive\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new Advertisement(data.Id, data.ImageName, data.ImagePath, data.ImageLink, data.IsActive)\r\n }\r\n }\r\n}","module Business {\r\n export class Advertisements extends BaseList {\r\n constructor(list: Array){\r\n super(list);\r\n }\r\n\r\n public static fromJson(data: any): Advertisements {\r\n const list = new Array();\r\n _.each(data, (advertisement: any) => {\r\n list.push(Advertisement.fromJson(advertisement));\r\n })\r\n return new this(list)\r\n }\r\n\r\n public getById = (advertisementId: number): Advertisement | undefined => {\r\n return _.find(this.list, a => a.id === advertisementId);\r\n }\r\n\r\n public getActive = (): Advertisement | undefined => {\r\n return _.find(this.list, a => a.isActive === true);\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class Article {\r\n public articleId: number;\r\n public authorUserId: number;\r\n public authorFullname: string;\r\n public poolId: number;\r\n public articleImageUrl: string;\r\n public title: string;\r\n public body: string;\r\n public hasCallToActionButton: boolean;\r\n public callToActionButtonText: string;\r\n public callToActionButtonUrl: string;\r\n public isDraftArticle: boolean;\r\n public publicationDate: string;\r\n\r\n constructor(\r\n articleId: number,\r\n authorUserId: number,\r\n authorFullname: string,\r\n poolId: number,\r\n articleImageUrl: string,\r\n title: string,\r\n body: string,\r\n hasCallToActionButton: boolean,\r\n callToActionButtonText: string,\r\n callToActionButtonUrl: string,\r\n isDraftArticle: boolean,\r\n publicationDate: string) {\r\n this.articleId = articleId;\r\n this.authorUserId = authorUserId;\r\n this.authorFullname = authorFullname;\r\n this.poolId = poolId;\r\n this.articleImageUrl = articleImageUrl;\r\n this.title = title;\r\n this.body = body;\r\n this.hasCallToActionButton = hasCallToActionButton;\r\n this.callToActionButtonText = callToActionButtonText;\r\n this.callToActionButtonUrl = callToActionButtonUrl;\r\n this.isDraftArticle = isDraftArticle;\r\n this.publicationDate = publicationDate;\r\n }\r\n\r\n public formattedDate = (): string => {\r\n const momentPublicationDate = moment.utc(this.publicationDate).local().locale(uiCulture);\r\n return `${momentPublicationDate.format(\"DD-MM\")} ${TranslationData.get(\"Common.Time.At\")} ${momentPublicationDate.format(\"HH:mm\")} ${TranslationData.get(\"Common.Hour\")}`;\r\n }\r\n\r\n public setIsDraftArticle = (isDraft: boolean) => {\r\n this.isDraftArticle = isDraft;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new Article(\r\n data.ArticleId,\r\n data.AuthorUserId,\r\n data.AuthorFullname,\r\n data.PoolId,\r\n data.ArticleImageUrl,\r\n data.Title,\r\n data.Body,\r\n data.HasCallToActionButton,\r\n data.CallToActionButtonText,\r\n data.CallToActionButtonUrl,\r\n data.IsDraftArticle,\r\n data.PublicationDate);\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class Articles extends BaseList
{\r\n constructor(list: Array
) {\r\n super(_.sortBy(list, a => a.publicationDate).reverse());\r\n }\r\n\r\n public static fromJson(data: any): Articles {\r\n const list = new Array
();\r\n _.each(data, (article: any) => {\r\n list.push(Article.fromJson(article));\r\n });\r\n return new this(list);\r\n }\r\n\r\n public getById = (articleId: number): Article | undefined => {\r\n return _.find(this.list, a => a.articleId === articleId);\r\n }\r\n\r\n public hasConceptArticles = (): boolean => {\r\n return _.some(this.list, article => article.isDraftArticle);\r\n }\r\n\r\n public hasPublishedArticles = (): boolean => {\r\n return _.some(this.list, article => !article.isDraftArticle);\r\n }\r\n }\r\n}","module Business {\r\n export class SendBrochureModel {\r\n public emailAddress: string;\r\n public regionId: number;\r\n public culture: string;\r\n\r\n constructor(\r\n emailAddress: string,\r\n regionId: number,\r\n culture: string) {\r\n this.emailAddress = emailAddress;\r\n this.regionId = regionId;\r\n this.culture = culture;\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarket {\r\n public marketId: number;\r\n public marketName: string;\r\n public openActionCount: number;\r\n public hasPurchased: boolean;\r\n\r\n constructor(marketId: number, marketName: string, openActionCount: number, hasPurchased: boolean) {\r\n this.marketId = marketId;\r\n this.marketName = marketName;\r\n this.openActionCount = openActionCount;\r\n this.hasPurchased = hasPurchased;\r\n }\r\n\r\n public addOpenActionCount = (openActionCount: number): void => {\r\n this.openActionCount += openActionCount;\r\n }\r\n\r\n public static fromJson = (data: any): ClientMarket => {\r\n return new ClientMarket(data.MarketId, data.MarketName, data.OpenActionCount, data.HasPurchased);\r\n }\r\n\r\n public hasOpenActions = () => {\r\n return this.openActionCount > 0;\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarketHeader {\r\n public sponsoredParticipantCount: number;\r\n public paidByOther: number;\r\n\r\n public maxSponsoredParticipantCount: number;\r\n\r\n constructor(paidByClient: number, paidByOther: number, maxSponsoredParticipantCount: number) {\r\n this.sponsoredParticipantCount = paidByClient;\r\n this.paidByOther = paidByOther;\r\n this.maxSponsoredParticipantCount = maxSponsoredParticipantCount;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n if (data == null) {\r\n return null;\r\n }\r\n return new this(data.SponsoredCount, data.PaidByOtherCount, data.MaximumSponsored);\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarketSettings {\r\n public clientId: number;\r\n public headerBackgroundColor: string;\r\n public headerIconColorType: HeaderIconColorType;\r\n public headerLogo: string;\r\n public marketId: number;\r\n public landingPageLogo: string;\r\n public optInRequired: boolean;\r\n public hasOpenedAdmins: boolean;\r\n public leagueName: string;\r\n public rankingPageLogo: string;\r\n public subLeagueIsAllowedToChangeRankingLogo?: boolean;\r\n public subLeagueIsAllowedToChangeEmail?: boolean;\r\n public subLeagueIsAllowedToChangeName?: boolean;\r\n public welcomeEmailBody: string;\r\n public welcomeEmailTitle: string;\r\n public welcomeEmailImageUrl: string;\r\n public welcomeEmailHasSeenOrChanged: boolean;\r\n public promotionalPackageImageUrl: string;\r\n public brandingPackageImageUrl: string;\r\n public isPreviewPrintCooldownActive: boolean;\r\n public hasAcceptedPreviewPrint: boolean;\r\n public hasRequestedPreviewPrint: boolean;\r\n public hasNewPromotionalPackageLogoToSend: boolean;\r\n public gameId: number;\r\n public qrCodeUrl: string;\r\n\r\n constructor(\r\n clientId: number,\r\n headerBackgroundColor: string,\r\n headerIconColorType: HeaderIconColorType,\r\n headerLogo: string,\r\n marketId: number,\r\n landingPageLogo: string,\r\n optInRequired: boolean,\r\n hasOpenedAdmins: boolean,\r\n leagueName: string,\r\n rankingPageLogo: string,\r\n welcomeEmailBody: string,\r\n welcomeEmailTitle: string,\r\n welcomeEmailImageUrl: string,\r\n welcomeEmailHasSeenOrChanged: boolean,\r\n promotionalPackageImageUrl: string,\r\n brandingPackageImageUrl: string,\r\n isPreviewPrintCooldownActive: boolean,\r\n hasAcceptedPreviewPrint: boolean,\r\n hasRequestedPreviewPrint: boolean,\r\n hasNewPromotionalPackageLogoToSend: boolean,\r\n subLeagueIsAllowedToChangeRankingLogo?: boolean,\r\n subLeagueIsAllowedToChangeEmail?: boolean,\r\n subLeagueIsAllowedToChangeName?: boolean,\r\n gameId?: number,\r\n qrCodeUrl?: string\r\n ) {\r\n this.clientId = clientId;\r\n this.headerBackgroundColor = headerBackgroundColor;\r\n this.headerIconColorType = headerIconColorType;\r\n this.headerLogo = headerLogo;\r\n this.marketId = marketId;\r\n this.landingPageLogo = landingPageLogo;\r\n this.optInRequired = optInRequired;\r\n this.hasOpenedAdmins = hasOpenedAdmins;\r\n this.leagueName = leagueName;\r\n this.rankingPageLogo = rankingPageLogo;\r\n this.subLeagueIsAllowedToChangeRankingLogo = subLeagueIsAllowedToChangeRankingLogo;\r\n this.subLeagueIsAllowedToChangeEmail = subLeagueIsAllowedToChangeEmail;\r\n this.subLeagueIsAllowedToChangeName = subLeagueIsAllowedToChangeName;\r\n this.welcomeEmailBody = welcomeEmailBody;\r\n this.welcomeEmailTitle = welcomeEmailTitle;\r\n this.welcomeEmailImageUrl = welcomeEmailImageUrl;\r\n this.welcomeEmailHasSeenOrChanged = welcomeEmailHasSeenOrChanged;\r\n this.promotionalPackageImageUrl = promotionalPackageImageUrl;\r\n this.brandingPackageImageUrl = brandingPackageImageUrl;\r\n this.isPreviewPrintCooldownActive = isPreviewPrintCooldownActive;\r\n this.hasAcceptedPreviewPrint = hasAcceptedPreviewPrint;\r\n this.hasRequestedPreviewPrint = hasRequestedPreviewPrint;\r\n this.hasNewPromotionalPackageLogoToSend = hasNewPromotionalPackageLogoToSend;\r\n this.gameId = gameId;\r\n this.qrCodeUrl = qrCodeUrl;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(\r\n data.ClientId,\r\n data.HeaderBackgroundColor,\r\n data.HeaderIconColorType,\r\n data.HeaderLogo,\r\n data.MarketId,\r\n data.LandingPageLogo,\r\n data.OptInRequired,\r\n data.HasOpenedAdmins,\r\n data.LeagueName,\r\n data.RankingPageLogo,\r\n data.WelcomeEmailBody,\r\n data.WelcomeEmailTitle,\r\n data.WelcomeEmailImageUrl,\r\n data.WelcomeEmailHasSeenOrChanged,\r\n data.PromotionalPackageImageUrl,\r\n data.BrandingPackageImageUrl,\r\n data.IsPreviewPrintCooldownActive,\r\n data.HasAcceptedPreviewPrint,\r\n data.HasRequestedPreviewPrint,\r\n data.HasNewPromotionalPackageLogoToSend,\r\n data.SubLeagueIsAllowedToChangeRankingLogo,\r\n data.SubLeagueIsAllowedToChangeEmail,\r\n data.SubLeagueIsAllowedToChangeName,\r\n data.GameId,\r\n data.QrCodeUrl\r\n )\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class ClientMarkets extends BaseList {\r\n constructor(clientMarkets: Array) {\r\n super(clientMarkets);\r\n }\r\n\r\n public updateWithLeagueActions = (leagueActions: LeagueActionsCollection): void => {\r\n _.each(this.list, clientMarket => {\r\n const leagueActionsForMarket = leagueActions.getByMarketId(clientMarket.marketId);\r\n clientMarket.addOpenActionCount(leagueActionsForMarket.totalActions());\r\n });\r\n }\r\n\r\n public static fromJson = (data: any): ClientMarkets => {\r\n const list = new Array();\r\n _.each(data, (clientMarket: any) => {\r\n list.push(ClientMarket.fromJson(clientMarket));\r\n });\r\n return new ClientMarkets(list);\r\n }\r\n\r\n public getByMarketId = (marketId: number) => {\r\n return _.find(this.list, (market: ClientMarket) => {\r\n return market.marketId === marketId;\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class Coupon {\r\n public code: string;\r\n public isValid: boolean;\r\n\r\n constructor(code: string, isValid: boolean) {\r\n this.code = code;\r\n this.isValid = isValid;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new Coupon(data.Code, data.IsValid);\r\n }\r\n }\r\n}","module Business {\r\n export class CalculatedDeal {\r\n public subtotal: number;\r\n public earlyBirdDiscount: number;\r\n public total: number;\r\n\r\n constructor(subtotal: number, discount: number, total: number) {\r\n this.subtotal = subtotal;\r\n this.earlyBirdDiscount = discount;\r\n this.total = total;\r\n }\r\n\r\n public static fromJson(data:any): CalculatedDeal {\r\n return new this(data.Subtotal, data.EarlyBirdDiscount, data.Total);\r\n }\r\n }\r\n}","module Business {\r\n export class CalculatedOrder {\r\n public dealsSubTotal: number;\r\n\r\n public earlyBirdDiscount: number;\r\n public combiDealDiscount: number;\r\n\r\n public trophyPackageCost: number;\r\n public promotionalPackageCost: number;\r\n public brandingPackageCost: number;\r\n\r\n public totalExcVAT: number;\r\n public percentageVAT: number;\r\n public vat: number;\r\n public shippingCostsInEuro: number;\r\n\r\n public couponPercentageDiscount: number | undefined;\r\n public couponDiscount: number;\r\n public invoiceCost: number;\r\n\r\n public netTotal: number;\r\n public payByInvoiceCost: number;\r\n\r\n constructor(\r\n dealsSubTotal: number,\r\n earlyBirdDiscount: number,\r\n combiDealDiscount: number,\r\n trophyPackageCost: number,\r\n promotionalPackageCost: number,\r\n brandingPackageCost: number,\r\n totalExcVAT: number,\r\n percentageVAT: number,\r\n vat: number,\r\n couponPercentageDiscount: number | undefined,\r\n couponDiscount: number,\r\n invoiceCost: number,\r\n netTotal: number,\r\n payByInvoiceCost: number,\r\n shippingCostsInEuro: number\r\n ) {\r\n this.dealsSubTotal = dealsSubTotal;\r\n this.earlyBirdDiscount = earlyBirdDiscount;\r\n this.combiDealDiscount = combiDealDiscount;\r\n this.trophyPackageCost = trophyPackageCost;\r\n this.promotionalPackageCost = promotionalPackageCost;\r\n this.brandingPackageCost = brandingPackageCost,\r\n this.totalExcVAT = totalExcVAT;\r\n this.percentageVAT = percentageVAT;\r\n this.vat = vat;\r\n this.couponPercentageDiscount = couponPercentageDiscount;\r\n this.couponDiscount = couponDiscount;\r\n this.invoiceCost = invoiceCost;\r\n this.netTotal = netTotal;\r\n this.payByInvoiceCost = payByInvoiceCost;\r\n this.shippingCostsInEuro = shippingCostsInEuro;\r\n }\r\n\r\n public static fromJson(data: any): Business.CalculatedOrder {\r\n return new this(\r\n data.DealsSubTotal,\r\n data.EarlyBirdDiscount,\r\n data.CombiDealDiscount,\r\n data.TrophyPackageCost,\r\n data.PromotionalPackageCost,\r\n data.BrandingPackageCost,\r\n data.TotalExcVAT,\r\n data.PercentageVAT,\r\n data.VAT,\r\n data.CouponPercentageDiscount,\r\n data.CouponDiscount,\r\n data.InvoiceCost,\r\n data.NetTotal,\r\n data.PayByInvoiceCost,\r\n data.ShippingCostsInEuro\r\n );\r\n }\r\n }\r\n}","module Business {\r\n export class CombiDeal {\r\n public id: number;\r\n public marketId: number;\r\n public dealMarketId: number;\r\n public dealGameId: number;\r\n public discountPercentage: number;\r\n\r\n\r\n constructor(id: number,\r\n marketId: number,\r\n dealMarketId: number,\r\n dealGameId: number,\r\n discountPercentage: number) {\r\n\r\n this.id = id;\r\n this.marketId = marketId;\r\n this.dealMarketId = dealMarketId;\r\n this.dealGameId = dealGameId;\r\n this.discountPercentage = discountPercentage;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new CombiDeal(data.Id, data.MarketId, data.DealMarketId, data.DealGameId, data.DiscountPercentage);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class CombiDeals extends BaseList {\r\n\r\n public getByDealMarketId = (marketId: number) => {\r\n const result = this.list.filter(cd => cd.dealMarketId === marketId);\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public static fromJson(data: any): CombiDeals {\r\n const list = new Array();\r\n _.each(data, (combiDeal: any) => {\r\n list.push(CombiDeal.fromJson(combiDeal));\r\n });\r\n return new this(list);\r\n }\r\n }\r\n}","module Business {\r\n export class Deal {\r\n public id: number;\r\n public packageType: PackageType;\r\n public participantCount: number;\r\n public price: number;\r\n public upgradeFromPackageId: number;\r\n public imageUrl: string;\r\n public upgradeOnly: boolean;\r\n\r\n constructor(id: number, packageType: PackageType, participantCount: number, price: number, upgradeFromPackageId: number, imageUrl: string, upgradeOnly: boolean) {\r\n this.id = id;\r\n this.packageType = packageType;\r\n this.participantCount = participantCount;\r\n this.price = price;\r\n this.upgradeFromPackageId = upgradeFromPackageId;\r\n this.imageUrl = imageUrl;\r\n this.upgradeOnly = upgradeOnly;\r\n }\r\n\r\n public updateImageUrl = (imageUrl: string) => {\r\n this.imageUrl = imageUrl;\r\n }\r\n\r\n public static fromJson = (data: any): Deal => {\r\n return new Deal(data.Id, data.Package, data.ParticipantCount, data.Price, data.UpgradeFromPackageId, data.ImageUrl, data.UpgradeOnly);\r\n }\r\n }\r\n}","/// \r\nmodule Business {\r\n export class Deals extends BaseList {\r\n\r\n public getByDealId = (dealId: number) => {\r\n return _.find(this.list, u => u.id === dealId);\r\n }\r\n\r\n public getUpgrade = (currentSelectedPackage: PackageType, packageType: PackageType) => {\r\n return _.find(this.list, u => u.upgradeFromPackageId === currentSelectedPackage && packageType === u.packageType);\r\n }\r\n\r\n public static fromJson = (data: any): Deals => {\r\n const list = new Array();\r\n _.each(data, (deal: any) => {\r\n list.push(Deal.fromJson(deal));\r\n });\r\n return new Deals(list);\r\n }\r\n }\r\n}","module Business {\r\n export class EarlyBirdDiscount {\r\n public marketId: number;\r\n public discount: number;\r\n public expiryDate: any;\r\n\r\n constructor(marketId: number, discount: number, expiryDate: any) {\r\n this.marketId = marketId;\r\n this.discount = discount;\r\n this.expiryDate = expiryDate;\r\n }\r\n\r\n public isExpired = () => {\r\n return moment.utc().isAfter(moment.utc(this.expiryDate).add(23, 'hours').add(59, 'minutes').add(59, 'seconds'));\r\n }\r\n\r\n public static fromJson(data: any): Business.EarlyBirdDiscount {\r\n return data != null ? new this(data.MarketId, data.Discount, data.ExpiryDate) : null;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class MarketDealResult {\r\n public marketId: number;\r\n public eventName: string;\r\n public imageUrl: string;\r\n public marketDeals: Array;\r\n public gameName: string;\r\n\r\n constructor(marketId: number, eventName: string, imageUrl: string, marketDeals: Array, gameName: string) {\r\n this.marketId = marketId;\r\n this.eventName = eventName;\r\n this.imageUrl = imageUrl;\r\n this.marketDeals = marketDeals;\r\n this.gameName = gameName;\r\n }\r\n\r\n public getByTablePosition = (packageType: PackageType, participants: number) => {\r\n const result = this.marketDeals.filter(md => md.packageType === packageType && md.participantCount === participants);\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public getById = (id: number): Deal | null => {\r\n const result = this.marketDeals.filter(md => md.id === id);\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public getByParticipantCount = (participantCount: number): Deal | null => {\r\n const result = this.marketDeals.filter(md => md.participantCount === participantCount);\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public filterByType = (packageType: PackageType): void => {\r\n this.marketDeals = this.marketDeals.filter(md => md.packageType === packageType);\r\n }\r\n\r\n public filterRegularOnly = (): void => {\r\n this.marketDeals = this.marketDeals.filter(md => !md.upgradeOnly);\r\n }\r\n\r\n public getRecommendedDeal = (requestedParticipants: number, packageType: PackageType): Deal => {\r\n const packageDeals = _.chain(this.marketDeals).filter(md => md.packageType === packageType).sortBy(deal => deal.participantCount).value();\r\n\r\n let previous = 0;\r\n\r\n for (let i = 0; i < packageDeals.length; i++) {\r\n const current = packageDeals[i].participantCount;\r\n const next = (i !== packageDeals.length - 1) ? packageDeals[i + 1].participantCount : null;\r\n\r\n if ((requestedParticipants === current) || (previous === 0 && requestedParticipants <= current) || (next == null))\r\n return packageDeals[i];\r\n\r\n if (requestedParticipants >= current && requestedParticipants < next)\r\n return packageDeals[i + 1];\r\n\r\n previous = current;\r\n }\r\n return _.first(packageDeals);\r\n }\r\n\r\n public static fromJson(data: any): MarketDealResult {\r\n const marketDeals = new Array();\r\n _.each(data.MarketDeals, (marketDeal: any) => {\r\n marketDeals.push(Deal.fromJson(marketDeal));\r\n });\r\n return new this(data.MarketId, data.EventName, data.ImageUrl, marketDeals, data.GameName);\r\n }\r\n }\r\n}","/// \r\nmodule Business {\r\n export class MarketDealResults extends BaseList {\r\n\r\n public getByDealId = (dealId: number): MarketDealResult | null => {\r\n const result = this.list.filter(mdr => mdr.getById(dealId));\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public getByMarketId = (marketId: number): MarketDealResult | null => {\r\n const result = this.list.filter(mdr => mdr.marketId === marketId);\r\n if (result.length > 0)\r\n return result[0];\r\n\r\n return null;\r\n }\r\n\r\n public static fromJson(data: any): MarketDealResults {\r\n const list = new Array();\r\n _.each(data, (marketDealResult: any) => {\r\n list.push(MarketDealResult.fromJson(marketDealResult));\r\n });\r\n return new this(list);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class FaqCategories extends BaseList {\r\n\r\n\r\n constructor(faqCategories: Array) {\r\n super(faqCategories);\r\n }\r\n\r\n public static fromJson = (data: any): FaqCategories => {\r\n const categories = new Array();\r\n _.each(data, (model: any) => {\r\n categories.push(FaqCategory.fromJson(model));\r\n\r\n });\r\n\r\n return new FaqCategories(categories);\r\n }\r\n\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class FaqCategory {\r\n public id: number;\r\n public languageId: number;\r\n public faqType: FaqType;\r\n public order: number;\r\n public header: string;\r\n public faqQuestions: FaqQuestions;\r\n\r\n constructor(id: number, languageId: number, faqType: FaqType, order: number, header: string, faqQuestions: FaqQuestions) {\r\n this.id = id;\r\n this.languageId = languageId;\r\n this.faqType = faqType;\r\n this.order = order;\r\n this.header = header;\r\n this.faqQuestions = faqQuestions;\r\n }\r\n\r\n public static fromJson = (data: any): FaqCategory => {\r\n const faqQuestions = FaqQuestions.fromJson(data.Faqs);\r\n\r\n return new FaqCategory(\r\n data.Id,\r\n data.LanguageId,\r\n data.FaqType,\r\n data.Order,\r\n data.Header,\r\n faqQuestions);\r\n }\r\n }\r\n}","module Business {\r\n export class FaqQuestion {\r\n public question: string;\r\n public answer: string;\r\n\r\n constructor(question: string, answer: string) {\r\n this.question = question;\r\n this.answer = answer;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.Question, data.Answer);\r\n }\r\n\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class FaqQuestions extends BaseList {\r\n\r\n public static fromJson = (data: any): FaqQuestions => {\r\n const questions: Array = new Array();\r\n _.each(data, (model: any) => {\r\n questions.push(FaqQuestion.fromJson(model));\r\n })\r\n return new FaqQuestions(questions);\r\n }\r\n }\r\n}","module Business {\r\n export class Interstitial {\r\n public id: number;\r\n public imageName: string;\r\n public imagePath: string;\r\n public imageLink: string;\r\n public isActive: boolean;\r\n\r\n constructor(\r\n id: number,\r\n imageName: string,\r\n imagePath: string,\r\n imageLink: string,\r\n isActive: boolean) {\r\n this.id = id\r\n this.imageName = imageName\r\n this.imagePath = imagePath\r\n this.imageLink = imageLink\r\n this.isActive = isActive\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new Interstitial(data.Id, data.ImageName, data.ImagePath, data.ImageLink, data.IsActive)\r\n }\r\n }\r\n}","module Business {\r\n export class Interstitials extends BaseList {\r\n constructor(list: Array){\r\n super(list);\r\n }\r\n\r\n public static fromJson(data: any): Interstitials {\r\n const list = new Array();\r\n _.each(data, (interstitial: any) => {\r\n list.push(Interstitial.fromJson(interstitial));\r\n })\r\n return new this(list)\r\n }\r\n\r\n public getById = (interstitialId: number): Interstitial | undefined => {\r\n return _.find(this.list, a => a.id === interstitialId);\r\n }\r\n\r\n public getActive = (): Interstitial | undefined => {\r\n return _.find(this.list, a => a.isActive === true);\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class InviteContent {\r\n public mailContent: string;\r\n public uniqueInviteUrl: string;\r\n public universalInviteUrl: string;\r\n public hasSubLeagues: boolean;\r\n\r\n\r\n constructor(mailContent: string, uniqueInviteUrl: string, universalInviteUrl: string, hasSubLeagues: boolean) {\r\n this.mailContent = mailContent;\r\n this.uniqueInviteUrl = uniqueInviteUrl;\r\n this.universalInviteUrl = universalInviteUrl;\r\n this.hasSubLeagues = hasSubLeagues;\r\n }\r\n\r\n\r\n public getInviteLink = (isMainLeague: boolean): string => {\r\n return isMainLeague ? this.universalInviteUrl : this.uniqueInviteUrl;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new InviteContent(data.MailContent, data.UniqueInviteUrl, data.UniversalInviteUrl, data.HasSubLeagues);\r\n }\r\n\r\n public hasNull = (): boolean => {\r\n return this.mailContent == null || this.uniqueInviteUrl == null || this.universalInviteUrl == null;\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOption {\r\n public id :number;\r\n public packageType: PackageType;\r\n public isImportantDifference: boolean;\r\n public marketId: number;\r\n public label: string;\r\n\r\n constructor(id: any, packageType: any, importantDifference: any, marketId: any, label: any) {\r\n this.id = id;\r\n this.packageType = packageType;\r\n this.isImportantDifference = importantDifference;\r\n this.marketId = marketId;\r\n this.label = label;\r\n }\r\n\r\n public static fromJson(data: any): Business.PackageOption {\r\n return new this(data.Id, data.Package, data.IsImportantDifference, data.MarketId, data.Label);\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOptionDescription {\r\n public title: string;\r\n public description: string;\r\n public hasSlider: boolean;\r\n public imageUrls: Array;\r\n\r\n constructor(title: string, description: string, hasSlider: boolean, imageUrls: Array) {\r\n this.title = title;\r\n this.description = description;\r\n this.hasSlider = hasSlider;\r\n this.imageUrls = imageUrls;\r\n }\r\n\r\n public static fromJson(data: any): Business.PackageOptionDescription {\r\n var imageUrls: Array = new Array();\r\n\r\n _.each(data.ImageUrls, (s) => imageUrls.push(s.toString()));\r\n\r\n return new this(data.Header, data.Body, data.HasSlider, imageUrls);\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOptionsResult {\r\n\r\n public packageOptions: Array;\r\n\r\n constructor(packageOptions: Array) {\r\n this.packageOptions = packageOptions;\r\n }\r\n\r\n public static fromJson(data: any): Business.PackageOptionsResult {\r\n const options = new Array();\r\n _.each(data, (packageOption: any) => {\r\n options.push(PackageOption.fromJson(packageOption));\r\n })\r\n return new this(options);\r\n }\r\n }\r\n}","module Business {\r\n export class Participant {\r\n public firstName: string;\r\n public fullLastName: string;\r\n public userId: number;\r\n public regionId: number;\r\n public username: string;\r\n public userPredictionStatusList: Array;\r\n\r\n constructor(firstName: string, fullLastName: string, userId: number, regionId: number, username: string, userPredictionStatusList: Array) {\r\n this.firstName = firstName;\r\n this.fullLastName = fullLastName;\r\n this.userId = userId;\r\n this.regionId = regionId;\r\n this.username = username;\r\n this.userPredictionStatusList = userPredictionStatusList;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.FirstName, data.FullLastName, data.UserId, data.RegionId, data.UserName, data.UserPredictionStatusList);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class Participants extends BaseList {\r\n public currentPage: number;\r\n public pagesCount: number;\r\n public participantCount: number;\r\n public leagueId: number;\r\n public leagueName: string;\r\n public predictionStatusColumns: Array;\r\n public prefixId: string;\r\n public isCorporateMainLeague: boolean;\r\n public largeGroupOfParticipants: boolean;\r\n\r\n constructor(currentPage: number, pagesCount: number, participantCount: number, leagueId: number, leagueName: string, predictionStatusColumns: Array, participants: Array) {\r\n super(participants);\r\n this.currentPage = currentPage;\r\n this.pagesCount = pagesCount;\r\n this.participantCount = participantCount;\r\n this.leagueId = leagueId;\r\n this.leagueName = leagueName;\r\n this.prefixId = \"participant-search-table\";\r\n\r\n this.predictionStatusColumns = predictionStatusColumns;\r\n }\r\n\r\n public clone = (): Participants => new Participants(\r\n this.currentPage,\r\n this.pagesCount,\r\n this.participantCount,\r\n this.leagueId,\r\n this.leagueName,\r\n this.predictionStatusColumns,\r\n this.list);\r\n\r\n public static fromJson = (data: any): Participants => {\r\n const list = new Array();\r\n _.each(data.AcceptedParticipants, (participant: any) => {\r\n list.push(Participant.fromJson(participant));\r\n });\r\n return new Participants(data.CurrentPage, data.PagesCount, data.ParticipantCount, data.PoolId, data.PoolName, data.PredictionStatusColumns, list);\r\n }\r\n }\r\n}","module Business {\r\n export class Amount {\r\n public readonly currency: string;\r\n public readonly value: number;\r\n constructor(data: any) {\r\n this.currency = data.Currency;\r\n this.value = data.Value;\r\n }\r\n }\r\n}\r\n","module Business {\r\n export class Issuer {\r\n public id: string;\r\n public name: string;\r\n\r\n constructor(id: string, name: string) {\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public getLogoUrl = (cdnUrl: string, brandCode: string): string => {\r\n return `${cdnUrl}/images/orders/${brandCode}.${this.id}.png`;\r\n }\r\n\r\n public static fromJson(data: any): Issuer {\r\n return new Issuer(data.Id, data.Name);\r\n }\r\n }\r\n}","module Business {\r\n export class Issuers extends BaseList {\r\n public static fromJson(data: any): Issuers {\r\n const list = new Array();\r\n _.each(data, (issuer: any) => {\r\n list.push(Issuer.fromJson(issuer));\r\n });\r\n return new Issuers(list);\r\n }\r\n\r\n public sortByName = () => {\r\n const list = _.sortBy(this.list, (issuer: Issuer) => issuer.name);\r\n return new Issuers(list);\r\n }\r\n }\r\n}","module Business {\r\n export class PaymentMethod {\r\n constructor(\r\n public name: string,\r\n public brandCode: string,\r\n public logoUrl: string,\r\n public paymentGroupType: string,\r\n public issuers: BaseList) { }\r\n\r\n public static fromJson = (data: any): PaymentMethod => {\r\n const issuers = Issuers.fromJson(data.Issuers);\r\n\r\n return new PaymentMethod(\r\n data.Name,\r\n data.BrandCode,\r\n data.LogoUrl,\r\n data.BusinessPaymentGroupType,\r\n issuers.sortByName());\r\n };\r\n\r\n public hasIssuers = (): boolean => this.issuers && this.issuers.any();\r\n }\r\n}","module Business {\r\n export class PaymentMethodGroup {\r\n constructor(\r\n public brandCode: string,\r\n public businessPaymentGroupType: string,\r\n public paymentMethods: PaymentMethod[]) { }\r\n\r\n public static fromJson = (data: any[]): PaymentMethodGroup => {\r\n const brandCode = data[0]?.BrandCode ?? \"\";\r\n const businessPaymentGroupType = data[0]?.BusinessPaymentGroupType ?? \"\";\r\n const paymentMethods = data.map(i => PaymentMethod.fromJson(i));\r\n\r\n return new PaymentMethodGroup(brandCode, businessPaymentGroupType, paymentMethods);\r\n }\r\n\r\n public logoUrl = () => {\r\n if (this.paymentMethods.length === 1) {\r\n return this.paymentMethods[0].logoUrl;\r\n }\r\n else {\r\n return this.businessPaymentGroupType.toLocaleLowerCase() + \".png\";\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class PaymentMethods {\r\n constructor(\r\n public primaryPaymentMethods: PaymentMethodGroup[],\r\n public secondaryPaymentMethods: PaymentMethodGroup[]) { }\r\n\r\n public static fromJson = (data: any): PaymentMethods => {\r\n const ppm = data.PrimaryPaymentMethods?.map(i => PaymentMethodGroup.fromJson(i)) ?? [];\r\n const spm = data.SecondaryPaymentMethods?.map(i => PaymentMethodGroup.fromJson(i)) ?? [];\r\n\r\n return new PaymentMethods(ppm, spm);\r\n }\r\n\r\n public hasSecondaryPaymentMethods = (): boolean => this.secondaryPaymentMethods && this.secondaryPaymentMethods.length > 0;\r\n\r\n public singleSecondaryPaymentGroup = (): PaymentMethodGroup | undefined => {\r\n if (!this.hasSecondaryPaymentMethods()) return undefined;\r\n\r\n const allPaymentMethods = this.secondaryPaymentMethods.map(i => i.paymentMethods);\r\n const reducedAllPaymentMethods = [].concat(...allPaymentMethods) as PaymentMethod[];\r\n\r\n const firstPaymentGroup = this.secondaryPaymentMethods[0];\r\n\r\n return new PaymentMethodGroup(\r\n firstPaymentGroup.brandCode,\r\n firstPaymentGroup.businessPaymentGroupType,\r\n reducedAllPaymentMethods);\r\n };\r\n }\r\n}","module Business {\r\n export class PaymentSession {\r\n public readonly channel: string;\r\n public readonly amount: Amount;\r\n public readonly countryCode: string;\r\n public readonly expiresAt: string;\r\n public readonly id: string;\r\n public readonly merchantAccount: string;\r\n public readonly reference: string;\r\n public readonly returnUrl: string;\r\n public readonly sessionData: string;\r\n public readonly shopperReference: string;\r\n public readonly shopperStatement: string;\r\n\r\n constructor(data: any) {\r\n this.channel = data.Channel\r\n this.amount = new Amount(data.Amount)\r\n this.countryCode = data.CountryCode\r\n this.expiresAt = data.ExpiresAt\r\n this.id = data.Id\r\n this.merchantAccount = data.MerchantAccount\r\n this.reference = data.Reference\r\n this.returnUrl = data.ReturnUrl\r\n this.sessionData = data.SessionData\r\n this.shopperReference = data.ShopperReference\r\n this.shopperStatement = data.ShopperStatement\r\n }\r\n\r\n public getConfig(enviroment: string, clientKey: string, onPaymentCompleted: (resultCode: AdyenAuthResult) => void) {\r\n return {\r\n environment: enviroment,\r\n clientKey: clientKey,\r\n session: this,\r\n onPaymentCompleted: (result: any) => {\r\n const authResult = parseEnum(result.resultCode, AdyenAuthResult);\r\n onPaymentCompleted(authResult);\r\n },\r\n onError: (error, component) => {\r\n console.error(JSON.stringify({ error, component, payload: this.serialize() }));\r\n },\r\n locale: getCulture().toString(),\r\n };\r\n }\r\n\r\n private serialize() {\r\n return ({\r\n channel: this.channel,\r\n amount: new Amount(this.amount),\r\n countryCode: this.countryCode,\r\n expiresAt: this.expiresAt,\r\n id: this.id,\r\n merchantAccount: this.merchantAccount,\r\n reference: this.reference,\r\n returnUrl: this.returnUrl,\r\n shopperReference: this.shopperReference,\r\n shopperStatement: this.shopperStatement,\r\n })\r\n }\r\n }\r\n}","module Business {\r\n export class Discount {\r\n public label: string;\r\n public percentage: number;\r\n\r\n constructor(label: string, percentage: number) {\r\n this.label = label;\r\n this.percentage = percentage;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.Label, data.Percentage);\r\n }\r\n }\r\n}","module Business {\r\n export class Invoice {\r\n public invoiceFile: string;\r\n public invoiceNumber: string;\r\n\r\n constructor(invoiceFile: string, invoiceNumber: string) {\r\n this.invoiceFile = invoiceFile;\r\n this.invoiceNumber = invoiceNumber;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.InvoiceFile, data.InvoiceNumber);\r\n }\r\n\r\n public base64ToArrayBuffer() {\r\n var binaryString = window.atob(this.invoiceFile);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule Business {\r\n export class Purchase {\r\n public date: string;\r\n public discount: Discount | null;\r\n public eventName: string;\r\n public gameName: string;\r\n public imageUrl: string;\r\n public invoiceNumber: string;\r\n public orderId: number;\r\n public packageName: string;\r\n public participantAmount: number;\r\n public paymentAmount: number;\r\n public purchaseStatus: PurchaseStatus;\r\n\r\n constructor(date: string, discount: Discount | null, eventName: string, gameName: string, imageUrl: string, invoiceNumber: string,\r\n orderId: number, packageName: string, participantAmount: number, paymentAmount: number, purchaseStatus: PurchaseStatus) {\r\n this.date = date;\r\n this.discount = discount;\r\n this.eventName = eventName;\r\n this.gameName = gameName;\r\n this.imageUrl = imageUrl;\r\n this.invoiceNumber = invoiceNumber;\r\n this.orderId = orderId;\r\n this.packageName = packageName;\r\n this.participantAmount = participantAmount;\r\n this.paymentAmount = paymentAmount;\r\n this.purchaseStatus = purchaseStatus;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n const discount = data.Discount ? Discount.fromJson(data.Discount) : null;\r\n\r\n return new this(data.Date, discount, data.EventName, data.GameName, data.ImageUrl,\r\n data.InvoiceNumber, data.OrderId, data.PackageName, data.ParticipantAmount,\r\n data.PaymentAmount, data.PurchaseStatus);\r\n }\r\n\r\n public hasDiscount() {\r\n return this.discount != null;\r\n }\r\n\r\n public isUpgrade() {\r\n return this.participantAmount == null || this.participantAmount < 1;\r\n }\r\n\r\n public hasPaid = () => this.purchaseStatus === PurchaseStatus.Paid;\r\n\r\n public invoiceInProgress = () => this.purchaseStatus === PurchaseStatus.InvoiceInProgress;\r\n\r\n public participantsText() {\r\n return TranslationData.get(\"Business.Participants\");\r\n }\r\n }\r\n}","module Business {\r\n export interface PurchaseDetail {\r\n countryCode: string\r\n countryId: number;\r\n couponCode: string\r\n dealIds: number[];\r\n salesPackageIdsWithAmounts: Record;\r\n salesPackagePersonalizationTexts: Record;\r\n headerImageUrl: string\r\n gameId: number;\r\n mainDealId: number;\r\n marketId: number;\r\n isUpgrade: boolean;\r\n packageUpgradeDealId?: number;\r\n participantUpgradeDealId?: number\r\n }\r\n\r\n export const createPurchaseDetail = (data: any): PurchaseDetail => {\r\n if (!data)\r\n return;\r\n\r\n return {\r\n countryCode: data.CountryCode,\r\n countryId: data.CountryId,\r\n couponCode: data.CouponCode,\r\n dealIds: data.DealIds,\r\n salesPackageIdsWithAmounts: data.SalesPackageIdsWithAmounts,\r\n salesPackagePersonalizationTexts: data.SalesPackagePersonalizationTexts,\r\n headerImageUrl: data.HeaderImageUrl,\r\n gameId: data.GameId,\r\n mainDealId: data.MainDealId,\r\n marketId: data.MarketId,\r\n isUpgrade: data.IsUpgrade,\r\n packageUpgradeDealId: data.PackageUpgradeDealId,\r\n participantUpgradeDealId: data.ParticipantUpgradeDealId\r\n }\r\n }\r\n}","module Business {\r\n export enum PurchaseStatus {\r\n Open = 0,\r\n Paid = 1,\r\n InvoiceInProgress = 2\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class Purchases extends BaseList {\r\n\r\n constructor(purchases: Array) {\r\n super(purchases);\r\n }\r\n\r\n public static fromJson(data: any) {\r\n const list = new Array();\r\n _.each(data, (purchase: any) => {\r\n list.push(Purchase.fromJson(purchase));\r\n });\r\n return new this(list);\r\n }\r\n }\r\n}","module Business {\r\n export interface MarketSalesPackage {\r\n id: number;\r\n type: SalesPackageType;\r\n price: number;\r\n imageUrls: string[];\r\n minPurchasesRequired: number;\r\n inStock: boolean;\r\n }\r\n\r\n export const createMarketSalesPackageFromJson = (data: any): MarketSalesPackage => {\r\n return { id: data.Id, type: data.Type, price: data.Price, imageUrls: data.ImageUrls, minPurchasesRequired: data.MinPurchasesRequired, inStock: data.InStock };\r\n }\r\n}","module Business {\r\n export class MarketSalesPackagesResult {\r\n public marketSalesPackages: MarketSalesPackage[];\r\n public minPurchaseByType: Record;\r\n\r\n constructor(marketSalesPackages: MarketSalesPackage[], minPurchaseByType: Record) {\r\n this.marketSalesPackages = marketSalesPackages;\r\n this.minPurchaseByType = minPurchaseByType\r\n }\r\n\r\n public hasSalesPackagesOfType = (type: SalesPackageType) => this.marketSalesPackages.some(x => x.type === type);\r\n\r\n public getSalesPackagesByPageType = (pageType: SalesPackageType) => {\r\n switch (pageType) {\r\n case SalesPackageType.BrandingPackage:\r\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.BrandingPackage);\r\n case SalesPackageType.PromotionalPackage:\r\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.PromotionalPackage);\r\n case SalesPackageType.TrophyPackage:\r\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.TrophyPackage);\r\n }\r\n }\r\n\r\n public getById = (id: number) => {\r\n return _.find(this.marketSalesPackages, p => p.id === id);\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n const marketSalesPackages = new Array();\r\n _.each(data.MarketSalesPackages, (marketSalesPackage: any) => {\r\n marketSalesPackages.push(createMarketSalesPackageFromJson(marketSalesPackage));\r\n });\r\n const minPurchaseByType: Record = data.MinPurchaseByType\r\n\r\n return new MarketSalesPackagesResult(marketSalesPackages, minPurchaseByType);\r\n }\r\n }\r\n}","module Business {\r\n export enum SalesPackageType {\r\n BrandingPackage = 0,\r\n PromotionalPackage = 1,\r\n TrophyPackage = 2\r\n }\r\n\r\n export const hasSalesPackage = (salesPackageTypes: SalesPackageType[], salesPackage: SalesPackageType) => {\r\n return salesPackageTypes.indexOf(salesPackage) > -1;\r\n }\r\n}","///\r\n///\r\n///\r\n///\r\n\r\nmodule Business {\r\n\r\n export class SalesUser {\r\n public countryId: number;\r\n public clientId: number;\r\n public mainLeagueId: number | null;\r\n public roles: SalesUserRoles;\r\n public packageType: PackageType;\r\n public marketId: number;\r\n\r\n public clientMarketHeader: ClientMarketHeader;\r\n public clientMarkets: ClientMarkets;\r\n public marketActions: MarketActions;\r\n public leagueActionsCollection: LeagueActionsCollection;\r\n public salesPackageTypes: SalesPackageType[];\r\n\r\n constructor(\r\n countryId: number,\r\n clientId: number,\r\n mainLeagueId: number | null,\r\n roles: SalesUserRoles,\r\n packageType: PackageType,\r\n marketId: number,\r\n clientMarketHeader: ClientMarketHeader,\r\n clientMarkets: ClientMarkets,\r\n marketActions: MarketActions,\r\n leagueActions: LeagueActionsCollection,\r\n salesPackageTypes: SalesPackageType[]\r\n ) {\r\n this.countryId = countryId;\r\n this.roles = roles;\r\n this.packageType = packageType;\r\n this.marketId = marketId;\r\n this.clientMarketHeader = clientMarketHeader;\r\n this.clientMarkets = clientMarkets;\r\n this.marketActions = marketActions;\r\n this.clientId = clientId;\r\n this.mainLeagueId = mainLeagueId;\r\n this.leagueActionsCollection = leagueActions;\r\n this.salesPackageTypes = salesPackageTypes;\r\n\r\n this.clientMarkets.updateWithLeagueActions(this.leagueActionsCollection);\r\n }\r\n\r\n public updateMainLeagueId = (leagueId: number): void => {\r\n this.mainLeagueId = leagueId;\r\n }\r\n\r\n public isClientAdministrator = (): boolean => {\r\n return this.roles.isClientAdministrator();\r\n }\r\n\r\n public isSubLeagueAdministrator = (): boolean => {\r\n return this.roles.isSubLeagueAdministrator();\r\n }\r\n\r\n public containsMarket = (marketId: number): boolean => {\r\n return _.any(this.clientMarkets.list, c => c.marketId === marketId);\r\n }\r\n\r\n public hasPurchasedMarket = (marketId: number): boolean => {\r\n return _.any(this.clientMarkets.list, c => c.marketId === marketId && c.hasPurchased);\r\n }\r\n\r\n public firstOrDefaultMarket = (): ClientMarket | undefined => {\r\n return this.clientMarkets?.first();\r\n }\r\n\r\n public hasPromotionalPackage = () => {\r\n return hasSalesPackage(this.salesPackageTypes, SalesPackageType.PromotionalPackage);\r\n }\r\n\r\n public hasBrandingPackage = () => {\r\n return hasSalesPackage(this.salesPackageTypes, SalesPackageType.BrandingPackage);\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(\r\n data.CountryId,\r\n data.ClientId,\r\n data.MainLeagueId,\r\n SalesUserRoles.fromJson(data.UserRoles),\r\n data.PackageType,\r\n data.MarketId,\r\n ClientMarketHeader.fromJson(data.ClientMarketParticipantStatistics),\r\n ClientMarkets.fromJson(data.ClientMarkets),\r\n MarketActions.fromJson(data),\r\n LeagueActionsCollection.fromJson(data.LeagueActionsCollection),\r\n data.SalesPackageTypes\r\n );\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n export class SalesUserRoles extends BaseList {\r\n public isClientAdministrator = (): boolean => {\r\n return _.any(this.list, r => r === RoleType.ClientAdministrator);\r\n }\r\n\r\n public isSubLeagueAdministrator = (): boolean => {\r\n return _.any(this.list, r => r === RoleType.SubLeagueAdministrator);\r\n }\r\n\r\n public static fromJson = (data: any): SalesUserRoles => {\r\n const list = new Array();\r\n _.each(data, (role: any) => {\r\n list.push(role);\r\n });\r\n return new SalesUserRoles(list);\r\n }\r\n }\r\n}","module Business {\r\n export class InviteMail {\r\n public title: string;\r\n public body: string;\r\n public headerLogo: string;\r\n public headerImage: string;\r\n\r\n constructor(title: string, body: string, headerLogo: string, headerImage: string) {\r\n this.title = title;\r\n this.body = body;\r\n this.headerLogo = headerLogo;\r\n this.headerImage = headerImage;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.Title, data.Body, data.HeaderLogo, data.HeaderImage);\r\n }\r\n }\r\n}","module Business {\r\n\r\n export class SubLeague {\r\n public leagueId: number;\r\n public leagueName: string;\r\n public isMainLeague: boolean;\r\n public adminStatusList: Array;\r\n public numberOfParticipants: number;\r\n public numberOfParticipantsWithCompletedPrediction: number;\r\n public subLeagueRank: number;\r\n public logoFileName: string;\r\n public admins: Administrators;\r\n\r\n constructor(leagueId: number,\r\n leagueName: string,\r\n isMainLeague: boolean,\r\n adminStatusList: Array,\r\n admins: Administrators,\r\n numberOfParticipants: number,\r\n numberOfParticipantsWithCompletedPrediction: number,\r\n subLeagueRank: number,\r\n logoFileName: string) {\r\n this.leagueId = leagueId;\r\n adminStatusList = adminStatusList ?? new Array();\r\n while (adminStatusList.length < 2) {\r\n adminStatusList.push(undefined);\r\n }\r\n\r\n this.admins = admins;\r\n this.leagueName = leagueName;\r\n this.isMainLeague = isMainLeague;\r\n this.adminStatusList = adminStatusList;\r\n this.numberOfParticipants = numberOfParticipants;\r\n this.numberOfParticipantsWithCompletedPrediction = numberOfParticipantsWithCompletedPrediction;\r\n this.subLeagueRank = subLeagueRank;\r\n this.logoFileName = logoFileName;\r\n }\r\n\r\n public getLogoUrl = (cdnUrl: string): string => {\r\n return `${cdnUrl}/${this.logoFileName}`;\r\n }\r\n\r\n public updateLogoFileName = (logoFileName: string) => {\r\n this.logoFileName = logoFileName;\r\n }\r\n\r\n public updateAdminStatusList = (list: Array) => {\r\n this.adminStatusList = list;\r\n }\r\n\r\n public static fromJson(data: any) {\r\n const admins = Administrators.fromJson(data.Admins);\r\n while (admins.count() < 2) {\r\n admins.add(new Administrator(0, 0, \"-\", \"-\", ManagementInvitationStatus.Pending, false, \"-\", \"\", 0, 0, \"\"))\r\n }\r\n return new this(data.LeagueId, data.LeagueName, data.IsMainLeague, data.AdminStatusList, admins, data.NumberOfParticipants, data.NumberOfParticipantsWithCompletedPrediction, data.SubLeagueRank, data.LogoFileName);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class SubLeagues extends BaseList {\r\n constructor(subLeagues: Array) {\r\n super(_.chain(subLeagues).sortBy(sl => sl.leagueName).sortBy(sl => !sl.isMainLeague).value());\r\n }\r\n\r\n public delete = (leagueId: number): void => {\r\n const index = _.findIndex(this.list, l => l.leagueId === leagueId);\r\n if (index > -1) {\r\n this.list.splice(index, 1);\r\n }\r\n }\r\n\r\n public getById = (leagueId: number): SubLeague | undefined => {\r\n return _.find(this.list, league => {\r\n return league.leagueId === leagueId;\r\n });\r\n }\r\n\r\n public getSubLeagues = () => new SubLeagues(this.list.filter(l => !l.isMainLeague));\r\n\r\n public getMainLeague = () => _.find(this.list, l => l.isMainLeague);\r\n\r\n public containsUser = (userId: number) => _.any(this.list, s => s.admins.getById(userId) != null);\r\n\r\n public static fromJson(data: any) {\r\n const list = new Array();\r\n _.each(data, (subLeague: any) => {\r\n list.push(SubLeague.fromJson(subLeague));\r\n });\r\n return new this(list);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class GameTab {\r\n public gameId: number;\r\n public label: string;\r\n public headerImageUrl: string;\r\n public salesHeaderImageUrl: string;\r\n public carouselImageUrls: Array;\r\n public marketTabs: Array;\r\n\r\n constructor(gameId: number, label: string, headerImageUrl: string, salesImageUrl: string, carouselImageUrls: Array, marketTabs: Array) {\r\n this.gameId = gameId;\r\n this.label = label;\r\n this.marketTabs = marketTabs;\r\n this.headerImageUrl = headerImageUrl;\r\n this.salesHeaderImageUrl = salesImageUrl;\r\n this.carouselImageUrls = carouselImageUrls;\r\n }\r\n\r\n public static fromJson(data: any): Business.GameTab {\r\n const marketTabs = new Array();\r\n _.each(data.MarketTabs, (marketTab: any) => {\r\n marketTabs.push(MarketTab.fromJson(marketTab));\r\n });\r\n\r\n return new GameTab(data.GameId, data.Label, data.BackgroundImageUrl, data.StoreHeaderImageUrl, data.CarrouselImageUrls, marketTabs);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class GameTabs {\r\n public defaultSelectedGameId: number;\r\n public defaultSelectedMarketId: number;\r\n public gameTabs: Array;\r\n\r\n constructor(defaultSelectedGameId: number, defaultSelectedMarketId: number, gameTabs: Array) {\r\n this.defaultSelectedGameId = defaultSelectedGameId;\r\n this.defaultSelectedMarketId = defaultSelectedMarketId;\r\n this.gameTabs = gameTabs;\r\n }\r\n\r\n public getByGameId = (gameId: number): GameTab | undefined => {\r\n return _.find(this.gameTabs, g => g.gameId === gameId);\r\n }\r\n\r\n public getByMarketId = (marketId: number): GameTab | undefined => {\r\n return _.find(this.gameTabs, g => _.any(g.marketTabs, m => m.marketId === marketId));\r\n }\r\n\r\n public static fromJson(data: any): Business.GameTabs {\r\n const gameTabs = new Array();\r\n _.each(data.GameTabs, (gameTab: any) => {\r\n gameTabs.push(GameTab.fromJson(gameTab));\r\n })\r\n\r\n return new GameTabs(data.DefaultSelectedGameId, data.DefaultSelectedMarketId, gameTabs);\r\n }\r\n }\r\n}","module Business {\r\n export class MarketTab {\r\n public marketId: number;\r\n public label: string;\r\n\r\n constructor(marketId: number, label: string) {\r\n this.marketId = marketId;\r\n if (typeof label === \"undefined\") {\r\n label = TranslationData.get(`Sales.Package.MarketTab.${marketId}`);\r\n }\r\n this.label = label;\r\n }\r\n\r\n public static fromJson(data: any): Business.MarketTab {\r\n return new MarketTab(data.MarketId, data.Label);\r\n }\r\n }\r\n}","module Business {\r\n export class PredictableRoundModel {\r\n public constructor(\r\n public order: number,\r\n public isComplete: boolean,\r\n ) { }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.Order, data.IsComplete);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class UserPredictionStatus {\r\n public constructor(\r\n public marketId: number,\r\n public predictableRoundModels: PredictableRoundModel[]\r\n ) { }\r\n\r\n public static fromJson(data: any) {\r\n return new this(data.MarketId, data.PredictableRoundModels.map(i => PredictableRoundModel.fromJson(i)));\r\n }\r\n }\r\n}","module Business {\r\n export class UserPredictionStatuses {\r\n constructor(\r\n public userId: number,\r\n public predictableRoundModels: PredictableRoundModel[],\r\n ) { }\r\n\r\n public static fromJson(data: any[]) {\r\n return data.map(itemData =>\r\n new this(itemData.UserId, itemData.PredictableRoundModels.map(predictableRoundData => PredictableRoundModel.fromJson(predictableRoundData)))\r\n );\r\n }\r\n }\r\n}","module Business {\r\n export class CallingCodeDropDownRenderer {\r\n private callingCodeDropDownTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (countries: Platform.Countries, callback: Function): void => {\r\n if (this.callingCodeDropDownTemplate == null) {\r\n this.callingCodeDropDownTemplate = Handlebars.compile($(\"#calling-code-dropdown-template\").html());\r\n }\r\n\r\n $(\".calling-code-dropdown-placeholder\").html(this.callingCodeDropDownTemplate(countries));\r\n\r\n callback?.();\r\n }\r\n }\r\n}","module Business {\r\n export const cropperConfig = (file, additionalSettings) => {\r\n return {\r\n viewMode: file?.type == \"image/png\" ? 0 : 1,\r\n zoomable: false,\r\n autoCropArea: 0.9,\r\n background: false,\r\n modal: false,\r\n ...additionalSettings\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export abstract class PurchaseInformationModel {\r\n\r\n public countryId: number;\r\n public payByInvoice: boolean;\r\n public vatNumber: string;\r\n public couponCode: string;\r\n\r\n public readonly marketId: number;\r\n public readonly gameId: KnownGameIds;\r\n public readonly salesPackageIdsWithAmounts: Record;\r\n public readonly salesPackagePersonalizationTexts: Record;\r\n\r\n protected abstract isUpgrade: boolean;\r\n\r\n constructor(\r\n marketId: number,\r\n gameId: KnownGameIds,\r\n countryId: number,\r\n payByInvoice: boolean,\r\n vatNumber: string,\r\n couponCode: string,\r\n salesPackageIdsWithAmounts: Record,\r\n salesPackagePersonalizationTexts: Record\r\n ) {\r\n this.marketId = marketId;\r\n this.gameId = gameId;\r\n this.countryId = countryId;\r\n this.payByInvoice = payByInvoice;\r\n this.vatNumber = vatNumber;\r\n this.couponCode = couponCode;\r\n this.salesPackageIdsWithAmounts = salesPackageIdsWithAmounts != null ? salesPackageIdsWithAmounts : {};\r\n this.salesPackagePersonalizationTexts = salesPackagePersonalizationTexts != null ? salesPackagePersonalizationTexts : {};\r\n }\r\n\r\n public updateCoupon = (couponCode: string): void => {\r\n this.couponCode = couponCode;\r\n }\r\n\r\n public setVatNumber = (vatNumber: string) => {\r\n this.vatNumber = vatNumber;\r\n }\r\n\r\n public updatePayByInvoice = (payByInvoice: boolean): void => {\r\n this.payByInvoice = payByInvoice;\r\n }\r\n\r\n public getSalesPackageIds = (): number[] => Object.keys(this.salesPackageIdsWithAmounts).map(s => +s);\r\n\r\n abstract saveToLocalStorage(): void;\r\n }\r\n}","module Business {\r\n export class ExplanationRenderer {\r\n private explanationTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (qrCodeUrl: string): void => {\r\n if (this.explanationTemplate == null) {\r\n this.explanationTemplate = Handlebars.compile($(\"#invite-explanation-template\").html());\r\n }\r\n\r\n if (qrCodeUrl != null && qrCodeUrl.length > 0) {\r\n fetch(qrCodeUrl)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n const blobURL = URL.createObjectURL(blob);\r\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(new ExplanationRendererModel(blobURL)));\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(ExplanationRendererModel.createEmpty()));\r\n });\r\n }\r\n else {\r\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(ExplanationRendererModel.createEmpty()));\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class ExplanationRendererModel {\r\n public qrCodeUrl: string;\r\n\r\n constructor(qrCodeUrl: string) {\r\n this.qrCodeUrl = qrCodeUrl\r\n }\r\n\r\n public static createEmpty() {\r\n return new ExplanationRendererModel(null);\r\n }\r\n }\r\n}","module Business {\r\n export abstract class LoadingOverlayRenderer {\r\n\r\n public static showLoadingOverlay = (overlayConfig?: ILoadingOverlayConfig): void => {\r\n const config: ILoadingOverlayConfig = {\r\n firstLabelKey: overlayConfig?.firstLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.1\",\r\n initialMessageDelay: overlayConfig?.initialMessageDelay || 10000,\r\n secondLabelKey: overlayConfig?.secondLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.2\",\r\n secondMessageDelay: overlayConfig?.secondMessageDelay || 30000,\r\n thirdLabelKey: overlayConfig?.thirdLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.3\",\r\n }\r\n\r\n $(\".loading-overlay__text\").text(TranslationData.get(config.firstLabelKey));\r\n $(\".loading-overlay\").show();\r\n setTimeout(() => {\r\n $(\".loading-overlay__text\").text(TranslationData.get(config.secondLabelKey));\r\n }, config.initialMessageDelay);\r\n\r\n setTimeout(() => {\r\n $(\".loading-overlay__text\").text(TranslationData.get(config.thirdLabelKey));\r\n }, config.initialMessageDelay + config.secondMessageDelay);\r\n }\r\n\r\n public static hideLoadingOverlay = (): void => {\r\n $(\".loading-overlay\").hide();\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOptionPopUpRenderer {\r\n private _packageOptionPopUpTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(model: PackageOptionPopUpModel, bindHtmlElements: Function): void {\r\n if (this._packageOptionPopUpTemplate == null) {\r\n this._packageOptionPopUpTemplate = Handlebars.compile($(\"#packageoptions-popup-template\").html());\r\n }\r\n\r\n $(\".packageoptions-popup-placeholder\").html(this._packageOptionPopUpTemplate(model));\r\n\r\n bindHtmlElements();\r\n\r\n }\r\n }\r\n}\r\n","module Business {\r\n export class PackageOptionsTableRenderer {\r\n private _packageoptionsTableTemplate: HandlebarsTemplateDelegate;\r\n private _packageoptionsTableRowTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(packageoptions: PackageOptionsResult, recommendedPackage: PackageType, bindHtmlElements: Function): void {\r\n if (this._packageoptionsTableTemplate == null) {\r\n this._packageoptionsTableTemplate = Handlebars.compile($(\"#packageoptions-table-template\").html());\r\n }\r\n\r\n if (this._packageoptionsTableRowTemplate == null) {\r\n this._packageoptionsTableRowTemplate = Handlebars.compile($(\"#packageoptions-table-row-template\").html());\r\n Handlebars.registerPartial(\"packageoptionstablerowpartial\", this._packageoptionsTableRowTemplate);\r\n }\r\n\r\n var packageoptionsTable: PackageOptionsTableModel;\r\n var packageOptionModels: Array = new Array();\r\n packageoptions.packageOptions.forEach(po => {\r\n packageOptionModels.push(new PackageOptionModel(po.id, po.packageType, po.isImportantDifference, po.label));\r\n });\r\n packageoptionsTable = new PackageOptionsTableModel(recommendedPackage, null, packageOptionModels);\r\n\r\n\r\n $(\".packageoptions-table-placeholder\").html(this._packageoptionsTableTemplate(packageoptionsTable));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarketHeaderModel {\r\n\r\n public sponsoredParticipantCount: number;\r\n public paidByOther: number;\r\n\r\n public maxSponsoredParticipantCount: number;\r\n\r\n constructor(paidByClient: number, paidByOther: number, maxSponsoredParticipantCount: number) {\r\n this.sponsoredParticipantCount = paidByClient;\r\n this.paidByOther = paidByOther;\r\n this.maxSponsoredParticipantCount = maxSponsoredParticipantCount;\r\n }\r\n\r\n public totalParticipants = (): number => {\r\n return this.sponsoredParticipantCount + this.paidByOther;\r\n }\r\n\r\n public remainder = (): number => {\r\n return this.maxSponsoredParticipantCount - this.sponsoredParticipantCount;\r\n }\r\n \r\n public static fromDto(data: ClientMarketHeader) {\r\n return new this(data.sponsoredParticipantCount, data.paidByOther, data.maxSponsoredParticipantCount);\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarketModel {\r\n public marketId: number;\r\n public marketName: string;\r\n\r\n constructor(marketId: number, marketName: string) {\r\n this.marketId = marketId;\r\n this.marketName = marketName;\r\n }\r\n\r\n public static fromDto(data: ClientMarket){\r\n return new this(data.marketId, data.marketName);\r\n }\r\n }\r\n}","///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n///\r\n\r\nmodule Business {\r\n export class ClientMarketSettingsModel {\r\n public clientId: number;\r\n public marketId: number;\r\n public qrCodeUrl: string;\r\n public landingPageModel: LandingPageModel;\r\n public hasOpenedAdmins: boolean;\r\n public leagueNameModel: LeagueNameModel;\r\n public logoTakeOverModel: LogoTakeOverModel;\r\n public multiSubLeaguesModel: MultiSubLeaguesModel;\r\n public rankingLogoModel: RankingLogoModel;\r\n public promotionalPackageModel: PromotionalPackageModel;\r\n public brandingPackageModel: BrandingPackageModel;\r\n public welcomeEmailModel: WelcomeEmailModel;\r\n public packageType: PackageType;\r\n public salesPackageTypes: SalesPackageType[];\r\n\r\n constructor(\r\n clientId: number,\r\n marketId: number,\r\n qrCodeUrl: string,\r\n landingPageModel: LandingPageModel,\r\n hasOpenedAdmins: boolean,\r\n leagueNameModel: LeagueNameModel,\r\n logoTakeOverModel: LogoTakeOverModel,\r\n multiSubLeaguesModel: MultiSubLeaguesModel,\r\n rankingLogoModel: RankingLogoModel,\r\n promotionalPackageModel: PromotionalPackageModel,\r\n brandingPackageModel: BrandingPackageModel,\r\n welcomeEmailModel: WelcomeEmailModel,\r\n packageType: PackageType,\r\n salesPackageTypes: SalesPackageType[]) {\r\n this.clientId = clientId;\r\n this.marketId = marketId;\r\n this.qrCodeUrl = qrCodeUrl;\r\n this.landingPageModel = landingPageModel;\r\n this.hasOpenedAdmins = hasOpenedAdmins;\r\n this.leagueNameModel = leagueNameModel;\r\n this.logoTakeOverModel = logoTakeOverModel;\r\n this.multiSubLeaguesModel = multiSubLeaguesModel;\r\n this.rankingLogoModel = rankingLogoModel;\r\n this.promotionalPackageModel = promotionalPackageModel;\r\n this.brandingPackageModel = brandingPackageModel;\r\n this.welcomeEmailModel = welcomeEmailModel;\r\n this.packageType = packageType;\r\n this.salesPackageTypes = salesPackageTypes;\r\n }\r\n\r\n public isConfigurationComplete = () => {\r\n const budgetConfigurationCheck = this.hasCompletedAdmins() && this.hasCompletedLeagueName() && this.hasCompletedLandingPage() && this.hasCompletedRankingPage() && this.hasCompletedWelcomeEmail();\r\n const businessConfigurationCheck = budgetConfigurationCheck && this.hasCompletedLogoTakeOver();\r\n const professionalConfigurationCheck = businessConfigurationCheck && this.hasCompletedSubLeagues();\r\n\r\n const promotionalPackageConfigurationCheck = this.salesPackageTypes.some(x => x === SalesPackageType.PromotionalPackage)\r\n ? this.hasCompletedPromotionalPackage()\r\n : true;\r\n\r\n const brandingPackageConfigurationCheck = this.salesPackageTypes.some(x => x === SalesPackageType.BrandingPackage)\r\n ? this.hasCompletedBrandingPackage()\r\n : true;\r\n\r\n if (!promotionalPackageConfigurationCheck || !brandingPackageConfigurationCheck) {\r\n return false;\r\n }\r\n\r\n if (this.packageType === PackageType.Budget) {\r\n return budgetConfigurationCheck;\r\n }\r\n if (this.packageType === PackageType.Business || this.packageType === PackageType.Professional) {\r\n return professionalConfigurationCheck;\r\n }\r\n return false;\r\n }\r\n\r\n public hasCorporate = () => {\r\n return this.packageType === PackageType.Professional;\r\n }\r\n\r\n public hasCompletedAdmins = () => {\r\n return this.hasOpenedAdmins;\r\n }\r\n\r\n public hasCompletedLeagueName = () => {\r\n return this.leagueNameModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedLogoTakeOver = () => {\r\n return this.logoTakeOverModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedLandingPage = () => {\r\n return this.landingPageModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedRankingPage = () => {\r\n return this.rankingLogoModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedWelcomeEmail = () => {\r\n return this.welcomeEmailModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedSubLeagues = () => {\r\n return this.multiSubLeaguesModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedPromotionalPackage = () => {\r\n return this.promotionalPackageModel.hasCompleted();\r\n }\r\n\r\n public hasCompletedBrandingPackage = () => {\r\n return this.brandingPackageModel.hasCompleted();\r\n }\r\n\r\n public actionsLeft = () => {\r\n if (this.packageType === PackageType.Budget) return this.openActionCountBudget();\r\n if (this.packageType === PackageType.Business) return this.openActionCountBusiness();\r\n if (this.packageType === PackageType.Professional) return this.openActionCountCorporate();\r\n }\r\n\r\n public openActionCountBudget = () => {\r\n let actions = 0;\r\n actions += this.hasCompletedPromotionalPackage() ? 0 : 1;\r\n actions += this.hasCompletedBrandingPackage() ? 0 : 1;\r\n actions += this.hasCompletedAdmins() ? 0 : 1;\r\n actions += this.hasCompletedLeagueName() ? 0 : 1;\r\n actions += this.hasCompletedLandingPage() ? 0 : 1;\r\n actions += this.hasCompletedRankingPage() ? 0 : 1;\r\n actions += this.hasCompletedWelcomeEmail() ? 0 : 1;\r\n actions += this.hasCompletedLogoTakeOver() ? 0 : 1;\r\n return actions;\r\n }\r\n\r\n public openActionCountBusiness = () => {\r\n let actions = this.openActionCountBudget();\r\n actions += this.hasCompletedSubLeagues() ? 0 : 1;\r\n return actions;\r\n }\r\n\r\n public openActionCountCorporate = () => {\r\n let actions = this.openActionCountBusiness();\r\n return actions;\r\n }\r\n\r\n public updateLandingPage = (landingPageLogo: string, optInRequired: boolean | undefined): void => {\r\n this.landingPageModel.updateLandingPage(landingPageLogo, optInRequired);\r\n }\r\n\r\n public updateRankingPageLogo = (rankingPageLogo: string): void => {\r\n this.rankingLogoModel.updateImageUrl(rankingPageLogo);\r\n }\r\n\r\n public updateLeagueName = (name: string): void => {\r\n this.leagueNameModel.updateLeagueName(name);\r\n this.rankingLogoModel.updateSubLeagueName(name);\r\n }\r\n\r\n public static fromDto(settings: ClientMarketSettings, salesUser: SalesUser, cdnUrl: string) {\r\n const logoTakeOver = LogoTakeOverModel.fromDto(settings, salesUser.packageType);\r\n const clientMarket = salesUser.clientMarkets.getByMarketId(settings.marketId);\r\n const rankingLogo = RankingLogoModel.fromDto(settings, clientMarket);\r\n const welcomeEmail = WelcomeEmailModel.fromDto(settings);\r\n const multiSubLeagues = MultiSubLeaguesModel.fromDto(settings.marketId, salesUser.packageType,\r\n settings.subLeagueIsAllowedToChangeRankingLogo, settings.subLeagueIsAllowedToChangeEmail,\r\n settings.subLeagueIsAllowedToChangeName);\r\n const landingPage = LandingPageModel.fromDto(settings, salesUser.packageType, cdnUrl);\r\n const leagueName = LeagueNameModel.fromDto(settings, salesUser.packageType);\r\n const promotionalPackageModel = PromotionalPackageModel.fromDto(settings, salesUser.salesPackageTypes);\r\n const brandingPackageModel = BrandingPackageModel.fromDto(settings, salesUser.salesPackageTypes);\r\n\r\n return new this(\r\n settings.clientId,\r\n settings.marketId,\r\n settings.qrCodeUrl,\r\n landingPage,\r\n settings.hasOpenedAdmins,\r\n leagueName,\r\n logoTakeOver,\r\n multiSubLeagues,\r\n rankingLogo,\r\n promotionalPackageModel,\r\n brandingPackageModel,\r\n welcomeEmail,\r\n salesUser.packageType,\r\n salesUser.salesPackageTypes);\r\n }\r\n }\r\n}","module Business {\r\n export class ClientMarketsModel extends BaseList {\r\n\r\n constructor(clientMarkets: Array) {\r\n super(clientMarkets);\r\n }\r\n\r\n\r\n public static fromDto = (data: ClientMarkets): ClientMarketsModel => {\r\n const list = new Array();\r\n _.each(data.list, (clientMarket: ClientMarket) => {\r\n list.push(ClientMarketModel.fromDto(clientMarket));\r\n });\r\n return new ClientMarketsModel(list);\r\n }\r\n }\r\n}","module Business {\r\n export class FaqCategoriesModel extends BaseList{\r\n public update = (id: number) => {\r\n this.list = this.list.map(model => {\r\n model.updateIsOpen(model.id === id);\r\n return model;\r\n });\r\n }\r\n\r\n public static fromDto = (faqCategories: FaqCategories): FaqCategoriesModel => {\r\n const list = new Array();\r\n faqCategories.each(faqCategory => {\r\n list.push(FaqCategoryModel.fromDto(faqCategory, true));\r\n });\r\n return new FaqCategoriesModel(list);\r\n }\r\n }\r\n}","module Business {\r\n export class FaqCategoryModel extends FaqCategory {\r\n public isOpen: boolean;\r\n\r\n constructor(id: number, languageId: number, faqType: FaqType, order: number, header: string, faqQuestions: FaqQuestions, isOpen: boolean) {\r\n super(id, languageId, faqType, order, header, faqQuestions);\r\n this.isOpen = isOpen;\r\n }\r\n public updateIsOpen(isOpen: boolean) {\r\n this.isOpen = isOpen;\r\n }\r\n\r\n public static fromDto = (faqCategory: FaqCategory, isOpen: boolean): FaqCategoryModel => {\r\n return new FaqCategoryModel(faqCategory.id, faqCategory.languageId, faqCategory.faqType, faqCategory.order, faqCategory.header, faqCategory.faqQuestions, isOpen);\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOptionModel {\r\n public id: number;\r\n public packageType: PackageType;\r\n public isImportantDifference: boolean;\r\n public label: string;\r\n\r\n constructor(id: number, packageType: PackageType, importantDifference: boolean, label: string) {\r\n this.id = id;\r\n this.packageType = packageType;\r\n this.isImportantDifference = importantDifference;\r\n this.label = label;\r\n }\r\n\r\n public isIncludedForBudget = (): boolean => {\r\n return this.packageType === PackageType.Budget;\r\n }\r\n\r\n public isIncludedForBusiness = (): boolean => {\r\n return _.contains([PackageType.Budget, PackageType.Business], this.packageType);\r\n }\r\n\r\n public isIncludedForCorporate = (): boolean => {\r\n return _.contains([PackageType.Budget, PackageType.Business, PackageType.Professional], this.packageType);\r\n }\r\n }\r\n} ","module Business {\r\n export class PackageOptionPopUpModel {\r\n public description: string;\r\n public carouselImages: Array;\r\n public hasCarousel: boolean;\r\n\r\n constructor(description: string, images: Array) {\r\n this.description = description;\r\n this.carouselImages = images;\r\n this.hasCarousel = images.length > 1;\r\n }\r\n }\r\n}","module Business {\r\n export class PackageOptionsTableModel extends BaseList\r\n {\r\n public recommendedPackage: PackageType;\r\n public currentPackage: PackageType;\r\n\r\n constructor(recommendedPackage: PackageType, currentPackage: PackageType, options: Array) {\r\n super(options);\r\n this.recommendedPackage = recommendedPackage;\r\n this.currentPackage = currentPackage;\r\n }\r\n\r\n public shouldBudgetBeDisabled(): boolean {\r\n return this.currentPackage > PackageType.Budget;\r\n }\r\n\r\n public shouldBusinessBeDisabled(): boolean {\r\n return this.currentPackage > PackageType.Business;\r\n }\r\n }\r\n} ","module Business {\r\n export class AdditionalDealModel {\r\n public selected: boolean;\r\n public dealId: number;\r\n public participantCount: number;\r\n\r\n constructor(selected: boolean, dealId: number, participantCount: number) {\r\n this.selected = selected;\r\n this.dealId = dealId;\r\n this.participantCount = participantCount;\r\n }\r\n }\r\n}","module Business {\r\n export type CartRowType = \"game\" | \"salesPackage\";\r\n\r\n export class CartModel extends BaseList {\r\n\r\n public addMainPackage = (model: PackageRowModel) => {\r\n model.setIsMainPackage(true);\r\n super.add(model);\r\n }\r\n\r\n public getByType = (type: CartRowType) => {\r\n return this.list.filter(p => p.type === type);\r\n }\r\n\r\n public hasSalesPackage = () => this.getByType(\"salesPackage\").length > 0;\r\n }\r\n}","module Business {\r\n export class PackageRowModel {\r\n public type: CartRowType = \"game\";\r\n\r\n public marketImageUrl: string;\r\n\r\n public dealId: number;\r\n public marketId: number;\r\n\r\n public game: string;\r\n public eventName: string;\r\n public package: string;\r\n public participantCount: number;\r\n\r\n public hasDiscount: boolean;\r\n public discountType: string;\r\n public discountPercentage: number;\r\n\r\n public additionalDeals: Array;\r\n\r\n public price: number;\r\n\r\n public isMainPackage: boolean;\r\n\r\n public isParticipantUpgrade: boolean;\r\n public isPackageUpgrade: boolean;\r\n\r\n public constructor(deal: Deal, marketId: number, gameName: string, eventName: string, marketImageUrl: string) {\r\n this.game = gameName;\r\n this.eventName = eventName;\r\n this.package = TranslationData.get(`Sales.Package.Type.${deal.packageType}`);\r\n this.participantCount = deal.participantCount;\r\n this.marketImageUrl = marketImageUrl;\r\n this.price = deal.price;\r\n this.dealId = deal.id;\r\n this.marketId = marketId;\r\n }\r\n\r\n public updateDeal(newDeal: Deal) {\r\n this.participantCount = newDeal.participantCount;\r\n this.price = newDeal.price;\r\n this.dealId = newDeal.id;\r\n\r\n this.additionalDeals.forEach(d => {\r\n d.selected = d.dealId === newDeal.id\r\n });\r\n }\r\n\r\n public setDiscount(discountTypeId: number, discountPercentage: number) {\r\n this.hasDiscount = true;\r\n this.discountType = TranslationData.get(`Sales.Discount.${discountTypeId}`);\r\n this.discountPercentage = discountPercentage;\r\n }\r\n\r\n public setAdditionalDeals(deals: Array, maxCount: number) {\r\n this.additionalDeals = new Array();\r\n\r\n deals.forEach(d => {\r\n if (maxCount == null || maxCount != null && d.participantCount <= maxCount)\r\n this.additionalDeals.push(new AdditionalDealModel(d.id === this.dealId, d.id, d.participantCount));\r\n });\r\n\r\n this.additionalDeals.sort((a, b) => { return a.participantCount - b.participantCount });\r\n }\r\n\r\n public setIsParticipantUpgrade = (isUpgrade: boolean): void => {\r\n this.isParticipantUpgrade = isUpgrade;\r\n }\r\n\r\n public setIsPackageUpgrade = (isUpgrade: boolean): void => {\r\n this.isPackageUpgrade = isUpgrade;\r\n }\r\n\r\n public setIsMainPackage = (isMainPackage: boolean): void => {\r\n this.isMainPackage = isMainPackage;\r\n }\r\n\r\n public isUpgrade = () => {\r\n return this.isPackageUpgrade || this.isParticipantUpgrade;\r\n }\r\n }\r\n}","module Business {\r\n export class PersonalizePopupRenderer {\r\n private personalizePopupTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(bindHtmlElements: Function): void {\r\n if (this.personalizePopupTemplate == null) {\r\n this.personalizePopupTemplate = Handlebars.compile($(\"#personalize-popup-template\").html());\r\n }\r\n\r\n $(\".personalize-popup-placeholder\").html(this.personalizePopupTemplate({}));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class SummaryModel {\r\n public hasDiscount: boolean;\r\n public hasSalesPackage: boolean;\r\n public renderTotalExVAT: boolean;\r\n\r\n public dealsSubTotal: number;\r\n\r\n public earlyBirdDiscount: number;\r\n public combiDealDiscount: number;\r\n\r\n public trophyPackageCost: number;\r\n public promotionalPackageCost: number;\r\n public brandingPackageCost: number;\r\n\r\n public totalExcVAT: number;\r\n public percentageVAT: number;\r\n public vat: number;\r\n public shippingCostsInEuro: number;\r\n\r\n public couponPercentageDiscount: number | undefined; // used in handlebars\r\n public couponDiscount: number;\r\n public invoiceCost: number;\r\n public payByInvoiceCost: number;\r\n\r\n public netTotal: number;\r\n\r\n public companyLabel: string;\r\n public vatLabel: string;\r\n\r\n private readonly hasShippingCosts: boolean; // used in handlebars\r\n\r\n constructor(order: CalculatedOrder, country: string) {\r\n this.dealsSubTotal = order.dealsSubTotal;\r\n\r\n this.hasDiscount = order.earlyBirdDiscount > 0 || order.combiDealDiscount > 0 || order.couponDiscount > 0;\r\n this.hasSalesPackage = order.trophyPackageCost > 0 || order.promotionalPackageCost > 0 || order.brandingPackageCost > 0;\r\n this.earlyBirdDiscount = order.earlyBirdDiscount;\r\n this.combiDealDiscount = order.combiDealDiscount;\r\n this.trophyPackageCost = order.trophyPackageCost;\r\n this.promotionalPackageCost = order.promotionalPackageCost;\r\n this.brandingPackageCost = order.brandingPackageCost;\r\n this.totalExcVAT = order.totalExcVAT;\r\n this.percentageVAT = order.percentageVAT;\r\n this.vat = order.vat;\r\n this.couponDiscount = order.couponDiscount;\r\n this.couponPercentageDiscount = order.couponPercentageDiscount;\r\n this.invoiceCost = order.invoiceCost;\r\n this.payByInvoiceCost = order.payByInvoiceCost;\r\n this.netTotal = order.netTotal;\r\n this.shippingCostsInEuro = order.shippingCostsInEuro;\r\n\r\n this.hasShippingCosts = this.shippingCostsInEuro > 0;\r\n\r\n this.renderTotalExVAT = this.totalExcVAT != this.netTotal;\r\n\r\n this.companyLabel = TranslationData.get(\"Business.Order.CompanySetIn.Format\").format(country);\r\n\r\n if (this.percentageVAT <= 0) {\r\n this.vatLabel = TranslationData.get(\"Business.VATReverseCharge\");\r\n } else {\r\n this.vatLabel = TranslationData.get(\"Business.VATPercentage.Format\").format(this.percentageVAT);\r\n }\r\n }\r\n\r\n public isFree = () => {\r\n return this.netTotal <= 0;\r\n }\r\n }\r\n}","module Business {\r\n export class CombidealRowModel extends PackageRowModel {\r\n public discountedPrice: number;\r\n \r\n public updateDeal(newDeal: Deal) {\r\n this.participantCount = newDeal.participantCount;\r\n this.price = newDeal.price;\r\n this.discountedPrice = this.price - (this.price * (this.discountPercentage / 100));\r\n this.dealId = newDeal.id;\r\n\r\n this.additionalDeals.forEach(d => {\r\n d.selected = d.dealId === newDeal.id;\r\n });\r\n }\r\n\r\n public setDiscount(discountTypeId: number, discountPercentage: number) {\r\n this.hasDiscount = true;\r\n this.discountType = TranslationData.get(`Sales.Discount.${discountTypeId}`);\r\n this.discountPercentage = discountPercentage;\r\n\r\n this.discountedPrice = this.price -(this.price * (discountPercentage / 100));\r\n }\r\n }\r\n} ","module Business {\r\n\r\n export abstract class PromotionalBlockModel {\r\n public marketId: number;\r\n public regionId: number;\r\n public description: string;\r\n public thumbnail: string;\r\n\r\n constructor(marketId: number, regionId: number) {\r\n this.marketId = marketId;\r\n this.regionId = regionId;\r\n }\r\n\r\n protected abstract isEmpty();\r\n\r\n protected abstract getType: () => string;\r\n\r\n protected abstract isBrochure: () => boolean;\r\n protected abstract isVideo: () => boolean;\r\n }\r\n}","module Business {\r\n export class Toast {\r\n private static id: ReturnType\r\n\r\n public static display = (message: string, delay: number = 3000) => {\r\n $(\".success-toast__description\").text(message);\r\n $(\".success-toast\").addModifiers(\"visible\");\r\n clearTimeout(Toast.id);\r\n Toast.id = setTimeout(() => {\r\n $(\".success-toast\").removeModifiers(\"visible\");\r\n }, delay);\r\n }\r\n\r\n public static displayLabel = (labelKey: string, delay: number = 3000) => {\r\n Toast.display(TranslationData.get(labelKey), delay);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class ManagementController {\r\n public static readonly MarketSwitchEvent: string = \"ManagementController.MarketSwitchEvent\";\r\n public static readonly SubLeagueChangeEvent: string = \"ManagementController.SubLeagueChange\";\r\n public static settingsCompletedLocalStorageKey = `sales.settingsCompletedLocalStorageKey.${location.hostname}`;\r\n public static initalTabTypeLocalStorageKey = \"ManagementController.InitialTabType\";\r\n\r\n private readonly clientRepository: IClientRepository;\r\n private readonly articleRepository: IArticleRepository;\r\n private readonly salesUserRepository: SalesUserRepository;\r\n private readonly userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\r\n private readonly headerStatusOverviewRenderer: HeaderStatusOverviewRenderer;\r\n private readonly headerActionsRenderer: HeaderActionsRowRenderer;\r\n private readonly leagueApiSettings: League.ApiSettings;\r\n private readonly platformSettings: Platform.ApiSettings;\r\n private readonly salesSettings: ApiSettings.SalesApiSettings;\r\n private readonly userApiSettings: ApiSettings.UserApiSettings;\r\n private readonly userPredictionStatusApiSettings: ApiSettings.UserPredictionStatusApiSettings;\r\n private marketId: number;\r\n private initialTab: ClientAdminTabType;\r\n private readonly leagueActionsEnabled: boolean;\r\n private isPollingParticipantCount: boolean;\r\n\r\n constructor(marketId: number = null, cdnUrl: string, salesApiSettings: any, platformApiSettings: any, userApiSettings: any, userPredictionStatusApiSettings: any, leagueApiSettings: any, leagueActionsEnabled: boolean) {\r\n this.leagueApiSettings = new League.ApiSettings(leagueApiSettings);\r\n this.platformSettings = new Platform.ApiSettings(platformApiSettings);\r\n this.salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this.userApiSettings = new ApiSettings.UserApiSettings(userApiSettings);\r\n this.userPredictionStatusApiSettings = new ApiSettings.UserPredictionStatusApiSettings(userPredictionStatusApiSettings);\r\n this.leagueActionsEnabled = leagueActionsEnabled;\r\n\r\n\r\n this.clientRepository = new ClientRepository(this.salesSettings);\r\n this.articleRepository = new ArticleRepository(this.salesSettings);\r\n this.salesUserRepository = new SalesUserRepository(this.salesSettings);\r\n this.userPredictionStatusRepository = new UserPredictionStatusRepository(this.userPredictionStatusApiSettings);\r\n\r\n this.headerStatusOverviewRenderer = new HeaderStatusOverviewRenderer();\r\n this.headerActionsRenderer = new HeaderActionsRowRenderer();\r\n\r\n this.marketId = marketId;\r\n\r\n this.clearLocalStorage();\r\n\r\n $(document).ready(() => {\r\n this.loadPage(cdnUrl);\r\n $(\"#inner-content\").css(\"width\", \"100%\");\r\n\r\n $(\"#logout-button\").on(\"click\", () => {\r\n this.clearLocalStorage();\r\n localStorage.removeItem(ManagementController.settingsCompletedLocalStorageKey);\r\n });\r\n });\r\n }\r\n\r\n private loadPage(cdnUrl: string) {\r\n this.showPopup();\r\n this.toggleSubLeagueAdminCard(false);\r\n this.toggleClientAdminCard(false);\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n LoadingOverlayRenderer.showLoadingOverlay();\r\n\r\n this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\r\n this.marketId = this.marketId && salesUser.containsMarket(this.marketId) ? this.marketId : salesUser.firstOrDefaultMarket()?.marketId;\r\n\r\n if (this.marketId != null) {\r\n const initialTabKey = ManagementController.initalTabTypeLocalStorageKey;\r\n const initalTabType = localStorage.getItem(initialTabKey);\r\n\r\n if (initalTabType && isNumeric(initalTabType)) {\r\n localStorage.removeItem(initialTabKey);\r\n this.initialTab = +initalTabType as ClientAdminTabType;\r\n }\r\n\r\n this.resetAllTabs();\r\n new ClientAdministratorController(cdnUrl, this.salesSettings, this.platformSettings, this.userApiSettings, this.userPredictionStatusApiSettings, this.leagueApiSettings, this.clientRepository, this.articleRepository, this.leagueActionsEnabled, this.marketId);\r\n new LeagueAdministratorController(cdnUrl, this.salesSettings, this.platformSettings, this.userApiSettings, this.leagueApiSettings, this.userPredictionStatusRepository, this.clientRepository, this.articleRepository, this.leagueActionsEnabled, this.marketId);\r\n }\r\n\r\n new GeneralController(this.salesSettings, this.platformSettings, this.userApiSettings, salesUser, this.clientRepository);\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has(\"pending\")) {\r\n this.pollParticipantUpgrade()\r\n }\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.href, \"pending\"));\r\n\r\n this.handleMarketSwitch(salesUser);\r\n }).fail((exception: any) => {\r\n if (exception.status === 403 || exception.status === 0) {\r\n location.href = \"/new\";\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Business.AccountError\"));\r\n }\r\n }).always(() => {\r\n LoadingOverlayRenderer.hideLoadingOverlay();\r\n });\r\n }\r\n\r\n private resetAllTabs() {\r\n for (let item in ClientAdminTabType) {\r\n $(\".client-administrator__tab[data-tab-id='\" + item + \"']\").hide();\r\n }\r\n\r\n for (let item in LeagueAdminTabType) {\r\n $(\".league-administrator__tab[data-tab-id='\" + item + \"']\").hide();\r\n }\r\n }\r\n\r\n private hideClientAdminTabAndContent(ids: number[]) {\r\n for (let item in ClientAdminTabType) {\r\n $(\".client-administrator__tab[data-tab-id='\" + item + \"']\").show();\r\n }\r\n ids.forEach(id => {\r\n $(\".client-administrator__tab[data-tab-id='\" + id + \"']\").hide();\r\n $(\".client-administrator__tab-content[data-tab-id='\" + id + \"']\").removeClass(\"client-administrator__tab-content--active\");\r\n });\r\n }\r\n\r\n private hideSubLeagueAdminTabAndContent(ids: LeagueAdminTabType[]) {\r\n for (let item in LeagueAdminTabType) {\r\n $(\".league-administrator__tab[data-tab-id='\" + item + \"']\").show();\r\n }\r\n ids.forEach(id => {\r\n $(\".league-administrator__tab[data-tab-id='\" + id + \"']\").hide();\r\n $(\".league-administrator__tab-content[data-tab-id='\" + id + \"']\").removeClass(\"league-administrator__tab-content--active\");\r\n });\r\n }\r\n\r\n private toggleGeneralCard(show: boolean) {\r\n $(\".general-tabs\").toggle(show);\r\n }\r\n\r\n private toggleClientAdminCard(show: boolean) {\r\n $(\".client-administrator__tabs\").toggle(show);\r\n }\r\n\r\n private toggleSubLeagueAdminCard(show: boolean) {\r\n $(\".league-administrator__tabs\").toggle(show);\r\n }\r\n\r\n private toggleGeneralContent(show: boolean) {\r\n $(\".general-tabs__container\").toggle(show);\r\n }\r\n\r\n private hideHeaderBlock() {\r\n $(\".header-status\").hide();\r\n }\r\n\r\n private hideGeneralTab() {\r\n $(\".header-actions-row__nav-block--general\").hide();\r\n }\r\n\r\n private hideNewGameTab() {\r\n $(\".header-actions-row__nav-block--new-game\").hide();\r\n }\r\n\r\n private showPopup = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has(\"new\")) {\r\n return;\r\n }\r\n\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.href, \"new\"));\r\n\r\n const popup = $.scoritoPopup({\r\n elementId: \"payment-successful-popup\",\r\n popupTitle: $(\".payment-successful-popup\").data(\"title\"),\r\n contentHtml: $(\".payment-successful-popup\").html(),\r\n widthInPixels: 591,\r\n follow: [true, true],\r\n });\r\n\r\n $(\".payment-successful-popup__large-button\").on(\"click\", () => {\r\n popup.close();\r\n });\r\n }\r\n\r\n private clearLocalStorage = () => {\r\n ClientInformationModel.deleteFromLocalStorage();\r\n OrderInformationModel.deleteFromLocalStorage();\r\n CheckoutInformationModel.deleteFromLocalStorage();\r\n CheckoutProgressModel.deleteFromLocalStorage();\r\n PaymentInformationModel.deleteFromLocalStorage();\r\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\r\n localStorage.removeItem(ClientAdministrator.UpgradeInformationModel.localStorageKey);\r\n }\r\n\r\n private getNavigationData = (marketId: number) => {\r\n $(\".header-actions-row__nav-block--general\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n\r\n if (elem.hasModifier(\"active\"))\r\n return;\r\n\r\n this.toggleClientAdminCard(false);\r\n this.toggleSubLeagueAdminCard(false);\r\n\r\n this.hideHeaderBlock();\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing, ClientAdminTabType.Configuration, ClientAdminTabType.Help,\r\n ClientAdminTabType.Invite, ClientAdminTabType.Participants, ClientAdminTabType.Upgrade\r\n ]);\r\n\r\n this.hideSubLeagueAdminTabAndContent([\r\n LeagueAdminTabType.Articles, LeagueAdminTabType.Help, LeagueAdminTabType.Invite, LeagueAdminTabType.Participants, LeagueAdminTabType.Settings,\r\n ]);\r\n\r\n this.toggleGeneralCard(true);\r\n this.toggleGeneralContent(true);\r\n\r\n $(\".header-actions-row__nav-block\").removeModifiers(\"active\");\r\n elem.addModifiers(\"active\");\r\n $(`.general-tabs__tab[data-tab-id=\"${GeneralTabType.CompanyDetails}\"]`).click();\r\n });\r\n\r\n $(\".header-actions-row__nav-block--new-game\").on(\"click\", event => {\r\n const businessPath = \"/\";\r\n const tab = window.open(businessPath, \"_blank\")\r\n if (tab) {\r\n tab.focus();\r\n }\r\n else {\r\n location.href = businessPath;\r\n }\r\n });\r\n\r\n $(\".header-actions-row__nav-block--market\").prop(\"onclick\", null).off(\"click\");\r\n $(\".header-actions-row__nav-block--market\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n\r\n if (elem.hasModifier(\"active\"))\r\n return;\r\n\r\n const marketId: number = parseInt(elem.data(\"marketId\").toString());\r\n\r\n window.history.replaceState(null, \"\", location.pathname + \"?marketId=\" + marketId);\r\n this.marketId = marketId;\r\n $(\".client-administrator__tab\").removeModifiers(\"active\").addModifiers(\"preload\");\r\n $(\".league-administrator__tab\").removeModifiers(\"active\").addModifiers(\"preload\");\r\n $(\".header-actions-row__nav-block\").removeModifiers(\"active\");\r\n elem.addModifiers(\"active\");\r\n\r\n $(\".client-administrator__tabs-content\").addModifiers(\"preload\");\r\n $(\".league-administrator__tabs-content\").addModifiers(\"preload\");\r\n ActionsController.getInstance().hideTabsActionCount();\r\n this.headerStatusOverviewRenderer.renderEmpty();\r\n\r\n this.loadSalesUser();\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n });\r\n\r\n if (marketId != null) {\r\n const elem = $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"]`);\r\n elem.addModifiers(\"active\");\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n } else {\r\n $(\".header-actions-row__nav-block--general\").click();\r\n this.toggleClientAdminCard(true);\r\n this.toggleSubLeagueAdminCard(true);\r\n this.toggleGeneralCard(true);\r\n this.toggleGeneralContent(true);\r\n this.hideHeaderBlock();\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing, ClientAdminTabType.Configuration, ClientAdminTabType.Help,\r\n ClientAdminTabType.Invite, ClientAdminTabType.Participants, ClientAdminTabType.Upgrade\r\n ]);\r\n }\r\n }\r\n\r\n private loadSalesUser = (): JQueryPromise => {\r\n return this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\r\n this.resetAllTabs();\r\n this.handleMarketSwitch(salesUser);\r\n }).fail(() => {\r\n NotificationBar.Display(\"Common.ErrorOnPage\");\r\n });\r\n }\r\n\r\n private handleMarketSwitch = (salesUser: SalesUser) => {\r\n if (salesUser.clientMarketHeader) {\r\n this.headerStatusOverviewRenderer.renderTemplate(new HeaderStatusOverviewModel(\"\", salesUser.clientMarketHeader.sponsoredParticipantCount, salesUser.clientMarketHeader.paidByOther, salesUser.clientMarketHeader.maxSponsoredParticipantCount, 0, this.isPollingParticipantCount));\r\n }\r\n\r\n dispatchEvent(new CustomEvent(ManagementController.MarketSwitchEvent, { detail: { marketId: this.marketId, salesUser } }));\r\n\r\n this.headerActionsRenderer.renderTemplate(salesUser.clientMarkets, () => {\r\n this.getNavigationData(this.marketId);\r\n this.handleTabDisplay(salesUser);\r\n });\r\n }\r\n\r\n private handleTabDisplay = (salesUser: SalesUser): void => {\r\n let shouldOpenConfigurationTab: boolean;\r\n switch (salesUser.packageType) {\r\n case PackageType.Budget:\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing\r\n ]);\r\n this.hideSubLeagueAdminTabAndContent([\r\n LeagueAdminTabType.Settings, LeagueAdminTabType.Invite,\r\n LeagueAdminTabType.Participants, LeagueAdminTabType.Articles, LeagueAdminTabType.Help\r\n ]);\r\n this.toggleClientAdminCard(true);\r\n this.toggleSubLeagueAdminCard(false);\r\n shouldOpenConfigurationTab = true;\r\n break;\r\n case PackageType.Business:\r\n case PackageType.Professional:\r\n let hasClientAdminRole = salesUser.isClientAdministrator();\r\n let hasSubLeagueRole = salesUser.isSubLeagueAdministrator();\r\n\r\n if (hasClientAdminRole && hasSubLeagueRole) {\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.Invite, ClientAdminTabType.Participants\r\n ]);\r\n this.hideSubLeagueAdminTabAndContent([LeagueAdminTabType.Articles]);\r\n this.toggleClientAdminCard(true);\r\n this.toggleSubLeagueAdminCard(true);\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n shouldOpenConfigurationTab = true;\r\n }\r\n else if (hasClientAdminRole) {\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.Invite, ClientAdminTabType.Participants\r\n ]);\r\n this.hideSubLeagueAdminTabAndContent([\r\n LeagueAdminTabType.Settings, LeagueAdminTabType.Articles\r\n ]);\r\n this.toggleClientAdminCard(true);\r\n this.toggleSubLeagueAdminCard(true);\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n shouldOpenConfigurationTab = true;\r\n }\r\n else if (hasSubLeagueRole) {\r\n this.hideClientAdminTabAndContent([\r\n ClientAdminTabType.Upgrade, ClientAdminTabType.Configuration,\r\n ClientAdminTabType.Invite, ClientAdminTabType.SubLeagues,\r\n ClientAdminTabType.Participants, ClientAdminTabType.Marketing,\r\n ClientAdminTabType.Help\r\n ]);\r\n this.hideSubLeagueAdminTabAndContent([]);\r\n this.toggleClientAdminCard(false);\r\n this.toggleSubLeagueAdminCard(true);\r\n this.toggleGeneralCard(false);\r\n this.toggleGeneralContent(false);\r\n this.hideHeaderBlock();\r\n this.hideGeneralTab();\r\n this.hideNewGameTab();\r\n this.openLeagueTab(LeagueAdminTabType.Settings);\r\n }\r\n break;\r\n case null:\r\n this.toggleClientAdminCard(false);\r\n this.toggleSubLeagueAdminCard(false);\r\n return;\r\n }\r\n\r\n if (this.initialTab === ClientAdminTabType.Upgrade) {\r\n this.openTab(ClientAdminTabType.Upgrade);\r\n }\r\n else if (this.initialTab === ClientAdminTabType.Invite) {\r\n this.openTab(ClientAdminTabType.Invite);\r\n }\r\n else if (shouldOpenConfigurationTab) {\r\n this.openTab(ClientAdminTabType.Configuration);\r\n }\r\n }\r\n\r\n private openTab = (tab: Business.ClientAdminTabType): void => {\r\n $(`.client-administrator__tab[data-tab-id=\"${tab}\"]`).click();\r\n }\r\n\r\n private openLeagueTab = (tab: Business.LeagueAdminTabType): void => {\r\n $(`.league-administrator__tab[data-tab-id=\"${tab}\"]`).click();\r\n }\r\n\r\n private pollParticipantUpgrade = () => {\r\n const maxAttempts = 10\r\n const baseTimeout = 10\r\n const attempsTimeoutIncrease = 2\r\n let attemps = 0;\r\n this.isPollingParticipantCount = true\r\n const participantCount = +localStorage.getItem(\"sales.ParticipantCount-\" + this.marketId)\r\n\r\n const finishPoll = (salesUser: SalesUser) => {\r\n this.isPollingParticipantCount = false\r\n this.headerStatusOverviewRenderer.renderTemplate(new HeaderStatusOverviewModel(\"\", salesUser.clientMarketHeader.sponsoredParticipantCount, salesUser.clientMarketHeader.paidByOther, salesUser.clientMarketHeader.maxSponsoredParticipantCount, salesUser.marketActions.clientActions, this.isPollingParticipantCount));\r\n ActionsController.getInstance().refresh(this.marketId);\r\n localStorage.removeItem(\"sales.ParticipantCount-\" + this.marketId)\r\n }\r\n\r\n const executePoll = () => {\r\n attemps++\r\n this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\r\n const updatedParticipantCount = salesUser.clientMarketHeader.maxSponsoredParticipantCount\r\n if (updatedParticipantCount > participantCount) {\r\n finishPoll(salesUser)\r\n return\r\n } else if (attemps >= maxAttempts) {\r\n finishPoll(salesUser)\r\n return\r\n } else {\r\n setTimeout(executePoll, (baseTimeout + attemps ** attempsTimeoutIncrease) * 1000)\r\n }\r\n })\r\n }\r\n\r\n executePoll()\r\n }\r\n }\r\n}","module Business {\r\n export class ActionsController {\r\n private clientActions: Dictionary;\r\n private marketLeagueActionsCollection: Dictionary;\r\n\r\n private static _instance: ActionsController;\r\n\r\n public static getInstance(): ActionsController {\r\n if (this._instance == null) {\r\n this._instance = new this();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private constructor() {\r\n this.clientActions = new Dictionary();\r\n this.marketLeagueActionsCollection = new Dictionary();\r\n }\r\n\r\n public initialize = (marketId: number, clientActions: number, marketLeagueActionsCollection: LeagueActionsCollection): void => {\r\n this.clientActions.put(marketId, clientActions);\r\n this.marketLeagueActionsCollection.put(marketId, marketLeagueActionsCollection);\r\n this.refresh(marketId);\r\n }\r\n\r\n public getLeagueActionsByMarketAndSubLeague = (marketId: number, subleagueId: number): LeagueActions | null => {\r\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\r\n return marketLeagueActionsCollection?.getByLeagueId(subleagueId);\r\n }\r\n\r\n public refresh = (marketId: number, subLeagueId?: number): void => {\r\n const clientActions = this.clientActions.get(marketId) ?? 0;\r\n const headerElem = $(\".header-status__actions\").find(\".header-status__block-header\").removeModifiers(\"gray\");\r\n\r\n if (clientActions > 0) {\r\n $(\".header-status__block-body--actions\").html(`
${clientActions}
`);\r\n $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"] .header-actions-row__actions`).show().html(clientActions.toString());\r\n headerElem.removeModifiers(\"green\");\r\n headerElem.addModifiers(\"red\");\r\n }\r\n else {\r\n $(\".header-status__block-body--actions\").html('');\r\n $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"] .header-actions-row__actions`).hide().html(\"\");\r\n headerElem.removeModifiers(\"red\");\r\n headerElem.addModifiers(\"green\");\r\n }\r\n\r\n $(\".client-administrator__actions\").toggleModifiers(clientActions <= 0, \"invisible\");\r\n $(\".client-administrator__actions\").html(clientActions.toString());\r\n\r\n if (!subLeagueId)\r\n return;\r\n }\r\n\r\n public completeLeagueName = (marketId: number, leagueId: number): void => {\r\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\r\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\r\n if (!leagueActions) return;\r\n leagueActions.nameCompleted = true;\r\n this.refresh(marketId, leagueId);\r\n }\r\n\r\n public completeRankingLogoName = (marketId: number, leagueId: number): void => {\r\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\r\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\r\n if (!leagueActions) return;\r\n leagueActions.rankingLogoCompleted = true;\r\n this.refresh(marketId, leagueId);\r\n }\r\n\r\n public completeWelcomeMail = (marketId: number, leagueId: number): void => {\r\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\r\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\r\n if (!leagueActions) return;\r\n leagueActions.welcomeEmailCompleted = true;\r\n this.refresh(marketId, leagueId);\r\n }\r\n\r\n public completeClientAction = (marketId: number, actionsLeft: number): void => {\r\n this.clientActions.put(marketId, actionsLeft);\r\n this.refresh(marketId);\r\n }\r\n\r\n public hideTabsActionCount = (): void => {\r\n $(\".client-administrator__actions\").addModifiers(\"invisible\");\r\n }\r\n }\r\n}","module BusinessManagement {\r\n import cropperConfig = Business.cropperConfig;\r\n export class ArticleControllerHelper {\r\n\r\n private readonly articlesRenderer: BusinessManagement.ArticlesRenderer;\r\n private readonly articleRepository: Business.IArticleRepository;\r\n private readonly userRepository: Business.UserRepository;\r\n private readonly subLeagueRepository: Business.ISubLeagueRepository;\r\n\r\n private readonly prefixId: string;\r\n private readonly marketId: number;\r\n\r\n private profileData: Platform.Profile;\r\n private articles: Business.Articles;\r\n private selectedArticleId: number | null;\r\n private selectedSubLeagueId: number;\r\n private hasUnsavedChanges: boolean;\r\n private isSubLeagueTab: boolean;\r\n private packageType: Business.PackageType;\r\n private subLeagues: Business.SubLeagues;\r\n private isCropping: boolean;\r\n\r\n constructor(prefixId: string, selectedSubLeagueId: number, marketId: number, userRepository: Business.UserRepository, articleRepository: Business.IArticleRepository, subLeagueRepository: Business.ISubLeagueRepository = null, packageType: Business.PackageType, isSubLeagueTab: boolean = false) {\r\n this.articleRepository = articleRepository;\r\n this.userRepository = userRepository;\r\n this.prefixId = prefixId;\r\n this.marketId = marketId;\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n this.articlesRenderer = new BusinessManagement.ArticlesRenderer();\r\n\r\n if (subLeagueRepository) this.subLeagueRepository = subLeagueRepository;\r\n this.isSubLeagueTab = isSubLeagueTab;\r\n this.packageType = packageType;\r\n this.bindPage();\r\n }\r\n\r\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n }\r\n\r\n public initialize = (isConfigurationComplete: boolean) => {\r\n $(\".\" + this.prefixId + \"__notice\").toggle(!isConfigurationComplete);\r\n $(\".\" + this.prefixId + \"__description\").toggleModifiers(!isConfigurationComplete, \"disabled\");\r\n $(\".\" + this.prefixId + \"__content\").toggleModifiers(!isConfigurationComplete, \"disabled\");\r\n\r\n if (!isConfigurationComplete) return $.Deferred();\r\n\r\n const onDone = (profileData: Platform.Profile, articles: Business.Articles, subLeaguesResult: ApiResult | undefined) => {\r\n\r\n this.profileData = profileData;\r\n this.articles = articles;\r\n if (subLeaguesResult) {\r\n this.subLeagues = Business.SubLeagues.fromJson(subLeaguesResult.content);\r\n if (this.subLeagues.any()) {\r\n this.updateDropdown(null);\r\n }\r\n }\r\n\r\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\r\n this.bindClickOnArticle();\r\n this.bindNewArticleButton();\r\n });\r\n\r\n this.articlesRenderer.renderHeaderImage(null, \"\" + this.prefixId + \"\");\r\n\r\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${this.profileData.fullName}`);\r\n }\r\n\r\n const showDropdown = !this.isSubLeagueTab && isFeatureSupported(this.packageType, Feature.Articles);\r\n if (showDropdown) {\r\n $(`.${this.prefixId}__sub-leagues`).show();\r\n return $.when(\r\n this.userRepository.getProfileDetails(),\r\n this.articleRepository.get(this.marketId, this.selectedSubLeagueId),\r\n this.subLeagueRepository.get(this.marketId)\r\n ).done((profileData: Platform.Profile, articles: Business.Articles, subLeaguesResult: ApiResult) => {\r\n onDone(profileData, articles, subLeaguesResult);\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n } else {\r\n $(\".\" + this.prefixId + \"__sub-leagues\").hide();\r\n return $.when(\r\n this.userRepository.getProfileDetails(),\r\n this.articleRepository.get(this.marketId, this.selectedSubLeagueId)\r\n ).done((profileData: Platform.Profile, articles: Business.Articles) => {\r\n onDone(profileData, articles, null);\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n }\r\n\r\n protected updateDropdown = (selectedSubLeague: number | undefined): void => {\r\n if (selectedSubLeague) this.selectedSubLeagueId = selectedSubLeague;\r\n else this.selectedSubLeagueId = null;\r\n const dropdown = $(`.${this.prefixId}__select`).empty();\r\n\r\n this.subLeagues.each((item: Business.SubLeague, index: number) => {\r\n if (!this.selectedSubLeagueId) {\r\n this.selectedSubLeagueId = item.leagueId;\r\n }\r\n const name = item.isMainLeague ? TranslationData.get(\"Business.Management.Article.AllLeagues\") : item.leagueName;\r\n dropdown.append(new Option(name, item.leagueId.toString(), item.leagueId === this.selectedSubLeagueId));\r\n });\r\n\r\n dropdown.off().on(\"change\", (event) => {\r\n const subLeagueId: number = dropdown.val();\r\n this.selectedSubLeagueId = subLeagueId;\r\n\r\n const article = this.articles.getById(this.selectedArticleId ?? 0);\r\n this.hasUnsavedChanges = true;\r\n if (!article) return;\r\n\r\n this.setFormData(this.selectedArticleId, article.articleImageUrl, article.title, article.body, article.hasCallToActionButton, article.callToActionButtonText, article.callToActionButtonUrl, true);\r\n });\r\n if (selectedSubLeague) $(\".\" + this.prefixId + \"__select option[value='\" + selectedSubLeague + \"']\").prop(\"selected\", \"selected\");\r\n }\r\n\r\n protected leagueChanged = (): void => {\r\n //TODO: do reload stuff\r\n };\r\n\r\n private bindPage = (): void => {\r\n this.bindChangeImage();\r\n this.bindSaveButton();\r\n this.bindPublishButton();\r\n this.bindChangeToDraftButton();\r\n\r\n this.checkForChecked();\r\n this.bindNewArticleButton();\r\n this.bindUpdateCounter();\r\n this.bindUpdateCallToActionButton();\r\n this.bindDeleteArticle();\r\n this.stylePage();\r\n try {\r\n const editor = CKEDITOR.instances[this.prefixId + \"__ckeditor\"];\r\n if (editor)\r\n editor.destroy(true);\r\n\r\n CKEDITOR.replace(this.prefixId + \"__ckeditor\",\r\n {\r\n height: \"320px\",\r\n removePlugins: \"link\"\r\n });\r\n CKEDITOR.addCss(\".cke_editable{cursor:text; font-size: 14px; font-family: Roboto-Regular, Arial;}\");\r\n CKEDITOR.instances[this.prefixId + \"__ckeditor\"].on(\"change\", () => {\r\n this.hasUnsavedChanges = true;\r\n });\r\n }\r\n catch (err) {\r\n console.error(`Something went wrong with initializing CKEDITOR ${err}`)\r\n }\r\n }\r\n\r\n private stylePage = (): void => {\r\n const button = $(\".\" + this.prefixId + \"__call-to-action-button\");\r\n const elem = $(\".\" + this.prefixId + \"__checkbox\");\r\n\r\n if (elem.is(\":checked\")) {\r\n button.removeAttr(\"disabled\");\r\n button.addModifiers(\"checked\");\r\n }\r\n else if (elem.is(\":not(:checked)\")) {\r\n button.attr(\"disabled\", \"disabled\");\r\n button.removeModifiers(\"checked\");\r\n }\r\n }\r\n\r\n private bindChangeImage = (): void => {\r\n $(\".\" + this.prefixId + \"__image-upload\").unbind();\r\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\r\n $(\".\" + this.prefixId + \"__image\").click();\r\n });\r\n\r\n $(\".\" + this.prefixId + \"__image\").unbind();\r\n $(\".\" + this.prefixId + \"__image\").on(\"change\", event => {\r\n const elem = $(event.currentTarget);\r\n const image = elem.prop(\"files\")[0];\r\n if (!image)\r\n return;\r\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\"];\r\n if (!_.contains(validImageTypes, image?.type)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\r\n return;\r\n }\r\n this.hasUnsavedChanges = true;\r\n var formData = new FormData();\r\n formData.append(\"fileData\", image);\r\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\r\n this.articleRepository.saveHeaderImage(this.marketId, this.selectedSubLeagueId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.articlesRenderer.renderHeaderImage(apiResult.content, \"\" + this.prefixId + \"\");\r\n\r\n if (image?.type != \"image/gif\") {\r\n var $image_elem = $(\".\" + this.prefixId + \"__uploaded-image\")\r\n $image_elem.cropper(cropperConfig(image, {\r\n aspectRatio: 1.5,\r\n }));\r\n\r\n $(\".\" + this.prefixId + \"__hover\").hide()\r\n $(\".\" + this.prefixId + \"__image-upload\").unbind(\"click\")\r\n this.isCropping = true\r\n }\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\r\n });\r\n });\r\n }\r\n\r\n private bindUpdateCounter = (): void => {\r\n $(\".\" + this.prefixId + \"__input--title\").unbind();\r\n $(\".\" + this.prefixId + \"__input--title\").on(\"input\", event => {\r\n this.hasUnsavedChanges = true;\r\n const nrOfCharacters = $(event.target).val().length;\r\n $(\".\" + this.prefixId + \"__typed-characters\").html(nrOfCharacters.toString());\r\n });\r\n }\r\n\r\n private bindUpdateCallToActionButton = (): void => {\r\n $(`.${this.prefixId}__input--text-button`).unbind();\r\n $(`.${this.prefixId}__input--text-button`).on(\"input\", event => {\r\n this.hasUnsavedChanges = true;\r\n $(`.${this.prefixId}__call-to-action-button`).html($(event.target).val());\r\n });\r\n\r\n $(`.${this.prefixId}__input--link-button`).unbind();\r\n $(`.${this.prefixId}__input--link-button`).on(\"keyup\", event => {\r\n this.hasUnsavedChanges = true;\r\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\r\n });\r\n }\r\n\r\n private validateArticle = (): boolean => {\r\n\r\n const titleElem = $(\".\" + this.prefixId + \"__input--title\");\r\n const messageElem = $(\".\" + this.prefixId + \"__editor-container\");\r\n const imageElem = $(\".\" + this.prefixId + \"__image-upload\");\r\n\r\n const title = titleElem.val();\r\n const body = CKEDITOR.instances[this.prefixId + \"__ckeditor\"].getData();\r\n const imageUrl = $(\".\" + this.prefixId + \"__uploaded-image\").attr(\"src\");\r\n\r\n let isValid = true;\r\n\r\n if (!title) {\r\n titleElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n }\r\n else {\r\n titleElem.removeModifiers(\"invalid\");\r\n }\r\n if (body === \"\") {\r\n messageElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n }\r\n else {\r\n messageElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n if (!imageUrl) {\r\n imageElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n }\r\n else {\r\n imageElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n if (!this.validateCallToAction()) {\r\n return false;\r\n }\r\n return isValid;\r\n }\r\n\r\n private bindSaveButton = (): void => {\r\n $(\".\" + this.prefixId + \"__button--save, .\" + this.prefixId + \"__button--touch-up\").unbind();\r\n $(\".\" + this.prefixId + \"__button--save, .\" + this.prefixId + \"__button--touch-up\").on(\"click\", () => {\r\n\r\n if (!this.validateArticle()) return;\r\n if (this.isCropping) {\r\n this.saveImage(() => {\r\n this.saveArticle()\r\n });\r\n } else {\r\n this.saveArticle();\r\n }\r\n });\r\n }\r\n\r\n private saveArticle = (): void => {\r\n const existingArticle = this.articles.getById(this.selectedArticleId);\r\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, existingArticle?.isDraftArticle ?? true);\r\n\r\n const mainLeague = this.subLeagues?.list?.filter(s => s.isMainLeague);\r\n\r\n this.articleRepository.createOrUpdate(this.marketId, mainLeague && mainLeague.length > 0 ? mainLeague[0].leagueId : this.selectedSubLeagueId, article).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Article.Saved\");\r\n this.articles = Business.Articles.fromJson(apiResult.content);\r\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\r\n this.bindClickOnArticle();\r\n this.bindNewArticleButton();\r\n this.resetFormData();\r\n });\r\n this.hasUnsavedChanges = false;\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private saveImage = (callback?: Function): void => {\r\n const elem = $(\".\" + this.prefixId + \"__image\");\r\n const image = elem.prop(\"files\"[0]);\r\n var $image_elem = $(\".\" + this.prefixId + \"__uploaded-image\")\r\n var cropper = $image_elem.data('cropper');\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\r\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\r\n this.articleRepository.saveHeaderImage(this.marketId, this.selectedSubLeagueId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.articlesRenderer.renderHeaderImage(apiResult.content, \"\" + this.prefixId + \"\");\r\n callback?.()\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n if (this.isCropping) {\r\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\r\n $(\".\" + this.prefixId + \"__hover\").show()\r\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\r\n $(\".\" + this.prefixId + \"__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n });\r\n }, image?.type)\r\n }\r\n\r\n private bindChangeToDraftButton = (): void => {\r\n $(\".\" + this.prefixId + \"__button--draft\").unbind();\r\n $(\".\" + this.prefixId + \"__button--draft\").on(\"click\", () => {\r\n if (!this.selectedArticleId)\r\n return;\r\n\r\n const existingArticle = this.articles.getById(this.selectedArticleId);\r\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, existingArticle?.isDraftArticle ?? true);\r\n article.setIsDraftArticle(true);\r\n\r\n this.articleRepository.createOrUpdate(this.marketId, this.selectedSubLeagueId, article).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Article.Saved\");\r\n this.articles = Business.Articles.fromJson(apiResult.content);\r\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\r\n this.bindClickOnArticle();\r\n this.bindNewArticleButton();\r\n this.resetFormData();\r\n });\r\n this.hasUnsavedChanges = false;\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n });\r\n }\r\n\r\n private resetFormData = (): void => {\r\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${this.profileData.fullName}`);\r\n this.setFormData(0, \"\", \"\", \"\", false, \"\", \"\", true);\r\n if (this.isCropping) {\r\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\r\n $(\".\" + this.prefixId + \"__hover\").show()\r\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\r\n $(\".\" + this.prefixId + \"__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n }\r\n\r\n private setFormData = (articleId: number, imageUrl: string, title: string, body: string, hasCallToAction: boolean, callToActionText: string, callToActionUrl: string, isDraft: boolean) => {\r\n this.selectedArticleId = articleId;\r\n $(\".\" + this.prefixId + \"__image\").val(\"\");\r\n this.articlesRenderer.renderHeaderImage(imageUrl, \"\" + this.prefixId + \"\");\r\n $(\".\" + this.prefixId + \"__input--title\").removeModifiers(\"invalid\").val(title);\r\n $(\".\" + this.prefixId + \"__typed-characters\").text(title.length);\r\n CKEDITOR.instances[this.prefixId + \"__ckeditor\"].setData(body);\r\n $(\".\" + this.prefixId + \"__checkbox\").prop(\"checked\", hasCallToAction);\r\n if (hasCallToAction) {\r\n $(\".\" + this.prefixId + \"__input--text-button\").val(callToActionText).removeAttr(\"disabled\");\r\n $(\".\" + this.prefixId + \"__input--link-button\").val(callToActionUrl).removeAttr(\"disabled\");\r\n $(\".\" + this.prefixId + \"__call-to-action-button\").text(callToActionText).removeAttr(\"disabled\").addModifiers(\"checked\");\r\n }\r\n else {\r\n $(\".\" + this.prefixId + \"__input--text-button\").val(\"\").attr(\"disabled\", \"disabled\");\r\n $(\".\" + this.prefixId + \"__input--link-button\").val(\"\").attr(\"disabled\", \"disabled\");\r\n $(\".\" + this.prefixId + \"__call-to-action-button\").text(TranslationData.get(\"Business.Management.CallToActionButton.Button\")).attr(\"disabled\", \"disabled\").removeModifiers(\"checked\");\r\n }\r\n if (isDraft) {\r\n $(\".\" + this.prefixId + \"__button-container--draft\").removeModifiers(\"hidden\");\r\n $(\".\" + this.prefixId + \"__button-container--published\").addModifiers(\"hidden\");\r\n }\r\n else {\r\n $(\".\" + this.prefixId + \"__button-container--draft\").addModifiers(\"hidden\");\r\n $(\".\" + this.prefixId + \"__button-container--published\").removeModifiers(\"hidden\");\r\n }\r\n }\r\n\r\n private getNewArticleFromForm = (articleId: number, isDraft: boolean): Business.Article => {\r\n const titleElem = $(\".\" + this.prefixId + \"__input--title\");\r\n const title = titleElem.val();\r\n const body = CKEDITOR.instances[this.prefixId + \"__ckeditor\"].getData();\r\n\r\n const callToActionButtonTextElem = $(\".\" + this.prefixId + \"__input--text-button\");\r\n const callToActionButtonText = callToActionButtonTextElem.val();\r\n\r\n const callToActionButtonLinkElem = $(\".\" + this.prefixId + \"__input--link-button\");\r\n const callToActionButtonLink = callToActionButtonLinkElem.val();\r\n\r\n const imageUrl = $(\".\" + this.prefixId + \"__uploaded-image\").attr(\"src\");\r\n const hasCallToAction = $(\".\" + this.prefixId + \"__checkbox\").is(\":checked\");\r\n\r\n const article = new Business.Article(articleId, this.profileData.userId, \"\", this.selectedSubLeagueId, imageUrl ?? \"\", title, body, hasCallToAction, callToActionButtonText, callToActionButtonLink, isDraft, \"\");\r\n\r\n return article;\r\n }\r\n\r\n private bindPublishButton = (): void => {\r\n $(\".\" + this.prefixId + \"__button--publish\").unbind();\r\n $(\".\" + this.prefixId + \"__button--publish\").on(\"click\", () => {\r\n\r\n if (!this.validateArticle()) return;\r\n if (this.isCropping) {\r\n this.saveImage(() => {\r\n this.publishArticle()\r\n });\r\n } else {\r\n this.publishArticle();\r\n }\r\n });\r\n }\r\n\r\n private publishArticle = (): void => {\r\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, false);\r\n\r\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\r\n this.articleRepository.createOrUpdate(this.marketId, this.selectedSubLeagueId, article).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Article.Published\");\r\n this.articles = Business.Articles.fromJson(apiResult.content);\r\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\r\n this.bindClickOnArticle();\r\n this.bindNewArticleButton();\r\n\r\n this.resetFormData();\r\n });\r\n this.hasUnsavedChanges = false;\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\r\n });\r\n }\r\n\r\n private validateCallToAction = (): boolean => {\r\n let isCallToActionValid = true;\r\n if ($(\".\" + this.prefixId + \"__checkbox\").is(\":checked\")) {\r\n const callToActionButtonTextElem = $(\".\" + this.prefixId + \"__input--text-button\");\r\n if (!callToActionButtonTextElem.val().trim()) {\r\n callToActionButtonTextElem.addModifiers(\"invalid\");\r\n isCallToActionValid = false;\r\n }\r\n else {\r\n callToActionButtonTextElem.removeModifiers(\"invalid\");\r\n isCallToActionValid = true;\r\n }\r\n const linkElem = $(\".\" + this.prefixId + \"__input--link-button\");\r\n if (!isValidHttpUrl(linkElem.val())) {\r\n linkElem.addModifiers(\"invalid\");\r\n isCallToActionValid = false;\r\n }\r\n else {\r\n linkElem.removeModifiers(\"invalid\");\r\n isCallToActionValid = true;\r\n }\r\n }\r\n return isCallToActionValid;\r\n }\r\n\r\n private bindDeleteArticle = (): void => {\r\n $(\".\" + this.prefixId + \"__button--delete\").unbind();\r\n $(\".\" + this.prefixId + \"__button--delete\").on(\"click\", event => {\r\n if (!this.selectedArticleId)\r\n return;\r\n\r\n this.showDeleteArticlePopup(this.selectedArticleId);\r\n });\r\n }\r\n\r\n private bindNewArticleButton = (): void => {\r\n $(\".\" + this.prefixId + \"__button-new\").unbind();\r\n $(\".\" + this.prefixId + \"__button-new\").on(\"click\", () => {\r\n if (!this.hasUnsavedChanges) {\r\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n return;\r\n }\r\n const article = this.articles.getById(this.selectedArticleId ?? 0);\r\n if (article?.isDraftArticle) {\r\n this.showSaveArticlePopup(() => {\r\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".\" + this.prefixId + \"__button--save\").click();\r\n });\r\n }\r\n else {\r\n this.showPublishArticlePopup(() => {\r\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".\" + this.prefixId + \"__button--publish\").click();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindClickOnArticle = (): void => {\r\n $(\".\" + this.prefixId + \"__my-article\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n if (!this.hasUnsavedChanges) {\r\n return this.switchArticle(elem);\r\n }\r\n\r\n const article = this.articles.getById(this.selectedArticleId ?? 0);\r\n if (article?.isDraftArticle) {\r\n this.showSaveArticlePopup(() => {\r\n return this.switchArticle(elem);\r\n }, () => {\r\n $(\".\" + this.prefixId + \"__button--touch-up\").click();\r\n });\r\n }\r\n else {\r\n this.showPublishArticlePopup(() => {\r\n return this.switchArticle(elem);\r\n }, () => {\r\n $(\".\" + this.prefixId + \"__button--save\").click();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private switchArticle = (elem: JQuery) => {\r\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\r\n elem.addModifiers(\"selected\");\r\n\r\n const articleId = +elem.data(\"article-id\");\r\n const article = this.articles.getById(articleId);\r\n if (!article) return;\r\n\r\n if (this.subLeagues && this.subLeagues.count() > 0) this.updateDropdown(article.poolId);\r\n\r\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${article.authorFullname}`);\r\n\r\n this.setFormData(article.articleId, article.articleImageUrl, article.title, article.body, article.hasCallToActionButton, article.callToActionButtonText, article.callToActionButtonUrl, article.isDraftArticle);\r\n }\r\n\r\n private checkForChecked = (): void => {\r\n $(\".\" + this.prefixId + \"__checkbox\").unbind();\r\n $(\".\" + this.prefixId + \"__checkbox\").on(\"change\", e => {\r\n this.callToActionCheckbox($(e.currentTarget));\r\n this.hasUnsavedChanges = true;\r\n });\r\n }\r\n\r\n private callToActionCheckbox = (elem: JQuery): void => {\r\n const button = $(\".\" + this.prefixId + \"__call-to-action-button\");\r\n if (elem.is(\":checked\")) {\r\n button.removeAttr(\"disabled\");\r\n $(\".\" + this.prefixId + \"__input--text-button\").removeAttr(\"disabled\");\r\n $(\".\" + this.prefixId + \"__input--link-button\").removeAttr(\"disabled\");\r\n\r\n button.addModifiers(\"checked\");\r\n }\r\n else {\r\n button.attr(\"disabled\", \"disabled\");\r\n $(\".\" + this.prefixId + \"__input--text-button\").attr(\"disabled\", \"disabled\");\r\n $(\".\" + this.prefixId + \"__input--link-button\").attr(\"disabled\", \"disabled\");\r\n button.removeModifiers(\"checked\");\r\n }\r\n }\r\n\r\n private showSaveArticlePopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\r\n $.newPopup(\"save-article-popup\");\r\n $.togglePopup(\"#save-article-popup\", true, true);\r\n\r\n $(\"#save-article-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-article-popup\", false, true);\r\n onDoNotSaveClick();\r\n this.hasUnsavedChanges = false;\r\n });\r\n\r\n $(\"#save-article-popup .popup-content-header__close,#save-article-popup .popup-content-body-cancel-button,#save-article-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#save-article-popup\", false, true);\r\n });\r\n $(\"#save-article-popup .popup-content-body-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-article-popup\", false, true);\r\n onSaveClick();\r\n });\r\n }\r\n\r\n private showPublishArticlePopup = (onDoNotPublishClick: Function, onPublishClick: Function) => {\r\n $.newPopup(\"publish-article-popup\");\r\n $.togglePopup(\"#publish-article-popup\", true, true);\r\n\r\n $(\"#publish-article-popup .popup-content-body-do-not-publish-button\").on(\"click\", event => {\r\n $.togglePopup(\"#publish-article-popup\", false, true);\r\n onDoNotPublishClick();\r\n this.hasUnsavedChanges = false;\r\n });\r\n\r\n $(\"#publish-article-popup .popup-content-body-cancel-button,#publish-article-popup .popup-content-header__close,#publish-article-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#publish-article-popup\", false, true);\r\n });\r\n\r\n $(\"#publish-article-popup .popup-content-body-publish-button\").on(\"click\", () => {\r\n $.togglePopup(\"#publish-article-popup\", false, true);\r\n onPublishClick();\r\n });\r\n }\r\n\r\n private showDeleteArticlePopup = (articleId: number) => {\r\n $.newPopup(\"remove-article-popup\");\r\n $.togglePopup(\"#remove-article-popup\", true, true);\r\n\r\n $(\"#remove-article-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Article.DeleteConfirmation\")?.format(this.articles.getById(articleId)?.title));\r\n\r\n $(\"#remove-article-popup .popup-content-body-close-button,#remove-article-popup .popup-content-header__close,#remove-article-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#remove-article-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-article-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\r\n this.articleRepository.delete(articleId, this.selectedSubLeagueId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Article.Removed\");\r\n this.articles = Business.Articles.fromJson(apiResult.content);\r\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\r\n this.bindClickOnArticle();\r\n this.bindNewArticleButton();\r\n\r\n this.resetFormData();\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\r\n $.togglePopup(\"#remove-article-popup\", false, true);\r\n });\r\n });\r\n }\r\n }\r\n}","module BusinessManagement {\r\n export class ArticlesRenderer {\r\n private articlesTemplate: HandlebarsTemplateDelegate;\r\n private articleTemplate: HandlebarsTemplateDelegate;\r\n private articleHeaderTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderHeaderImage = (imageUrl: string, prefixId: string): void => {\r\n if (this.articleHeaderTemplate == null) {\r\n this.articleHeaderTemplate = Handlebars.compile($(\"#\" + prefixId + \"__article-header-image\").html());\r\n Handlebars.registerPartial(\"articleHeaderImage\", this.articleHeaderTemplate);\r\n }\r\n\r\n $(\".\" + prefixId + \"__upload-image\").html(this.articleHeaderTemplate({ imageUrl, hasImageUrl: !_.isEmpty(imageUrl) }));\r\n }\r\n\r\n public renderMyArticles = (model: Business.Articles, prefixId: string, callback: Function): void => {\r\n if (this.articlesTemplate == null) {\r\n this.articlesTemplate = Handlebars.compile($(\"#\" + prefixId + \"__my-articles-template\").html());\r\n }\r\n if (this.articleTemplate == null) {\r\n this.articleTemplate = Handlebars.compile($(\"#\" + prefixId + \"__my-article-template\").html());\r\n Handlebars.registerPartial(\"articlePartial\", this.articleTemplate);\r\n }\r\n\r\n $(\".\" + prefixId + \"__my-articles-placeholder\").html(this.articlesTemplate(model));\r\n\r\n callback();\r\n }\r\n }\r\n}","module BusinessManagement {\r\n export class HelpControllerHelper {\r\n private readonly helpRenderer: BusinessManagement.HelpRenderer;\r\n private faqRepository: Business.IFaqRepository;\r\n private accountDataRepository: Business.IAccountDataRepository;\r\n private platformRepository: Platform.Repository;\r\n\r\n private faqCategoriesModel: Business.FaqCategoriesModel;\r\n\r\n private readonly prefixId: string;\r\n private readonly marketId: number;\r\n\r\n private readonly faqType: Business.FaqType;\r\n\r\n constructor(prefixId: string, marketId: number, faqType: Business.FaqType, faqRepository: Business.IFaqRepository,\r\n accountDataRepository: Business.IAccountDataRepository, platformApiSettings: Platform.ApiSettings) {\r\n this.faqRepository = faqRepository;\r\n this.accountDataRepository = accountDataRepository;\r\n this.prefixId = prefixId;\r\n this.marketId = marketId;\r\n this.faqType = faqType;\r\n this.helpRenderer = new HelpRenderer();\r\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n }\r\n\r\n public loadTabData = () => {\r\n this.helpRenderer.renderTemplate(null, () => { });\r\n\r\n return $.when(\r\n this.platformRepository.getGameInfo(this.marketId),\r\n this.accountDataRepository.getSalesAccountData(),\r\n this.platformRepository.getCountries())\r\n .done((gameInfo: Platform.GameInfo, accountData: Business.SalesAccountData, countries: Platform.Countries) => {\r\n this.faqRepository.getCategories(gameInfo.gameId, this.faqType).done((faqCategories: Business.FaqCategories) => {\r\n this.faqCategoriesModel = Business.FaqCategoriesModel.fromDto(faqCategories);\r\n\r\n this.helpRenderer.renderTemplate(this.faqCategoriesModel, () => {\r\n this.openQuestions();\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n\r\n this.helpRenderer.renderContactForm(accountData, () => {\r\n this.bindSendEmail();\r\n this.initializeCountryData(accountData?.administratorPhoneNumber ?? \"\", countries);\r\n });\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private initializeCountryData = (phoneNumber: string, countries: Platform.Countries) => {\r\n const countryCode = phoneNumber?.split(\" \")[0];\r\n\r\n $(\".business-help__phonenumber-input\").on(\"change\", e => {\r\n const country = countries.getByCode($(e.currentTarget).val());\r\n $(\".business-help__first-digits\").val(country.countryCallingCode);\r\n });\r\n\r\n const countryCodes = countries.getCountryCallingCodes();\r\n _.each(countryCodes, key => {\r\n $(\".business-help__first-digits\").append(``)\r\n });\r\n }\r\n\r\n private openQuestions = () => {\r\n $(`.business-help__category`).on(\"click\", event => {\r\n $(`.business-help__arrow-down--selected`).removeModifiers('selected');\r\n const elem = $(event.currentTarget);\r\n const category: Business.FaqType = +elem.data(\"id\");\r\n\r\n this.faqCategoriesModel.update(elem.hasModifier(\"selected\") ? -1 : category);\r\n\r\n this.helpRenderer.renderTemplate(this.faqCategoriesModel, () => {\r\n this.openQuestions();\r\n });\r\n });\r\n\r\n $(`.business-help__question`).on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n if (elem.hasModifier(\"selected\")) {\r\n this.toggleSlide(elem, false);\r\n }\r\n else {\r\n $(`.business-help__question`).removeModifiers(\"selected\");\r\n this.toggleSlide(elem, true);\r\n }\r\n });\r\n }\r\n\r\n public toggleSlide = (questionContainer: JQuery, open: boolean): void => {\r\n const contentPlaceholder = questionContainer.find(\".business-help__question-answer\");\r\n $(\".business-help__question-answer\").removeModifiers(\"selected\").height(0);\r\n $(\".business-help__open-arrow\").removeModifiers(\"selected\");\r\n\r\n if (open) {\r\n const content = contentPlaceholder.children(\":first-child\");\r\n contentPlaceholder.height(content.outerHeight() + 15);\r\n contentPlaceholder.addModifiers(\"selected\");\r\n questionContainer.find(\".business-help__open-arrow\").addModifiers(\"selected\");\r\n questionContainer.addModifiers(\"selected\");\r\n }\r\n else {\r\n questionContainer.removeModifiers(\"selected\");\r\n }\r\n }\r\n\r\n private bindSendEmail = () => {\r\n $(\".business-help .business-help__submit\").prop(\"onclick\", null).off(\"click\");\r\n $(\".business-help .business-help__submit\").on(\"click\", event => {\r\n let valid = true;\r\n const helpTab = $(\".business-help:visible\");\r\n const businessElement = helpTab.find(\".business-help__business\");\r\n const business = businessElement.val();\r\n\r\n const nameElement = helpTab.find(\".business-help__admin\");\r\n const name = nameElement.val();\r\n\r\n const emailElement = helpTab.find(\".business-help__email\");\r\n const email = emailElement.val();\r\n\r\n const firstDigitsElement = helpTab.find(\".business-help__first-digits\");\r\n const firstDigits = firstDigitsElement.val();\r\n\r\n const lastDigitsElement = helpTab.find(\" .business-help__last-digits\");\r\n const lastDigits = lastDigitsElement.val();\r\n\r\n const messageElement = helpTab.find(\".business-help__textarea\");\r\n const message = messageElement.val();\r\n\r\n if (business === undefined || business === \"\") {\r\n valid = false;\r\n businessElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (name === undefined || name === \"\") {\r\n valid = false;\r\n nameElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (email === undefined || email === \"\") {\r\n valid = false;\r\n emailElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (firstDigits === undefined || firstDigits === \"\") {\r\n valid = false;\r\n firstDigitsElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (lastDigits === undefined || lastDigits === \"\") {\r\n valid = false;\r\n lastDigitsElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (message === undefined || message === \"\") {\r\n valid = false;\r\n messageElement.addClass(\"business-help__input--invalid\");\r\n }\r\n\r\n if (valid) {\r\n var formData = new FormData();\r\n formData.append(\"subject\", business);\r\n formData.append(\"message\", message);\r\n formData.append(\"name\", name);\r\n formData.append(\"email\", email);\r\n formData.append(\"phoneNumber\", firstDigits + lastDigits);\r\n\r\n this.platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\r\n messageElement.val(\"\");\r\n messageElement.removeModifiers(\"invalid\");\r\n Business.Toast.displayLabel(\"Business.Management.Help.SendEmail.Success\");\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}","module BusinessManagement {\r\n export class HelpRenderer {\r\n private helpCategoriesTemplate: HandlebarsTemplateDelegate;\r\n private questionsTemplate: HandlebarsTemplateDelegate;\r\n private contactTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (model: BaseList, callBack: Function): void => {\r\n if (this.helpCategoriesTemplate == null) {\r\n this.helpCategoriesTemplate = Handlebars.compile($(\"#help-categories-template\").html());\r\n }\r\n if (this.questionsTemplate == null) {\r\n this.questionsTemplate = Handlebars.compile($(\"#help-questions-template\").html());\r\n Handlebars.registerPartial(\"questionsPartial\", this.questionsTemplate);\r\n }\r\n\r\n $(\".business-help__categories-placeholder\").html(this.helpCategoriesTemplate(model));\r\n callBack();\r\n }\r\n\r\n public renderContactForm = (model: Business.SalesAccountData, callBack: Function) => {\r\n if (this.contactTemplate == null) {\r\n this.contactTemplate = Handlebars.compile($(\"#contact-template\").html());\r\n }\r\n\r\n const phoneNumber = model.administratorPhoneNumber?.split(\" \").slice(1).join(\" \").trim();\r\n $(\".business-help__contact-placeholder\").html(this.contactTemplate(_.extend(model, { phoneNumber })));\r\n\r\n callBack();\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule BusinessManagement {\r\n export class InviteControllerHelper {\r\n private readonly inviteRepository: Business.IInviteRepository;\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly marketId: number;\r\n private readonly salesUser: Business.SalesUser;\r\n private readonly hasSubLeagues: boolean;\r\n private selectedSubLeagueId: number;\r\n\r\n constructor(selectedSubLeagueId: number, marketId: number, salesUser: Business.SalesUser, platformRepository: Platform.Repository, inviteRepository: Business.IInviteRepository, hasSubLeagues: boolean) {\r\n this.inviteRepository = inviteRepository;\r\n this.platformRepository = platformRepository;\r\n this.salesUser = salesUser;\r\n this.hasSubLeagues = hasSubLeagues;\r\n\r\n this.marketId = marketId;\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n\r\n if ($(\".business-invite__tables\").children().length > 2) {\r\n $(\".invite-explanation-table\").addModifiers(\"three-columns\");\r\n $(\".invite-unique-link-table\").addModifiers(\"three-columns\");\r\n $(\".invite-universal-link-table\").addModifiers(\"three-columns\");\r\n }\r\n }\r\n\r\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n this.getData();\r\n }\r\n\r\n public loadTabData = (isConfigurationComplete: boolean) => {\r\n $(\".business-invite__configuration-notice\").toggle(!isConfigurationComplete);\r\n $(\".business-invite__tables\").hide();\r\n $(\".business-invite__market-notice\").hide();\r\n $(\".invite-universal-link-table\").toggle(isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues));\r\n $(\".invite-unique-link-table\").toggle(!isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues));\r\n\r\n const isClientAdmin = isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator();\r\n if (!isConfigurationComplete || !isClientAdmin)\r\n $(\".business-invite__subleagues-notice\").hide();\r\n else if (isClientAdmin)\r\n $(\".business-invite__subleagues-notice\").toggle(!this.hasSubLeagues);\r\n\r\n const labelKey = \"Business.Management.Invite.LinkNotAvailableYet\";\r\n $(\".invite-explanation-table__universal-invite-link\").addModifiers(\"unavailable\").text(TranslationData.get(labelKey));\r\n $(\".invite-universal-link-table\").addModifiers(\"disabled\");\r\n\r\n $(\".invite-explanation-table__unique-invite-link\").addModifiers(\"unavailable\").html(TranslationData.get(labelKey));\r\n $(\".invite-explanation-table\").addModifiers(\"disabled\");\r\n\r\n if (!isConfigurationComplete || !this.hasSubLeagues) return $.Deferred();\r\n\r\n return this.getData();\r\n }\r\n\r\n\r\n private getData = () => {\r\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\r\n this.inviteRepository.getInviteMailContent(this.selectedSubLeagueId).done(inviteContent => {\r\n if (inviteContent.hasNull()) {\r\n return;\r\n }\r\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues)) {\r\n $(\".invite-universal-link-table\").removeModifiers(\"disabled\");\r\n if (inviteContent.hasSubLeagues) {\r\n $(\".invite-explanation-table__universal-invite-link\").removeModifiers(\"unavailable\").html(`${inviteContent.universalInviteUrl}`);\r\n $(\".invite-explanation-table__copy-universal-link-button\").removeModifiers(\"hidden\");\r\n $(\".invite-explanation-table__go-to-subleagues-button\").addModifiers(\"hidden\");\r\n }\r\n else {\r\n $(\".invite-explanation-table__copy-universal-link-button\").addModifiers(\"hidden\");\r\n $(\".invite-explanation-table__go-to-subleagues-button\").removeModifiers(\"hidden\");\r\n $(\".invite-explanation-table__universal-invite-link\").text(TranslationData.get(\"Business.Management.Invite.NoSubLeaguesAvailable\"));\r\n }\r\n }\r\n\r\n $(\".invite-explanation-table__unique-invite-link\").removeModifiers(\"unavailable\").html(`${inviteContent.uniqueInviteUrl}`);\r\n $(\".invite-unique-link-table\").removeModifiers(\"disabled\");\r\n $(\".invite-explanation-table\").removeModifiers(\"disabled\");\r\n $(\".business-invite__tables\").show();\r\n\r\n $(\".invite-explanation-table__copy-invite-button\").removeClickListeners().on(\"click\", () => {\r\n this.showPopup(inviteContent.mailContent);\r\n });\r\n\r\n $(\".invite-explanation-table__copy-unique-link-button\").removeClickListeners().on(\"click\", () => {\r\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(inviteContent.uniqueInviteUrl);\r\n copiedToClipboard.then((success) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\r\n }).fail((failure) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\r\n })\r\n });\r\n\r\n $(\".invite-explanation-table__copy-universal-link-button\").removeClickListeners().on(\"click\", () => {\r\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(inviteContent.universalInviteUrl);\r\n copiedToClipboard.then((success) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\r\n }).fail((failure) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\r\n })\r\n });\r\n\r\n $(\".invite-explanation-table__go-to-subleagues-button\").removeClickListeners().on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=${Business.ClientAdminTabType.SubLeagues}]`).click();\r\n scrollTo(0, 0);\r\n });\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private showPopup = (content: string): void => {\r\n const popup = $.newPopup(\"copy-invite-popup\");\r\n $('#copy-invite-popup .popup-content-body__fake-textbox').text(content);\r\n $.togglePopup(\"#copy-invite-popup\", !popup.hasClass('popup--open'), true);\r\n\r\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").html(content.replace(/(?:\\r\\n|\\r|\\n)/g, \"
\"));\r\n\r\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").on('mouseup', function () {\r\n var sel, range;\r\n var el = $(this)[0];\r\n if (window.getSelection && document.createRange) { //Browser compatibility\r\n sel = window.getSelection();\r\n if (sel.toString() == '') { //no text selection\r\n window.setTimeout(function () {\r\n range = document.createRange(); //range object\r\n range.selectNodeContents(el); //sets Range\r\n sel.removeAllRanges(); //remove all ranges from selection\r\n sel.addRange(range);//add Range to a Selection.\r\n }, 1);\r\n }\r\n }\r\n });\r\n\r\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").removeClickListeners().on(\"click\", () => {\r\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(content);\r\n copiedToClipboard.then((success) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\r\n }).fail((failure) => {\r\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\r\n })\r\n });\r\n\r\n $(\"#copy-invite-popup .popup-content-header__close,#copy-invite-popup .popup-content-body-close-button,#copy-invite-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#copy-invite-popup\", false, true);\r\n });\r\n }\r\n }\r\n}","module BusinessManagement {\r\n export enum ParticipantMailMode {\r\n Manual = 0,\r\n All = 1\r\n }\r\n}","module BusinessManagement {\r\n import Participants = Business.Participants;\r\n\r\n const SupportedGameTypes = [\r\n KnownGameIds.FootballTournament,\r\n KnownGameIds.FootballMatchDuel,\r\n KnownGameIds.FootballTournamentManager\r\n ]\r\n\r\n export class ParticipantsControllerHelper {\r\n protected subLeagueRepository: Business.ISubLeagueRepository;\r\n private readonly dd = KnownGameIds.CyclingManager\r\n private readonly participantsRenderer: BusinessManagement.ParticipantsRenderer;\r\n private readonly participantRepository: Business.ParticipantRepository;\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly leagueRepository: League.Repository;\r\n private readonly rankingRepository: Business.RankingRepository;\r\n private readonly userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\r\n private readonly frontendOrderingAndFilteringThreshold: number;\r\n private readonly tabSelector: string;\r\n private readonly prefixId: string;\r\n private readonly participantsUrl: string;\r\n private requestStorageKey: string;\r\n private nrOfParticipants: number;\r\n private leagueName: string;\r\n private selectedSubLeagueId: number;\r\n private mainLeagueId: number;\r\n private isSubLeaguesFeatureSupported: boolean;\r\n\r\n constructor(tabSelector: \".client-administrator__tab-content\" | \".league-administrator__tab-content\", prefixId: string, selectedSubLeagueId: number, participantsUrl: string, frontendOrderingAndFilteringThreshold: number,\r\n participantsRepository: Business.ParticipantRepository, subLeagueRepository: Business.ISubLeagueRepository, userPredictionStatusRepository: Business.IUserPredictionStatusRepository, platformRepository: Platform.Repository,\r\n leagueRepository: League.Repository, mainLeagueId: number, isSubLeaguesFeatureSupported: boolean, private marketId: number, rankingRepository: Business.RankingRepository) {\r\n this.tabSelector = tabSelector;\r\n this.prefixId = prefixId;\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n this.participantRepository = participantsRepository;\r\n this.subLeagueRepository = subLeagueRepository;\r\n this.userPredictionStatusRepository = userPredictionStatusRepository;\r\n this.platformRepository = platformRepository;\r\n this.leagueRepository = leagueRepository;\r\n this.participantsUrl = participantsUrl;\r\n this.frontendOrderingAndFilteringThreshold = frontendOrderingAndFilteringThreshold;\r\n this.mainLeagueId = mainLeagueId;\r\n this.isSubLeaguesFeatureSupported = isSubLeaguesFeatureSupported;\r\n this.participantsRenderer = new BusinessManagement.ParticipantsRenderer();\r\n this.rankingRepository = rankingRepository;\r\n this.requestStorageKey = `rankingRequest:${selectedSubLeagueId}`;\r\n }\r\n\r\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\r\n this.selectedSubLeagueId = selectedSubLeagueId;\r\n this.requestStorageKey = `rankingRequest:${selectedSubLeagueId}`;\r\n\r\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\r\n if (gameInfo.isOnline()) {\r\n this.loadPoolParticipantData();\r\n }\r\n });\r\n }\r\n\r\n public loadTabData = (isConfigurationComplete: boolean) => {\r\n $(\".business-participants__notice\").toggle(!isConfigurationComplete);\r\n const content = $(\".business-participants__content\");\r\n isConfigurationComplete ? content.show() : content.hide();\r\n $(\".business-participants__market-notice\").toggle(false);\r\n\r\n this.participantsRenderer.renderTemplate(new Participants(0, 0, 0, 0, \"\", [], []), this.tabSelector, this.prefixId, () => {\r\n this.stylePage();\r\n });\r\n\r\n if (!isConfigurationComplete) {\r\n return $.Deferred();\r\n }\r\n\r\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\r\n $(\".business-participants__market-notice\").toggle(!gameInfo.isOnline());\r\n\r\n if (gameInfo.isOnline()) {\r\n Business.LoadingOverlayRenderer.showLoadingOverlay({\r\n firstLabelKey: \"Business.Participants.LoadingMessage.1\",\r\n secondLabelKey: \"Business.Participants.LoadingMessage.2\",\r\n thirdLabelKey: \"Business.Participants.LoadingMessage.3\",\r\n });\r\n this.loadPoolParticipantData();\r\n return;\r\n }\r\n const momentOnlineDate = moment.utc(gameInfo.onlineDate).locale(uiCulture);\r\n const description = TranslationData.get(\"Business.Management.Invite.GameNotOnlineDescription\")?.format(momentOnlineDate.format(\"dddd DD MMMM\"));\r\n $(\".business-participants__market-notice:visible .market-not-online-notice__description\").html(description);\r\n $(\".business-participants__content\").hide();\r\n });\r\n }\r\n\r\n private loadPoolParticipantData(): JQueryPromise {\r\n return this.participantRepository.get(this.selectedSubLeagueId, 0, this.frontendOrderingAndFilteringThreshold)\r\n .done(participants => {\r\n this.leagueName = participants.leagueName;\r\n this.nrOfParticipants = participants.participantCount;\r\n if (participants.participantCount <= this.frontendOrderingAndFilteringThreshold) {\r\n this.processParticipants(participants);\r\n this.processParticipantsPredictionStatusses(participants, (processedParticipants) => {\r\n this.processParticipants(processedParticipants);\r\n });\r\n return;\r\n }\r\n\r\n this.loadPerPageAndProcessServerSide();\r\n })\r\n .fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.FailedToLoadParticipants\"));\r\n }).always(() => {\r\n Business.LoadingOverlayRenderer.hideLoadingOverlay();\r\n });\r\n }\r\n\r\n private loadPerPageAndProcessServerSide(): void {\r\n this.stylePage();\r\n this.styleParticipantDataTableServerSideProcessing();\r\n this.bindSearchbar();\r\n this.bindMailAllButton();\r\n this.bindSendMailButton();\r\n this.bindParticipantClick();\r\n this.handleRankingClick();\r\n }\r\n\r\n private processParticipants = (participants: Business.Participants) => {\r\n this.participantsRenderer.renderTemplate(participants, this.tabSelector, this.prefixId, () => {\r\n this.stylePage();\r\n this.bindSearchbar();\r\n this.bindMailAllButton();\r\n this.bindSendMailButton();\r\n this.bindParticipantClick();\r\n this.handleRankingClick();\r\n });\r\n }\r\n\r\n private processParticipantsPredictionStatusses = (\r\n participants: Business.Participants,\r\n callback: (processedParticipants: Business.Participants) => void,\r\n ): void => {\r\n this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\r\n if (SupportedGameTypes.indexOf(gameInfo.gameId) === -1) {\r\n return;\r\n }\r\n\r\n // Group by shard id\r\n const participantsByShardIdDictionary = _.groupBy(participants.list, i => this.getShardId(i.userId));\r\n // Setup variables in advance \r\n const deferreds = [];\r\n let processedParticipants = participants.clone();\r\n processedParticipants.list = [];\r\n\r\n // Loop through users by shard ids\r\n _.keys(participantsByShardIdDictionary).forEach(key => {\r\n if (participantsByShardIdDictionary.hasOwnProperty(key)) {\r\n const participantsPerShardId = participantsByShardIdDictionary[key];\r\n const shardId = parseInt(key);\r\n\r\n // Process participants by shard id\r\n const marketDeferred = this.platformRepository.activeAndUpcoming(shardId);\r\n const upsDeferred = this.userPredictionStatusRepository.get(shardId, this.marketId, participantsPerShardId.map(i => i.userId));\r\n\r\n const def = $.when(marketDeferred, upsDeferred)\r\n .done((markets: Platform.Market[], userPredictionStatusses: Business.UserPredictionStatuses[]) => {\r\n // Validation\r\n const marketIndex = markets.map(i => i.id).indexOf(this.marketId);\r\n\r\n if (marketIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!(markets[marketIndex].gameId in SupportedGameTypes)) {\r\n processedParticipants.list = processedParticipants.list.concat(participantsPerShardId);\r\n return;\r\n }\r\n\r\n const marketPredictionItems = markets[marketIndex].marketPredictionItems ?? [];\r\n\r\n // Sort user predictions to speed up processing\r\n const sortedUserPredictionStatusses = userPredictionStatusses.sort((a, b) => {\r\n if (a.userId === b.userId) {\r\n return 0;\r\n }\r\n else if (a.userId > b.userId) {\r\n return -1;\r\n }\r\n else if (a.userId < b.userId) {\r\n return 1;\r\n }\r\n });\r\n\r\n // Sort market prediction items to keep the columns and statusses consistent\r\n const sortedMarketPredictionItems = marketPredictionItems.sort((a, b) => {\r\n if (a.order === b.order) {\r\n return 0;\r\n }\r\n else if (a.order > b.order) {\r\n return -1;\r\n }\r\n else if (a.order < b.order) {\r\n return 1;\r\n }\r\n });\r\n\r\n processedParticipants.predictionStatusColumns = sortedMarketPredictionItems.map(i => i.name);\r\n\r\n participantsPerShardId.forEach(participant => {\r\n participant.userPredictionStatusList = [];\r\n\r\n const statusIndex = sortedUserPredictionStatusses.map(i => i.userId).indexOf(participant.userId);\r\n\r\n if (statusIndex === -1) {\r\n // If the status does not exist then assume the status is incomplete\r\n processedParticipants.predictionStatusColumns.forEach(i => participant.userPredictionStatusList.push(false));\r\n return;\r\n }\r\n\r\n const userPredictionStatus = sortedUserPredictionStatusses[statusIndex];\r\n\r\n sortedMarketPredictionItems.forEach(predictionItem => {\r\n if (!userPredictionStatus.predictableRoundModels || userPredictionStatus.predictableRoundModels.length === 0) {\r\n // If the prediction status does not exist then assume the status is incomplete\r\n participant.userPredictionStatusList.push(false);\r\n return;\r\n }\r\n\r\n const predictableRoundIndex = userPredictionStatus.predictableRoundModels.map(i => i.order).indexOf(predictionItem.order);\r\n\r\n if (predictableRoundIndex === -1) {\r\n // If the prediction status does not exist then assume the status is incomplete\r\n participant.userPredictionStatusList.push(false);\r\n return;\r\n }\r\n\r\n const finalUserPredictionStatus = userPredictionStatus.predictableRoundModels[predictableRoundIndex];\r\n participant.userPredictionStatusList.push(finalUserPredictionStatus.isComplete);\r\n });\r\n });\r\n processedParticipants.list = processedParticipants.list.concat(participantsPerShardId);\r\n });\r\n\r\n deferreds.push(def);\r\n }\r\n });\r\n\r\n $.when.apply(null, deferreds)\r\n .done(() => callback(processedParticipants))\r\n .fail(() => callback(participants));\r\n });\r\n };\r\n\r\n private stylePage() {\r\n this.requestStorageKey = `rankingRequest:${this.selectedSubLeagueId}`;\r\n const storageDate = localStorage.getItem(this.requestStorageKey);\r\n\r\n if (storageDate != null && moment.utc().diff(moment.utc(storageDate), \"hours\") <= 24) {\r\n $(\".business-participants__ranking-button\").addModifiers(\"disabled\");\r\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export.Requested\"));\r\n $(\".business-participants__ranking-info\").show();\r\n }\r\n else {\r\n localStorage.removeItem(this.requestStorageKey);\r\n $(\".business-participants__ranking-button\").removeModifiers(\"disabled\");\r\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export\"));\r\n $(\".business-participants__ranking-info\").hide();\r\n }\r\n\r\n var participantsString = this.nrOfParticipants ? this.nrOfParticipants > 1 ? TranslationData.get(\"Common.Participants\")\r\n : TranslationData.get(\"Common.Participant\") : '';\r\n $(\".business-participants__count\").html(this.nrOfParticipants ? this.nrOfParticipants.toString() : '');\r\n $(\".business-participants__participants\").html(participantsString);\r\n $(\".business-participants__subleague-name\").html(this.leagueName);\r\n\r\n \r\n }\r\n\r\n private bindSearchbar() {\r\n $(\".business-participants__search-bar\").on(\"input\", () => {\r\n const value = $(\".business-participants__search-bar:visible\").val();\r\n this.participantsRenderer.drawSearch(value);\r\n });\r\n }\r\n\r\n private handleDeleteClick = (deleteButton: JQuery): void => {\r\n const row = deleteButton.closest(\".business-participants-row\");\r\n const participantId = +row.data(\"participant-id\");\r\n const username = row.find(\".business-participants-row__username\").text();\r\n this.showPopup(participantId, username, this.leagueName);\r\n }\r\n\r\n private bindMailAllButton = () => {\r\n $(\".business-participants__table-header-mail-all\").on(\"change\", e => {\r\n const checked: boolean = $(e.currentTarget).prop(\"checked\");\r\n const participantMailMode = checked ? ParticipantMailMode.All : ParticipantMailMode.Manual;\r\n this.participantsRenderer.setMode(participantMailMode)\r\n\r\n if (participantMailMode === ParticipantMailMode.All) {\r\n $(\".business-participants__search-bar:visible\").val(\"\");\r\n this.participantsRenderer.drawSearch(\"\");\r\n $(\".mail-user-form\").addModifiers(\"visible\");\r\n $(\".mail-user-form__username\").text(this.leagueName);\r\n $(\".mail-user-form__send-button-participants\").show()\r\n }\r\n else {\r\n $(\".mail-user-form\").removeModifiers(\"visible\");\r\n $(\".mail-user-form__send-button-participants\").hide()\r\n }\r\n })\r\n }\r\n\r\n private bindSendMailButton() {\r\n $(\".mail-user-form__send-button\").unbind()\r\n $(\".mail-user-form__send-button\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n const checkedUsers = $(\".business-participants-row__radio-button:checked\");\r\n if (this.participantsRenderer.participantMailMode === ParticipantMailMode.Manual && checkedUsers.length < 1)\r\n return NotificationBar.Display(TranslationData.get(\"Business.Management.SelectUser\"));\r\n\r\n const subjectElem = $(\".mail-user-form__subject-field:visible\");\r\n const subject = $(\".mail-user-form__subject-field:visible\").val();\r\n const messageElem = $(\".mail-user-form__message-field:visible\");\r\n const message = $(\".mail-user-form__message-field:visible\").val();\r\n let valid = true;\r\n\r\n if (!subject) {\r\n subjectElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!message) {\r\n messageElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!valid) {\r\n return NotificationBar.Display(TranslationData.get(\"Common.CheckYourInput\"));\r\n }\r\n\r\n elem.addModifiers(\"disabled\");\r\n subjectElem.removeModifiers(\"invalid\");\r\n messageElem.removeModifiers(\"invalid\");\r\n Business.LoadingOverlayRenderer.showLoadingOverlay({\r\n firstLabelKey: \"Business.Participants.SendMailLoadingMessage.1\",\r\n secondLabelKey: \"Business.Participants.SendMailLoadingMessage.2\",\r\n thirdLabelKey: \"Business.Participants.SendMailLoadingMessage.3\",\r\n });\r\n let request: JQueryPromise;\r\n if (this.participantsRenderer.participantMailMode === ParticipantMailMode.All) {\r\n request = this.participantRepository.sendMessageToSubLeague(this.selectedSubLeagueId, subject, message);\r\n }\r\n else {\r\n const userToEmail = checkedUsers.closest(\".business-participants-row\").data(\"participant-id\");\r\n request = this.leagueRepository.sendPrivateMessage(this.selectedSubLeagueId, userToEmail, subject, message, true);\r\n }\r\n\r\n request.done((result) => {\r\n if (result.isSuccess()) {\r\n $(\".mail-user-form__subject-field\").val(\"\");\r\n $(\".mail-user-form__message-field\").val(\"\");\r\n $(\".business-participants-row__radio-button:checked\").prop(\"checked\", false);\r\n $(\".business-participants__table-header-mail-all\").prop(\"checked\", false);\r\n $(\".mail-user-form\").removeModifiers(\"visible\");\r\n this.participantsRenderer.setMode(ParticipantMailMode.Manual);\r\n Business.Toast.displayLabel(\"League.EmailSend.Success\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail(err => {\r\n console.error(`Failed to send message to participants: ${JSON.stringify(err)}`);\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.FailedToSendMessage\"));\r\n }).always(() => {\r\n elem.removeModifiers(\"disabled\");\r\n Business.LoadingOverlayRenderer.hideLoadingOverlay();\r\n $(\".mail-user-form__send-button-participants\").hide()\r\n });\r\n });\r\n }\r\n\r\n private showPopup = (participantId: number, participantUserName: string, subLeagueName: string) => { \r\n $.newPopup(\"remove-participant-popup\");\r\n $.togglePopup(\"#remove-participant-popup\", true, true);\r\n\r\n $(\"#remove-participant-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Participant.DeleteConfirmation\")?.format(participantUserName, subLeagueName));\r\n $(\"#remove-participant-popup .popup-content-header__close,#remove-participant-popup .popup-content-body-close-button,#remove-participant-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#remove-participant-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-participant-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n this.leagueRepository.removeParticipant(this.selectedSubLeagueId, participantId).done((result) => {\r\n if (result.isSuccess()) {\r\n $(`tr[data-participant-id='${participantId}']`).remove();\r\n this.nrOfParticipants--;\r\n this.stylePage();\r\n Business.Toast.displayLabel(\"League.ParticipantRejected\");\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.RemoveNotPossible\"));\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n $.togglePopup(\"#remove-participant-popup\", false, true);\r\n });\r\n }\r\n\r\n private styleParticipantDataTableServerSideProcessing() {\r\n this.participantsRenderer.renderServerSideTemplate(this.prefixId, `${this.participantsUrl}/${this.selectedSubLeagueId}`, this.mainLeagueId === this.selectedSubLeagueId, () => {\r\n this.bindParticipantClick();\r\n this.bindSendMailButton();\r\n })\r\n }\r\n\r\n private bindParticipantClick() {\r\n $(`#${this.prefixId}`)\r\n .removeClickListeners()\r\n .on(\"click\", \".business-participants-row__delete-icon\", e => {\r\n this.handleDeleteClick($(e.currentTarget));\r\n })\r\n .on(\"click\", \".business-participants-row__radio-button\", e => {\r\n $(\".mail-user-form__send-button-participants\").hide()\r\n $(\".mail-user-form\").addModifiers(\"visible\");\r\n this.handleMailClick($(e.currentTarget));\r\n });\r\n $(\".mail-user-form__send-button-participants\").text(`(${this.nrOfParticipants})`)\r\n }\r\n\r\n private handleMailClick = (radioButton: JQuery) => {\r\n const userId = radioButton.closest(\".business-participants-row\").attr(\"data-participant-id\");\r\n const userName = $(`.business-participants-row__username[data-participant-id=${userId}]`).first().text();\r\n\r\n $(\".mail-user-form__username\").text(userName);\r\n }\r\n\r\n private handleRankingClick = () => {\r\n $(\".business-participants__ranking-button\").on(\"click\", (e) => {\r\n if ($(e.currentTarget).hasModifier(\"loading\") || $(e.currentTarget).hasModifier(\"disabled\")) {\r\n return;\r\n }\r\n\r\n $(e.currentTarget).addModifiers(\"loading\");\r\n this.rankingRepository.request(this.selectedSubLeagueId).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n localStorage.setItem(this.requestStorageKey, moment.utc().toISOString());\r\n $(\".business-participants__ranking-button\").addModifiers(\"disabled\");\r\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export.Requested\"));\r\n $(\".business-participants__ranking-info\").show();\r\n Business.Toast.displayLabel(\"Business.Management.Ranking.Export.Requested.Toast\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(e => {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Ranking.RequestFailed\"))\r\n }).always(() => {\r\n $(e.currentTarget).removeModifiers(\"loading\");\r\n });\r\n });\r\n }\r\n\r\n getShardId = (userId: number): number => {\r\n return userId % 6 + 1\r\n }\r\n }\r\n}\r\n\r\n","/// \r\n\r\nmodule ClientAdministrator {\r\n export abstract class ClientAdministratorTabController extends Shared.TabController {\r\n protected tabType: Business.ClientAdminTabType;\r\n\r\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, tabType: Business.ClientAdminTabType,\r\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean = false) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, shouldCheckConfigurationComplete)\r\n this.tabType = tabType;\r\n\r\n this.initCustomTabEventListeners();\r\n }\r\n\r\n protected removePreload = (): void => {\r\n $(\".client-administrator__tabs-content\").removeModifiers(\"preload\");\r\n $(\".client-administrator__tab\").removeModifiers(\"preload\");\r\n $(\".league-administrator__tab\").removeModifiers(\"preload\");\r\n }\r\n\r\n protected initCustomTabEventListeners = () => {\r\n addEventListener(Business.ClientAdministratorController.TabSwitchEvent, (event: CustomEvent) => {\r\n if (event.detail.tabType !== this.tabType)\r\n return;\r\n\r\n if (this.tabDataLoaded) {\r\n return this.removePreload();\r\n }\r\n\r\n this.setTabDataLoaded(true);\r\n\r\n if (this.shouldCheckConfigurationComplete) {\r\n this.checkConfigurationComplete();\r\n } else {\r\n this.loadData();\r\n }\r\n }); \r\n\r\n addEventListener(Business.ClientAdministratorController.ResetTabDataLoadedEvent, (event: CustomEvent) => {\r\n if (event.detail?.tabType == null || event.detail?.tabType === this.tabType) {\r\n this.setTabDataLoaded(false);\r\n }\r\n });\r\n }\r\n }\r\n} ","module Business {\r\n export class ClientAdministratorRenderer {\r\n private configurationHeaderTemplate: HandlebarsTemplateDelegate;\r\n\r\n private configurationAdminTemplate: HandlebarsTemplateDelegate;\r\n private configurationLandingTemplate: HandlebarsTemplateDelegate;\r\n private configurationLogoTakeOverTemplate: HandlebarsTemplateDelegate;\r\n private configurationLogoTakeOverNotAvailableTemplate: HandlebarsTemplateDelegate;\r\n private configurationMailingTextTemplate: HandlebarsTemplateDelegate;\r\n private configurationMainLeagueNameTemplate: HandlebarsTemplateDelegate;\r\n private configurationRankingLogoTemplate: HandlebarsTemplateDelegate;\r\n private configurationSubLeaguesTemplate: HandlebarsTemplateDelegate;\r\n private configurationSubLeaguesNotAvailableTemplate: HandlebarsTemplateDelegate;\r\n private configurationPromotionalPackageTemplate: HandlebarsTemplateDelegate;\r\n private configurationBrandingPackageTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderStepHeaderTemplate = (model: ClientAdministratorStepModel, callBack: Function, keepSlidesOpenState: boolean = false): void => {\r\n if (this.configurationHeaderTemplate == null) {\r\n this.configurationHeaderTemplate = Handlebars.compile($(\"#configuration-header-template\").html());\r\n }\r\n $(`.client-administrator-configuration__step[data-step-id=\"${model.configurationStepType}\"] .configuration-header-placeholder`).html(this.configurationHeaderTemplate(model));\r\n if (model.isSlideOpen) {\r\n this.toggleSlide(model.configurationStepType, true, keepSlidesOpenState);\r\n }\r\n else {\r\n this.toggleSlide(model.configurationStepType, false, keepSlidesOpenState);\r\n }\r\n callBack();\r\n }\r\n\r\n public toggleSlide = (step: ConfigurationStepType, open: boolean, keepSlidesOpenState: boolean = false): void => {\r\n const stepContainer = $(`.client-administrator-configuration__step[data-step-id=\"${+step}\"]`);\r\n const contentPlaceholder = stepContainer.find(\".configuration-content-placeholder\");\r\n if (!keepSlidesOpenState)\r\n $(\".configuration-content-placeholder\").removeModifiers(\"open\").height(0);\r\n\r\n if (open) {\r\n const isOpen = $(\".client-administrator-configuration__arrow\").hasModifier(\"slide-open\");\r\n if (isOpen) {\r\n $(\".client-administrator-configuration__arrow\").removeModifiers(\"slide-open\");\r\n }\r\n const content = contentPlaceholder.children(\":first-child\");\r\n contentPlaceholder.height(content.outerHeight());\r\n contentPlaceholder.addModifiers(\"open\");\r\n stepContainer.find(\".client-administrator-configuration__arrow\").addModifiers(\"slide-open\");\r\n }\r\n else {\r\n $(\".client-administrator-configuration__arrow\").removeModifiers(\"slide-open\");\r\n }\r\n }\r\n\r\n public renderAdminTemplate = (model: AdministratorsModel, callback: Function): void => {\r\n if (this.configurationAdminTemplate == null) {\r\n this.configurationAdminTemplate = Handlebars.compile($(\"#step-one-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.Administrators)}`).html(this.configurationAdminTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderMainLeagueNameTemplate = (model: any, callback: Function) => {\r\n if (this.configurationMainLeagueNameTemplate == null) {\r\n this.configurationMainLeagueNameTemplate = Handlebars.compile($(\"#step-two-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.MainLeagueName)}`).html(this.configurationMainLeagueNameTemplate(model));\r\n\r\n callback();\r\n }\r\n\r\n public renderLogoTakeOverStepTemplate = (model: LogoTakeOverModel, callback: Function) => {\r\n if (this.configurationLogoTakeOverTemplate == null) {\r\n this.configurationLogoTakeOverTemplate = Handlebars.compile($(\"#step-three-client-administrator-template\").html());\r\n }\r\n if (this.configurationLogoTakeOverNotAvailableTemplate == null) {\r\n this.configurationLogoTakeOverNotAvailableTemplate = Handlebars.compile($(\"#step-three-not-available-client-administrator-template\").html());\r\n Handlebars.registerPartial(\"stepThreeNotAvailablePartial\", this.configurationLogoTakeOverNotAvailableTemplate);\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.LogoTakeOver)}`).html(this.configurationLogoTakeOverTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderLandingTemplate = (model: any, callback: Function) => {\r\n if (this.configurationLandingTemplate == null) {\r\n this.configurationLandingTemplate = Handlebars.compile($(\"#step-four-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.LandingsPage)}`).html(this.configurationLandingTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderRankingLogoTemplate = (rankingLogo: RankingLogoModel, message: string, callback: Function) => {\r\n if (this.configurationRankingLogoTemplate == null) {\r\n this.configurationRankingLogoTemplate = Handlebars.compile($(\"#step-five-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.RankingLogo)}`).html(this.configurationRankingLogoTemplate({ ...rankingLogo, message }));\r\n callback();\r\n }\r\n\r\n public renderMailingTextTemplate = (model: any, callback: Function) => {\r\n if (this.configurationMailingTextTemplate == null) {\r\n this.configurationMailingTextTemplate = Handlebars.compile($(\"#step-six-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.MailingText)}`).html(this.configurationMailingTextTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderSubleaguesTemplate = (model: MultiSubLeaguesModel, cdnUrl: string, callback: Function) => {\r\n if (this.configurationSubLeaguesTemplate == null) {\r\n this.configurationSubLeaguesTemplate = Handlebars.compile($(\"#step-seven-client-administrator-template\").html());\r\n }\r\n\r\n model.culture = uiCulture.split(\"-\")[0];\r\n model.cdnUrl = cdnUrl;\r\n\r\n if (this.configurationSubLeaguesNotAvailableTemplate == null) {\r\n this.configurationSubLeaguesNotAvailableTemplate = Handlebars.compile($(\"#step-seven-not-available-client-administrator-template\").html());\r\n Handlebars.registerPartial(\"stepSevenNotAvailablePartial\", this.configurationSubLeaguesNotAvailableTemplate(model));\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.SubLeagues)} `).html(this.configurationSubLeaguesTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderPromotionalPackage = (model: PromotionalPackageModel, callback: Function) => {\r\n if (this.configurationPromotionalPackageTemplate == null) {\r\n this.configurationPromotionalPackageTemplate = Handlebars.compile($(\"#step-promotional-package-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.PromotionalPackage)}`).html(this.configurationPromotionalPackageTemplate(model));\r\n callback();\r\n }\r\n\r\n public renderBrandingPackage = (model: BrandingPackageModel, callback: Function) => {\r\n if (this.configurationBrandingPackageTemplate == null) {\r\n this.configurationBrandingPackageTemplate = Handlebars.compile($(\"#step-branding-package-client-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(ConfigurationStepType.BrandingPackage)}`).html(this.configurationBrandingPackageTemplate(model));\r\n callback();\r\n }\r\n\r\n private getStepSelector = (type: ConfigurationStepType): string => {\r\n return `.client-administrator-configuration__step[data-step-id=\"${type}\"] .configuration-content-placeholder`;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n\r\n import cropperConfig = Business.cropperConfig;\r\n\r\n export class ConfigurationController extends ClientAdministrator.ClientAdministratorTabController {\r\n private static configurationCompletedLocalStorageKey = `sales.ConfigurationCompleted.${location.hostname}`;\r\n public static readonly ConfigurationChangedEvent: string = \"ConfigurationController.ConfigurationChangedEvent\";\r\n\r\n private clientAdministratorRenderer: ClientAdministratorRenderer;\r\n private administratorRepository: IAdministratorRepository;\r\n private accountDataRepository: Business.AccountDataRepository;\r\n private platformRepository: Platform.Repository;\r\n private leagueRepository: League.Repository;\r\n private actionsRepository: ActionsRepository;\r\n private subLeaguesRepository: Business.ISubLeagueRepository;\r\n private userRepository: Business.UserRepository;\r\n\r\n private administrators: AdministratorsModel;\r\n private countries: Platform.Countries;\r\n private clientMarketSettings: ClientMarketSettingsModel;\r\n private accountData: Business.SalesAccountData;\r\n private readonly leagueActionsEnabled: boolean;\r\n private mailingTextObserver: MutationObserver;\r\n private logoTakeOverState: { color: string, iconType: HeaderIconColorType };\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, userApiSettings: ApiSettings.UserApiSettings, platformApiSettings: Platform.ApiSettings,\r\n leagueApiSettings: League.ApiSettings, clientRepository: IClientRepository, leagueActionsEnabled: boolean) {\r\n\r\n super(cdnUrl, salesApiSettings, platformApiSettings, ClientAdminTabType.Configuration, clientRepository);\r\n this.administratorRepository = new AdministratorRepository(salesApiSettings, platformApiSettings);\r\n this.clientAdministratorRenderer = new ClientAdministratorRenderer();\r\n this.platformRepository = new Platform.Repository(platformApiSettings, this.marketId);\r\n this.leagueRepository = new League.Repository(leagueApiSettings);\r\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\r\n this.actionsRepository = new ActionsRepository(salesApiSettings);\r\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\r\n this.leagueActionsEnabled = leagueActionsEnabled;\r\n this.userRepository = new Business.UserRepository(userApiSettings);\r\n this.initEventListeners();\r\n }\r\n\r\n protected loadData = () => {\r\n $.when(\r\n this.administratorRepository.get(),\r\n this.clientRepository.getClientMarketSettings(this.marketId),\r\n this.accountDataRepository.getSalesAccountData(),\r\n this.platformRepository.getCountries()\r\n ).done((admins: Administrators, settings: ClientMarketSettings, accountData: Business.SalesAccountData, countries: Platform.Countries) => {\r\n this.countries = countries;\r\n this.accountData = accountData;\r\n this.logoTakeOverState = { color: settings.headerBackgroundColor, iconType: settings.headerIconColorType };\r\n this.administrators = AdministratorsModel.fromDTO(admins, countries);\r\n this.clientMarketSettings = ClientMarketSettingsModel.fromDto(settings, this.salesUser, this.cdnUrl);\r\n this.loadStepsHeader();\r\n this.loadStepsContent();\r\n this.initializeCountryData(accountData?.administratorPhoneNumber ?? \"\");\r\n ActionsController.getInstance().initialize(this.marketId, this.clientMarketSettings.actionsLeft(), this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n private loadStepsHeader = () => {\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepAdministrators(this.clientMarketSettings, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepMainLeagueName(this.clientMarketSettings),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepSubLeagues(this.clientMarketSettings, this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.loadSalesPackagesStepHeader();\r\n }\r\n\r\n private loadSalesPackagesStepHeader = () => {\r\n if (this.salesUser.hasPromotionalPackage()) {\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n }\r\n\r\n $(`.client-administrator-configuration__step[data-step-id=\"${ConfigurationStepType.PromotionalPackage}\"]`).toggle(this.salesUser.hasPromotionalPackage())\r\n\r\n if (this.salesUser.hasBrandingPackage()) {\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n }\r\n $(`.client-administrator-configuration__step[data-step-id=\"${ConfigurationStepType.BrandingPackage}\"]`).toggle(this.salesUser.hasBrandingPackage());\r\n }\r\n\r\n private loadStepsContent = (): void => {\r\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\r\n this.bindAddAdminButtonClick();\r\n this.bindDeleteAdminButtonClick();\r\n this.bindDeleteInvitationClick();\r\n });\r\n this.clientAdministratorRenderer.renderMainLeagueNameTemplate(this.clientMarketSettings.leagueNameModel, () => {\r\n this.bindCheckLeagueNameClick();\r\n });\r\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\r\n $(\".logo-take-over-slide__button-crop\").hide()\r\n this.bindLogoTakeOverUploadLogo();\r\n this.bindLogoTakeOverCropLogo();\r\n this.bindLogoTakeOverHeaderIcon();\r\n this.bindLogoTakeOverSetColor();\r\n this.bindLogoTakeOverSaveButton();\r\n });\r\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\r\n $(\".landing-page-slide__crop-button\").hide()\r\n this.bindUploadLandingPageLogo();\r\n this.bindOptinRequiredRadio();\r\n });\r\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, \"\", () => {\r\n this.bindUploadRankingPageLogo();\r\n this.bindCropRankingPageLogo();\r\n $(\".ranking-logo-slide__crop-button\").hide()\r\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\r\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\r\n }\r\n });\r\n this.clientAdministratorRenderer.renderMailingTextTemplate(this.clientMarketSettings.welcomeEmailModel, () => {\r\n CKEDITOR.replace(\"mailing-text-slide__mail-message\");\r\n CKEDITOR.addCss(\".cke_editable{cursor:text; font-size: 14px; font-family: Roboto-Regular, Arial;}\");\r\n CKEDITOR.instances[\"mailing-text-slide__mail-message\"].setData(this.clientMarketSettings.welcomeEmailModel.body);\r\n this.bindSaveWelcomeEmail();\r\n this.bindSendTestEmail();\r\n this.bindEmailCheckmark();\r\n });\r\n this.clientAdministratorRenderer.renderSubleaguesTemplate(this.clientMarketSettings.multiSubLeaguesModel, this.cdnUrl, () => {\r\n this.bindSubLeagues();\r\n });\r\n\r\n if (this.salesUser.hasPromotionalPackage()) {\r\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\r\n this.bindUploadPromotionalPackageLogo();\r\n this.bindCropPromotionalPackageLogo();\r\n this.bindConfirmPromotional();\r\n });\r\n }\r\n\r\n if (this.salesUser.hasBrandingPackage()) {\r\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\r\n this.bindUploadBrandingPackageLogo();\r\n this.bindCropBrandingPackageLogo();\r\n this.bindBrandingPackageButtons();\r\n this.determineBrandingPackageButtonState();\r\n });\r\n }\r\n\r\n this.bindUpgradeButton();\r\n }\r\n\r\n private initializeCountryData = (phoneNumber: string) => {\r\n const countryCode = phoneNumber?.split(\" \")[0];\r\n const countryDropDown = $(\".country-select-input--country\").empty();\r\n\r\n this.countries.sortByName().each(country => {\r\n countryDropDown.append(new Option(country.name, country.code));\r\n });\r\n\r\n countryDropDown.on(\"change\", e => {\r\n const country = this.countries.getByCode($(e.currentTarget).val());\r\n $(\".country-select-input--country-code-company\").val(country.countryCallingCode);\r\n });\r\n\r\n const countryCodeDropDown = $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").empty();\r\n const countryCodes = this.countries.getCountryCallingCodes();\r\n _.each(countryCodes, key => {\r\n countryCodeDropDown.append(new Option(`+${key}`, key, false, key === countryCode));\r\n });\r\n }\r\n\r\n private bindHeaderClick = () => {\r\n const clientAdminContentElem = $(\".client-administrator__tabs-content\");\r\n clientAdminContentElem.find(\".configuration-header-placeholder\").removeClickListeners();\r\n clientAdminContentElem.find(\".configuration-header-placeholder\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const stepType: ConfigurationStepType = +elem.closest(\".client-administrator-configuration__step\").data(\"step-id\");\r\n const contentPlaceholder = elem.next();\r\n const shouldOpenSlide = !contentPlaceholder.hasClass(\"configuration-content-placeholder--open\");\r\n if (this.clientMarketSettings && shouldOpenSlide && stepType === ConfigurationStepType.Administrators && !this.clientMarketSettings.hasOpenedAdmins) {\r\n this.clientRepository.saveHasOpenedAdmins(this.marketId).done(() => {\r\n this.clientMarketSettings.hasOpenedAdmins = true;\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepAdministrators(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.checkConfigurationCompletion();\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n\r\n this.clientAdministratorRenderer.toggleSlide(stepType, shouldOpenSlide);\r\n });\r\n }\r\n\r\n private bindAddAdminButtonClick = () => {\r\n $(\".administrators-slide__button-add\").on(\"click\", event => {\r\n let valid = true;\r\n const firstName = $(\"#firstName\").val();\r\n const lastName = $(\"#lastName\").val();\r\n const email = $(\"#email\").val();\r\n const countryCode = $(\"#countryCode\").val();\r\n const phoneNumber = $(\"#phoneNumber\").val();\r\n\r\n if (firstName === undefined || firstName === \"\") {\r\n valid = false;\r\n $(\"#firstName\").parent().addClass(\"invalid\");\r\n $(\"#firstName\").append(\"
\" + TranslationData.get(\"Business.FirstName.Invalid\") + \"
\");\r\n }\r\n\r\n if (lastName === undefined || lastName === \"\") {\r\n valid = false;\r\n $(\"#lastName\").parent().addClass(\"invalid\");\r\n $(\"#lastName\").append(\"
\" + TranslationData.get(\"Business.LastName.Invalid\") + \"
\");\r\n }\r\n\r\n if (!Email.Validate(email)) {\r\n valid = false;\r\n $(\"#email\").parent().addClass(\"invalid\");\r\n $(\"#email\").append(\"
\" + TranslationData.get(\"Business.Email.Invalid\") + \"
\");\r\n }\r\n\r\n if (countryCode === undefined || countryCode === \"\") {\r\n valid = false;\r\n $(\"#countryCode\").parent().addClass(\"invalid\");\r\n $(\"#countryCode\").append(\"
\" + TranslationData.get(\"Business.CountryCode.Invalid\") + \"
\");\r\n }\r\n\r\n if (phoneNumber === undefined || phoneNumber === \"\") {\r\n valid = false;\r\n $(\"#phoneNumber\").addClass(\"invalid\");\r\n $(\"#phoneNumber\").append(\"
\" + TranslationData.get(\"Business.PhoneNumber.Invalid\") + \"
\");\r\n }\r\n\r\n if (valid) {\r\n const callingCode = $(`#countryCode`).val();\r\n const country = this.countries.getByCallingCode(callingCode);\r\n if (country == null) {\r\n console.error(`Unknown country for country calling code ${callingCode}`);\r\n return NotificationBar.Display(TranslationData.get(\"Business.PhoneNumber.Unknown\"));\r\n }\r\n const model = new InviteModel(email, firstName, lastName, `${callingCode} ${phoneNumber}`, country.id);\r\n\r\n $.when(this.administratorRepository.invite(model)).done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n const admins = Administrators.fromJson(result.content);\r\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\r\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\r\n this.bindAddAdminButtonClick();\r\n this.bindDeleteAdminButtonClick();\r\n this.bindDeleteInvitationClick();\r\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\r\n });\r\n\r\n Toast.displayLabel(\"Business.AdminInvited\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindDeleteAdminButtonClick = () => {\r\n $(\".administrators-slide__button-delete--accepted\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const userId = +elem.data(\"userId\");\r\n const administrator = this.administrators.getByUserId(userId);\r\n this.showPopup(administrator);\r\n });\r\n }\r\n\r\n private bindDeleteInvitationClick = () => {\r\n $(\".administrators-slide__button-delete--unaccepted\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const inviteLinkId = elem.data(\"inviteLinkId\");\r\n const administrator = this.administrators.getByInviteLinkId(inviteLinkId);\r\n this.showPopup(administrator);\r\n });\r\n }\r\n\r\n private showPopup = (administrator: AdministratorModel) => {\r\n $.newPopup(\"remove-client-administrator-popup\");\r\n $.togglePopup(\"#remove-client-administrator-popup\", true, true);\r\n\r\n $(\"#remove-client-administrator-popup .popup-content-body__text-explanation\").html(TranslationData.get(\"Business.Management.ClientAdministrator.DeleteConfirmation\")?.format(administrator.getFullName()));\r\n\r\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\", () => {\r\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-client-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n if (administrator.isAcceptedAdmin())\r\n this.onDeleteAdmin(administrator.userId);\r\n else\r\n this.onDeleteInvitation(administrator.managementInvitationLinkId);\r\n\r\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\r\n });\r\n }\r\n\r\n private onDeleteAdmin = (userId: number) => {\r\n $.when(this.administratorRepository.deleteAdmin(userId))\r\n .done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n const admins = Administrators.fromJson(result.content);\r\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\r\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\r\n this.bindAddAdminButtonClick();\r\n this.bindDeleteAdminButtonClick();\r\n this.bindDeleteInvitationClick();\r\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\r\n });\r\n Toast.displayLabel(\"Business.AdminDeleted\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n\r\n private onDeleteInvitation = (inviteLinkId: number) => {\r\n $.when(this.administratorRepository.deleteInvitation(inviteLinkId))\r\n .done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n const admins = Administrators.fromJson(result.content);\r\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\r\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\r\n this.bindAddAdminButtonClick();\r\n this.bindDeleteAdminButtonClick();\r\n this.bindDeleteInvitationClick();\r\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\r\n });\r\n\r\n Toast.displayLabel(\"Business.AdminDeleted\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n\r\n private bindCheckLeagueNameClick = () => {\r\n $(\".main-league-slide__button\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const input = $(\".main-league-slide__input\");\r\n const leagueName = input.val();\r\n\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n if (leagueName === \"\" || leagueName.length > 25 || leagueName.length < 5) {\r\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\r\n $(\".main-league-slide__invalid-message\").addModifiers('visible');\r\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\r\n return;\r\n }\r\n\r\n if (!/[A-Za-z0-9]/.exec(leagueName.trim())) {\r\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\r\n $(\".main-league-slide__invalid-message\").addModifiers('visible');\r\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameMustContainNonSpecialCharactersError\")).show();\r\n return;\r\n }\r\n\r\n $(\".main-league-slide__input\").removeModifiers(\"invalid\");\r\n $(\".main-league-slide__error-message\").hide();\r\n\r\n $(\".main-league-slide__input\").prop(\"disabled\", true);\r\n elem.addModifiers(\"disabled\");\r\n\r\n this.leagueRepository.checkPoolName(regionId, this.marketId, leagueName)\r\n .done(valid => {\r\n if (!valid) {\r\n $(\".main-league-slide__input\").prop(\"disabled\", false);\r\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"League.SubleagueName.InUse\")).show();\r\n return;\r\n }\r\n\r\n const mainLeagueId = this.getMainLeagueId();\r\n this.clientRepository.saveLeagueName(this.marketId, leagueName, mainLeagueId ?? 0)\r\n .done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n if (!this.clientMarketSettings.hasCompletedLeagueName())\r\n this.createFirstSubleague(leagueName)\r\n\r\n this.clientMarketSettings.updateLeagueName(leagueName);\r\n this.salesUser.updateMainLeagueId(+apiResult.content);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepMainLeagueName(this.clientMarketSettings),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, \"\", () => {\r\n this.bindUploadRankingPageLogo();\r\n this.bindCropRankingPageLogo();\r\n $(\".ranking-logo-slide__crop-button\").hide()\r\n });\r\n\r\n // sales packages\r\n this.loadSalesPackagesStepHeader();\r\n $(\".branding-package-slide__request-preview-print-warning\").text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteBrandingImage\"));\r\n\r\n this.checkConfigurationCompletion();\r\n dispatchEvent(new CustomEvent(ClientAdministratorController.ResetTabDataLoadedEvent, { detail: { tabType: ClientAdminTabType.SubLeagues } }));\r\n $(\".main-league-slide__input\").removeModifiers(\"invalid\");\r\n $(\".main-league-slide__error-message\").hide();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n\r\n this.bindUploadPromotionalPackageLogo();\r\n }\r\n else {\r\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\r\n $(\".main-league-slide__error-message\").text(apiResult.message).show();\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n $(\".main-league-slide__input\").prop(\"disabled\", false);\r\n });\r\n })\r\n .fail((err) => {\r\n $(\".main-league-slide__input\").prop(\"disabled\", false);\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n\r\n $(\".main-league-slide__input\").on(\"change, input\", e => {\r\n if (this.clientMarketSettings.leagueNameModel.leagueName === $(e.currentTarget).val()) {\r\n $(\".main-league-slide__button\").addModifiers(\"disabled\");\r\n }\r\n else {\r\n $(\".main-league-slide__button\").removeModifiers(\"disabled\");\r\n }\r\n });\r\n }\r\n\r\n private createFirstSubleague = (leagueName: string) => {\r\n this.userRepository.getProfileDetails().done((profile: Platform.Profile) => {\r\n\r\n const adminOne = new Business.Administrator(0, 0, profile.email, profile.firstname, undefined, false, profile.lastname, '', 0, null, '');\r\n const adminOneModel = Business.AdministratorModel.fromDTO(adminOne, new Platform.Country(0, '', '', 0, 0, ''));\r\n const adminTwo = new Business.Administrator(0, 0, \"\", \"\", undefined, false, \"\", '', 0, null, '');\r\n const adminTwoModel = Business.AdministratorModel.fromDTO(adminTwo, new Platform.Country(0, '', '', 0, 0, ''));\r\n\r\n this.subLeaguesRepository.createSubLeague(this.marketId, leagueName + \"-subleague\", false, adminOneModel, adminTwoModel)\r\n })\r\n }\r\n\r\n private bindOptinRequiredRadio = () => {\r\n if (this.clientMarketSettings.packageType === PackageType.Professional) {\r\n $(\".landing-page-slide__optin\").show();\r\n\r\n if (this.clientMarketSettings.landingPageModel.optInRequired === true) {\r\n $(\"input[name='optin'][value='yes']\").prop(\"checked\", true);\r\n }\r\n if (this.clientMarketSettings.landingPageModel.optInRequired === false) {\r\n $(\"input[name='optin'][value='no']\").prop(\"checked\", true);\r\n }\r\n\r\n $(\"input[name='optin']\").on(\"click\", event => {\r\n const optinRequired = $(\"input[name='optin']:checked\").val() == \"yes\"\r\n this.clientRepository.saveOptInRequired(this.marketId, optinRequired).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.updateLandingPage(this.clientMarketSettings.landingPageModel.landingPageLogo, optinRequired);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n this.checkConfigurationCompletion()\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n })\r\n })\r\n }\r\n else {\r\n $(\"input[name='optin']\").toggleDisabled(true).prop(\"checked\", false);\r\n $(\".landing-page-slide__optin\").hide();\r\n }\r\n }\r\n\r\n private bindUploadLandingPageLogo = () => {\r\n $(\".landing-page-slide__upload-button\").on(\"click\", event => {\r\n $(\".landing-page-logo\").click();\r\n });\r\n\r\n $(\".landing-page-slide__logo-example-container\").on(\"click\", event => {\r\n $(\".landing-page-logo\").click();\r\n });\r\n\r\n $(\".landing-page-logo\").on(\"change\", event => {\r\n var file = $('.landing-page-logo').prop('files')[0];\r\n if (!file) {\r\n $(\".landing-page-slide__upload-button\").parent().addClass(\"invalid\");\r\n $(\".landing-page-slide__upload-button\").append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\r\n return;\r\n }\r\n if (!this.isWithinMargin(1, file)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n\r\n $(\".landing-page-slide__upload-button\").addModifiers(\"loading\");\r\n this.clientRepository.saveLandingPageLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n $(\".landing-page-slide__upload-button\").removeModifiers(\"loading\");\r\n\r\n this.clientMarketSettings.updateLandingPage(apiResult.content, this.clientMarketSettings.landingPageModel.optInRequired);\r\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\r\n this.bindUploadLandingPageLogo();\r\n this.bindOptinRequiredRadio();\r\n this.bindCropLandingPageLogo()\r\n $(\".landing-page-slide__crop-button\").hide()\r\n });\r\n\r\n $(\".client-administrator-configuration .mailing-text-slide__email-header-logo\").attr(\"src\", apiResult.content);\r\n\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".landing-page-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".landing-page-slide__image-in-mockup-preview\",\r\n }));\r\n $(\".landing-page-slide__image-in-mockup\").hide()\r\n $(\".landing-page-slide__crop-button\").show()\r\n $(\".landing-page-slide__upload-button\").hide()\r\n $(\".landing-page-slide__logo-example-container\").off()\r\n }\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n }\r\n\r\n private bindCropLandingPageLogo = () => {\r\n $(\".landing-page-slide__crop-button\").bind(\"click\", () => {\r\n\r\n var image = $('.landing-page-logo').prop('files')[0];\r\n\r\n const $image_elem = $(\".landing-page-slide__logo-example\")\r\n const cropper = $image_elem.data('cropper');\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n $(\".landing-page-slide__crop-button\").addModifiers(\"loading\");\r\n this.clientRepository.saveLandingPageLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n $(\".landing-page-slide__crop-button\").removeModifiers(\"loading\");\r\n\r\n this.clientMarketSettings.updateLandingPage(apiResult.content, this.clientMarketSettings.landingPageModel.optInRequired);\r\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\r\n this.bindUploadLandingPageLogo();\r\n this.bindCropLandingPageLogo()\r\n this.bindOptinRequiredRadio();\r\n });\r\n\r\n $(\".client-administrator-configuration .mailing-text-slide__email-header-logo\").attr(\"src\", apiResult.content);\r\n $(\".landing-page-slide__image-in-mockup\").show()\r\n $(\".landing-page-slide__crop-button\").hide()\r\n $(\".landing-page-slide__upload-button\").show()\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n });\r\n }, image?.type)\r\n })\r\n }\r\n\r\n private bindLogoTakeOverUploadLogo = () => {\r\n $(\".logo-take-over-slide__button-upload\").on(\"click\", event => {\r\n $(\".logo-take-over-logo\").click();\r\n });\r\n\r\n $(\".logo-take-over-slide__logo-example-container\").on(\"click\", event => {\r\n $(\".logo-take-over-logo\").click();\r\n });\r\n\r\n $(\".logo-take-over-logo\").on(\"change\", event => {\r\n\r\n $(\".logo-take-over-slide__logo-example-container\").off()\r\n\r\n var file = $('.logo-take-over-logo').prop('files')[0];\r\n if (!file) {\r\n $(\".logo-take-over-slide__button-upload\").parent().addClass(\"invalid\");\r\n $(\".logo-take-over-slide__button-upload\").append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\r\n return;\r\n }\r\n\r\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\r\n if (!_.contains(validImageTypes, file?.type)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\r\n return;\r\n }\r\n if (!this.isWithinMargin(1, file)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n\r\n $(\".logo-take-over-slide__button-upload\").addModifiers(\"loading\");\r\n this.clientRepository.saveLogoTakeOverLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.logoTakeOverModel.updateImage(apiResult.content);\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\r\n\r\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\r\n this.bindLogoTakeOverUploadLogo();\r\n this.bindLogoTakeOverCropLogo();\r\n this.bindLogoTakeOverHeaderIcon();\r\n this.bindLogoTakeOverSetColor();\r\n this.bindLogoTakeOverSaveButton();\r\n $(\".logo-take-over-slide__logo-preview\").hide()\r\n $(\".logo-take-over-slide__button-crop\").hide()\r\n });\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".logo-take-over-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".logo-take-over-slide__logo-preview\",\r\n minContainerHeight: 85\r\n }));\r\n $(\".logo-take-over-slide__logo-image\").hide()\r\n $(\".logo-take-over-slide__logo-preview\").show()\r\n $(\".logo-take-over-slide__button-crop\").show()\r\n $(\".logo-take-over-slide__button-upload\").hide()\r\n $(\".logo-take-over-slide__logo-example-container\").off(\"click\")\r\n }\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\r\n });\r\n });\r\n }\r\n\r\n private bindLogoTakeOverCropLogo = () => {\r\n $(\".logo-take-over-slide__button-crop\").bind(\"click\", () => {\r\n const image = $('.logo-take-over-logo').prop('files')[0];\r\n\r\n const $image_elem = $(\".logo-take-over-slide__logo-example\");\r\n const cropper = $image_elem.data(\"cropper\");\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n var formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n\r\n $(\".logo-take-over-slide__button-crop\").addModifiers(\"loading\");\r\n this.clientRepository.saveLogoTakeOverLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.logoTakeOverModel.updateImage(apiResult.content);\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n $(\".logo-take-over-slide__button-crop\").removeModifiers(\"loading\");\r\n\r\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\r\n this.bindLogoTakeOverUploadLogo();\r\n this.bindLogoTakeOverCropLogo();\r\n this.bindLogoTakeOverHeaderIcon();\r\n this.bindLogoTakeOverSetColor();\r\n this.bindLogoTakeOverSaveButton();\r\n });\r\n $(\".logo-take-over-slide__logo-image\").show()\r\n $(\".logo-take-over-slide__logo-preview\").hide()\r\n $(\".logo-take-over-slide__button-crop\").hide()\r\n $(\".logo-take-over-slide__button-upload\").show()\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, true),\r\n () => {\r\n this.bindHeaderClick();\r\n $(\".logo-take-over-slide__logo-image\").css(\"transform\", 'translateZ(0)');\r\n requestAnimationFrame(() => $(\".logo-take-over-slide__logo-image\").removeProp(\"transform\"));\r\n }\r\n );\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\r\n });\r\n }, image?.type)\r\n })\r\n }\r\n\r\n private bindUpgradeButton = () => {\r\n $(\".logo-take-over-slide__upgrade-button, .subleagues-slide__button-upgrade\").on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.Upgrade}\"]`).click();\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.LogoTakeOver, false);\r\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.SubLeagues, false);\r\n });\r\n }\r\n\r\n private bindLogoTakeOverSaveButton = () => {\r\n $(\".logo-take-over-slide__save-logo-take-over-button\").on(\"click\", () => {\r\n const { color: newColor, iconType: newIconType } = this.logoTakeOverState;\r\n\r\n this.clientRepository.saveLogoTakeOverColor(this.marketId, newColor).done((logoTakeOverColorApiResult: ApiResult) => {\r\n this.clientRepository.saveLogoTakeOverHeaderIcon(this.marketId, newIconType).done((logoTakeOverHeaderIconApiResult: ApiResult) => {\r\n if (!logoTakeOverColorApiResult.isSuccess() || !logoTakeOverHeaderIconApiResult.isSuccess()) {\r\n console.error(`Failed to save logo takeover color or icon: ${logoTakeOverColorApiResult} - ${logoTakeOverHeaderIconApiResult}`);\r\n this.displayErrorMessage(null);\r\n }\r\n this.clientMarketSettings.logoTakeOverModel.updateHeaderIcon(newIconType);\r\n this.clientMarketSettings.logoTakeOverModel.updateBackgroundColor(newColor);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n this.changeLogoTakeOverHeaderIcon(newIconType);\r\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\r\n $(\".logo-take-over-slide__button-crop\").hide()\r\n this.bindLogoTakeOverUploadLogo();\r\n this.bindLogoTakeOverCropLogo();\r\n this.bindLogoTakeOverHeaderIcon();\r\n this.bindLogoTakeOverSetColor();\r\n this.bindLogoTakeOverSaveButton();\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n $('input[type=\"text\"].logo-take-over-slide__picker--input').val(newColor);\r\n\r\n this.checkConfigurationCompletion();\r\n return Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n })\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n })\r\n });\r\n }\r\n\r\n private bindLogoTakeOverSetColor = () => {\r\n const ua = window.navigator.userAgent.toLowerCase();\r\n if (ua.indexOf(\"edge/\") != -1 || ua.indexOf('trident/') != -1) {\r\n const picker = $(\".logo-take-over-slide__pick-color\");\r\n const colorCodeTextElement = $(\".logo-take-over-slide__background-picker > input[type=text]\");\r\n const phoneHeaderColorElement = $(\".logo-take-over-slide__header-background\");\r\n const colorPickerContainerElement = $(\"div.logo-take-over-slide__color-picker-container > div.sp-container\");\r\n\r\n $(\".logo-take-over-slide__picker.logo-take-over-slide__picker--color\").hide();\r\n picker.spectrum?.({ flat: true, chooseText: TranslationData.get(\"Common.Change\"), color: colorCodeTextElement.val() });\r\n if (!picker.spectrum) {\r\n console.error(`Spectrum picker not supported on ${ua}`);\r\n NotificationBar.Display(TranslationData.get(\"Business.ColorPickerNotSupported\"));\r\n return;\r\n }\r\n colorPickerContainerElement.css(\"border\", \"solid 3px \" + colorCodeTextElement.val());\r\n picker.on(\"move.spectrum\", function (e, color) {\r\n const code = color.toHexString();\r\n colorCodeTextElement.val(code);\r\n colorPickerContainerElement.css(\"border\", \"solid 3px \" + code);\r\n phoneHeaderColorElement.css('background', code);\r\n });\r\n picker.on(\"change\", (e, color) => {\r\n this.logoTakeOverState = { ...this.logoTakeOverState, color: color.toHexString() };\r\n });\r\n }\r\n else {\r\n $(\".logo-take-over-slide__picker--input\").on(\"input\", event => {\r\n const value = $(event.currentTarget).val();\r\n const validHex = this.updateHeaderColor(value);\r\n if (validHex && validHex !== \"\") {\r\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\r\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\r\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\r\n }\r\n });\r\n\r\n $(\".logo-take-over-slide__picker--color\").on(\"click\", event => {\r\n let color = \"#793e50\"\r\n if (this.clientMarketSettings.logoTakeOverModel.backgroundColor !== \"\") {\r\n color = this.clientMarketSettings.logoTakeOverModel.backgroundColor;\r\n }\r\n $(\".logo-take-over-slide__pick-color\").val(color);\r\n $(\".logo-take-over-slide__pick-color\").click();\r\n });\r\n\r\n $(\".logo-take-over-slide__pick-color\").on(\"input change\", event => {\r\n const value = $(event.currentTarget).val();\r\n const validHex = this.updateHeaderColor(value);\r\n if (validHex !== \"\") {\r\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\r\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\r\n $(\".logo-take-over-slide__picker--input\").val(validHex);\r\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\r\n }\r\n });\r\n\r\n $(\".logo-take-over-slide__pick-color\").on(\"change\", event => {\r\n const value = $(event.currentTarget).val();\r\n const validHex = this.updateHeaderColor(value);\r\n\r\n if (validHex !== \"\") {\r\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\r\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\r\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n private updateHeaderColor = (value: string) => {\r\n let rawHex = value;\r\n if (rawHex.charAt(0) !== \"#\") {\r\n rawHex = \"#\" + rawHex;\r\n }\r\n const hex = rawHex;\r\n if (hex.length === 7 && /^#[0-9A-F]{6}$/i.test(hex)) {\r\n this.clientMarketSettings.logoTakeOverModel.updateBackgroundColor(hex);\r\n return hex;\r\n }\r\n }\r\n\r\n private bindLogoTakeOverHeaderIcon = () => {\r\n $(`.logo-take-over-slide__toggle-image`).on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const headerIconId = Number(elem.attr('value'));\r\n if (isNaN(headerIconId)) { return }\r\n\r\n $(`.logo-take-over-slide__toggle-image--selected`).removeClass(\"logo-take-over-slide__toggle-image--selected\");\r\n elem.addClass(\"logo-take-over-slide__toggle-image--selected\");\r\n\r\n this.changeLogoTakeOverHeaderIcon(headerIconId);\r\n this.logoTakeOverState = { ...this.logoTakeOverState, iconType: headerIconId };\r\n });\r\n }\r\n\r\n private changeLogoTakeOverHeaderIcon = (colorType: HeaderIconColorType) => {\r\n switch (colorType) {\r\n case HeaderIconColorType.White:\r\n $(\".logo-take-over-slide__header-home-icon\").css(\"background-image\", \"url(/images/business/icon-home.png)\");\r\n $(\".logo-take-over-slide__header-profile-icon\").css(\"background-image\", \"url(/images/business/25x25-business-profile-white.png)\");\r\n $(\".logo-take-over-slide__header-status-bar\").css(\"background-image\", \"url(/images/business/405x22-statusbar-white.png)\");\r\n break;\r\n case HeaderIconColorType.Black:\r\n $(\".logo-take-over-slide__header-home-icon\").css(\"background-image\", \"url(/images/business/icon-home-black.png)\");\r\n $(\".logo-take-over-slide__header-profile-icon\").css(\"background-image\", \"url(/images/business/25x25-business-profile-black.png)\");\r\n $(\".logo-take-over-slide__header-status-bar\").css(\"background-image\", \"url(/images/business/405x22-statusbar-black.png)\");\r\n break;\r\n }\r\n }\r\n\r\n\r\n private bindUploadRankingPageLogo = () => {\r\n const uploadButton = $(\".ranking-logo-slide__upload-button\");\r\n uploadButton.on(\"click\", _ => {\r\n $(\".ranking-logo\").click();\r\n });\r\n\r\n $(\".ranking-logo-slide__logo-example-container\").on(\"click\", _ => {\r\n $(\".ranking-logo\").click();\r\n });\r\n\r\n $(\".ranking-logo\").on(\"change\", () => {\r\n const file = $('.ranking-logo').prop('files')[0];\r\n if (!file) {\r\n uploadButton.parent().addClass(\"invalid\");\r\n uploadButton.append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\r\n return;\r\n }\r\n if (!this.isWithinMargin(1, file)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n uploadButton.addModifiers(\"loading\");\r\n this.clientRepository.saveRankingLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.updateRankingPageLogo(apiResult.content);\r\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, apiResult.message, () => {\r\n this.bindUploadRankingPageLogo();\r\n this.bindCropRankingPageLogo();\r\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\r\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\r\n $(\".ranking-logo-slide__crop-button\").hide()\r\n }\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".ranking-logo-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".ranking-logo-slide__ranking-logo-preview\",\r\n aspectRatio: 1,\r\n }));\r\n $(\".ranking-logo-slide__crop-button\").show()\r\n $(\".ranking-logo-slide__upload-button\").hide()\r\n $(\".ranking-logo-slide__ranking-logo\").hide()\r\n $(\".ranking-logo-slide__logo-example-container\").off()\r\n }\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n uploadButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n uploadButton.removeModifiers(\"loading\");\r\n $(\".ranking-logo-slide__ranking-logo-container\").removeModifiers(\"active\");\r\n });\r\n });\r\n }\r\n\r\n private bindCropRankingPageLogo = () => {\r\n const cropButton = $(\".ranking-logo-slide__crop-button\");\r\n cropButton.bind(\"click\", () => {\r\n const image = $('.ranking-logo').prop('files')[0];\r\n\r\n var $image_elem = $(\".ranking-logo-slide__logo-example\")\r\n const cropper = $image_elem.data(\"cropper\");\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n var formData = new FormData()\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n\r\n cropButton.addModifiers(\"loading\");\r\n this.clientRepository.saveRankingLogo(this.marketId, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.updateRankingPageLogo(apiResult.content);\r\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, apiResult.message, () => {\r\n this.bindUploadRankingPageLogo();\r\n this.bindCropRankingPageLogo();\r\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\r\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\r\n }\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n $(\".ranking-logo-slide__crop-button\").hide()\r\n $(\".ranking-logo-slide__upload-button\").show()\r\n $(\".ranking-logo-slide__ranking-logo\").show()\r\n\r\n this.checkConfigurationCompletion();\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n cropButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n cropButton.removeModifiers(\"loading\");\r\n $(\".ranking-logo-slide__ranking-logo-container\").removeModifiers(\"active\");\r\n });\r\n }, image?.type)\r\n })\r\n }\r\n\r\n private bindSaveWelcomeEmail = () => {\r\n $(\".mailing-text-slide__button--save\").on(\"click\", event => {\r\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges) {\r\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\r\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.MailingText, false);\r\n return;\r\n }\r\n let valid = true;\r\n\r\n const titleElement = $(\".mailing-text-slide__email-title-input\");\r\n const title = titleElement.val();\r\n\r\n const bodyElement = $(\".cke_editor_mailing-text-slide__mail-message\");\r\n const body = CKEDITOR.instances['mailing-text-slide__mail-message'].getData();\r\n\r\n if (title === undefined || title === \"\") {\r\n valid = false;\r\n titleElement.addModifiers(\"invalid\");\r\n }\r\n\r\n if (body === undefined || body === \"\") {\r\n valid = false;\r\n bodyElement.addModifiers(\"invalid\");\r\n }\r\n\r\n if (valid) {\r\n this.clientRepository.saveWelcomeEmail(title, body, this.marketId).done(() => {\r\n this.clientMarketSettings.welcomeEmailModel.update(title, body);\r\n this.clientMarketSettings.welcomeEmailModel.complete();\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n this.checkConfigurationCompletion();\r\n\r\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(false);\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindSendTestEmail = () => {\r\n $(\".mailing-text-slide__button--example\").on(\"click\", event => {\r\n let valid = true;\r\n\r\n const titleElement = $(\".mailing-text-slide__email-title-input\");\r\n const title = titleElement.val();\r\n\r\n const bodyElement = $(\".mailing-text-slide__mail-message\");\r\n const body = CKEDITOR.instances['mailing-text-slide__mail-message'].getData();\r\n\r\n if (title === undefined || title === \"\") {\r\n valid = false;\r\n titleElement.addModifiers(\"invalid\");\r\n }\r\n\r\n if (body === undefined || body === \"\") {\r\n valid = false;\r\n bodyElement.addModifiers(\"invalid\");\r\n }\r\n\r\n if (valid) {\r\n this.clientRepository.sendExampleWelcomeEmail(title, body, this.marketId).done(() => {\r\n this.clientMarketSettings.welcomeEmailModel.update(title, body);\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.ExampleSend\");\r\n\r\n $(\".mailing-text-slide__button--example\").attr(\"disabled\", \"disabled\");\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindEmailCheckmark = () => {\r\n $(\".mailing-text-slide__email-title-input\").on(\"input\", () => {\r\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(true);\r\n $(\".mailing-text-slide__button--example\").removeAttr(\"disabled\");\r\n });\r\n\r\n CKEDITOR.instances[\"mailing-text-slide__mail-message\"].on(\"key\", () => {\r\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(true);\r\n $(\".mailing-text-slide__button--example\").removeAttr(\"disabled\");\r\n });\r\n\r\n const markMailComplete = (keepSlidesOpenState: boolean) => {\r\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges && !this.clientMarketSettings.welcomeEmailModel.hasCompleted()) {\r\n this.clientRepository.hasSeenEmail(this.marketId).done(() => {\r\n this.clientMarketSettings.welcomeEmailModel.complete();\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\r\n () => { this.bindHeaderClick() }, keepSlidesOpenState\r\n );\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n this.checkConfigurationCompletion();\r\n });\r\n }\r\n }\r\n const targetNode = $(\".client-administrator-configuration__step[data-step-id='5']\").find(\".configuration-content-placeholder\")[0];\r\n if (targetNode) {\r\n this.mailingTextObserver?.disconnect();\r\n this.mailingTextObserver = new MutationObserver((mutationsList, observer) => {\r\n const closed = mutationsList.filter(m => m.oldValue.indexOf(\"configuration-content-placeholder--open\") > -1);\r\n if (closed.length > 0) {\r\n markMailComplete(true);\r\n }\r\n });\r\n\r\n this.mailingTextObserver.observe(targetNode, { attributes: true, attributeOldValue: true });\r\n }\r\n\r\n $(\".client-administrator-configuration__step[data-step-id='5']\").removeClickListeners();\r\n $(\".client-administrator-configuration__step[data-step-id='5']\").on(\"click\", event => {\r\n const contentElement = $(event.currentTarget).find(\".configuration-content-placeholder\");\r\n\r\n if (!contentElement.hasModifier('open')) {\r\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges && !this.clientMarketSettings.welcomeEmailModel.hasCompleted()) {\r\n markMailComplete(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private bindSubLeagues = () => {\r\n $(\".subleagues-slide__save-subleague-settings-button\").removeClickListeners().on(\"click\", () => {\r\n\r\n this.clientMarketSettings.multiSubLeaguesModel.hasSaved = true\r\n this.clientRepository.hasChangedSubLeagueSetting(this.marketId, this.clientMarketSettings.multiSubLeaguesModel).done(() => {\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepSubLeagues(this.clientMarketSettings, this.salesUser, false),\r\n () => {\r\n this.bindHeaderClick();\r\n this.bindSubLeagues();\r\n }\r\n );\r\n dispatchEvent(new CustomEvent(LeagueAdministratorController.ResetTabDataLoadedEvent));\r\n this.reloadSubLeagueActions();\r\n this.checkConfigurationCompletion();\r\n\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n\r\n $(\"input[name=logo-change]\").on(\"change\", event => {\r\n const val = $(event.currentTarget).val();\r\n const isAllowed = val === \"yes\";\r\n this.clientMarketSettings.multiSubLeaguesModel.setChangeRankingLogo(isAllowed);\r\n });\r\n\r\n $(\"input[name=email-change]\").on(\"change\", event => {\r\n const val = $(event.currentTarget).val();\r\n const isAllowed = val === \"yes\";\r\n this.clientMarketSettings.multiSubLeaguesModel.setChangeEmail(isAllowed);\r\n });\r\n\r\n $(\"input[name=leaguename-change]\").on(\"change\", event => {\r\n const val = $(event.currentTarget).val();\r\n const isAllowed = val === \"yes\";\r\n this.clientMarketSettings.multiSubLeaguesModel.setChangeName(isAllowed);\r\n });\r\n }\r\n\r\n\r\n private bindUploadPromotionalPackageLogo = () => {\r\n const uploadButton = $(\".promotional-package-slide__upload-button\");\r\n const exampleContainer = $(\".promotional-package-slide__logo-example-container\");\r\n const warningText = $(\".promotional-package-slide__warning\")\r\n\r\n if (!this.clientMarketSettings.hasCompletedLeagueName()) {\r\n uploadButton.addModifiers(\"disabled\");\r\n exampleContainer.addModifiers(\"disabled\");\r\n warningText.show()\r\n return\r\n }\r\n\r\n uploadButton.removeModifiers(\"disabled\");\r\n exampleContainer.removeModifiers(\"disabled\");\r\n warningText.hide()\r\n\r\n uploadButton.on(\"click\", _ => {\r\n $(\".promotional-package-logo\").click();\r\n });\r\n\r\n exampleContainer.on(\"click\", _ => {\r\n $(\".promotional-package-logo\").click();\r\n });\r\n\r\n $(\".promotional-package-logo\").on(\"change\", () => {\r\n const file = $('.promotional-package-logo').prop('files')[0];\r\n if (!file) {\r\n uploadButton.parent().addClass(\"invalid\");\r\n uploadButton.append(\"
\" + TranslationData.get(\"Business.PromotionalPackage.Invalid\") + \"
\");\r\n return;\r\n }\r\n if (!this.isWithinMargin(5, file)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.5MB\"));\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n uploadButton.addModifiers(\"loading\");\r\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.PromotionalPackage, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.promotionalPackageModel.updateImage(apiResult.content, false);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\r\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = true;\r\n this.bindUploadPromotionalPackageLogo();\r\n this.bindCropPromotionalPackageLogo();\r\n this.bindConfirmPromotional();\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".promotional-package-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".promotional-package-slide__logo-preview\"\r\n }));\r\n\r\n $(\".promotional-package-slide__logo-example-container\").off()\r\n }\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n uploadButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n uploadButton.removeModifiers(\"loading\");\r\n $(\".promotional-package-slide__logo-container\").removeModifiers(\"active\");\r\n });\r\n });\r\n }\r\n\r\n private bindCropPromotionalPackageLogo = () => {\r\n const cropButton = $(\".promotional-package-slide__crop-button\");\r\n cropButton.bind(\"click\", () => {\r\n\r\n fetch(this.clientMarketSettings.promotionalPackageModel.imageUrl)\r\n .then(res => {\r\n if (!res.ok) throw new Error(\"Could not fetch image.\");\r\n\r\n return res.blob();\r\n })\r\n .then(image => {\r\n uploadCroppedImage(image.type);\r\n });\r\n\r\n const uploadCroppedImage = (imageType: string) => {\r\n var $image_elem = $(\".promotional-package-slide__logo-example\")\r\n const cropper = $image_elem.data(\"cropper\");\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n var formData = new FormData()\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n\r\n cropButton.addModifiers(\"loading\");\r\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.PromotionalPackage, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.promotionalPackageModel.updateImage(apiResult.content, true);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\r\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = true;\r\n this.bindUploadPromotionalPackageLogo();\r\n this.bindCropPromotionalPackageLogo();\r\n this.bindConfirmPromotional();\r\n if (this.clientMarketSettings.promotionalPackageModel.imageUrl) {\r\n $(\".promotional-package-slide__logo-container\").addModifiers(\"active\");\r\n }\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n cropButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n cropButton.removeModifiers(\"loading\");\r\n $(\".promotional-package-slide__logo-container\").removeModifiers(\"active\");\r\n });\r\n }, imageType)\r\n }\r\n })\r\n }\r\n\r\n private bindConfirmPromotional = () => {\r\n const confirmButton = $(\".promotional-package-slide__confirm-button\");\r\n if (this.clientMarketSettings.promotionalPackageModel.imageUrl == null\r\n || !this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend) {\r\n confirmButton.addModifiers(\"disabled\");\r\n return\r\n }\r\n\r\n confirmButton.removeModifiers(\"disabled\");\r\n confirmButton.on(\"click\", _ => {\r\n confirmButton.addModifiers(\"disabled\")\r\n this.clientRepository.confirmPromotional(this.marketId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n confirmButton.removeClickListeners();\r\n\r\n Toast.displayLabel(\"Business.PromotionalPackage.Confirmed\");\r\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = false;\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\r\n\r\n this.checkConfigurationCompletion();\r\n }\r\n else {\r\n confirmButton.removeModifiers(\"disabled\");\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n }\r\n\r\n private bindUploadBrandingPackageLogo = () => {\r\n const uploadButton = $(\".branding-package-slide__upload-button\");\r\n uploadButton.on(\"click\", _ => {\r\n $(\".branding-package-logo\").click();\r\n });\r\n\r\n $(\".branding-package-slide__logo-example-container\").on(\"click\", _ => {\r\n $(\".branding-package-logo\").click();\r\n });\r\n\r\n $(\".branding-package-logo\").on(\"change\", () => {\r\n const file = $('.branding-package-logo').prop('files')[0];\r\n if (!file) {\r\n uploadButton.parent().addClass(\"invalid\");\r\n uploadButton.append(\"
\" + TranslationData.get(\"Business.BrandingPackage.Invalid\") + \"
\");\r\n return;\r\n }\r\n if (!this.isWithinMargin(5, file)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.5MB\"));\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", file);\r\n uploadButton.addModifiers(\"loading\");\r\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.BrandingPackage, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.brandingPackageModel.updateImage(apiResult.content, true);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\r\n this.bindUploadBrandingPackageLogo();\r\n this.bindCropBrandingPackageLogo();\r\n this.bindBrandingPackageButtons();\r\n this.determineBrandingPackageButtonState();\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n if (file?.type != \"image/gif\") {\r\n var $image_elem = $(\".branding-package-slide__logo-example\")\r\n $image_elem.cropper(cropperConfig(file, {\r\n preview: \".branding-package-slide__image-in-flyer-mockup-preview\",\r\n }));\r\n $(\".branding-package-slide__image-in-flyer-mockup\").hide();\r\n $(\".branding-package-slide__crop-button\").show();\r\n uploadButton.hide();\r\n $(\".branding-package-slide__logo-example-container\").off();\r\n }\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n uploadButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err);\r\n uploadButton.removeModifiers(\"loading\");\r\n $(\".branding-package-slide__logo-container\").removeModifiers(\"active\");\r\n });\r\n });\r\n }\r\n\r\n private bindCropBrandingPackageLogo = () => {\r\n const cropButton = $(\".branding-package-slide__crop-button\");\r\n cropButton.bind(\"click\", () => {\r\n\r\n fetch(this.clientMarketSettings.brandingPackageModel.imageUrl)\r\n .then(res => {\r\n if (!res.ok) throw new Error(\"Could not fetch image.\");\r\n\r\n return res.blob();\r\n })\r\n .then(image => {\r\n uploadCroppedImage(image.type);\r\n });\r\n\r\n const uploadCroppedImage = (imageType: string) => {\r\n var $image_elem = $(\".branding-package-slide__logo-example\")\r\n const cropper = $image_elem.data(\"cropper\");\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n var formData = new FormData()\r\n formData.append(\"fileData\", blob, \"cropped_image\");\r\n cropButton.addModifiers(\"loading\");\r\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.BrandingPackage, formData).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.clientMarketSettings.brandingPackageModel.updateImage(apiResult.content, false);\r\n\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\r\n this.bindUploadBrandingPackageLogo();\r\n this.bindCropBrandingPackageLogo();\r\n this.bindBrandingPackageButtons();\r\n this.determineBrandingPackageButtonState();\r\n\r\n if (this.clientMarketSettings.brandingPackageModel.imageUrl) {\r\n $(\".branding-package-slide__logo-container\").addModifiers(\"active\");\r\n }\r\n });\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\r\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true),\r\n () => { this.bindHeaderClick() }\r\n );\r\n\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n cropButton.removeModifiers(\"loading\");\r\n }).fail((err) => {\r\n this.displayErrorMessage(err.status);\r\n cropButton.removeModifiers(\"loading\");\r\n $(\".branding-package-slide__logo-container\").removeModifiers(\"active\");\r\n });\r\n }, imageType)\r\n }\r\n })\r\n }\r\n\r\n private reloadSubLeagueActions = () => {\r\n if (!isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) || !this.leagueActionsEnabled)\r\n return;\r\n\r\n this.actionsRepository.getByMarket(this.marketId).done(leagueActionsCollection => {\r\n this.salesUser.leagueActionsCollection.update(leagueActionsCollection);\r\n ActionsController.getInstance().initialize(this.marketId, this.clientMarketSettings.actionsLeft(), leagueActionsCollection);\r\n });\r\n }\r\n\r\n private checkConfigurationCompletion = () => {\r\n if (!this.clientMarketSettings.isConfigurationComplete()) return;\r\n dispatchEvent(new CustomEvent(ClientAdministratorController.ResetTabDataLoadedEvent));\r\n\r\n const key = `${ConfigurationController.configurationCompletedLocalStorageKey}.${this.marketId}`;\r\n if (localStorage.getItem(key)) return;\r\n\r\n localStorage.setItem(key, \"true\");\r\n\r\n const popup = $.scoritoPopup({\r\n elementId: \"section-completed-popup\",\r\n popupTitle: $(\".section-completed-popup-content\").data(\"title\"),\r\n contentHtml: $(\".section-completed-popup-content\").html(),\r\n widthInPixels: 591,\r\n follow: [false, false],\r\n });\r\n\r\n let nextStepLabelKey = \"Business.Management.Configuration.GoToInvite\";\r\n let nextStepTabType = ClientAdminTabType.Invite;\r\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues)) {\r\n nextStepLabelKey = \"Business.Management.Configuration.GoToSubLeagues\";\r\n nextStepTabType = ClientAdminTabType.SubLeagues;\r\n }\r\n\r\n $(\".section-completed-popup__description\").text(TranslationData.get(\"Business.Management.SectionCompletedDescription\")?.format(TranslationData.get(\"Business.TabConfig\")?.toLowerCase(), TranslationData.get(`${nextStepLabelKey}`)?.toLowerCase()))\r\n $(\".section-completed-popup__continue-button\").on(\"click\", () => {\r\n popup.close();\r\n $(`.client-administrator__tab[data-tab-id=${nextStepTabType}]`).click();\r\n });\r\n }\r\n\r\n private bindBrandingPackageButtons = () => {\r\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\r\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\r\n const agreeTermsCheckbox = $(\".branding-package-slide__agree-terms\");\r\n\r\n previewPrintButton.on(\"click\", () => {\r\n this.clientRepository.requestPreviewPrint(this.marketId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n previewPrintButton.addModifiers(\"disabled\");\r\n previewPrintButton.removeClickListeners();\r\n\r\n Toast.displayLabel(\"Business.Management.BrandingPackage.PreviewPrint.Sent\");\r\n this.clientMarketSettings.brandingPackageModel.updatePreviewPrintRequested();\r\n this.determineBrandingPackageButtonState();\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n\r\n const confirmPrintButtonHandler = () => {\r\n this.clientRepository.confirmPreviewPrint(this.marketId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Toast.displayLabel(\"Business.Management.BrandingPackage.Order.Sent\");\r\n\r\n this.disableBrandingPackageStep();\r\n\r\n this.clientMarketSettings.brandingPackageModel.updateFinalPrintRequested();\r\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\r\n\r\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\r\n this.checkConfigurationCompletion();\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n }\r\n\r\n agreeTermsCheckbox.on(\"change\", () => {\r\n if (agreeTermsCheckbox.is(\":checked\")) {\r\n confirmPrintButton.on(\"click\", confirmPrintButtonHandler)\r\n confirmPrintButton.removeModifiers(\"disabled\");\r\n\r\n }\r\n else {\r\n confirmPrintButton.off(\"click\", confirmPrintButtonHandler)\r\n confirmPrintButton.addModifiers(\"disabled\");\r\n }\r\n });\r\n }\r\n\r\n private disableBrandingPackageStep = () => {\r\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\r\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\r\n const agreeTermsCheckbox = $(\".branding-package-slide__agree-terms\");\r\n const agreeTermsContainer = $(\".branding-package-slide__confirm-print-description\");\r\n\r\n confirmPrintButton.addModifiers(\"disabled\");\r\n agreeTermsCheckbox.prop(\"disabled\", true).prop(\"checked\", true);\r\n previewPrintButton.addModifiers(\"disabled\");\r\n agreeTermsContainer.addModifiers(\"disabled\");\r\n $(\".branding-package-slide__upload-button\").addModifiers(\"disabled\");\r\n $(\".branding-package-slide__logo-example-container\").removeClickListeners();\r\n }\r\n\r\n private determineBrandingPackageButtonState = () => {\r\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\r\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\r\n const agreeTermsContainer = $(\".branding-package-slide__confirm-print-description\");\r\n const warningMessage = $(\".branding-package-slide__request-preview-print-warning\");\r\n const descriptionMessage = $(\".branding-package-slide__request-preview-print-description\");\r\n\r\n if (!this.clientMarketSettings.hasCompletedLeagueName()) {\r\n warningMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteLeagueName\"));\r\n agreeTermsContainer.addModifiers(\"disabled\");\r\n return;\r\n }\r\n if (!this.clientMarketSettings.brandingPackageModel.hasCompletedImageUpload()) {\r\n warningMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteBrandingImage\")).show();\r\n agreeTermsContainer.addModifiers(\"disabled\");\r\n return;\r\n }\r\n\r\n if (this.clientMarketSettings.brandingPackageModel.hasAcceptedPreviewPrint) {\r\n this.disableBrandingPackageStep();\r\n return;\r\n }\r\n\r\n warningMessage.hide();\r\n\r\n if (this.clientMarketSettings.brandingPackageModel.hasRequestedPreviewPrint) {\r\n agreeTermsContainer.removeModifiers(\"disabled\");\r\n }\r\n else {\r\n agreeTermsContainer.addModifiers(\"disabled\");\r\n }\r\n\r\n if (this.clientMarketSettings.brandingPackageModel.isPreviewPrintCooldownActive) {\r\n descriptionMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.PreviewPrintRecentlyRequested\")).show();\r\n previewPrintButton.addModifiers(\"disabled\");\r\n }\r\n else {\r\n descriptionMessage.hide();\r\n previewPrintButton.removeModifiers(\"disabled\");\r\n }\r\n\r\n confirmPrintButton.addModifiers(\"disabled\");\r\n }\r\n\r\n private isWithinMargin = (maxSizeInMegaBytes: number, file: Blob) => {\r\n const megaByte = 1048576;\r\n return (megaByte * maxSizeInMegaBytes) > file.size;\r\n }\r\n\r\n protected initEventListeners = () => {\r\n addEventListener(Business.ConfigurationController.ConfigurationChangedEvent, (event: CustomEvent) => {\r\n this.loadData();\r\n this.reloadSubLeagueActions();\r\n });\r\n }\r\n }\r\n}","module LeagueAdministrator {\r\n export class HelpController extends LeagueAdministratorTabController {\r\n private helpControllerHelper: BusinessManagement.HelpControllerHelper;\r\n private faqRepository: Business.IFaqRepository;\r\n private accountDataRepository: Business.IAccountDataRepository;\r\n private platformRepository: Platform.Repository;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Help, clientRepository);\r\n this.faqRepository = new Business.FaqRepository(salesApiSettings);\r\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this.helpControllerHelper = new BusinessManagement.HelpControllerHelper(\"league-administrator-help\", this.marketId, Business.FaqType.BusinessSubleague, this.faqRepository, this.accountDataRepository, this.platformApiSettings);\r\n }\r\n\r\n protected loadTabData = (isConfigurationComplete: boolean) => {\r\n this.helpControllerHelper = new BusinessManagement.HelpControllerHelper(\"league-administrator-help\", this.marketId, Business.FaqType.BusinessSubleague, this.faqRepository, this.accountDataRepository, this.platformApiSettings);\r\n\r\n this.helpControllerHelper.loadTabData().always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n protected leagueChanged = () => {\r\n }\r\n }\r\n}","/// \r\n\r\nmodule LeagueAdministrator {\r\n export class InviteController extends LeagueAdministratorTabController {\r\n private readonly inviteRepository: Business.InviteRepository;\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly explanationRenderer: Business.ExplanationRenderer;\r\n\r\n private inviteControllerHelper: BusinessManagement.InviteControllerHelper;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Invite, clientRepository, true);\r\n this.inviteRepository = new Business.InviteRepository(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this.explanationRenderer = new Business.ExplanationRenderer();\r\n }\r\n\r\n protected loadTabData = (isConfigurationComplete: boolean) => {\r\n const isClientAdmin = isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator();\r\n if (isClientAdmin) {\r\n this.subLeagueRepository.get(this.marketId).done((subLeagueApiResult: ApiResult) => {\r\n const leagues = Business.SubLeagues.fromJson(subLeagueApiResult.content);\r\n const hasSubLeagues = leagues.getSubLeagues().any();\r\n this.initialize(isConfigurationComplete, hasSubLeagues);\r\n }).fail(err => {\r\n console.error(`Failed to load all leagues: ${JSON.stringify(err)}`);\r\n this.initialize(isConfigurationComplete, false);\r\n });\r\n }\r\n else {\r\n const hasSubLeagues = this.leagues.getSubLeagues().any();\r\n this.initialize(isConfigurationComplete, hasSubLeagues);\r\n }\r\n }\r\n\r\n private initialize = (isConfigurationComplete: boolean, hasSubLeagues: boolean) => {\r\n this.inviteControllerHelper = new BusinessManagement.InviteControllerHelper(this.selectedSubLeagueId, this.marketId, this.salesUser, this.platformRepository, this.inviteRepository, hasSubLeagues);\r\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator()) {\r\n this.toggleDropdown(false);\r\n }\r\n this.inviteControllerHelper.loadTabData(isConfigurationComplete).always(() => {\r\n this.removePreload();\r\n });\r\n\r\n this.explanationRenderer.renderTemplate(this.clientSettings.qrCodeUrl);\r\n }\r\n\r\n protected leagueChanged = () => {\r\n this.inviteControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\r\n $(\".invite-unique-link-table--three-columns\").toggle(!this.selectedSubLeagueIsMainLeague());\r\n }\r\n }\r\n}","module LeagueAdministrator {\r\n export class ParticipantsController extends LeagueAdministratorTabController {\r\n private participantsControllerHelper: BusinessManagement.ParticipantsControllerHelper;\r\n private participantsRepository: Business.ParticipantRepository;\r\n marketId: number;\r\n userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\r\n platformRepository: Platform.Repository;\r\n leagueRepository: League.Repository;\r\n rankingRepository: Business.RankingRepository;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, leagueApiSettings: League.ApiSettings, userPredictionStatusRepository: Business.IUserPredictionStatusRepository, clientRepository: Business.IClientRepository, marketId: number) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Participants, clientRepository, true);\r\n this.participantsRepository = new Business.ParticipantRepository(this.salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, marketId);\r\n this.leagueRepository = new League.Repository(leagueApiSettings);\r\n this.rankingRepository = new Business.RankingRepository(salesApiSettings);\r\n this.participantsControllerHelper = new BusinessManagement.ParticipantsControllerHelper(\".league-administrator__tab-content\", \"league-participant-search-table\", this.selectedSubLeagueId,\r\n this.salesApiSettings.participantsUrl, this.salesApiSettings.frontendOrderingAndFilteringThreshold, this.participantsRepository, this.subLeagueRepository, userPredictionStatusRepository,\r\n this.platformRepository, this.leagueRepository, 0, false, marketId, this.rankingRepository);\r\n this.userPredictionStatusRepository = userPredictionStatusRepository;\r\n }\r\n\r\n protected loadTabData = (isConfigurationComplete: boolean) => {\r\n this.participantsControllerHelper = new BusinessManagement.ParticipantsControllerHelper(\".league-administrator__tab-content\", \"league-participant-search-table\", this.selectedSubLeagueId,\r\n this.salesApiSettings.participantsUrl, this.salesApiSettings.frontendOrderingAndFilteringThreshold, this.participantsRepository, this.subLeagueRepository,\r\n this.userPredictionStatusRepository, this.platformRepository, this.leagueRepository, this.salesUser.mainLeagueId, isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues), this.marketId, this.rankingRepository);\r\n\r\n this.participantsControllerHelper.loadTabData(isConfigurationComplete).always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n protected leagueChanged = () => {\r\n this.participantsControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule ClientAdministrator {\r\n import Toast = Business.Toast;\r\n import AdministratorRepository = Business.AdministratorRepository;\r\n import Administrators = Business.Administrators;\r\n import SubLeagues = Business.SubLeagues;\r\n import InviteModel = Business.InviteModel;\r\n\r\n export class SubLeagueController extends ClientAdministratorTabController {\r\n private readonly subLeaguesRenderer: SubLeaguesRenderer;\r\n private readonly subLeaguesRepository: Business.ISubLeagueRepository;\r\n private readonly administratorRepository: AdministratorRepository;\r\n private readonly userRepository: Business.UserRepository;\r\n\r\n private profile: Platform.Profile;\r\n private leagues: SubLeagues;\r\n private subLeagueAdmins: Dictionary;\r\n private isLoadingSubLeagueSlide: boolean;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.ClientAdminTabType.SubLeagues, clientRepository, true);\r\n this.subLeaguesRenderer = new SubLeaguesRenderer();\r\n\r\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\r\n this.userRepository = new Business.UserRepository(userApiSettings);\r\n this.administratorRepository = new AdministratorRepository(this.salesApiSettings, this.platformApiSettings);\r\n this.subLeagueAdmins = new Dictionary();\r\n\r\n this.initEventListeners();\r\n }\r\n\r\n protected loadData = (isConfigurationComplete: boolean) => {\r\n $(\".client-administrator-subleagues__notice\").toggle(!isConfigurationComplete);\r\n const content = $(\".client-administrator-subleagues__content\");\r\n isConfigurationComplete ? content.show() : content.hide()\r\n\r\n this.subLeaguesRenderer.renderOverview(new SubLeagues([]), () => {\r\n this.styleSubLeagueDataTable();\r\n });\r\n\r\n if (!isConfigurationComplete) return;\r\n\r\n this.showLoadingOverlay();\r\n\r\n $.when(\r\n this.subLeaguesRepository.get(this.marketId),\r\n this.userRepository.getProfileDetails()\r\n ).done((apiResult: ApiResult, profile: Platform.Profile) => {\r\n if (apiResult.isSuccess()) {\r\n this.leagues = Business.SubLeagues.fromJson(apiResult.content);\r\n\r\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\r\n this.styleSubLeagueDataTable();\r\n this.bindSubLeagueSearchbar();\r\n this.bindCreateSubLeagueButton();\r\n this.bindDeleteSubLeague();\r\n\r\n this.bindValidateCreateSubLeague();\r\n this.bindAdminCheckbox();\r\n });\r\n this.profile = profile;\r\n if (this.leagues.getSubLeagues().any()) {\r\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\r\n }\r\n\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).always(() => {\r\n this.hideLoadingOverlay();\r\n });\r\n }\r\n\r\n private styleSubLeagueDataTable() {\r\n $('#search-subleague-table').DataTable({\r\n \"bInfo\": false,\r\n \"lengthChange\": false,\r\n \"pageLength\": 10,\r\n \"orderFixed\": [0, 'asc'],\r\n \"order\": [[1, \"asc\"]],\r\n \"language\": {\r\n \"emptyTable\": TranslationData.get(\"Business.SubLeagues.EmptyTable\"),\r\n \"infoEmpty\": TranslationData.get(\"Business.SubLeagues.EmptyTable\"),\r\n },\r\n \"columns\": [\r\n { \"orderable\": false },\r\n { \"orderable\": true },\r\n { \"orderable\": true },\r\n { \"orderable\": true },\r\n { \"orderable\": true },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false },\r\n { \"orderable\": false }\r\n ]\r\n });\r\n\r\n $(\".dataTables_filter\").hide();\r\n\r\n $(\"#search-subleague-table\").removeClickListeners().on(\"click\", \".client-administrator-subleagues__sub-league-row\", e => {\r\n const element = $(e.currentTarget);\r\n if (element.hasModifier(\"slide\")) return;\r\n this.handleRowClick(element);\r\n }).on(\"click\", \".client-administrator-subleagues__bin\", e => {\r\n this.handleDeleteButtonClick(e);\r\n });\r\n }\r\n\r\n private bindSubLeagueSearchbar() {\r\n $(\".client-administrator-subleagues__search-bar\").on(\"input\", () => {\r\n const value = $(\".client-administrator-subleagues__search-bar\").val();\r\n var table = $('.client-administrator-subleagues__overview-table').DataTable();\r\n table.search(value).draw();\r\n });\r\n }\r\n\r\n private bindAdminCheckbox() {\r\n $(\".client-administrator-subleagues__checkbox\").on(\"change\", event => {\r\n const isChecked = $(\".client-administrator-subleagues__checkbox\").is(\":checked\");\r\n this.updateAdminOneCheckBox(isChecked);\r\n });\r\n }\r\n\r\n private updateAdminOneCheckBox = (isChecked: boolean): void => {\r\n if (isChecked) {\r\n $(\".client-administrator-subleagues__input--adminone-firstname\").val(this.profile.firstname).addModifiers(\"disabled\").attr('disabled', 'disabled');\r\n $(\".client-administrator-subleagues__input--adminone-lastname\").val(this.profile.lastname).addModifiers(\"disabled\").attr('disabled', 'disabled');\r\n $(\".client-administrator-subleagues__input--adminone-email\").val(this.profile.email).addModifiers(\"disabled\").attr('disabled', 'disabled');\r\n }\r\n else {\r\n $(\".client-administrator-subleagues__input--adminone-firstname\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\r\n $(\".client-administrator-subleagues__input--adminone-lastname\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\r\n $(\".client-administrator-subleagues__input--adminone-email\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\r\n }\r\n }\r\n\r\n private bindValidateCreateSubLeague() {\r\n $(\".client-administrator-subleagues__input,.client-administrator-subleagues__checkbox\").on(\"input change\", event => {\r\n $(\".client-administrator-subleagues__input\").removeModifiers(\"invalid\");\r\n $(\".client-administrator-subleagues__invalid-message\").hide();\r\n });\r\n }\r\n\r\n private isSubLeagueCreationValid = (): boolean => {\r\n const adminOneChecked = (document.getElementsByClassName(\"client-administrator-subleagues__checkbox\")[0]).checked;\r\n const subLeagueName = $(\".client-administrator-subleagues__input--subleague\").val();\r\n const adminOneFirstName = $(\".client-administrator-subleagues__input--adminone-firstname\").val();\r\n const adminOneLastName = $(\".client-administrator-subleagues__input--adminone-lastname\").val();\r\n const adminOneEmail = $(\".client-administrator-subleagues__input--adminone-email\").val();\r\n const adminTwoFirstName = $(\".client-administrator-subleagues__input--admintwo-firstname\").val();\r\n const adminTwoLastName = $(\".client-administrator-subleagues__input--admintwo-lastname\").val();\r\n const adminTwoEmail = $(\".client-administrator-subleagues__input--admintwo-email\").val();\r\n let valid = true;\r\n\r\n if (subLeagueName.length === 0 || subLeagueName.length < 5 || subLeagueName.length > 25) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--subleague\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--subleague\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectSubLeague\")}
`);\r\n }\r\n\r\n if (!adminOneChecked) {\r\n if (adminOneFirstName.length === 0) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--adminone-firstname\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--adminone-firstname\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectFirstName\")}
`);\r\n }\r\n\r\n if (adminOneLastName.length === 0) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--adminone-lastname\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--adminone-lastname\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectLastName\")}
`);\r\n }\r\n\r\n if (!Email.Validate(adminOneEmail)) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--adminone-email\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--adminone-email\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectEmail\")}
`);\r\n }\r\n }\r\n\r\n if (adminTwoFirstName.length > 0 || adminTwoLastName > 0 || adminTwoEmail > 0) {\r\n if (adminTwoFirstName.length === 0) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--admintwo-firstname\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--admintwo-firstname\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectFirstName\")}
`);\r\n }\r\n\r\n if (adminTwoLastName.length === 0) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--admintwo-lastname\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--admintwo-lastname\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectLastName\")}
`);\r\n }\r\n\r\n if (!Email.Validate(adminTwoEmail)) {\r\n valid = false;\r\n $(\".client-administrator-subleagues__input--admintwo-email\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--admintwo-email\").toggleHtml(true,\r\n `
${TranslationData.get(\"Business.NoCorrectEmail\")}
`);\r\n }\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n private bindCreateSubLeagueButton() {\r\n $(\".client-administrator-subleagues__create\").removeClickListeners().on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n\r\n const adminOneChecked = (document.getElementsByClassName(\"client-administrator-subleagues__checkbox\")[0]).checked;\r\n const subLeagueName = $(\".client-administrator-subleagues__input--subleague\").val();\r\n const adminOneFirstName = $(\".client-administrator-subleagues__input--adminone-firstname\").val();\r\n const adminOneLastName = $(\".client-administrator-subleagues__input--adminone-lastname\").val();\r\n const adminOneEmail = $(\".client-administrator-subleagues__input--adminone-email\").val();\r\n const adminTwoFirstName = $(\".client-administrator-subleagues__input--admintwo-firstname\").val();\r\n const adminTwoLastName = $(\".client-administrator-subleagues__input--admintwo-lastname\").val();\r\n const adminTwoEmail = $(\".client-administrator-subleagues__input--admintwo-email\").val();\r\n const valid = this.isSubLeagueCreationValid();\r\n\r\n if (valid) {\r\n const adminOne = new Business.Administrator(0, 0, adminOneEmail, adminOneFirstName, undefined, false, adminOneLastName, '', 0, null, '');\r\n const adminOneModel = Business.AdministratorModel.fromDTO(adminOne, new Platform.Country(0, '', '', 0, 0, ''));\r\n const adminTwo = new Business.Administrator(0, 0, adminTwoEmail, adminTwoFirstName, undefined, false, adminTwoLastName, '', 0, null, '');\r\n const adminTwoModel = Business.AdministratorModel.fromDTO(adminTwo, new Platform.Country(0, '', '', 0, 0, ''));\r\n elem.addModifiers(\"disabled\");\r\n\r\n $.when(this.subLeaguesRepository.createSubLeague(this.marketId, subLeagueName, adminOneChecked, adminOneModel, adminTwoModel)).done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n this.clearFields();\r\n Toast.displayLabel(\"Business.SubLeague.Created\");\r\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.ResetTabDataLoadedEvent));\r\n dispatchEvent(new CustomEvent(Business.ConfigurationController.ConfigurationChangedEvent));\r\n\r\n this.subLeaguesRepository.get(this.marketId).done((apiResult: ApiResult) => {\r\n if (apiResult.isSuccess()) {\r\n this.leagues = Business.SubLeagues.fromJson(apiResult.content);\r\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\r\n this.styleSubLeagueDataTable();\r\n this.bindSubLeagueSearchbar();\r\n\r\n this.bindDeleteSubLeague();\r\n\r\n this.bindValidateCreateSubLeague();\r\n this.bindAdminCheckbox();\r\n this.bindCreateSubLeagueButton();\r\n\r\n if (adminOneChecked) {\r\n $(`.league-administrator__tab[data-tab-id=\"${Business.LeagueAdminTabType.Settings}\"`).show();\r\n }\r\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\r\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }\r\n });\r\n }\r\n else {\r\n if (result.content.FailureReason == \"NameInUse\") {\r\n $(\".client-administrator-subleagues__input--subleague\").toggleModifiers(true, 'invalid');\r\n $(\".client-administrator-subleagues__message--subleague\").toggleHtml(true,\r\n `
${TranslationData.get(\"League.SubleagueName.InUse\")}
`);\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n elem.removeModifiers(\"disabled\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindDeleteSubLeague = () => {\r\n $(\".client-administrator-subleagues__bin\").removeClickListeners().on(\"click\", event => {\r\n this.handleDeleteButtonClick(event);\r\n });\r\n if (this.leagues.getSubLeagues().count() > 1) {\r\n $(\".client-administrator-subleagues__bin\").removeModifiers(\"disabled\")\r\n } else {\r\n $(\".client-administrator-subleagues__bin\").addModifiers(\"disabled\")\r\n }\r\n }\r\n\r\n private handleDeleteButtonClick = (event: Event): void => {\r\n event.stopPropagation();\r\n if (this.leagues.getSubLeagues().count() > 1) {\r\n const subLeagueId = +$(event.currentTarget).closest(\".client-administrator-subleagues__sub-league-row\").attr('data-league-id');\r\n const subLeagueName = $(`.client-administrator-subleagues__name-subleague[data-league-id=\"${subLeagueId}\"]`).html();\r\n this.showDeleteSubLeaguePopup(subLeagueName, subLeagueId);\r\n } else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.Subleagues.CantRemoveOnly\"));\r\n }\r\n }\r\n\r\n private showDeleteSubLeaguePopup = (subLeagueName: string, subLeagueId: number) => {\r\n $.newPopup(\"remove-subleague-popup\");\r\n $.togglePopup(\"#remove-subleague-popup\", true, true);\r\n $(\"#remove-subleague-popup .popup-content-body__text-explanation strong\").text(subLeagueName);\r\n\r\n $(\"#remove-subleague-popup .popup-content-body-close-button,#remove-subleague-popup .popup-content-header__close,#remove-subleague-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#remove-subleague-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-subleague-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n if (subLeagueId !== 0 && !isNaN(subLeagueId)) {\r\n this.subLeaguesRepository.deleteSubLeague(subLeagueId).done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n Toast.displayLabel(\"Business.SubLeague.Deleted\");\r\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.ResetTabDataLoadedEvent));\r\n dispatchEvent(new CustomEvent(Business.ConfigurationController.ConfigurationChangedEvent));\r\n\r\n this.leagues.delete(subLeagueId);\r\n\r\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\r\n this.styleSubLeagueDataTable();\r\n this.bindSubLeagueSearchbar();\r\n\r\n this.bindDeleteSubLeague();\r\n\r\n this.bindValidateCreateSubLeague();\r\n this.bindAdminCheckbox();\r\n this.bindCreateSubLeagueButton();\r\n\r\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\r\n if (this.leagues.getSubLeagues().any()) {\r\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\r\n }\r\n if (!this.leagues.getSubLeagues().containsUser(Authentication.getUserId())) {\r\n $(`.league-administrator__tab[data-tab-id=\"${Business.LeagueAdminTabType.Settings}\"`).hide();\r\n }\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n $.togglePopup(\"#remove-subleague-popup\", false, true);\r\n });\r\n }\r\n\r\n private showDeleteSubLeagueAdministratorPopup = (leagueId: number, fullName: string, userId: number, invitationId: number, slideRow: JQuery) => {\r\n $.newPopup(\"remove-subleague-administrator-popup\");\r\n $.togglePopup(\"#remove-subleague-administrator-popup\", true, true);\r\n\r\n $(\"#remove-subleague-administrator-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.SubLeagueAdministrator.DeleteConfirmation\")?.format(fullName));\r\n\r\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\", () => {\r\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-subleague-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n if (userId) {\r\n this.administratorRepository.deleteSubLeagueAdmin(userId, leagueId).done(apiResult => {\r\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\r\n Toast.displayLabel(\"Business.Management.Administrator.Removed\");\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\r\n });\r\n }\r\n else if (invitationId) {\r\n this.administratorRepository.deleteInvitation(invitationId).done(apiResult => {\r\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\r\n Toast.displayLabel(\"Business.Management.Administrator.Removed\");\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\r\n });;\r\n }\r\n });\r\n }\r\n\r\n private handleAdminInvitations = (leagueId: number, apiResult: ApiResult, slideRow: JQuery): void => {\r\n const firstAdminContainer = $(slideRow.find(\".subleague-slide__admin\")[0]);\r\n const secondAdminContainer = $(slideRow.find(\".subleague-slide__admin\")[1]);\r\n if (apiResult.isSuccess()) {\r\n const administrators = Administrators.fromJson(apiResult.content);\r\n this.subLeagueAdmins.put(leagueId.toString(), administrators);\r\n\r\n this.subLeaguesRenderer.renderSubLeagueAdmin(firstAdminContainer, administrators.any() ? administrators.first() : null, () => {\r\n this.bindSubLeagueSlide(leagueId, slideRow);\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n });\r\n\r\n this.subLeaguesRenderer.renderSubLeagueAdmin(secondAdminContainer, administrators.multiple() ? administrators.last() : null, () => {\r\n this.bindSubLeagueSlide(leagueId, slideRow);\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n });\r\n\r\n const subLeague = this.leagues.getById(leagueId);\r\n subLeague.updateAdminStatusList(administrators.getStatusList());\r\n this.subLeaguesRenderer.renderRow(leagueId, subLeague, () => { this.bindActionsDropdown(leagueId, slideRow); });\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }\r\n\r\n private clearFields = (): void => {\r\n $(\".client-administrator-subleagues__input--subleague\").val('');\r\n $(\".client-administrator-subleagues__input--adminone-firstname\").val('');\r\n $(\".client-administrator-subleagues__input--adminone-lastname\").val('');\r\n $(\".client-administrator-subleagues__input--adminone-email\").val('');\r\n $(\".client-administrator-subleagues__input--admintwo-firstname\").val('');\r\n $(\".client-administrator-subleagues__input--admintwo-lastname\").val('');\r\n $(\".client-administrator-subleagues__input--admintwo-email\").val('');\r\n $(\".client-administrator-subleagues__checkbox\").removeProp('checked');\r\n $(\".client-administrator-subleagues__input--adminone-firstname\").removeModifiers(\"disabled\").removeAttr('disabled');\r\n $(\".client-administrator-subleagues__input--adminone-lastname\").removeModifiers(\"disabled\").removeAttr('disabled');\r\n $(\".client-administrator-subleagues__input--adminone-email\").removeModifiers(\"disabled\").removeAttr('disabled');\r\n }\r\n\r\n private handleRowClick = (row: JQuery): void => {\r\n\r\n const oldRow = $(\".client-administrator-subleagues__sub-league-row--selected\");\r\n if (oldRow.length) {\r\n const slide = oldRow.next();\r\n if (slide) {\r\n oldRow.removeModifiers(\"selected\");\r\n this.subLeaguesRenderer.closeSlide(oldRow.next());\r\n }\r\n }\r\n\r\n const leagueId = +row.data(\"league-id\");\r\n const slideRow = row.next();\r\n if (slideRow?.hasModifier(\"slide\")) {\r\n row.removeModifiers(\"selected\");\r\n return this.subLeaguesRenderer.closeSlide(slideRow);\r\n }\r\n\r\n if (this.isLoadingSubLeagueSlide) {\r\n return;\r\n }\r\n this.isLoadingSubLeagueSlide = true;\r\n\r\n $.when(\r\n this.subLeaguesRepository.getInviteLink(this.getMainLeagueId()),\r\n this.administratorRepository.getBySubLeague(leagueId)\r\n ).done((apiResult: ApiResult, administrators: Administrators) => {\r\n const league = this.leagues.getById(leagueId);\r\n const slideModel = LeagueSlideModel.fromDto(league, administrators, apiResult.content);\r\n this.subLeagueAdmins.put(leagueId.toString(), administrators);\r\n this.subLeaguesRenderer.openSlide(row, slideModel, () => {\r\n this.bindSubLeagueSlide(leagueId, row.next());\r\n });\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n this.isLoadingSubLeagueSlide = false;\r\n });\r\n }\r\n\r\n private bindSubLeagueSlide = (leagueId: number, slideRow: JQuery): void => {\r\n slideRow.find(\".subleague-slide__close\").on(\"click\", () => {\r\n $(\".client-administrator-subleagues__sub-league-row--selected[data-league-id=\" + slideRow.attr(\"data-league-id\") + \"]\").removeModifiers(\"selected\");\r\n this.subLeaguesRenderer.closeSlide(slideRow);\r\n });\r\n\r\n this.bindActionsDropdown(leagueId, slideRow);\r\n\r\n slideRow.find(\".subleague-slide__button--add-admin\").on(\"click\", e => {\r\n $(e.currentTarget).hide();\r\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\r\n adminContainer.find(\".subleague-slide__form\").removeModifiers(\"hidden\");\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n });\r\n\r\n slideRow.find(\".subleague-slide__button--save-admin\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n const invitationId = elem.data(\"id\");\r\n const adminContainer = elem.closest(\".subleague-slide__admin\");\r\n const firstNameElem = adminContainer.find(\".subleague-slide__input--first-name\");\r\n const firstName = firstNameElem.val().trim();\r\n const lastNameElem = adminContainer.find(\".subleague-slide__input--last-name\");\r\n const lastName = lastNameElem.val().trim();\r\n const emailElem = adminContainer.find(\".subleague-slide__input--email\");\r\n const email = emailElem.val().trim();\r\n\r\n let valid = true;\r\n if (!firstName) {\r\n firstNameElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!lastName) {\r\n lastNameElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!Email.Validate(email)) {\r\n emailElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!valid)\r\n return;\r\n\r\n this.administratorRepository.inviteSubLeague(leagueId, new InviteModel(email, firstName, lastName, \"\", 1), invitationId).done(apiResult => {\r\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n\r\n slideRow.find(\".subleague-slide__button--save-league\").addModifiers(\"disabled\");\r\n slideRow.find(\".subleague-slide__button--save-league\").on(\"click\", (e) => {\r\n const elem = $(e.currentTarget);\r\n\r\n if (elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n const leagueInput = slideRow.find(\".subleague-slide__input--league-name\");\r\n const leagueName = leagueInput.val().trim();\r\n\r\n if (!leagueName || leagueName.length < 5) {\r\n leagueInput.addModifiers(\"invalid\");\r\n slideRow.find(\".subleague-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\r\n return;\r\n }\r\n if (leagueName.length > 25) {\r\n leagueInput.addModifiers(\"invalid\");\r\n slideRow.find(\".subleague-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameTooLongError\")).show();\r\n return\r\n }\r\n leagueInput.removeModifiers(\"invalid\");\r\n slideRow.find(\".subleague-slide__error-message\").hide();\r\n\r\n elem.addModifiers(\"disabled\");\r\n leagueInput.prop(\"disabled\", true);\r\n\r\n const leagueNameDeferred = $.Deferred();\r\n\r\n if (leagueName !== this.leagues.getById(leagueId).leagueName) {\r\n $.when(this.subLeaguesRepository.updateSubLeagueName(leagueId, leagueName)).done((subLeagueNameApiResult) => {\r\n if (subLeagueNameApiResult instanceof ApiResult) {\r\n if (subLeagueNameApiResult.isSuccess()) {\r\n this.leagues.getById(leagueId).leagueName = leagueName;\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n $(`.client-administrator-subleagues__name-subleague[data-league-id=\"${leagueId}\"]`).text(leagueName);\r\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\r\n }\r\n else {\r\n NotificationBar.Display(subLeagueNameApiResult.message);\r\n }\r\n }\r\n else {\r\n this.displayErrorMessage(subLeagueNameApiResult);\r\n }\r\n }).always(() => {\r\n leagueNameDeferred.resolve();\r\n });\r\n } else {\r\n leagueNameDeferred.resolve();\r\n }\r\n\r\n $.when(leagueNameDeferred).done(() => {\r\n leagueInput.prop(\"disabled\", false);\r\n elem.removeModifiers(\"disabled\");\r\n });\r\n });\r\n\r\n slideRow.find(\".subleague-slide__input--league-name\").on(\"change, input\", e => {\r\n slideRow.find(\".subleague-slide__button\").removeModifiers(\"disabled\");\r\n });\r\n }\r\n\r\n private bindActionsDropdown = (leagueId: number, slideRow: JQuery): void => {\r\n slideRow.find(\".subleague-slide__admin-action\").removeClickListeners();\r\n slideRow.find(\".subleague-slide__admin-actions-button\").removeClickListeners().on(\"click\", e => {\r\n const list = $(e.currentTarget).closest(\".subleague-slide__admin-actions-container\").find(\".subleague-slide__admin-actions-list\");\r\n list.toggle(!list.is(\":visible\"));\r\n slideRow.find(\".subleague-slide\").toggleModifiers(list.is(\":visible\"), \"with-overflow\");\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-actions-button, .subleague-slide__admin-action\").prop(\"mouseleave\", null).off(\"mouseleave\");\r\n slideRow.find(\".subleague-slide__admin-actions-button, .subleague-slide__admin-action\").on(\"mouseleave\", e => {\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action\").prop(\"mouseenter\", null).off(\"mouseenter\");\r\n slideRow.find(\".subleague-slide__admin-action\").on(\"mouseenter\", e => {\r\n $(e.currentTarget).closest(\".subleague-slide__admin-actions-container\").find(\".subleague-slide__admin-actions-list\").show();\r\n slideRow.find(\".subleague-slide\").addModifiers(\"with-overflow\");\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action--send-message\").on(\"click\", e => {\r\n $(e.currentTarget).closest(\".subleague-slide__admin\").find(\".subleague-slide__message-form\").addModifiers(\"visible\");\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n });\r\n\r\n slideRow.find(\".subleague-slide__send-button\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\r\n const formElem = elem.closest(\".subleague-slide__message-form\");\r\n const subjectElem = formElem.find(\".subleague-slide__subject\");\r\n const subject = formElem.find(\".subleague-slide__subject\").val().trim();\r\n const messageElem = formElem.find(\".subleague-slide__message\");\r\n const message = formElem.find(\".subleague-slide__message\").val().trim();\r\n\r\n let valid = true;\r\n if (!subject) {\r\n subjectElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n if (!message) {\r\n messageElem.addModifiers(\"invalid\");\r\n valid = false;\r\n }\r\n\r\n if (!valid || elem.hasModifier(\"disabled\"))\r\n return;\r\n\r\n const adminContainer = elem.closest(\".subleague-slide__admin\");\r\n const userId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"user-id\");\r\n elem.addModifiers(\"disabled\");\r\n this.administratorRepository.sendMessage(userId, leagueId, subject, message).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Toast.displayLabel(\"SubLeague.MessageSent\");\r\n\r\n subjectElem.val(\"\").removeModifiers(\"invalid\");\r\n messageElem.val(\"\").removeModifiers(\"invalid\");\r\n formElem.removeModifiers(\"visible\");\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n elem.removeModifiers(\"disabled\");\r\n });\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action\").on(\"click\", e => {\r\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action--send-reminder\").on(\"click\", e => {\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\r\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\r\n this.administratorRepository.sendReminder(invitationId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Toast.displayLabel(\"Business.ReminderSent\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action--edit\").on(\"click\", e => {\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\r\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\r\n const admins = this.subLeagueAdmins.get(leagueId.toString());\r\n if (!admins) {\r\n return this.displayErrorMessage(null);\r\n }\r\n\r\n const admin = admins.getByInviteLinkId(invitationId);\r\n\r\n this.subLeaguesRenderer.renderEditSubLeagueAdmin(adminContainer, admin, () => {\r\n this.bindSubLeagueSlide(leagueId, slideRow);\r\n this.subLeaguesRenderer.adjustHeight(slideRow);\r\n });\r\n });\r\n\r\n slideRow.find(\".subleague-slide__admin-action--remove\").on(\"click\", e => {\r\n $(\".subleague-slide__admin-actions-list\").hide();\r\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\r\n const fullName = $('.subleague-slide__admin-name', adminContainer).text();\r\n\r\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\r\n const userId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"user-id\");\r\n this.showDeleteSubLeagueAdministratorPopup(leagueId, fullName, userId, invitationId, slideRow);\r\n });\r\n }\r\n\r\n private showLoadingOverlay = (): void => {\r\n const initialMessageDelay = 10000;\r\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.1\"));\r\n $(\".client-administrator-subleagues__loading-overlay\").show();\r\n setTimeout(() => {\r\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.2\"));\r\n }, initialMessageDelay);\r\n\r\n setTimeout(() => {\r\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.3\"));\r\n }, initialMessageDelay + 30000);\r\n }\r\n\r\n private hideLoadingOverlay = (): void => {\r\n $(\".client-administrator-subleagues__loading-overlay\").hide();\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import SummaryModel = Business.SummaryModel;\r\n import CalculatedOrder = Business.CalculatedOrder;\r\n import PackageType = Business.PackageType;\r\n import DealsRepository = Business.DealsRepository;\r\n import PackageOptionPopUpRenderer = Business.PackageOptionPopUpRenderer;\r\n import PackageOptionsRepository = Business.PackageOptionsRepository;\r\n import Deal = Business.Deal;\r\n import MarketDealResult = Business.MarketDealResult;\r\n import Deals = Business.Deals;\r\n import SalesPackageRepository = Business.SalesPackageRepository;\r\n import SalesPackageType = Business.SalesPackageType;\r\n\r\n export class UpgradeController extends ClientAdministratorTabController {\r\n private readonly dealRepository: DealsRepository;\r\n private readonly packageOptionsRepository: PackageOptionsRepository;\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly accountDataRepository: Business.AccountDataRepository;\r\n\r\n private readonly upgradeRenderer: UpgradeRenderer;\r\n private readonly packageOptionPopUpRenderer: PackageOptionPopUpRenderer;\r\n\r\n private readonly salesPackageRepository: SalesPackageRepository;\r\n\r\n private currentParticipants: number;\r\n private currentSelectedPackage: PackageType;\r\n private countryId: number;\r\n\r\n private selectedParticipantUpgrade: Deal | undefined;\r\n private selectedPackageUpgrade: Deal | undefined;\r\n\r\n private deadlinePassed: boolean;\r\n private salesAccountData: Business.SalesAccountData;\r\n\r\n private readonly participantUpgradePackage = PackageType.Budget;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.ClientAdminTabType.Upgrade, clientRepository, true);\r\n this.dealRepository = new DealsRepository(salesApiSettings);\r\n this.packageOptionsRepository = new PackageOptionsRepository(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\r\n this.salesPackageRepository = new SalesPackageRepository(salesApiSettings);\r\n\r\n this.upgradeRenderer = new UpgradeRenderer();\r\n this.packageOptionPopUpRenderer = new PackageOptionPopUpRenderer();\r\n }\r\n\r\n protected loadData = () => {\r\n this.currentSelectedPackage = this.salesUser.packageType;\r\n this.countryId = this.salesUser.countryId;\r\n this.currentParticipants = this.salesUser.clientMarketHeader.maxSponsoredParticipantCount;\r\n this.loadUpgrades();\r\n this.upgradeRenderer.resetSideView();\r\n this.selectedPackageUpgrade = null;\r\n this.selectedParticipantUpgrade = null;\r\n this.platformRepository.getGameInfo(this.marketId).done(gameInfo => {\r\n const deadline = gameInfo.signUpDeadline;\r\n this.deadlinePassed = moment.utc().isAfter(moment.utc(deadline));\r\n\r\n if (!this.deadlinePassed) {\r\n $(\"#client-administrator-upgrade__subtitle--participants\").show();\r\n $(\".client-administrator-upgrade__choose-participants\").show();\r\n\r\n $.when(this.dealRepository.getDealsForMarket(this.marketId), this.accountDataRepository.getSalesAccountData())\r\n .done((marketDealResult: MarketDealResult, salesAccountData: Business.SalesAccountData) => {\r\n this.salesAccountData = salesAccountData;\r\n marketDealResult.filterByType(this.participantUpgradePackage);\r\n\r\n if (marketDealResult.marketDeals.length < 1) {\r\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\r\n }\r\n this.upgradeRenderer.renderParticipantsTable(this.currentParticipants, marketDealResult.marketDeals, () => {\r\n $(\"#btnCalculate\").click(() => {\r\n this.changeTable(marketDealResult);\r\n });\r\n\r\n $(\"#calculator-input\").on(\"keyup\", event => {\r\n if (event.key === \"Enter\") {\r\n this.changeTable(marketDealResult);\r\n }\r\n });\r\n $(\"#calculator-input\").val(null);\r\n\r\n this.bindParticipantButtons(marketDealResult);\r\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\r\n });\r\n this.removePreload();\r\n }).fail(err => {\r\n console.error(`Failed to get deals or sales account data: ${JSON.stringify(err)}`);\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n } else {\r\n $(\"#client-administrator-upgrade__subtitle--participants\").hide();\r\n $(\".client-administrator-upgrade__choose-participants\").hide();\r\n }\r\n });\r\n\r\n this.loadSalesPackages();\r\n\r\n Business.ActionsController.getInstance().initialize(this.marketId, this.clientSettings?.actionsLeft() ?? 0, this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\r\n }\r\n\r\n private loadSalesPackages = () => {\r\n $.when(\r\n this.salesPackageRepository.getSalesPackagesByMarketAndCountry(this.marketId, this.countryId),\r\n this.platformRepository.getGameInfo(this.marketId)\r\n ).done((result, gameInfo) => {\r\n if (result.marketSalesPackages.length < 1) {\r\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").hide();\r\n return;\r\n }\r\n\r\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").show();\r\n this.upgradeRenderer.renderUpgradeSalesPackagesTemplate(result.marketSalesPackages, () => {\r\n $(\".client-administrator-upgrade__upgrade-row-sales-package-button\").on(\"click\", e => {\r\n\r\n const packageType: SalesPackageType = $(e.currentTarget).data(\"package-type\");\r\n Business.SalesPackageProgressModel.createWithAlteredPageOrder(packageType);\r\n\r\n new UpgradeInformationModel(this.marketId, gameInfo.gameId, this.countryId, false, this.selectedParticipantUpgrade?.id,\r\n this.selectedPackageUpgrade?.id, Business.ClientAdminTabType.Upgrade, \"\", \"\", {}, {}).saveToLocalStorage();\r\n })\r\n })\r\n });\r\n }\r\n\r\n private changeTable = (marketDealResult: MarketDealResult) => {\r\n if (!this.deadlinePassed) {\r\n const requestedParticipants = $(\"#calculator-input\").val().replace(\",\", \"\").replace(\".\", \"\");\r\n const recommendedDeal = marketDealResult.getRecommendedDeal(requestedParticipants, this.participantUpgradePackage);\r\n recommendedDeal.updateImageUrl(marketDealResult.imageUrl);\r\n\r\n this.upgradeRenderer.renderParticipantsTable(recommendedDeal.participantCount, marketDealResult.marketDeals, () => {\r\n this.bindParticipantButtons(marketDealResult);\r\n });\r\n }\r\n }\r\n\r\n private bindParticipantButtons = (marketDealResult: MarketDealResult) => {\r\n if (!this.deadlinePassed) {\r\n $(\".participants-table__price-button\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n if (elem.hasModifier(\"selected\")) {\r\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\r\n $(\"#calculator-input\").val(\"\");\r\n this.selectedParticipantUpgrade = null;\r\n this.calculateOrder();\r\n return;\r\n }\r\n\r\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\r\n elem.addModifiers(\"selected\");\r\n const participantCount = elem.closest(\".participants-table__participant-row\").data(\"participant-count\");\r\n $(\"#calculator-input\").val(participantCount);\r\n\r\n const recommendedDeal = marketDealResult.getRecommendedDeal(participantCount, this.participantUpgradePackage);\r\n recommendedDeal.updateImageUrl(marketDealResult.imageUrl);\r\n\r\n this.selectedParticipantUpgrade = recommendedDeal;\r\n this.calculateOrder();\r\n });\r\n }\r\n }\r\n\r\n private calculateOrder = (): void => {\r\n if (!this.selectedParticipantUpgrade && !this.selectedPackageUpgrade) {\r\n $(\".business-checkout__side-view-placeholder\").html(null);\r\n return;\r\n }\r\n const couponCode = UpgradeInformationModel.getFromLocalStorage()?.couponCode ?? \"\";\r\n $.when(\r\n this.dealRepository.calculateUpgrade(this.marketId, this.selectedParticipantUpgrade?.id, this.selectedPackageUpgrade?.id, false, this.salesUser.countryId, this.salesAccountData?.companyVATNumber ?? \"\", couponCode, {}),\r\n this.platformRepository.getGameInfo(this.marketId),\r\n ).done((result: CalculatedOrder, gameInfo: Platform.GameInfo) => {\r\n const summary = new SummaryModel(result, \"\");\r\n\r\n const cart = new Array();\r\n if (this.selectedParticipantUpgrade) {\r\n const row = new Business.PackageRowModel(this.selectedParticipantUpgrade, this.marketId, gameInfo.gameName, gameInfo.eventName, this.selectedParticipantUpgrade.imageUrl);\r\n row.setIsParticipantUpgrade(true);\r\n cart.push(row);\r\n }\r\n if (this.selectedPackageUpgrade) {\r\n const row = new Business.PackageRowModel(this.selectedPackageUpgrade, this.marketId, gameInfo.gameName, gameInfo.eventName, this.selectedPackageUpgrade.imageUrl);\r\n row.setIsPackageUpgrade(true);\r\n cart.push(row);\r\n }\r\n\r\n this.upgradeRenderer.renderSideView(summary, cart, () => {\r\n $(\".order-overview-side-view__order-now-button\").on(\"click\", e => {\r\n if (!this.selectedPackageUpgrade && !this.selectedParticipantUpgrade)\r\n return;\r\n localStorage.setItem(\"sales.ParticipantCount-\" + this.marketId, this.currentParticipants.toString())\r\n new UpgradeInformationModel(this.marketId, gameInfo.gameId, this.countryId, false, this.selectedParticipantUpgrade?.id,\r\n this.selectedPackageUpgrade?.id, Business.ClientAdminTabType.Upgrade, \"\", \"\", {}, {}).saveToLocalStorage();\r\n location.href = \"/order\";\r\n });\r\n });\r\n });\r\n }\r\n\r\n private loadUpgrades = (): void => {\r\n this.upgradeRenderer.preloadParticipantsTable();\r\n $(\".client-administrator-upgrade__choose-package\").show();\r\n this.upgradeRenderer.preloadPackageOptionsTable();\r\n $.when(\r\n this.dealRepository.getPackageUpgrades(this.marketId),\r\n this.packageOptionsRepository.getPackageOptions(this.marketId)\r\n ).done((packageUpgrades: Deals, packageOptions: Business.PackageOptionsResult) => {\r\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${this.currentSelectedPackage}\"]`).closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"disabled\");\r\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, this.currentSelectedPackage, this.currentSelectedPackage, () => {\r\n this.bindPackageOptionRow();\r\n });\r\n\r\n this.upgradeRenderer.renderUpgradeButtons(this.currentSelectedPackage, packageUpgrades, () => {\r\n this.bindUpgradeButtons(packageOptions, packageUpgrades);\r\n if (this.salesUser.packageType === Business.PackageType.Business) {\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Budget}\"]`).addModifiers(\"disabled\");\r\n }\r\n if (this.salesUser.packageType === Business.PackageType.Professional) {\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Budget}\"]`).addModifiers(\"disabled\");\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Business}\"]`).addModifiers(\"disabled\");\r\n }\r\n });\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n private bindPackageOptionRow = () => {\r\n $(\".package-option-row\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n const packageOptionId = +elem.data(\"package-option-id\");\r\n this.packageOptionsRepository.getPackageOptionLayoverContent(packageOptionId)\r\n .done((description: Business.PackageOptionDescription) => {\r\n var model = new Business.PackageOptionPopUpModel(description.description, description.imageUrls);\r\n\r\n this.packageOptionPopUpRenderer.renderTemplate(model, () => {\r\n $.scoritoPopup({\r\n elementId: \"packageoptions-popup\",\r\n contentHtml: $(\".packageoptions-popup-placeholder\").html(),\r\n popupTitle: description.title,\r\n widthInPixels: 1240,\r\n follow: [true, false]\r\n });\r\n\r\n if (description.imageUrls.length > 1) {\r\n $(\".bxslider\").bxSlider({\r\n speed: 600,\r\n auto: true,\r\n pager: true,\r\n controls: true,\r\n responsive: true,\r\n slideWidth: 780\r\n });\r\n }\r\n });\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n });\r\n });\r\n }\r\n\r\n private bindUpgradeButtons = (packageOptions: Business.PackageOptionsResult, packageUpgrades: Deals) => {\r\n $(\".check-icon\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\r\n elem.closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\r\n $(e.currentTarget).addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"recommended\");\r\n\r\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, this.currentSelectedPackage, this.currentSelectedPackage, () => {\r\n this.bindPackageOptionRow();\r\n });\r\n\r\n this.selectedPackageUpgrade = null;\r\n\r\n this.calculateOrder();\r\n });\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-price-button\").on(\"click\", e => {\r\n const elem = $(e.currentTarget);\r\n const packageType: Business.PackageType = elem.data(\"package-type\");\r\n if (elem.hasModifier(\"recommended\")) {\r\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${this\r\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${this\r\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this\r\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\r\n\r\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions,\r\n this.currentSelectedPackage,\r\n this.currentSelectedPackage,\r\n () => {\r\n this.bindPackageOptionRow();\r\n });\r\n\r\n this.selectedPackageUpgrade = null;\r\n\r\n this.calculateOrder();\r\n return;\r\n }\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\r\n elem.closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\r\n $(e.currentTarget).addModifiers(\"recommended\");\r\n\r\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\r\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${packageType}\"]`).addModifiers(\"recommended\");\r\n\r\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, packageType, this.currentSelectedPackage, () => {\r\n this.bindPackageOptionRow();\r\n });\r\n\r\n this.selectedPackageUpgrade = packageUpgrades.getByDealId(+elem.data(\"deal-id\"));\r\n\r\n this.calculateOrder();\r\n });\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import ClientAdminTabType = Business.ClientAdminTabType;\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class MarketingController extends ClientAdministrator.ClientAdministratorTabController {\r\n\r\n private userRepository: Business.UserRepository;\r\n private articleRepository: Business.IArticleRepository;\r\n private subLeaguesRepository: Business.ISubLeagueRepository;\r\n\r\n private marketingRenderer: MarketingRenderer;\r\n private optInController: OptInController;\r\n private advertisementsController: AdvertisementsController;\r\n private articleControllerHelper: BusinessManagement.ArticleControllerHelper;\r\n private interstitialsController: InterstitialsController;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository, articleRepository: Business.IArticleRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, ClientAdminTabType.Marketing, clientRepository, true);\r\n this.marketingRenderer = new MarketingRenderer();\r\n this.userRepository = new Business.UserRepository(userApiSettings);\r\n this.articleRepository = articleRepository;\r\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\r\n }\r\n\r\n protected loadData = (isConfigurationComplete: boolean) => {\r\n this.optInController = new OptInController(this.cdnUrl, this.salesApiSettings, this.marketId, this.salesUser.clientId);\r\n this.advertisementsController = new AdvertisementsController(this.cdnUrl, this.salesApiSettings, this.platformApiSettings, this.marketId);\r\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"client-administrator-articles\", this.getMainLeagueId(), this.marketId, this.userRepository, this.articleRepository, this.subLeaguesRepository, this.salesUser.packageType);\r\n this.interstitialsController = new InterstitialsController(this.cdnUrl, this.salesApiSettings, this.marketId);\r\n\r\n this.loadTabsHeader()\r\n this.loadTabContent(isConfigurationComplete)\r\n if (!isConfigurationComplete) {\r\n $(\".marketing__slide\").hide()\r\n $(\".marketing__notice\").show()\r\n } else {\r\n $(\".marketing__slide\").show()\r\n $(\".marketing__notice\").hide()\r\n }\r\n }\r\n\r\n private loadTabsHeader = () => {\r\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabArticles(this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabAdvertisements(this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabInterstitials(this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabOptIns(this.salesUser, false),\r\n () => { this.bindHeaderClick() }\r\n );\r\n }\r\n\r\n private loadTabContent = (isConfigurationComplete: boolean) => { \r\n this.articleControllerHelper.initialize(isConfigurationComplete);\r\n this.optInController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.OptIns));\r\n this.advertisementsController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.Advertisements));\r\n this.interstitialsController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.Interstitials));\r\n }\r\n\r\n private bindHeaderClick = () => {\r\n const marketingContentElem = $(\".client-administrator__tab-content\");\r\n marketingContentElem.find(\".marketing-header-placeholder\").removeClickListeners();\r\n marketingContentElem.find(\".marketing-header-placeholder\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const tabType: MarketingTabType = +elem.closest(\".marketing__slide\").data(\"slide-id\");\r\n const contentPlaceholder = elem.next(); \r\n const shouldOpenSlide = !contentPlaceholder.hasClass(\"marketing-content-placeholder--open\")\r\n this.marketingRenderer.toggleSlide(tabType, shouldOpenSlide);\r\n })\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class MarketingRenderer {\r\n private marketingHeaderTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTabHeaderTemplate = (model: MarketingTabModel, callBack: Function, keepSlidesOpenState: boolean = false): void => {\r\n if (this.marketingHeaderTemplate == null) {\r\n this.marketingHeaderTemplate = Handlebars.compile($(\"#marketing-header-template\").html());\r\n }\r\n\r\n $(`.marketing__slide[data-slide-id=\"${model.marketingTabType}\"] .marketing-header-placeholder`).html(this.marketingHeaderTemplate(model));\r\n this.toggleSlide(model.marketingTabType, model.isSlideOpen, keepSlidesOpenState)\r\n callBack();\r\n }\r\n\r\n public toggleSlide = (tab: MarketingTabType, open: boolean, keepSlidesOpenState: boolean = false): void => {\r\n const tabContainer = $(`.marketing__slide[data-slide-id=\"${+tab}\"]`)\r\n const contentPlaceholder = tabContainer.find(\".marketing-content-placeholder\");\r\n\r\n if (!keepSlidesOpenState) {\r\n $(\".marketing-content-placeholder\").removeModifiers(\"open\").height(0);\r\n }\r\n\r\n if (open) {\r\n const isOpen = $(\".marketing__arrow\").hasModifier(\"slide-open\");\r\n if (isOpen) {\r\n $(\".marketing__arrow\").removeModifiers(\"slide-open\");\r\n }\r\n const content = contentPlaceholder.children(\":first-child\");\r\n contentPlaceholder.height(content.outerHeight());\r\n contentPlaceholder.addModifiers(\"open\");\r\n tabContainer.find(\".marketing__arrow\").addModifiers(\"slide-open\");\r\n } else {\r\n $(\".marketing__arrow\").removeModifiers(\"slide-open\");\r\n }\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import Administrator = Business.Administrator;\r\n\r\n export class SubLeaguesRenderer {\r\n private template: HandlebarsTemplateDelegate;\r\n private rowTemplate: HandlebarsTemplateDelegate;\r\n private slideTemplate: HandlebarsTemplateDelegate;\r\n private mainLeagueAdminSlideTemplate: HandlebarsTemplateDelegate;\r\n private subLeagueAdminSlideTemplate: HandlebarsTemplateDelegate;\r\n\r\n private leagueAdminDetailsTemplate: HandlebarsTemplateDelegate;\r\n private inviteAdminFormTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderOverview = (model: Business.SubLeagues, bindHtmlElements: Function): void => {\r\n if (this.rowTemplate == null) {\r\n this.rowTemplate = Handlebars.compile($(\"#subleague-row-template\").html());\r\n Handlebars.registerPartial(\"subLeagueRow\", this.rowTemplate);\r\n }\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#subleagues-template\").html());\r\n }\r\n if (this.leagueAdminDetailsTemplate == null) {\r\n this.leagueAdminDetailsTemplate = Handlebars.compile($(\"#league-admin-details-template\").html());\r\n Handlebars.registerPartial(\"leagueAdminDetails\", this.leagueAdminDetailsTemplate);\r\n }\r\n if (this.inviteAdminFormTemplate == null) {\r\n this.inviteAdminFormTemplate = Handlebars.compile($(\"#invite-admin-form-template\").html());\r\n Handlebars.registerPartial(\"inviteAdminForm\", this.inviteAdminFormTemplate);\r\n }\r\n\r\n $(\".client-administrator-subleagues__subleagues-placeholder\").html(this.template(model));\r\n bindHtmlElements();\r\n }\r\n\r\n public openSlide = (row: JQuery, slideModel: LeagueSlideModel, bindHtmlElements: Function): void => {\r\n if (this.slideTemplate == null) {\r\n this.slideTemplate = Handlebars.compile($(\"#subleague-slide-template\").html());\r\n }\r\n\r\n row.addModifiers(\"selected\");\r\n const appendedRow = $(``, { \"class\": \"client-administrator-subleagues__sub-league-row\", \"data-league-id\": slideModel.leagueId }).addModifiers(\"slide\").insertAfter(row).html(this.slideTemplate(slideModel));\r\n appendedRow.height(0);\r\n if (slideModel.isMainLeague) {\r\n this.renderMainLeagueAdminContent(appendedRow, slideModel);\r\n }\r\n else {\r\n this.renderSubLeagueAdminContent(appendedRow, slideModel);\r\n }\r\n\r\n const slideElement = appendedRow.find(\".subleague-slide\");\r\n if (!appendedRow.is(\":last-child\")) {\r\n slideElement.addModifiers(\"border-bottom\");\r\n }\r\n const content = slideElement.find(\".subleague-slide__content\");\r\n slideElement.height(content.outerHeight());\r\n bindHtmlElements();\r\n }\r\n\r\n public adjustHeight = (slideRow: JQuery): void => {\r\n const slide = slideRow.find(\".subleague-slide\");\r\n const content = slide.find(\".subleague-slide__content\");\r\n slide.height(content.outerHeight());\r\n }\r\n\r\n public closeSlide = (slideRow: JQuery): void => {\r\n const slideElement = slideRow.find(\".subleague-slide\");\r\n if (!slideElement)\r\n return;\r\n\r\n slideElement.height(0);\r\n slideRow.height(0);\r\n slideElement.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", () => {\r\n slideRow.remove();\r\n });\r\n }\r\n\r\n public renderSubLeagueAdmin = (placeholder: JQuery, admin: Administrator, onRendered: Function): void => {\r\n if (admin == null) {\r\n placeholder.html(this.inviteAdminFormTemplate(_.extend({ isMainLeague: false, order: placeholder.is(\":first-child\") ? 1 : 2 })));\r\n }\r\n else {\r\n placeholder.html(this.leagueAdminDetailsTemplate(_.extend(admin, { isMainLeague: false })));\r\n }\r\n onRendered();\r\n }\r\n\r\n public renderEditSubLeagueAdmin = (placeholder: JQuery, admin: Administrator, onRendered: Function): void => {\r\n\r\n placeholder.html(this.inviteAdminFormTemplate(_.extend(admin, { isMainLeague: false, order: placeholder.is(\":first-child\") ? 1 : 2 })));\r\n placeholder.find(\".subleague-slide__button--add-admin\").hide();\r\n placeholder.find(\".subleague-slide__form\").removeModifiers(\"hidden\");\r\n onRendered();\r\n }\r\n\r\n private renderMainLeagueAdminContent = (slideRow: JQuery, model: any): void => {\r\n if (this.mainLeagueAdminSlideTemplate == null) {\r\n this.mainLeagueAdminSlideTemplate = Handlebars.compile($(\"#main-league-admin-slide-template\").html());\r\n }\r\n\r\n slideRow.find(\".subleague-slide-placeholder\").html(this.mainLeagueAdminSlideTemplate(model));\r\n }\r\n\r\n private renderSubLeagueAdminContent = (slideRow: JQuery, model: any): void => {\r\n if (this.subLeagueAdminSlideTemplate == null) {\r\n this.subLeagueAdminSlideTemplate = Handlebars.compile($(\"#sub-league-admin-slide-template\").html());\r\n }\r\n\r\n slideRow.find(\".subleague-slide-placeholder\").html(this.subLeagueAdminSlideTemplate(model));\r\n }\r\n\r\n\r\n public renderRow = (leagueId: number, model: Business.SubLeague, onRendered: Function): void => {\r\n const row = $(`.client-administrator-subleagues__sub-league-row--selected[data-league-id=\"${leagueId}\"]`);\r\n const rowClass = row.hasClass(\"even\") ? \"even\" : \"odd\";\r\n row.replaceWith(this.rowTemplate({ ...model, selected: true, rowClass: rowClass }));\r\n onRendered();\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import PackageOptionsResult = Business.PackageOptionsResult;\r\n import PackageType = Business.PackageType;\r\n import PackageOptionModel = Business.PackageOptionModel;\r\n import PackageOptionsTableModel = Business.PackageOptionsTableModel;\r\n import Deal = Business.Deal;\r\n import SummaryModel = Business.SummaryModel;\r\n import PackageRowModel = Business.PackageRowModel;\r\n import Deals = Business.Deals;\r\n\r\n export class UpgradeRenderer {\r\n private template: HandlebarsTemplateDelegate;\r\n\r\n private packageOptionsTableTemplate: HandlebarsTemplateDelegate;\r\n private packageOptionsTableRowTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\r\n private upgradeButtonsTemplate: HandlebarsTemplateDelegate;\r\n private upgradeSalesPackagesTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderParticipantsTable = (currentParticipants: number, deals: Array, callBack: Function): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#participants-table-template\").html());\r\n }\r\n $(\".client-administrator-upgrade__participants-table\").html(this.template(UpgradeModel.fromDto(currentParticipants, deals)));\r\n callBack();\r\n }\r\n\r\n public preloadParticipantsTable = (): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#participants-table-template\").html());\r\n }\r\n $(\".client-administrator-upgrade__participants-table\").html(this.template(UpgradeModel.createPreload()));\r\n }\r\n\r\n public renderPackageOptionsTable = (packageOptions: PackageOptionsResult, recommendedPackage: PackageType, currentSelectedPackage: PackageType, bindHtmlElements: Function): void => {\r\n const packageOptionsModel: Array = new Array();\r\n packageOptions.packageOptions.forEach(po => {\r\n const model = new PackageOptionModel(po.id, po.packageType, po.isImportantDifference, po.label);\r\n packageOptionsModel.push(model);\r\n });\r\n this.renderPackageOptionsTableTemplate(packageOptionsModel, recommendedPackage, currentSelectedPackage, bindHtmlElements);\r\n }\r\n\r\n public preloadPackageOptionsTable = () => {\r\n const packageOptionModels: Array = new Array();\r\n const model = new PackageOptionModel(0, PackageType.Budget, false, TranslationData.get(\"Common.Loading\"));\r\n packageOptionModels.push(model);\r\n\r\n this.renderPackageOptionsTableTemplate(packageOptionModels, null, null, () => { });\r\n }\r\n\r\n private renderPackageOptionsTableTemplate = (packageOptions: Array, recommendedPackage: PackageType, currentSelectedPackage: PackageType, bindHtmlElements: Function): void => {\r\n if (this.packageOptionsTableTemplate == null) {\r\n this.packageOptionsTableTemplate = Handlebars.compile($(\"#package-options-table-template\").html());\r\n }\r\n if (this.packageOptionsTableRowTemplate == null) {\r\n this.packageOptionsTableRowTemplate = Handlebars.compile($(\"#packageoptions-table-row-template\").html());\r\n Handlebars.registerPartial(\"packageOptionsTableRowPartial\", this.packageOptionsTableRowTemplate);\r\n }\r\n\r\n const packageOptionsTable = new PackageOptionsTableModel(recommendedPackage, currentSelectedPackage, packageOptions);\r\n\r\n $(\".package-options-table-placeholder\").html(this.packageOptionsTableTemplate(packageOptionsTable));\r\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${recommendedPackage}\"]`).addModifiers(\"recommended\");\r\n\r\n if (packageOptionsTable.shouldBudgetBeDisabled())\r\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${PackageType.Budget}\"]`).addModifiers(\"disabled\");\r\n if (packageOptionsTable.shouldBusinessBeDisabled())\r\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${PackageType.Business}\"]`).addModifiers(\"disabled\");\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public renderSideView = (summary: SummaryModel, order: PackageRowModel[], bindHtmlElements: Function): void => {\r\n if (this.orderOverviewSideViewTemplate == null) {\r\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\r\n }\r\n\r\n if (this.orderOverviewGameTemplate == null) {\r\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\r\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\r\n }\r\n\r\n $(\".business-checkout__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\r\n summary,\r\n games: order.filter(o => o.type === \"game\"),\r\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\r\n isUpgrade: true\r\n }));\r\n\r\n const sideBar = $(\".business-checkout__side-view\");\r\n const pageTopPadding = parseInt($(\".client-administrator-upgrade\").css(\"padding-top\"));\r\n const titleHeight = $(\".client-administrator__title:visible\").outerHeight(true) + $(\".client-administrator-upgrade__subtitle\").outerHeight(true) + pageTopPadding;\r\n sideBar.css(\"top\", titleHeight);\r\n this.scrollInView(sideBar, titleHeight);\r\n\r\n $(document).scroll(_.throttle(() => {\r\n this.scrollInView(sideBar, titleHeight);\r\n }, 15));\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n private scrollInView = (sideBar: JQuery, titleHeight: number) => {\r\n const bottomContainer = $(\".client-administrator-upgrade__choose-package-content\");\r\n if (bottomContainer?.is(\":hidden\") || bottomContainer?.length < 1)\r\n return;\r\n\r\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\r\n const currentScroll = $(document).scrollTop();\r\n const maxBottomPosition = currentScroll - (titleHeight * 2) > bottomPosition ? bottomPosition : currentScroll - sideBar.outerHeight(true);\r\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\r\n }\r\n\r\n public renderUpgradeButtons = (selectedPackage: Business.PackageType, upgrades: Deals, bindHtmlElements: Function) => {\r\n\r\n if (this.upgradeButtonsTemplate == null) {\r\n this.upgradeButtonsTemplate = Handlebars.compile($(\"#upgrade-buttons-template\").html());\r\n }\r\n const list = new Array();\r\n _.each([PackageType.Budget, PackageType.Business, PackageType.Professional], packageType => {\r\n list.push(UpgradeButtonModel.fromDto(packageType, selectedPackage, upgrades));\r\n });\r\n\r\n $(\".client-administrator-upgrade__upgrade-buttons-placeholder\").html(this.upgradeButtonsTemplate(list));\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public resetSideView() {\r\n $(\".business-checkout__side-view-placeholder\").empty();\r\n $(\".client-administrator-upgrade__choose-participants\").removeAttr(\"style\");\r\n }\r\n\r\n public renderUpgradeSalesPackagesTemplate = (data: Business.MarketSalesPackage[], bindHtmlElements: Function) => {\r\n\r\n if (this.upgradeSalesPackagesTemplate == null) {\r\n this.upgradeSalesPackagesTemplate = Handlebars.compile($(\"#upgrade-sales-packages-template\").html());\r\n }\r\n\r\n // We show the first image of the most expensive sales package\r\n const getPackageTypeUrl = (input: Business.MarketSalesPackage[], salesPackageType: string) => {\r\n const filteredData = input.filter(x => Business.SalesPackageType[x.type] === salesPackageType);\r\n const lastSalesPackage = filteredData.reduce((maxPackage, currentPackage) => {\r\n return currentPackage.price > maxPackage.price ? currentPackage : maxPackage;\r\n }, filteredData[0]);\r\n return lastSalesPackage.imageUrls[0];\r\n }\r\n\r\n const packageTypes = Object.keys(Business.SalesPackageType)\r\n .filter(key => data.map(p => p.type)\r\n .some(p => p === Business.SalesPackageType[key]))\r\n .map(salesPackageType => ({\r\n packageType: Business.SalesPackageType[salesPackageType],\r\n label: TranslationData.get(`Business.${salesPackageType}.Short`),\r\n imageUrl: getPackageTypeUrl(data, salesPackageType)\r\n }));\r\n\r\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").html(this.upgradeSalesPackagesTemplate(packageTypes));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","\r\nmodule Business {\r\n\r\n export class BrandingPackageModel {\r\n public imageUrl: string;\r\n public isCropping: boolean;\r\n\r\n public isPreviewPrintCooldownActive: boolean;\r\n public hasAcceptedPreviewPrint: boolean;\r\n public hasRequestedPreviewPrint: boolean;\r\n\r\n private readonly salesPackageTypes: SalesPackageType[];\r\n\r\n public constructor(imageUrl,\r\n isPreviewPrintCooldownActive: boolean,\r\n hasAcceptedPreviewPrint: boolean,\r\n hasRequestedPreviewPrint: boolean,\r\n salesPackageTypes: SalesPackageType[],\r\n isCropping: boolean) {\r\n this.imageUrl = imageUrl;\r\n this.salesPackageTypes = salesPackageTypes;\r\n this.isCropping = isCropping;\r\n this.isPreviewPrintCooldownActive = isPreviewPrintCooldownActive;\r\n this.hasAcceptedPreviewPrint = hasAcceptedPreviewPrint;\r\n this.hasRequestedPreviewPrint = hasRequestedPreviewPrint;\r\n }\r\n\r\n public static fromDto = (clientMarketSettings: ClientMarketSettings, salesPackageTypes: SalesPackageType[]) => {\r\n return new BrandingPackageModel(\r\n clientMarketSettings.brandingPackageImageUrl,\r\n clientMarketSettings.isPreviewPrintCooldownActive,\r\n clientMarketSettings.hasAcceptedPreviewPrint,\r\n clientMarketSettings.hasRequestedPreviewPrint,\r\n salesPackageTypes,\r\n false);\r\n }\r\n\r\n public hasCompleted = () => {\r\n if (hasSalesPackage(this.salesPackageTypes, SalesPackageType.BrandingPackage)) {\r\n return !_.isEmpty(this.imageUrl) && this.hasRequestedPreviewPrint && this.hasAcceptedPreviewPrint;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public hasCompletedImageUpload = () => {\r\n return !_.isEmpty(this.imageUrl);\r\n }\r\n\r\n public updateImage = (imageUrl: string, isCropping: boolean) => {\r\n this.imageUrl = imageUrl;\r\n this.isCropping = isCropping;\r\n this.isPreviewPrintCooldownActive = false;\r\n this.hasRequestedPreviewPrint = false;\r\n }\r\n\r\n public updatePreviewPrintRequested = () => {\r\n this.hasRequestedPreviewPrint = true;\r\n this.isPreviewPrintCooldownActive = true;\r\n }\r\n\r\n public updateFinalPrintRequested = () => {\r\n this.hasRequestedPreviewPrint = true;\r\n this.hasAcceptedPreviewPrint = true;\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n export class ClientAdministratorStepModel {\r\n public configurationStepType: ConfigurationStepType;\r\n public step: number;\r\n public title: string;\r\n public status: ConfigurationStatusType;\r\n public isSlideOpen: boolean;\r\n\r\n public constructor(configurationStepType: ConfigurationStepType, salesPackageTypes: SalesPackageType[], labelKey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\r\n this.configurationStepType = configurationStepType;\r\n this.step = ClientAdministratorStepModel.getStepMap(salesPackageTypes)[configurationStepType];\r\n this.title = TranslationData.get(labelKey);\r\n this.status = status;\r\n this.isSlideOpen = isSlideOpen;\r\n }\r\n\r\n private static getStepMap = (salesPackageTypes: SalesPackageType[]) => {\r\n const $hasPromotionalPackage = hasSalesPackage(salesPackageTypes, SalesPackageType.PromotionalPackage);\r\n const $hasBrandingPackage = hasSalesPackage(salesPackageTypes, SalesPackageType.BrandingPackage);\r\n\r\n let stepAdjustment = 0;\r\n\r\n if (!$hasPromotionalPackage) {\r\n stepAdjustment++;\r\n }\r\n\r\n if (!$hasBrandingPackage) {\r\n stepAdjustment++;\r\n }\r\n\r\n return {\r\n [ConfigurationStepType.Administrators]: 1,\r\n [ConfigurationStepType.MainLeagueName]: 2,\r\n [ConfigurationStepType.LogoTakeOver]: 3,\r\n [ConfigurationStepType.LandingsPage]: 4,\r\n [ConfigurationStepType.RankingLogo]: 5,\r\n [ConfigurationStepType.PromotionalPackage]: 6,\r\n [ConfigurationStepType.BrandingPackage]: 7 - stepAdjustment,\r\n [ConfigurationStepType.MailingText]: 8 - stepAdjustment,\r\n [ConfigurationStepType.SubLeagues]: 9 - stepAdjustment,\r\n };\r\n }\r\n\r\n public static toStepAdministrators = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.Administrators,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.Administrators\",\r\n settings.hasCompletedAdmins() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n isOpen);\r\n }\r\n\r\n public static toStepMainLeagueName = (settings: ClientMarketSettingsModel) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.MainLeagueName,\r\n settings.salesPackageTypes,\r\n settings.leagueNameModel.getSlideTitle(),\r\n settings.hasCompletedLeagueName() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n false);\r\n }\r\n\r\n public static toStepLogoTakeOver = (settings: ClientMarketSettingsModel, salesUser: SalesUser, isOpen: boolean) => {\r\n const statusType = !isFeatureSupported(salesUser.packageType, Feature.LogoTakeOver) ?\r\n ConfigurationStatusType.UnAvailable : settings.hasCompletedLogoTakeOver() ?\r\n ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete;\r\n\r\n return new ClientAdministratorStepModel(ConfigurationStepType.LogoTakeOver,\r\n settings.salesPackageTypes,\r\n\r\n \"Business.Management.Configuration.Step.LogoTakeOver\", statusType, isOpen);\r\n }\r\n\r\n public static toStepLandingsPage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.LandingsPage,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.LandingsPage\",\r\n settings.hasCompletedLandingPage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n isOpen);\r\n }\r\n\r\n public static toStepRankingLogo = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.RankingLogo,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.RankingLogo\",\r\n settings.hasCompletedRankingPage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n isOpen);\r\n }\r\n\r\n public static toStepMailingText = (settings: ClientMarketSettingsModel) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.MailingText,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.MailingText\",\r\n settings.hasCompletedWelcomeEmail() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n false);\r\n }\r\n\r\n public static toStepSubLeagues = (settings: ClientMarketSettingsModel, salesUser: SalesUser, isOpen: boolean) => {\r\n const packageType = !isFeatureSupported(salesUser.packageType, Feature.SubLeagues)\r\n ? ConfigurationStatusType.UnAvailable\r\n : settings.hasCompletedSubLeagues()\r\n ? ConfigurationStatusType.Completed\r\n : ConfigurationStatusType.InComplete;\r\n\r\n return new ClientAdministratorStepModel(ConfigurationStepType.SubLeagues,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.SubLeagues\",\r\n packageType,\r\n isOpen);\r\n }\r\n\r\n public static toStepPromotionalPackage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.PromotionalPackage,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.PromotionalPackage\",\r\n settings.hasCompletedPromotionalPackage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n isOpen);\r\n }\r\n\r\n public static toStepBrandingPackage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\r\n return new ClientAdministratorStepModel(ConfigurationStepType.BrandingPackage,\r\n settings.salesPackageTypes,\r\n \"Business.Management.Configuration.Step.BrandingPackage\",\r\n settings.hasCompletedBrandingPackage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\r\n isOpen);\r\n }\r\n\r\n public getStatusName = (): string => {\r\n return ConfigurationStatusType[this.status].toString().toLowerCase();\r\n }\r\n\r\n public updateSlide(isOpen: boolean) {\r\n this.isSlideOpen = isOpen;\r\n }\r\n }\r\n}","module Business {\r\n export class LandingPageModel {\r\n public landingPageLogo: string;\r\n public laptopImageUrl: string;\r\n public phoneImageUrl: string;\r\n public optInRequired?: boolean;\r\n public packageType: PackageType;\r\n\r\n public constructor(landingPageLogo: string, laptopImageUrl: string, phoneImageUrl: string, packageType: PackageType, optInRequired: boolean | undefined) {\r\n this.landingPageLogo = landingPageLogo;\r\n this.laptopImageUrl = laptopImageUrl;\r\n this.phoneImageUrl = phoneImageUrl;\r\n this.optInRequired = optInRequired;\r\n this.packageType = packageType;\r\n }\r\n\r\n public static fromDto = (settings: ClientMarketSettings, packageType: PackageType, cdnUrl: string) => {\r\n return new LandingPageModel(\r\n settings.landingPageLogo,\r\n `${cdnUrl}/business/laptop/800x470-laptop-mockup-${settings.gameId}-${uiCulture.split(\"-\")[0]}.png`,\r\n `${cdnUrl}/business/laptop/iphone-${uiCulture.split(\"-\")[0]}.png`,\r\n packageType,\r\n settings.optInRequired);\r\n }\r\n\r\n private hasCompletedOptIn = () => {\r\n return this.packageType === PackageType.Professional\r\n ? !_.isNull(this.optInRequired)\r\n : true;\r\n }\r\n\r\n public hasCompleted = () => {\r\n return !_.isEmpty(this.landingPageLogo) && this.hasCompletedOptIn();\r\n }\r\n\r\n public updateLandingPage = (landingPageLogo: string, optInRequired: boolean | undefined) => {\r\n this.landingPageLogo = landingPageLogo;\r\n this.optInRequired = optInRequired;\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n\r\n export class LeagueNameModel {\r\n public leagueName: string;\r\n public packageType: PackageType;\r\n\r\n public constructor(leagueName: string, packageType: PackageType) {\r\n this.leagueName = leagueName;\r\n this.packageType = packageType;\r\n }\r\n\r\n public static fromDto = (clientMarketSettings: ClientMarketSettings, packageType: PackageType) => {\r\n return new LeagueNameModel(clientMarketSettings.leagueName, packageType);\r\n }\r\n\r\n public updateLeagueName = (leagueName: string) => {\r\n this.leagueName = leagueName;\r\n }\r\n\r\n public hasCompleted = (): boolean => {\r\n return this.leagueName != null && this.leagueName !== \"\";\r\n }\r\n\r\n public getSlideTitle = (): string => {\r\n return this.packageType === PackageType.Professional ?\r\n TranslationData.get(\"Business.Management.Configuration.Step.Professional\") :\r\n TranslationData.get(\"Business.Management.Configuration.Step.CompanyOrBusiness\");\r\n }\r\n\r\n public getTitle = (): string => {\r\n return this.packageType === PackageType.Professional ?\r\n TranslationData.get(\"Business.LeagueTitle.Professional\") :\r\n TranslationData.get(\"Business.LeagueTitle.CompanyOrBusiness\");\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n\r\n export class LogoTakeOverModel {\r\n public imageSrc: string;\r\n public backgroundColor: string;\r\n public headerIconColorType: HeaderIconColorType;\r\n public packageType: PackageType;\r\n\r\n public constructor(imageSrc: string, backgroundColor: string, headerIconColorType: HeaderIconColorType, packageType: PackageType) {\r\n this.imageSrc = imageSrc;\r\n this.backgroundColor = backgroundColor;\r\n this.headerIconColorType = headerIconColorType;\r\n this.packageType = packageType;\r\n }\r\n\r\n public static fromDto = (clientMarketSettings: ClientMarketSettings, packageType: PackageType) => {\r\n return new LogoTakeOverModel(clientMarketSettings.headerLogo, clientMarketSettings.headerBackgroundColor,\r\n clientMarketSettings.headerIconColorType, packageType);\r\n }\r\n\r\n public updateImage = (imageUrl: string): void => {\r\n this.imageSrc = imageUrl;\r\n }\r\n\r\n public updateBackgroundColor = (color: string): void => {\r\n this.backgroundColor = color;\r\n }\r\n\r\n public updateHeaderIcon = (type: HeaderIconColorType): void => {\r\n this.headerIconColorType = type;\r\n }\r\n\r\n public isAvailable = () => {\r\n return isFeatureSupported(this.packageType, Feature.LogoTakeOver);\r\n }\r\n\r\n public isBlack(): boolean {\r\n return this.headerIconColorType === HeaderIconColorType.Black;\r\n }\r\n\r\n public isWhite(): boolean {\r\n return this.headerIconColorType === HeaderIconColorType.White;\r\n }\r\n\r\n public hasCompleted(): boolean {\r\n return this.imageSrc != null &&\r\n this.imageSrc !== \"\" &&\r\n this.backgroundColor != null &&\r\n this.backgroundColor !== \"\" &&\r\n this.headerIconColorType != null;\r\n }\r\n }\r\n}","module Business {\r\n\r\n export class MultiSubLeaguesModel {\r\n public marketId: number;\r\n public cdnUrl: string;\r\n public culture: string;\r\n public packageType: PackageType;\r\n public subLeagueIsAllowedToChangeRankingLogo: boolean;\r\n public subLeagueIsAllowedToChangeEmail: boolean;\r\n public subLeagueIsAllowedToChangeName: boolean;\r\n public hasSaved: boolean;\r\n\r\n public constructor(marketId: number, packageType: PackageType,\r\n subLeagueIsAllowedToChangeRankingLogo: boolean,\r\n subLeagueIsAllowedToChangeEmail: boolean,\r\n subLeagueIsAllowedToChangeName: boolean) {\r\n this.marketId = marketId;\r\n this.packageType = packageType;\r\n this.subLeagueIsAllowedToChangeRankingLogo = subLeagueIsAllowedToChangeRankingLogo ?? false;\r\n this.subLeagueIsAllowedToChangeEmail = subLeagueIsAllowedToChangeEmail ?? false;\r\n this.subLeagueIsAllowedToChangeName = subLeagueIsAllowedToChangeName ?? false;\r\n this.hasSaved = subLeagueIsAllowedToChangeRankingLogo !== null && subLeagueIsAllowedToChangeEmail !== null && subLeagueIsAllowedToChangeName !== null\r\n }\r\n\r\n public static fromDto = (marketId: number, packageType: PackageType,\r\n subLeagueIsAllowedToChangeRankingLogo: boolean,\r\n subLeagueIsAllowedToChangeEmail: boolean,\r\n subLeagueIsAllowedToChangeName: boolean) => {\r\n return new MultiSubLeaguesModel(marketId,\r\n packageType,\r\n subLeagueIsAllowedToChangeRankingLogo,\r\n subLeagueIsAllowedToChangeEmail,\r\n subLeagueIsAllowedToChangeName);\r\n }\r\n\r\n public setChangeRankingLogo = (isAllowed: boolean) => {\r\n this.subLeagueIsAllowedToChangeRankingLogo = isAllowed;\r\n }\r\n\r\n public setChangeEmail = (isAllowed: boolean) => {\r\n this.subLeagueIsAllowedToChangeEmail = isAllowed;\r\n }\r\n\r\n public setChangeName = (isAllowed: boolean) => {\r\n this.subLeagueIsAllowedToChangeName = isAllowed;\r\n }\r\n\r\n public isAvailable = () => {\r\n return isFeatureSupported(this.packageType, Feature.SubLeagues);\r\n }\r\n\r\n public subLeagueIsNotAllowedToChangeRankingLogo = () => {\r\n return this.subLeagueIsAllowedToChangeRankingLogo != null ? !this.subLeagueIsAllowedToChangeRankingLogo : false;\r\n }\r\n\r\n public subLeagueIsNotAllowedToChangeEmail = () => {\r\n return this.subLeagueIsAllowedToChangeEmail != null ? !this.subLeagueIsAllowedToChangeEmail : false;\r\n }\r\n\r\n public subLeagueIsNotAllowedToChangeName = () => {\r\n return this.subLeagueIsAllowedToChangeName != null ? !this.subLeagueIsAllowedToChangeName : false;\r\n }\r\n\r\n public hasCompleted = () => {\r\n return this.subLeagueIsAllowedToChangeRankingLogo !== null && this.subLeagueIsAllowedToChangeEmail !== null && this.subLeagueIsAllowedToChangeName !== null && this.hasSaved;\r\n }\r\n }\r\n}","\r\nmodule Business {\r\n\r\n export class PromotionalPackageModel {\r\n public imageUrl: string;\r\n public cropped: boolean;\r\n public hasNewPromotionalPackageLogoToSend: boolean\r\n\r\n private readonly salesPackageTypes: SalesPackageType[];\r\n\r\n public constructor(imageUrl, salesPackageTypes, cropped: boolean, hasNewPromotionalPackageLogoToSend: boolean) {\r\n this.imageUrl = imageUrl;\r\n this.salesPackageTypes = salesPackageTypes;\r\n this.hasNewPromotionalPackageLogoToSend = hasNewPromotionalPackageLogoToSend\r\n this.cropped = cropped;\r\n }\r\n\r\n public static fromDto = (clientMarketSettings: ClientMarketSettings, salesPackageTypes: SalesPackageType[]) => {\r\n return new PromotionalPackageModel(clientMarketSettings.promotionalPackageImageUrl, salesPackageTypes, true, clientMarketSettings.hasNewPromotionalPackageLogoToSend);\r\n }\r\n\r\n public hasCompleted = () => {\r\n if (this.salesPackageTypes.indexOf(SalesPackageType.PromotionalPackage) > -1) {\r\n return !_.isEmpty(this.imageUrl) && !this.hasNewPromotionalPackageLogoToSend;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public updateImage = (imageUrl: string, cropped: boolean) => {\r\n this.imageUrl = imageUrl;\r\n this.cropped = cropped;\r\n }\r\n }\r\n}","\r\nmodule Business {\r\n\r\n export class RankingLogoModel {\r\n public imageUrl: string;\r\n public marketName: string;\r\n public leagueName: string;\r\n\r\n public constructor(imageUrl: string, marketName: string, leagueName: string) {\r\n this.imageUrl = imageUrl;\r\n this.marketName = marketName;\r\n this.leagueName = leagueName;\r\n }\r\n\r\n public static fromDto = (clientMarketSettings: ClientMarketSettings, clientMarket: ClientMarket) => {\r\n return new RankingLogoModel(clientMarketSettings.rankingPageLogo, clientMarket.marketName,\r\n clientMarketSettings.leagueName);\r\n }\r\n\r\n public hasCompleted = () => {\r\n return !_.isEmpty(this.imageUrl);\r\n }\r\n\r\n public updateImageUrl = (imageUrl: string) => {\r\n this.imageUrl = imageUrl;\r\n }\r\n\r\n public updateSubLeagueName = (leagueName: string) => {\r\n this.leagueName = leagueName;\r\n }\r\n }\r\n}","module Business {\r\n export class WelcomeEmailModel {\r\n public title: string;\r\n public body: string;\r\n public imgUrl: string;\r\n public logoUrl: string;\r\n public hasSeenOrChanged: boolean;\r\n public hasUnsavedChanges: boolean;\r\n\r\n public constructor(title: string, body: string, imgUrl: string, logoUrl: string, hasSeenOrChanged: boolean) {\r\n this.title = title;\r\n this.body = body;\r\n this.imgUrl = imgUrl;\r\n this.logoUrl = logoUrl;\r\n this.hasSeenOrChanged = hasSeenOrChanged;\r\n }\r\n\r\n public static fromDto = (settings: ClientMarketSettings) => {\r\n return new WelcomeEmailModel(\r\n settings.welcomeEmailTitle,\r\n settings.welcomeEmailBody,\r\n settings.welcomeEmailImageUrl,\r\n settings.landingPageLogo,\r\n settings.welcomeEmailHasSeenOrChanged);\r\n }\r\n\r\n public update(title: string, body: string) {\r\n this.title = title;\r\n this.body = body;\r\n }\r\n\r\n public hasEditedButNotSaved(bool: boolean) {\r\n this.hasUnsavedChanges = bool;\r\n }\r\n\r\n public complete() {\r\n this.hasSeenOrChanged = true;\r\n }\r\n\r\n public hasCompleted() {\r\n return this.hasSeenOrChanged;\r\n }\r\n\r\n public updateRankingPageLogo = (rankingPageLogo: string): void => {\r\n this.logoUrl = rankingPageLogo;\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import cropperConfig = Business.cropperConfig;\r\n export class AdvertisementsController {\r\n private advertisementsRenderer: Business.AdvertisementsRenderer;\r\n private advertisementRepository: Business.AdvertisementRepository;\r\n private platformRepository: Platform.Repository;\r\n\r\n private advertisements: Business.Advertisements;\r\n private selectedAdvertisementId: number | null;\r\n private hasUnsavedChanges: boolean;\r\n private gameId: number | null;\r\n private isCropping: boolean;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, private readonly marketId: number) {\r\n this.advertisementsRenderer = new Business.AdvertisementsRenderer(cdnUrl);\r\n this.advertisementRepository = new Business.AdvertisementRepository(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, marketId);\r\n }\r\n\r\n public initialize = (isFeatureSupported: boolean) => {\r\n if (!isFeatureSupported) {\r\n this.advertisementsRenderer.render(\"unavailable\", () => {\r\n this.bindUpgradeButton();\r\n });\r\n return;\r\n }\r\n\r\n $.when(\r\n this.advertisementRepository.get(this.marketId),\r\n this.platformRepository.getGameInfo(this.marketId),\r\n ).done((advertisements: Business.Advertisements, gameInfo: Platform.GameInfo) => {\r\n this.advertisements = advertisements\r\n this.gameId = gameInfo.gameId;\r\n\r\n this.advertisementsRenderer.render(\"available\");\r\n\r\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\r\n this.bindClickOnAdvertisement();\r\n this.bindToggleActive();\r\n this.bindInput();\r\n });\r\n\r\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\r\n this.bindClickOnActive();\r\n });\r\n\r\n this.advertisementsRenderer.renderExampleAdvertisement(\"\", `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\r\n this.bindNewAdvertisementButton();\r\n });\r\n\r\n this.advertisementsRenderer.renderAdvertisementActivateButton(false, () => {\r\n this.bindToggleActive();\r\n })\r\n\r\n this.advertisementsRenderer.renderHeaderImage(null, () => {\r\n this.bindChangeImage();\r\n this.bindSaveButton();\r\n this.bindDeleteButton();\r\n });\r\n\r\n const activeAdvertisement = advertisements.getActive()\r\n if (activeAdvertisement) {\r\n this.setFormData(activeAdvertisement.id, activeAdvertisement.imageLink, activeAdvertisement.imageName, activeAdvertisement.imagePath, activeAdvertisement.isActive);\r\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${activeAdvertisement.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n }\r\n })\r\n }\r\n\r\n private bindUpgradeButton = () => {\r\n $(\".advertisements__button-upgrade\").on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n })\r\n }\r\n\r\n private bindChangeImage = () => {\r\n $(\".advertisements__image-upload\").unbind()\r\n $(\".advertisements__image-upload\").on(\"click\", event => {\r\n $(\".advertisements__image\").click();\r\n });\r\n\r\n $(\".advertisements__image\").unbind();\r\n $(\".advertisements__image\").on(\"change\", event => {\r\n const elem = $(event.currentTarget);\r\n const image = elem.prop(\"files\")[0];\r\n if (!image)\r\n return\r\n\r\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\r\n if (!_.contains(validImageTypes, image?.type)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\r\n return;\r\n }\r\n this.hasUnsavedChanges = true;\r\n var formData = new FormData();\r\n formData.append(\"fileData\", image);\r\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\r\n this.advertisementRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.advertisementsRenderer.renderHeaderImage(apiResult.content);\r\n this.advertisementsRenderer.renderExampleAdvertisement(apiResult.content, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`);\r\n\r\n if (image?.type != \"image/gif\") {\r\n var $image_elem = $(\".advertisements__uploaded-image\")\r\n $image_elem.cropper(cropperConfig(image, {\r\n preview: \".advertisements__preview-advertisement-cropper\",\r\n }));\r\n\r\n $(\".advertisements__hover\").hide()\r\n $(\".advertisements__preview-advertisement-image\").hide()\r\n $(\".advertisements__image-upload\").unbind(\"click\")\r\n this.isCropping = true\r\n }\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\r\n })\r\n })\r\n }\r\n\r\n private getNewAdvertisementFromForm = (advertisementId: number, isActive: boolean): Business.Advertisement => {\r\n const nameElem = $(\".advertisements__input--title\")\r\n const name = nameElem.val()\r\n const linkElem = $(\".advertisements__input--link\")\r\n const link = linkElem.val()\r\n\r\n const imagePath = $(\".advertisements__uploaded-image\").data(\"image-path\");\r\n\r\n const advertisement = new Business.Advertisement(advertisementId, name, imagePath, link, isActive)\r\n return advertisement\r\n }\r\n\r\n private validateAdvertisement = (): boolean => {\r\n let isValid = true;\r\n\r\n const nameElem = $(\".advertisements__input--title\")\r\n const name = nameElem.val()\r\n\r\n const linkElem = $(\".advertisements__input--link\")\r\n const link = linkElem.val()\r\n\r\n const imageElem = $(\".advertisements__uploaded-image\")\r\n const image = imageElem.attr(\"src\")\r\n\r\n if (!name) {\r\n nameElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n nameElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n if (!isValidHttpUrl(link)) {\r\n linkElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n linkElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n if (!image) {\r\n imageElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n imageElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n return isValid\r\n }\r\n\r\n private bindSaveButton = (): void => {\r\n $(\".advertisements__button--save\").unbind();\r\n $(\".advertisements__button--save\").on(\"click\", () => {\r\n if (!this.validateAdvertisement()) return;\r\n var elem = $(\".advertisements__image\")\r\n const image = elem.prop(\"files\")[0];\r\n if (this.isCropping) {\r\n var $image_elem = $(\".advertisements__uploaded-image\")\r\n var cropper = $image_elem.data('cropper');\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\r\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\r\n this.advertisementRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.advertisementsRenderer.renderHeaderImage(apiResult.content);\r\n this.advertisementsRenderer.renderExampleAdvertisement(apiResult.content, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`);\r\n this.saveForm()\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\r\n if (this.isCropping) {\r\n $(\".advertisements__hover\").show()\r\n $(\".advertisements__preview-advertisement-image\").show()\r\n $(\".advertisements__image-upload\").on(\"click\", event => {\r\n $(\".advertisements__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n\r\n })\r\n }, image?.type)\r\n } else {\r\n this.saveForm()\r\n }\r\n });\r\n }\r\n\r\n private saveForm = () => {\r\n const existingAdvertisement = this.advertisements.getById(this.selectedAdvertisementId)\r\n const advertisement = this.getNewAdvertisementFromForm(this.selectedAdvertisementId ?? 0, existingAdvertisement?.isActive ?? false)\r\n\r\n if (this.advertisements.count() >= 6 && !existingAdvertisement) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\r\n return\r\n }\r\n\r\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\r\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\r\n\r\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\r\n this.bindClickOnAdvertisement();\r\n this.bindNewAdvertisementButton();\r\n this.bindToggleActive();\r\n this.resetFormData();\r\n })\r\n\r\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\r\n this.bindClickOnActive();\r\n });\r\n this.hasUnsavedChanges = false;\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private bindNewAdvertisementButton = () => {\r\n $(\".advertisements__button--new\").unbind()\r\n $(\".advertisements__button--new\").on(\"click\", event => {\r\n if (this.advertisements.count() < 6) {\r\n if (!this.hasUnsavedChanges) {\r\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n return;\r\n }\r\n this.showSaveAdvertisementPopup(() => {\r\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".advertisements__button--save\").click()\r\n })\r\n\r\n } else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\r\n }\r\n });\r\n\r\n }\r\n\r\n private bindDeleteButton = () => {\r\n $(\".advertisements__button--delete\").unbind();\r\n $(\".advertisements__button--delete\").on(\"click\", event => {\r\n if (!this.selectedAdvertisementId) return\r\n this.showDeleteAdvertisementPopup(this.selectedAdvertisementId);\r\n })\r\n }\r\n\r\n private setFormData(id: number, imageLink: string, imageName: string, imagePath: string, isActive: boolean) {\r\n $(\".advertisements__image\").val(\"\")\r\n $(\".advertisements__input--title\").removeModifiers(\"invalid\").val(imageName);\r\n $(\".advertisements__input--link\").removeModifiers(\"invalid\").val(imageLink);\r\n\r\n this.selectedAdvertisementId = id;\r\n this.advertisementsRenderer.renderHeaderImage(imagePath);\r\n this.advertisementsRenderer.renderExampleAdvertisement(imagePath, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\r\n this.bindNewAdvertisementButton();\r\n });\r\n this.advertisementsRenderer.renderAdvertisementActivateButton(isActive, () => {\r\n this.bindToggleActive();\r\n })\r\n\r\n }\r\n\r\n private resetFormData() {\r\n this.setFormData(0, \"\", \"\", \"\", false)\r\n this.advertisementsRenderer.renderExampleAdvertisement(\"\", `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\r\n this.bindNewAdvertisementButton();\r\n });\r\n if (this.isCropping) {\r\n $(\".advertisements__hover\").show()\r\n $(\".advertisements__preview-advertisement-image\").show()\r\n $(\".advertisements__image-upload\").on(\"click\", event => {\r\n $(\".advertisements__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n }\r\n\r\n private bindClickOnAdvertisement = (): void => {\r\n $(\".advertisements__uploaded-advertisement-body\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n if (!this.hasUnsavedChanges) {\r\n return this.switchAdvertisement(elem);\r\n }\r\n\r\n this.showSaveAdvertisementPopup(() => {\r\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".advertisements__button--save\").click()\r\n });\r\n })\r\n }\r\n\r\n private switchAdvertisement = (elem: JQuery) => {\r\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n elem.addModifiers(\"selected\");\r\n\r\n const advertisementId = +elem.data(\"advertisement-id\")\r\n const advertisement = this.advertisements.getById(advertisementId)\r\n\r\n if (!advertisement) return;\r\n this.setFormData(advertisement.id, advertisement.imageLink, advertisement.imageName, advertisement.imagePath, advertisement.isActive);\r\n }\r\n\r\n private showDeleteAdvertisementPopup = (advertisementId: number) => {\r\n $.newPopup(\"remove-advertisement-popup\");\r\n $.togglePopup(\"#remove-advertisement-popup\", true, true);\r\n\r\n $(\"#remove-advertisement-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Advertisement.DeleteConfirmation\")?.format(this.advertisements.getById(advertisementId)?.imageName));\r\n\r\n $(\"#remove-advertisement-popup .popup-content-body-close-button,#remove-advertisement-popup .popup-content-header__close,#remove-advertisement-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#remove-advertisement-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-advertisement-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\r\n this.advertisementRepository.delete(this.marketId, advertisementId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Removed\");\r\n this.advertisements = Business.Advertisements.fromJson(apiResult.content)\r\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\r\n this.bindClickOnAdvertisement()\r\n this.bindNewAdvertisementButton();\r\n this.bindToggleActive();\r\n this.resetFormData();\r\n })\r\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\r\n this.bindToggleActive();\r\n this.bindClickOnActive();\r\n })\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\r\n $.togglePopup(\"#remove-advertisement-popup\", false, true);\r\n });\r\n });\r\n }\r\n\r\n private showSaveAdvertisementPopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\r\n $.newPopup(\"save-advertisement-popup\");\r\n $.togglePopup(\"#save-advertisement-popup\", true, true);\r\n\r\n $(\"#save-advertisement-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-advertisement-popup\", false, true);\r\n onDoNotSaveClick();\r\n this.hasUnsavedChanges = false;\r\n });\r\n\r\n $(\"#save-advertisement-popup .popup-content-header__close,#save-advertisement-popup .popup-content-body-cancel-button,#save-advertisement-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#save-advertisement-popup\", false, true);\r\n });\r\n\r\n $(\"#save-advertisement-popup .popup-content-body-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-advertisement-popup\", false, true);\r\n onSaveClick();\r\n });\r\n }\r\n\r\n private bindInput = () => {\r\n $(\".advertisements__input--title\").unbind();\r\n $(\".advertisements__input--title\").on(\"input\", event => {\r\n this.hasUnsavedChanges = true\r\n })\r\n $(\".advertisements__input--link\").unbind();\r\n $(\".advertisements__input--link\").on(\"keyup\", event => {\r\n this.hasUnsavedChanges = true\r\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\r\n })\r\n\r\n }\r\n\r\n private bindToggleActive = () => {\r\n $(\".advertisements__button--activate\").unbind()\r\n $(\".advertisements__button--activate\").on(\"click\", () => {\r\n const existingAdvertisement = this.advertisements.getById(this.selectedAdvertisementId);\r\n\r\n if (!this.validateAdvertisement()) return;\r\n\r\n if (!existingAdvertisement) {\r\n NotificationBar.Display(TranslationData.get(\"Common.PleaseSave\"));\r\n return;\r\n }\r\n\r\n if (existingAdvertisement.isActive) {\r\n const advertisement = this.getNewAdvertisementFromForm(existingAdvertisement.id, false)\r\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\r\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\r\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\r\n this.bindClickOnActive();\r\n })\r\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\r\n this.bindClickOnAdvertisement();\r\n this.bindInput();\r\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${existingAdvertisement.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n });\r\n this.hasUnsavedChanges = false;\r\n\r\n this.advertisementsRenderer.renderAdvertisementActivateButton(!existingAdvertisement.isActive, () => {\r\n this.bindToggleActive();\r\n })\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n else {\r\n $(\".advertisements__button--activate\").val(TranslationData.get(\"Common.Activate\"))\r\n const advertisement = this.getNewAdvertisementFromForm(existingAdvertisement.id, true);\r\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\r\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\r\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\r\n this.bindClickOnActive();\r\n });\r\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\r\n this.bindClickOnAdvertisement();\r\n this.bindInput();\r\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${advertisement.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n });\r\n this.hasUnsavedChanges = false;\r\n this.advertisementsRenderer.renderAdvertisementActivateButton(!existingAdvertisement.isActive, () => {\r\n this.bindToggleActive();\r\n })\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n })\r\n }\r\n\r\n private bindClickOnActive = () => {\r\n $(\".advertisements__active-advertisement-body\").on(\"click\", () => {\r\n const currentActive = this.advertisements.getActive()\r\n this.setFormData(currentActive.id, currentActive.imageLink, currentActive.imageName, currentActive.imagePath, currentActive.isActive)\r\n\r\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n const elem = $(`[data-advertisement-id=\"${currentActive.id}\"]`)\r\n elem.addModifiers(\"selected\");\r\n })\r\n }\r\n }\r\n}","module Business {\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class AdvertisementsRenderer {\r\n private advertisementTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsNotAvailableTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsHeaderImageTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsActiveTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsExampleTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsUploadedTemplate: HandlebarsTemplateDelegate;\r\n private advertisementsActivateButton: HandlebarsTemplateDelegate;\r\n\r\n constructor(private readonly cdnUrl: string) { }\r\n\r\n public render = (style: \"available\" | \"unavailable\", callback?: Function): void => {\r\n if (this.advertisementsTemplate == null) {\r\n this.advertisementsTemplate = Handlebars.compile($(\"#marketing-advertisements-template\").html());\r\n }\r\n\r\n if (this.advertisementsNotAvailableTemplate == null) {\r\n this.advertisementsNotAvailableTemplate = Handlebars.compile($(\"#marketing-advertisements-not-available-template\").html());\r\n Handlebars.registerPartial(\"advertisementsNotAvailablePartial\", this.advertisementsNotAvailableTemplate);\r\n }\r\n\r\n const model = { cdnUrl: this.cdnUrl, isAvailable: style === \"available\" };\r\n\r\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.Advertisements}\"]`);\r\n slideContainer.find(\".marketing-content-placeholder\").html(this.advertisementsTemplate(model));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderHeaderImage = (imagePath: string, callback?: Function): void => {\r\n if (this.advertisementsHeaderImageTemplate == null) {\r\n this.advertisementsHeaderImageTemplate = Handlebars.compile($(\"#marketing-advertisements-header-image-template\").html());\r\n }\r\n\r\n $(\".advertisements__upload-image\").html(this.advertisementsHeaderImageTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderActiveAdvertisement = (advertisements: Business.Advertisements, callback?: Function): void => {\r\n if (this.advertisementsActiveTemplate == null) {\r\n this.advertisementsActiveTemplate = Handlebars.compile($(\"#marketing-advertisements-active-template\").html());\r\n }\r\n\r\n const activeAdvertisement = advertisements.getActive();\r\n const model = { ...activeAdvertisement, cdnUrl: this.cdnUrl, hasActiveAdvertisement: activeAdvertisement != null };\r\n $(\".advertisements__active-advertisements-placeholder\").html(this.advertisementsActiveTemplate(model));\r\n\r\n if (activeAdvertisement != null) {\r\n $(\".advertisements__active-advertisement-active-text\").removeModifiers(\"inactive\")\r\n $(\".advertisements__active-advertisement-body\").addModifiers(\"active\")\r\n } else {\r\n $(\".advertisements__active-advertisement-active-text\").addModifiers(\"inactive\")\r\n $(\".advertisements__active-advertisement-body\").removeModifiers(\"active\")\r\n }\r\n\r\n callback?.();\r\n }\r\n\r\n public renderExampleAdvertisement = (imagePath: string, mockImagePath: string, callback?: Function): void => {\r\n if (this.advertisementsExampleTemplate == null) {\r\n this.advertisementsExampleTemplate = Handlebars.compile($(\"#marketing-advertisements-example-template\").html());\r\n }\r\n\r\n $(\".advertisements__example-advertisements-placeholder\").html(this.advertisementsExampleTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl, mockImagePath }));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderUploadedAdvertisements = (advertisements: Business.Advertisements, callback?: Function): void => {\r\n if (this.advertisementsUploadedTemplate == null) {\r\n this.advertisementsUploadedTemplate = Handlebars.compile($(\"#marketing-advertisements-uploaded-template\").html());\r\n }\r\n if (this.advertisementTemplate == null) {\r\n this.advertisementTemplate = Handlebars.compile($(\"#marketing-advertisement-template\").html())\r\n Handlebars.registerPartial(\"advertisementPartial\", this.advertisementTemplate);\r\n }\r\n\r\n const model = advertisements.map(a => ({ ...a, cdnUrl: this.cdnUrl }));\r\n $(\".advertisements__uploaded-advertisements-placeholder\").html(this.advertisementsUploadedTemplate(model));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderAdvertisementActivateButton = (isActive: boolean, callback?: Function): void => {\r\n if (this.advertisementsActivateButton == null) {\r\n this.advertisementsActivateButton = Handlebars.compile($(\"#marketing-advertisement-activate-button\").html())\r\n }\r\n $(\".advertisements__activate-button-placeholder\").html(this.advertisementsActivateButton({ isActive }));\r\n\r\n callback?.();\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import cropperConfig = Business.cropperConfig;\r\n export class InterstitialsController {\r\n private interstitialsRenderer: Business.InterstitialsRenderer;\r\n private interstitialRepository: Business.InterstitialRepository;\r\n\r\n private interstitials: Business.Interstitials;\r\n private selectedInterstitialId: number | null;\r\n private hasUnsavedChanges: boolean;\r\n private isCropping: boolean;\r\n\r\n constructor(private readonly cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, private readonly marketId: number) {\r\n this.interstitialsRenderer = new Business.InterstitialsRenderer(cdnUrl);\r\n this.interstitialRepository = new Business.InterstitialRepository(salesApiSettings);\r\n }\r\n\r\n public initialize = (isFeatureSupported: boolean) => {\r\n if (!isFeatureSupported) {\r\n this.interstitialsRenderer.render(\"unavailable\", () => {\r\n this.bindUpgradeButton();\r\n });\r\n\r\n return;\r\n }\r\n\r\n $.when(this.interstitialRepository.get(this.marketId)).done((interstitials: Business.Interstitials) => {\r\n this.interstitials = interstitials;\r\n\r\n this.interstitialsRenderer.render(\"available\");\r\n\r\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\r\n this.bindClickOnInterstitial();\r\n this.bindToggleActive();\r\n this.bindInput();\r\n });\r\n\r\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\r\n this.bindClickOnActive();\r\n });\r\n\r\n this.interstitialsRenderer.renderExampleInterstitial(\"\", () => {\r\n this.bindNewInterstitialButton();\r\n });\r\n\r\n this.interstitialsRenderer.renderInterstitialActivateButton(false, () => {\r\n this.bindToggleActive();\r\n })\r\n\r\n this.interstitialsRenderer.renderHeaderImage(null, () => {\r\n this.bindChangeImage();\r\n this.bindSaveButton();\r\n this.bindDeleteButton();\r\n });\r\n\r\n const activeInterstitial = interstitials.getActive();\r\n\r\n if (activeInterstitial) {\r\n this.setFormData(activeInterstitial.id, activeInterstitial.imageLink, activeInterstitial.imageName, activeInterstitial.imagePath, activeInterstitial.isActive)\r\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${activeInterstitial.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n }\r\n })\r\n }\r\n\r\n private bindUpgradeButton = () => {\r\n $(\".interstitials__button-upgrade\").on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n });\r\n }\r\n\r\n private bindChangeImage = () => {\r\n $(\".interstitials__image-upload\").unbind();\r\n $(\".interstitials__image-upload\").on(\"click\", event => {\r\n $(\".interstitials__image\").click();\r\n });\r\n\r\n $(\".interstitials__image\").unbind();\r\n $(\".interstitials__image\").on(\"change\", event => {\r\n const elem = $(event.currentTarget);\r\n const image = elem.prop(\"files\")[0];\r\n\r\n if (!image) {\r\n return;\r\n }\r\n\r\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\r\n if (!_.contains(validImageTypes, image?.type)) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\r\n return;\r\n }\r\n\r\n this.hasUnsavedChanges = true;\r\n var formData = new FormData();\r\n formData.append(\"fileData\", image);\r\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\r\n\r\n this.interstitialRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.interstitialsRenderer.renderHeaderImage(apiResult.content)\r\n this.interstitialsRenderer.renderExampleInterstitial(apiResult.content)\r\n\r\n if (image?.type != \"image/gif\") {\r\n var $image_elem = $(\".interstitials__uploaded-image\")\r\n $image_elem.cropper(cropperConfig(image, {\r\n preview: \".interstitials__preview-interstitial-cropper\",\r\n }));\r\n $(\".interstitials__hover\").hide()\r\n $(\".interstitials__preview-interstitial-image\").hide()\r\n $(\".interstitials__image-upload\").unbind(\"click\")\r\n this.isCropping = true\r\n }\r\n\r\n } else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\r\n });\r\n })\r\n }\r\n\r\n private getNewInterstitialFromForm = (interstitialId: number, isActive: boolean): Business.Interstitial => {\r\n const nameElem = $(\".interstitials__input--title\");\r\n const name = nameElem.val();\r\n const linkElem = $(\".interstitials__input--link\");\r\n const link = linkElem.val();\r\n const imagePath = $(\".interstitials__uploaded-image\").data(\"image-path\");\r\n\r\n const interstitial = new Business.Interstitial(interstitialId, name, imagePath, link, isActive);\r\n return interstitial;\r\n }\r\n\r\n private validateInterstitial = (): boolean => {\r\n let isValid = true;\r\n\r\n const nameElem = $(\".interstitials__input--title\");\r\n const name = nameElem.val();\r\n\r\n const linkElem = $(\".interstitials__input--link\");\r\n const link = linkElem.val();\r\n\r\n const imageElem = $(\".interstitials__uploaded-image\");\r\n const image = imageElem.attr(\"src\");\r\n\r\n if (!name) {\r\n nameElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n nameElem.removeModifiers(\"invalid\");\r\n }\r\n if (!isValidHttpUrl(link)) {\r\n linkElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n linkElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n if (!image) {\r\n imageElem.addModifiers(\"invalid\");\r\n isValid = false;\r\n } else {\r\n imageElem.removeModifiers(\"invalid\");\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n private bindSaveButton = (): void => {\r\n $(\".interstitials__button--save\").unbind();\r\n $(\".interstitials__button--save\").on(\"click\", () => {\r\n if (!this.validateInterstitial()) {\r\n return;\r\n }\r\n const elem = $(\".interstitials__image\")\r\n const image = elem.prop(\"files\")[0]\r\n if (this.isCropping) {\r\n var $image_elem = $(\".interstitials__uploaded-image\");\r\n var cropper = $image_elem.data('cropper');\r\n cropper.getCroppedCanvas().toBlob((blob) => {\r\n\r\n var formData = new FormData();\r\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\r\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\r\n this.interstitialRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n this.interstitialsRenderer.renderHeaderImage(apiResult.content)\r\n this.interstitialsRenderer.renderExampleInterstitial(apiResult.content)\r\n\r\n this.saveForm()\r\n } else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n if (this.isCropping) {\r\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\r\n $(\".interstitials__hover\").show()\r\n $(\".interstitials__image-upload\").on(\"click\", event => {\r\n $(\".interstitials__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n });\r\n }, image?.type)\r\n } else {\r\n this.saveForm()\r\n }\r\n\r\n });\r\n }\r\n\r\n private saveForm = (): void => {\r\n const existingInterstitial = this.interstitials.getById(this.selectedInterstitialId);\r\n const interstitial = this.getNewInterstitialFromForm(this.selectedInterstitialId ?? 0, existingInterstitial?.isActive ?? false);\r\n\r\n if (this.interstitials.count() >= 6 && !existingInterstitial) {\r\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\r\n return;\r\n }\r\n\r\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\r\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\r\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\r\n this.bindClickOnInterstitial();\r\n this.bindNewInterstitialButton();\r\n this.bindToggleActive();\r\n this.resetFormData();\r\n });\r\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\r\n this.bindToggleActive();\r\n this.bindClickOnActive();\r\n });\r\n this.hasUnsavedChanges = false;\r\n } else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private bindNewInterstitialButton = () => {\r\n $(\".interstitials__button--new\").unbind()\r\n $(\".interstitials__button--new\").on(\"click\", event => {\r\n if (this.interstitials.count() < 6) {\r\n if (!this.hasUnsavedChanges) {\r\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n return;\r\n }\r\n\r\n this.showSaveInterstitialPopup(() => {\r\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".interstitials__button--save\").click();\r\n });\r\n\r\n } else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\r\n }\r\n });\r\n\r\n }\r\n\r\n private bindDeleteButton = () => {\r\n $(\".interstitials__button--delete\").unbind();\r\n $(\".interstitials__button--delete\").on(\"click\", event => {\r\n if (!this.selectedInterstitialId) {\r\n return;\r\n }\r\n\r\n this.showDeleteInterstitialPopup(this.selectedInterstitialId);\r\n })\r\n }\r\n\r\n private setFormData(id: number, imageLink: string, imageName: string, imagePath: string, isActive: boolean) {\r\n $(\".interstitials__image\").val(\"\");\r\n $(\".interstitials__input--title\").removeModifiers(\"invalid\").val(imageName);\r\n $(\".interstitials__input--link\").removeModifiers(\"invalid\").val(imageLink);\r\n\r\n this.selectedInterstitialId = id;\r\n this.interstitialsRenderer.renderHeaderImage(imagePath);\r\n this.interstitialsRenderer.renderExampleInterstitial(imagePath, () => {\r\n this.bindNewInterstitialButton();\r\n });\r\n\r\n this.interstitialsRenderer.renderInterstitialActivateButton(isActive, () => {\r\n this.bindToggleActive();\r\n });\r\n }\r\n\r\n private resetFormData() {\r\n this.setFormData(0, \"\", \"\", \"\", false);\r\n this.interstitialsRenderer.renderExampleInterstitial(\"\", () => {\r\n this.bindNewInterstitialButton();\r\n });\r\n if (this.isCropping) {\r\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\r\n $(\".interstitials__hover\").show()\r\n $(\".interstitials__image-upload\").on(\"click\", event => {\r\n $(\".interstitials__image\").click();\r\n });\r\n this.isCropping = false\r\n }\r\n }\r\n\r\n private bindClickOnInterstitial = (): void => {\r\n $(\".interstitials__uploaded-interstitial-body\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n\r\n if (!this.hasUnsavedChanges) {\r\n return this.switchInterstitial(elem);\r\n }\r\n\r\n this.showSaveInterstitialPopup(() => {\r\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\r\n this.resetFormData();\r\n }, () => {\r\n $(\".interstitials__button--save\").click();\r\n });\r\n })\r\n }\r\n\r\n private switchInterstitial = (elem: JQuery) => {\r\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\r\n elem.addModifiers(\"selected\");\r\n\r\n const interstitialId = +elem.data(\"interstitial-id\");\r\n const interstitial = this.interstitials.getById(interstitialId);\r\n if (!interstitial) {\r\n return;\r\n }\r\n\r\n this.setFormData(interstitial.id, interstitial.imageLink, interstitial.imageName, interstitial.imagePath, interstitial.isActive);\r\n }\r\n\r\n private showDeleteInterstitialPopup = (interstitialId: number) => {\r\n $.newPopup(\"remove-interstitial-popup\");\r\n $.togglePopup(\"#remove-interstitial-popup\", true, true);\r\n\r\n $(\"#remove-interstitial-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Interstitial.DeleteConfirmation\")?.format(this.interstitials.getById(interstitialId)?.imageName));\r\n\r\n $(\"#remove-interstitial-popup .popup-content-body-close-button,#remove-interstitial-popup .popup-content-header__close,#remove-interstitial-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#remove-interstitial-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-interstitial-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\r\n this.interstitialRepository.delete(this.marketId, interstitialId).done((apiResult) => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Removed\");\r\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\r\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\r\n this.bindClickOnInterstitial()\r\n this.bindNewInterstitialButton();\r\n this.bindToggleActive();\r\n this.resetFormData();\r\n });\r\n\r\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\r\n this.bindToggleActive();\r\n this.bindClickOnActive();\r\n });\r\n } else {\r\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\r\n $.togglePopup(\"#remove-interstitial-popup\", false, true);\r\n });\r\n });\r\n }\r\n\r\n private showSaveInterstitialPopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\r\n $.newPopup(\"save-interstitial-popup\");\r\n $.togglePopup(\"#save-interstitial-popup\", true, true);\r\n\r\n $(\"#save-interstitial-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-interstitial-popup\", false, true);\r\n onDoNotSaveClick();\r\n this.hasUnsavedChanges = false;\r\n });\r\n\r\n $(\"#save-interstitial-popup .popup-content-header__close,#save-interstitial-popup .popup-content-body-cancel-button,#save-interstitial-popup .popup-overlay\").on(\"click\", () => {\r\n $.togglePopup(\"#save-interstitial-popup\", false, true);\r\n });\r\n\r\n $(\"#save-interstitial-popup .popup-content-body-save-button\").on(\"click\", () => {\r\n $.togglePopup(\"#save-interstitial-popup\", false, true);\r\n onSaveClick();\r\n });\r\n }\r\n\r\n private bindInput = () => {\r\n $(\".interstitials__input--title\").unbind();\r\n $(\".interstitials__input--title\").on(\"input\", event => {\r\n this.hasUnsavedChanges = true;\r\n });\r\n $(\".interstitials__input--link\").unbind();\r\n $(\".interstitials__input--link\").on(\"keyup\", event => {\r\n this.hasUnsavedChanges = true;\r\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\r\n });\r\n\r\n }\r\n\r\n private bindToggleActive = () => {\r\n $(\".interstitials__button--activate\").unbind();\r\n $(\".interstitials__button--activate\").on(\"click\", () => {\r\n const existingInterstitial = this.interstitials.getById(this.selectedInterstitialId);\r\n\r\n if (!this.validateInterstitial()) {\r\n return;\r\n }\r\n\r\n if (!existingInterstitial) {\r\n NotificationBar.Display(TranslationData.get(\"Common.PleaseSave\"));\r\n return;\r\n }\r\n\r\n if (existingInterstitial.isActive) {\r\n const interstitial = this.getNewInterstitialFromForm(existingInterstitial.id, false);\r\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\r\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\r\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\r\n this.bindClickOnActive();\r\n });\r\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\r\n this.bindClickOnInterstitial();\r\n this.bindInput();\r\n });\r\n this.hasUnsavedChanges = false;\r\n this.interstitialsRenderer.renderInterstitialActivateButton(!existingInterstitial.isActive, () => {\r\n this.bindToggleActive();\r\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${interstitial.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n else {\r\n $(\".interstitials__button--activate\").val(TranslationData.get(\"Common.Activate\"))\r\n const interstitial = this.getNewInterstitialFromForm(existingInterstitial.id, true);\r\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\r\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\r\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\r\n this.bindClickOnActive();\r\n });\r\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\r\n this.bindClickOnInterstitial();\r\n this.bindInput();\r\n });\r\n this.hasUnsavedChanges = false;\r\n this.interstitialsRenderer.renderInterstitialActivateButton(!existingInterstitial.isActive, () => {\r\n this.bindToggleActive();\r\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${interstitial.id}\"]`);\r\n elem.addModifiers(\"selected\");\r\n });\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n })\r\n }\r\n\r\n private bindClickOnActive = () => {\r\n $(\".interstitials__active-interstitial-body\").on(\"click\", () => {\r\n const currentActive = this.interstitials.getActive()\r\n this.setFormData(currentActive.id, currentActive.imageLink, currentActive.imageName, currentActive.imagePath, currentActive.isActive)\r\n\r\n $(\".interstitials__uploaded-advertisement-body\").removeModifiers(\"selected\");\r\n const elem = $(`[data-interstitials-id=\"${currentActive.id}\"]`)\r\n elem.addModifiers(\"selected\");\r\n })\r\n }\r\n }\r\n}","module Business {\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class InterstitialsRenderer {\r\n private interstitialTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsNotAvailableTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsHeaderImageTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsActiveTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsExampleTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsUploadedTemplate: HandlebarsTemplateDelegate;\r\n private interstitialsActivateButton: HandlebarsTemplateDelegate;\r\n\r\n constructor(private readonly cdnUrl: string) { }\r\n\r\n public render = (style: \"available\" | \"unavailable\", callback?: Function): void => {\r\n if (this.interstitialsTemplate == null) {\r\n this.interstitialsTemplate = Handlebars.compile($(\"#marketing-interstitials-template\").html());\r\n }\r\n\r\n if (this.interstitialsNotAvailableTemplate == null) {\r\n this.interstitialsNotAvailableTemplate = Handlebars.compile($(\"#marketing-interstitials-not-available-template\").html());\r\n Handlebars.registerPartial(\"interstitialsNotAvailablePartial\", this.interstitialsNotAvailableTemplate);\r\n }\r\n\r\n const model = { cdnUrl: this.cdnUrl, isAvailable: style === \"available\" };\r\n\r\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.Interstitials}\"]`);\r\n slideContainer.find(\".marketing-content-placeholder\").html(this.interstitialsTemplate(model));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderHeaderImage = (imagePath: string, callback?: Function ): void => {\r\n if (this.interstitialsHeaderImageTemplate == null) {\r\n this.interstitialsHeaderImageTemplate = Handlebars.compile($(\"#marketing-interstitials-header-image-template\").html());\r\n }\r\n\r\n $(\".interstitials__upload-image\").html(this.interstitialsHeaderImageTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderActiveInterstitial = (interstitials: Business.Interstitials, callback?: Function): void => {\r\n if (this.interstitialsActiveTemplate == null) {\r\n this.interstitialsActiveTemplate = Handlebars.compile($(\"#marketing-interstitials-active-template\").html());\r\n }\r\n\r\n const activeInterstitial = interstitials.getActive();\r\n const model = { ...activeInterstitial, cdnUrl: this.cdnUrl, hasActiveInterstitial: activeInterstitial != null };\r\n $(\".interstitials__active-interstitials-placeholder\").html(this.interstitialsActiveTemplate(model));\r\n\r\n if (activeInterstitial != null) {\r\n $(\".interstitials__active-interstitial-active-text\").removeModifiers(\"inactive\")\r\n $(\".interstitials__active-interstitial-body\").addModifiers(\"active\")\r\n } else {\r\n $(\".interstitials__active-interstitial-active-text\").addModifiers(\"inactive\")\r\n $(\".interstitials__active-interstitial-body\").removeModifiers(\"active\")\r\n }\r\n\r\n callback?.();\r\n }\r\n\r\n public renderExampleInterstitial = (imagePath: string, callback?: Function): void => {\r\n if (this.interstitialsExampleTemplate == null) {\r\n this.interstitialsExampleTemplate = Handlebars.compile($(\"#marketing-interstitials-example-template\").html());\r\n }\r\n\r\n $(\".interstitials__example-interstitials-placeholder\").html(this.interstitialsExampleTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderUploadedInterstitials = (interstitials: Business.Interstitials, callback?: Function): void => {\r\n if (this.interstitialsUploadedTemplate == null) {\r\n this.interstitialsUploadedTemplate = Handlebars.compile($(\"#marketing-interstitials-uploaded-template\").html());\r\n }\r\n if (this.interstitialTemplate == null) {\r\n this.interstitialTemplate = Handlebars.compile($(\"#marketing-interstitial-template\").html())\r\n Handlebars.registerPartial(\"interstitialPartial\", this.interstitialTemplate);\r\n }\r\n\r\n const model = interstitials.map(i => ({ ...i, cdnUrl: this.cdnUrl }));\r\n $(\".interstitials__uploaded-interstitials-placeholder\").html(this.interstitialsUploadedTemplate(model));\r\n\r\n callback?.();\r\n }\r\n\r\n public renderInterstitialActivateButton = (isActive: boolean, callback?: Function): void => {\r\n if (this.interstitialsActivateButton == null) {\r\n this.interstitialsActivateButton = Handlebars.compile($(\"#marketing-interstitial-activate-button\").html());\r\n }\r\n $(\".interstitials__activate-button-placeholder\").html(this.interstitialsActivateButton({ isActive }));\r\n\r\n callback?.();\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n export class OptInController {\r\n private optInRepository: Business.OptInRepository;\r\n private optInRenderer: Business.OptInRenderer;\r\n private readonly requestStorageKey: string;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, private readonly marketId: number, private readonly clientId: number) {\r\n this.optInRepository = new Business.OptInRepository(salesApiSettings);\r\n this.optInRenderer = new Business.OptInRenderer(cdnUrl);\r\n this.requestStorageKey = `optInRequest:${clientId}:${marketId}`;\r\n }\r\n\r\n public initialize = (isFeatureSupported: boolean) => {\r\n if (!isFeatureSupported) {\r\n this.optInRenderer.render(\"unavailable\", () => {\r\n this.bindClickListeners();\r\n });\r\n return;\r\n }\r\n\r\n const storageDate = localStorage.getItem(this.requestStorageKey);\r\n if (storageDate != null && moment.utc().diff(moment.utc(storageDate), \"hours\") <= 72) {\r\n this.optInRenderer.render(\"requested\");\r\n }\r\n else {\r\n localStorage.removeItem(this.requestStorageKey);\r\n this.optInRenderer.render(\"available\", () => {\r\n this.bindClickListeners();\r\n });\r\n }\r\n }\r\n\r\n private bindClickListeners = () => {\r\n $(\".client-administrator-opt-in__button\").on(\"click\", (e) => {\r\n if ($(e.currentTarget).hasModifier(\"loading\"))\r\n return;\r\n\r\n $(e.currentTarget).addModifiers(\"loading\");\r\n this.optInRepository.request(this.marketId).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n localStorage.setItem(this.requestStorageKey, moment.utc().toISOString());\r\n this.optInRenderer.render(\"requested\");\r\n }\r\n else {\r\n NotificationBar.Display(apiResult.message);\r\n }\r\n }).fail(err => {\r\n NotificationBar.Display(TranslationData.get(\"Business.Management.OptIn.RequestFailed\"))\r\n }).always(() => {\r\n $(e.currentTarget).removeModifiers(\"loading\");\r\n })\r\n })\r\n\r\n $(\".client-administrator-opt-in__button-upgrade\").on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n })\r\n }\r\n }\r\n}","module Business {\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class OptInRenderer {\r\n private optInTemplate: HandlebarsTemplateDelegate;\r\n private optInUnavailableTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor(private readonly cdnUrl: string) { }\r\n\r\n public render = (style: \"available\" | \"requested\" | \"unavailable\", callback?: Function): void => {\r\n if (this.optInTemplate == null) {\r\n this.optInTemplate = Handlebars.compile($(\"#opt-in-request-template\").html());\r\n }\r\n if (this.optInUnavailableTemplate == null) {\r\n this.optInUnavailableTemplate = Handlebars.compile($(\"#opt-in-request-unavailable-template\").html());\r\n Handlebars.registerPartial(\"optInsNotAvailablePartial\", this.optInUnavailableTemplate);\r\n }\r\n\r\n const model = { cdnUrl: this.cdnUrl, requested: style === \"requested\", isAvailable: style === \"available\" || style === \"requested\" };\r\n\r\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.OptIns}\"]`);\r\n slideContainer.find(\".marketing-content-placeholder\").html(this.optInTemplate(model));\r\n callback?.()\r\n }\r\n }\r\n}","module ClientAdministrator {\r\n import SalesUser = Business.SalesUser;\r\n import ConfigurationStatusType = Business.ConfigurationStatusType;\r\n import MarketingTabType = Business.MarketingTabType;\r\n\r\n export class MarketingTabModel {\r\n public marketingTabType: MarketingTabType;\r\n public title: string;\r\n public status: ConfigurationStatusType;\r\n public isSlideOpen: boolean;\r\n\r\n public constructor(marketingTabType: MarketingTabType, labelkey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\r\n this.marketingTabType = marketingTabType;\r\n this.title = TranslationData.get(labelkey);\r\n this.status = status;\r\n this.isSlideOpen = isSlideOpen;\r\n }\r\n\r\n public static toTabArticles = (salesUser: SalesUser, isOpen: boolean) => {\r\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Articles)\r\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable\r\n return new MarketingTabModel(MarketingTabType.Articles, \"Business.Marketing.Tab.Articles\", statusType, isOpen)\r\n }\r\n\r\n public static toTabAdvertisements = (salesUser: SalesUser, isOpen: boolean) => {\r\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Advertisements)\r\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable;\r\n return new MarketingTabModel(MarketingTabType.Advertisements, \"Business.Marketing.Tab.Advertisements\", statusType, isOpen)\r\n }\r\n\r\n public static toTabInterstitials = (salesUser: SalesUser, isOpen: boolean) => {\r\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Advertisements)\r\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable;\r\n return new MarketingTabModel(MarketingTabType.Interstitials, \"Business.Marketing.Tab.Interstitials\", statusType, isOpen)\r\n }\r\n\r\n public static toTabOptIns = (salesUser: SalesUser, isOpen: boolean) => {\r\n const statusType = isFeatureSupported(salesUser.packageType, Feature.OptIns)\r\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable\r\n return new MarketingTabModel(MarketingTabType.OptIns, \"Business.Marketing.Tab.OptIns\", statusType, isOpen)\r\n }\r\n\r\n public getStatusName = (): string => {\r\n return ConfigurationStatusType[this.status].toString().toLowerCase();\r\n }\r\n\r\n public updateSlide(isOpen: boolean) {\r\n this.isSlideOpen = isOpen;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule ClientAdministrator {\r\n import SubLeague = Business.SubLeague;\r\n import Administrators = Business.Administrators;\r\n import Administrator = Business.Administrator;\r\n\r\n export class LeagueSlideModel {\r\n\r\n public leagueId: number;\r\n public isMainLeague: boolean;\r\n public leagueName: string;\r\n public inviteLink: string;\r\n public adminOne: Administrator | null;\r\n public adminTwo: Administrator | null;\r\n\r\n constructor(leagueId: number, leagueName: string, inviteLink: string, isMainLeague: boolean, adminOne: Administrator, adminTwo: Administrator) {\r\n this.leagueId = leagueId;\r\n this.leagueName = leagueName;\r\n this.inviteLink = inviteLink;\r\n this.isMainLeague = isMainLeague;\r\n this.adminOne = adminOne;\r\n this.adminTwo = adminTwo;\r\n }\r\n\r\n public static fromDto = (league: SubLeague, administrators: Administrators, inviteUrl: string): LeagueSlideModel => {\r\n const adminOne = administrators.any() ? administrators.first() : null;\r\n const adminTwo = administrators.count() > 1 ? administrators.last() : null;\r\n return new LeagueSlideModel(league.leagueId, league.leagueName, inviteUrl, league.isMainLeague, adminOne, adminTwo);\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule ClientAdministrator {\r\n import PackageType = Business.PackageType;\r\n import Deals = Business.Deals;\r\n\r\n export class UpgradeButtonModel {\r\n public id: number;\r\n public label: string;\r\n public packageType: PackageType;\r\n public isIncluded: boolean;\r\n public price: number;\r\n public isSelected: boolean;\r\n public isDisabled: boolean;\r\n\r\n constructor(id: number, label: string, packageType: PackageType, isIncluded: boolean, price: number, isSelected: boolean) {\r\n this.id = id;\r\n this.label = label;\r\n this.packageType = packageType;\r\n this.isIncluded = isIncluded;\r\n this.price = price;\r\n this.isSelected = isSelected;\r\n this.isDisabled = this.price < 1;\r\n }\r\n\r\n public static fromDto = (packageType: PackageType, currentSelectedPackage: PackageType, upgrades: Deals): UpgradeButtonModel => {\r\n\r\n let isIncluded: boolean;\r\n switch (currentSelectedPackage) {\r\n case PackageType.Business:\r\n isIncluded = _.contains([PackageType.Budget, PackageType.Business], packageType);\r\n break;\r\n case PackageType.Professional:\r\n isIncluded = true;\r\n break;\r\n default:\r\n isIncluded = currentSelectedPackage === packageType;\r\n break;\r\n }\r\n const upgrade = upgrades.getUpgrade(currentSelectedPackage, packageType);\r\n const label = TranslationData.get(`Sales.Package.Type.${packageType}`);\r\n return new UpgradeButtonModel(upgrade ? upgrade.id : 0, label, packageType, isIncluded, upgrade ? upgrade.price : 0, currentSelectedPackage === packageType);\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule ClientAdministrator {\r\n import Deal = Business.Deal;\r\n\r\n export class UpgradeInformationModel extends Business.PurchaseInformationModel {\r\n public static localStorageKey = \"management.upgradeInformation\";\r\n\r\n protected isUpgrade: boolean = true;\r\n\r\n public participantUpgradeDealId: number | undefined;\r\n public packageUpgradeDealId: number | undefined;\r\n public clientAdminTabType: Business.ClientAdminTabType | undefined;\r\n\r\n constructor(marketId: number, gameId: KnownGameIds, countryId: number, payByInvoice: boolean, participantUpgradeDealId: number | undefined,\r\n packageUpgradeDealId: number | undefined, clientAdminTabType: Business.ClientAdminTabType | undefined, vatNumber: string, couponCode: string,\r\n salesPackageIdsWithAmounts: Record, salesPackagePersonalizationTexts: Record) {\r\n super(marketId, gameId, countryId, payByInvoice, vatNumber, couponCode, salesPackageIdsWithAmounts, salesPackagePersonalizationTexts);\r\n\r\n this.participantUpgradeDealId = participantUpgradeDealId;\r\n this.packageUpgradeDealId = packageUpgradeDealId;\r\n this.clientAdminTabType = clientAdminTabType;\r\n }\r\n\r\n public setParticipantUpgrade = (participantUpgrade: Deal) => {\r\n this.participantUpgradeDealId = participantUpgrade.id;\r\n }\r\n\r\n public updateCountry = (countryId: number): void => {\r\n this.countryId = countryId;\r\n }\r\n\r\n public updatePayByInvoice = (payByInvoice: boolean): void => {\r\n this.payByInvoice = payByInvoice;\r\n }\r\n\r\n public setVatNumber = (vatNumber: string) => {\r\n this.vatNumber = vatNumber;\r\n }\r\n\r\n public setCouponCode = (couponCode: string) => {\r\n this.couponCode = couponCode;\r\n }\r\n\r\n public saveToLocalStorage(): void {\r\n localStorage.setItem(UpgradeInformationModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public getDealIds = () => {\r\n const dealIds: number[] = [];\r\n if (this.participantUpgradeDealId) {\r\n dealIds.push(this.participantUpgradeDealId);\r\n }\r\n if (this.packageUpgradeDealId) {\r\n dealIds.push(this.packageUpgradeDealId);\r\n }\r\n return dealIds;\r\n }\r\n\r\n public static getFromLocalStorage = (): UpgradeInformationModel => {\r\n var storageObject = JSON.parse(localStorage.getItem(UpgradeInformationModel.localStorageKey));\r\n if (storageObject != null) {\r\n return new UpgradeInformationModel(\r\n storageObject.marketId,\r\n storageObject.gameId,\r\n storageObject.countryId,\r\n storageObject.payByInvoice,\r\n storageObject.participantUpgradeDealId,\r\n storageObject.packageUpgradeDealId,\r\n storageObject.clientAdminTabType,\r\n storageObject.vatNumber,\r\n storageObject.couponCode,\r\n storageObject.salesPackageIdsWithAmounts,\r\n storageObject.salesPackagePersonalizationTexts\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public static deleteFromLocalStorage(): void {\r\n localStorage.removeItem(UpgradeInformationModel.localStorageKey);\r\n }\r\n }\r\n} ","/// \r\n\r\nmodule ClientAdministrator {\r\n export class UpgradeModel extends BaseList {\r\n\r\n public constructor(list: Array) {\r\n super(list);\r\n }\r\n\r\n public static createPreload = () => {\r\n return new UpgradeModel([new UpgradeParticipantModel(0, 0), new UpgradeParticipantModel(0, 0), new UpgradeParticipantModel(0, 0)]);\r\n }\r\n\r\n public static fromDto = (currentParticipants: number, deals: Array) => {\r\n const list = new Array();\r\n if (_.isEmpty(deals))\r\n return list;\r\n\r\n let currentIndex = _.findIndex(deals.sort((a, b) => a.participantCount - b.participantCount), deal => currentParticipants <= deal.participantCount);\r\n if (currentIndex === 0)\r\n currentIndex = 1;\r\n if (currentIndex === deals.length - 1)\r\n currentIndex = deals.length - 2;\r\n\r\n const previousIndex = Math.max(0, currentIndex - 1);\r\n const nextIndex = Math.min(deals.length - 1, currentIndex + 1);\r\n const indexes = currentIndex < 0 ? _.range(0, 3) : _.uniq([previousIndex, currentIndex, nextIndex]);\r\n _.each(indexes, index => {\r\n const deal = deals[index];\r\n if (deal) {\r\n list.push(new UpgradeParticipantModel(deal.participantCount, deal.price))\r\n }\r\n });\r\n\r\n return new UpgradeModel(list);\r\n }\r\n }\r\n}","module Business {\r\n export class LeagueAdministratorSettingsRenderer {\r\n private configurationHeaderTemplate: HandlebarsTemplateDelegate;\r\n\r\n private configurationNameTemplate: HandlebarsTemplateDelegate;\r\n private configurationRankingLogoTemplate: HandlebarsTemplateDelegate;\r\n private configurationMailingTextTemplate: HandlebarsTemplateDelegate;\r\n private rankingPreviewTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderStepHeaderTemplate = (model: LeagueAdministratorStepModel, callBack: Function): void => {\r\n if (this.configurationHeaderTemplate == null) {\r\n this.configurationHeaderTemplate = Handlebars.compile($(\"#league-administrator-settings-header-template\").html());\r\n }\r\n $(`.league-administrator-settings__step[data-step-id=\"${model.settingsStepType}\"] .configuration-header-placeholder`).html(this.configurationHeaderTemplate(model));\r\n this.toggleSlide(model.settingsStepType, model.isSlideOpen);\r\n callBack();\r\n }\r\n\r\n public toggleSlide = (step: SettingsStepType, open: boolean): void => {\r\n const stepContainer = $(`.league-administrator-settings__step[data-step-id=\"${+step}\"]`);\r\n const contentPlaceholder = stepContainer.find(\".configuration-content-placeholder\");\r\n $(\".configuration-content-placeholder\").removeModifiers(\"open\").height(0);\r\n\r\n if (open) {\r\n const content = contentPlaceholder.children(\":first-child\");\r\n contentPlaceholder.height(content.outerHeight());\r\n contentPlaceholder.addModifiers(\"open\");\r\n stepContainer.find(\".league-administrator-settings__arrow\").addModifiers(\"slide-open\");\r\n }\r\n else {\r\n $(\".league-administrator-settings__arrow\").removeModifiers(\"slide-open\")\r\n };\r\n }\r\n\r\n public renderNameTemplate = (model: RankingSettingsViewModel, callback: Function): void => {\r\n this.registerPartial();\r\n if (this.configurationNameTemplate == null) {\r\n this.configurationNameTemplate = Handlebars.compile($(\"#step-one-league-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(SettingsStepType.Name)}`).html(this.configurationNameTemplate(model));\r\n callback();\r\n }\r\n\r\n\r\n public renderRankingLogoTemplate = (model: RankingSettingsViewModel, callback: Function) => {\r\n this.registerPartial();\r\n if (this.configurationRankingLogoTemplate == null) {\r\n this.configurationRankingLogoTemplate = Handlebars.compile($(\"#step-two-league-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(SettingsStepType.RankingLogo)}`).html(this.configurationRankingLogoTemplate(model));\r\n\r\n callback();\r\n }\r\n\r\n public renderMailingTextTemplate = (model: WelcomeEmailModel, isEnabled: boolean, callback: Function) => {\r\n this.registerPartial();\r\n if (this.configurationMailingTextTemplate == null) {\r\n this.configurationMailingTextTemplate = Handlebars.compile($(\"#step-three-league-administrator-template\").html());\r\n }\r\n\r\n $(`${this.getStepSelector(SettingsStepType.MailingText)}`).html(this.configurationMailingTextTemplate(_.extend({ isEnabled }, model)));\r\n callback();\r\n }\r\n\r\n public registerPartial = (): void => {\r\n if (this.rankingPreviewTemplate == null) {\r\n this.rankingPreviewTemplate = Handlebars.compile($(\"#ranking-preview-template\").html());\r\n Handlebars.registerPartial(\"rankingPreview\", this.rankingPreviewTemplate);\r\n }\r\n }\r\n\r\n public renderRankingPreview = (model: RankingSettingsViewModel): void => {\r\n this.registerPartial();\r\n $(\".subleague-name-slide__ranking-preview, .subleague-ranking-logo-slide__ranking-preview\").html(this.rankingPreviewTemplate(model));\r\n }\r\n\r\n private getStepSelector = (type: SettingsStepType): string => {\r\n return `.league-administrator-settings__step[data-step-id=\"${type}\"] .configuration-content-placeholder`;\r\n }\r\n }\r\n}","module Business {\r\n export class LeagueAdministratorStepModel {\r\n public order: number;\r\n public settingsStepType: SettingsStepType;\r\n public title: string;\r\n public status: ConfigurationStatusType;\r\n public isSlideOpen: boolean;\r\n\r\n private constructor(order: number, settingsStepType: SettingsStepType, labelKey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\r\n this.order = order;\r\n this.settingsStepType = settingsStepType;\r\n this.title = TranslationData.get(labelKey);\r\n this.status = status;\r\n this.isSlideOpen = isSlideOpen;\r\n }\r\n\r\n public getStatusName = (): string => {\r\n return ConfigurationStatusType[this.status].toString().toLowerCase();\r\n }\r\n\r\n public updateSlide(isOpen: boolean) {\r\n this.isSlideOpen = isOpen;\r\n }\r\n\r\n public static create = (stepType: SettingsStepType, statusType, slideOpen: boolean): LeagueAdministratorStepModel => {\r\n switch (stepType) {\r\n case\r\n SettingsStepType.Name:\r\n return new LeagueAdministratorStepModel(1, SettingsStepType.Name, \"Business.Management.Configuration.NameSubLeague\", statusType, slideOpen);\r\n case SettingsStepType.RankingLogo:\r\n return new LeagueAdministratorStepModel(2, SettingsStepType.RankingLogo, \"Business.Management.Configuration.RankingLogo\", statusType, slideOpen);\r\n case SettingsStepType.MailingText:\r\n return new LeagueAdministratorStepModel(3, SettingsStepType.MailingText, \"Business.Management.Configuration.MailingText\", statusType, slideOpen);\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class RankingSettingsViewModel {\r\n public leagueName: string;\r\n public gameName: string;\r\n public logoUrl: string;\r\n public isEnabled: boolean;\r\n\r\n constructor(leagueName: string, marketId: number, logoUrl: string, isEnabled: boolean) {\r\n this.leagueName = leagueName;\r\n this.gameName = TranslationData.get(`Market.${marketId}.EventName`);\r\n this.logoUrl = logoUrl;\r\n this.isEnabled = isEnabled;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule LeagueAdministrator {\r\n import LeagueActions = Business.LeagueActions;\r\n\r\n export class SettingsCompletionModel extends Dictionary {\r\n\r\n public static fromLocalStorage = (): SettingsCompletionModel => {\r\n try {\r\n const localStorageObject = JSON.parse(localStorage.getItem(Business.ManagementController.settingsCompletedLocalStorageKey));\r\n const model = new SettingsCompletionModel();\r\n Object.keys(localStorageObject).forEach(key => {\r\n const value: LeagueActions = localStorageObject[key];\r\n model.put(key, new LeagueActions(value.leagueId, value.marketId, value.nameCompleted, value.rankingLogoCompleted, value.welcomeEmailCompleted));\r\n });\r\n return model;\r\n }\r\n catch (e) {\r\n return new SettingsCompletionModel();\r\n }\r\n }\r\n }\r\n}","module LeagueAdministrator {\r\n export abstract class LeagueAdministratorTabController extends Shared.TabController {\r\n protected tabType: Business.LeagueAdminTabType;\r\n protected subLeagueRepository: Business.ISubLeagueRepository;\r\n\r\n protected leagues: Business.SubLeagues;\r\n protected selectedSubLeagueId: number;\r\n\r\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, tabType: Business.LeagueAdminTabType,\r\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean = false) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, shouldCheckConfigurationComplete);\r\n this.tabType = tabType;\r\n\r\n this.subLeagueRepository = new Business.SubLeagueRepository(salesApiSettings);\r\n this.initCustomTabEventListeners();\r\n this.bindLeagueDropdown();\r\n }\r\n\r\n protected selectedSubLeagueIsMainLeague = () => {\r\n return this.selectedSubLeagueId === this.getMainLeagueId();\r\n }\r\n\r\n protected abstract loadTabData: (isConfigurationComplete: boolean) => void;\r\n\r\n protected loadData = (isConfigurationComplete: boolean) => {\r\n $.when(\r\n this.subLeagueRepository.getMine(this.marketId)\r\n ).done((subLeagueApiResult: ApiResult) => {\r\n this.leagues = Business.SubLeagues.fromJson(subLeagueApiResult.content);\r\n this.updateDropdown();\r\n }).fail(err => {\r\n this.displayErrorMessage(err);\r\n }).always(() => {\r\n this.removePreload();\r\n this.loadTabData(isConfigurationComplete);\r\n this.toggleDropdown(isConfigurationComplete);\r\n });\r\n }\r\n\r\n protected updateDropdown = (): void => {\r\n if (!this.leagues || !this.leagues.any()) return;\r\n if (this.tabType === Business.LeagueAdminTabType.Settings && this.selectedSubLeagueId === this.getMainLeagueId()) this.selectedSubLeagueId = null;\r\n\r\n this.toggleDropdown(true);\r\n const dropdown = $(`.league-administrator__tab-content[data-tab-id=\"${this.tabType}\"] .league-administrator-dropdown__select-list`).empty();\r\n\r\n this.leagues.each(item => {\r\n if (this.tabType !== Business.LeagueAdminTabType.Settings || item.leagueId !== this.getMainLeagueId()) {\r\n if (!this.selectedSubLeagueId) {\r\n this.selectedSubLeagueId = item.leagueId;\r\n }\r\n dropdown.append(new Option(item.leagueName, item.leagueId.toString(), item.leagueId === this.selectedSubLeagueId));\r\n }\r\n });\r\n }\r\n\r\n protected toggleDropdown = (visible: boolean): void => {\r\n $(\".league-administrator-dropdown__subleagues-select:visible\").toggle(visible);\r\n }\r\n\r\n protected abstract leagueChanged: () => void;\r\n\r\n protected bindLeagueDropdown = () => {\r\n $(`.league-administrator__tab-content[data-tab-id=\"${this.tabType}\"] .league-administrator-dropdown__select-list`).on(\"change\", event => {\r\n this.selectedSubLeagueId = +$(event.currentTarget).val();\r\n $(event.currentTarget).val(this.selectedSubLeagueId.toString());\r\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.SetSelectedSubLeagueEvent, { detail: { selectedLeague: this.selectedSubLeagueId } }));\r\n this.leagueChanged();\r\n });\r\n }\r\n\r\n protected removePreload = (): void => {\r\n $(\".league-administrator__tabs-content\").removeModifiers(\"preload\");\r\n $(\".client-administrator__tab\").removeModifiers(\"preload\");\r\n $(\".league-administrator__tab\").removeModifiers(\"preload\");\r\n }\r\n\r\n protected initCustomTabEventListeners = () => {\r\n addEventListener(Business.LeagueAdministratorController.SetSelectedSubLeagueEvent, (event: CustomEvent) => {\r\n if (this.selectedSubLeagueId === event.detail.selectedLeague) return;\r\n this.selectedSubLeagueId = event.detail.selectedLeague;\r\n this.updateDropdown();\r\n });\r\n\r\n addEventListener(Business.LeagueAdministratorController.TabSwitchEvent, (event: CustomEvent) => {\r\n if (event.detail.tabType !== this.tabType)\r\n return;\r\n\r\n if (this.tabDataLoaded) {\r\n return this.removePreload();\r\n }\r\n\r\n this.setTabDataLoaded(true);\r\n\r\n if (this.shouldCheckConfigurationComplete) {\r\n this.checkConfigurationComplete();\r\n } else {\r\n this.loadData(true);\r\n }\r\n });\r\n\r\n addEventListener(Business.LeagueAdministratorController.ResetTabDataLoadedEvent, (event: CustomEvent) => {\r\n if (event.detail?.tabType == null || event.detail?.tabType === this.tabType) {\r\n this.setTabDataLoaded(false);\r\n }\r\n });\r\n addEventListener(Business.ManagementController.SubLeagueChangeEvent, (event: CustomEvent) => {\r\n this.selectedSubLeagueId = null;\r\n this.updateDropdown();\r\n if (this.tabDataLoaded) this.loadData(true);\r\n });\r\n\r\n addEventListener(Business.ManagementController.MarketSwitchEvent, (event: CustomEvent) => {\r\n this.selectedSubLeagueId = null;\r\n this.marketId = event.detail.marketId;\r\n this.salesUser = event.detail.salesUser;\r\n this.clientId = this.salesUser.clientId;\r\n this.setTabDataLoaded(false);\r\n });\r\n }\r\n }\r\n}","module LeagueAdministrator {\r\n export class ArticleController extends LeagueAdministratorTabController {\r\n private articleControllerHelper: BusinessManagement.ArticleControllerHelper;\r\n private userRepository: Business.UserRepository;\r\n private articleRepository: Business.IArticleRepository;\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings,\r\n userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository, articleRepository: Business.IArticleRepository) {\r\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Articles, clientRepository, true);\r\n this.articleRepository = articleRepository;\r\n this.userRepository = new Business.UserRepository(userApiSettings);\r\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"league-administrator-articles\", this.selectedSubLeagueId, this.marketId, this.userRepository, this.articleRepository, null, Business.PackageType.Budget, true);\r\n }\r\n\r\n protected loadTabData = (isConfigurationComplete: boolean) => {\r\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"league-administrator-articles\", this.selectedSubLeagueId, this.marketId, this.userRepository, this.articleRepository, null, this.salesUser.packageType, true);\r\n\r\n this.articleControllerHelper.initialize(isConfigurationComplete).always(() => {\r\n this.removePreload();\r\n });\r\n }\r\n\r\n protected leagueChanged = () => {\r\n this.articleControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\r\n }\r\n }\r\n}","module Business {\r\n export abstract class GeneralTabController {\r\n protected salesUser: SalesUser;\r\n protected salesApiSettings: ApiSettings.SalesApiSettings;\r\n protected platformApiSettings: Platform.ApiSettings;\r\n protected tabDataLoaded: boolean;\r\n protected tabType: Business.GeneralTabType;\r\n\r\n protected constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser, tabType: Business.GeneralTabType) {\r\n this.tabType = tabType;\r\n this.salesUser = salesUser;\r\n this.salesApiSettings = salesApiSettings;\r\n this.platformApiSettings = platformApiSettings;\r\n this.initEventListeners();\r\n }\r\n\r\n protected abstract loadData: () => void;\r\n\r\n private setTabDataLoaded = (loaded: boolean): void => {\r\n this.tabDataLoaded = loaded;\r\n }\r\n\r\n private initEventListeners = () => {\r\n addEventListener(GeneralController.TabSwitchEvent, (event: CustomEvent) => {\r\n if (event.detail.tabType !== this.tabType)\r\n return;\r\n\r\n if (this.tabDataLoaded) {\r\n return;\r\n }\r\n\r\n this.setTabDataLoaded(true);\r\n\r\n this.loadData();\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class AdministratorController extends GeneralTabController {\r\n private _administratorRepository: IAdministratorRepository;\r\n private _platformRepository: Platform.Repository;\r\n private _administratorRenderer: AdministratorRenderer;\r\n private _callingCodeDropDownRenderer: CallingCodeDropDownRenderer;\r\n private readonly userRepository: UserRepository;\r\n\r\n private administrators: Administrators;\r\n private countries: Platform.Countries;\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, salesUser: SalesUser) {\r\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.Administrator);\r\n\r\n this._administratorRepository = new AdministratorRepository(salesApiSettings, platformApiSettings);\r\n this._platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this.userRepository = new UserRepository(userApiSettings);\r\n\r\n this._administratorRenderer = new AdministratorRenderer();\r\n this._callingCodeDropDownRenderer = new CallingCodeDropDownRenderer();\r\n }\r\n\r\n private formatPhoneNumber = (phoneNumber: string) => {\r\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\r\n }\r\n\r\n protected loadData = () => {\r\n LoadingOverlayRenderer.showLoadingOverlay();\r\n $.when(this._administratorRepository.get(),\r\n this._platformRepository.getCountries())\r\n .done((administrators: Administrators, countries: Platform.Countries) => {\r\n this.administrators = administrators;\r\n this.countries = countries.sortByName();\r\n var model = AdministratorsModel.fromDTO(this.administrators, this.countries);\r\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\r\n this._callingCodeDropDownRenderer.renderTemplate(this.countries.sortByCallingCodes(), () => {\r\n $(\".general-administrators__input--select\").on(\"change\", () => {\r\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\r\n });\r\n });\r\n\r\n _.each(model.list, (administrator: AdministratorModel) => {\r\n const callingCode = administrator.phoneNumber?.substr(0, administrator.phoneNumber.indexOf(' '));\r\n $(\".calling-code-dropdown-placeholder[data-calling-code='\" + callingCode + \"'] select\").val(callingCode);\r\n $(\".general-administrators__input--select > option[value='\" + callingCode + \"']\").attr(\"selected\", \"selected\");\r\n });\r\n\r\n $(\".general-administrators__input--number\").on(\"keyup\", event => {\r\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\r\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\r\n });\r\n\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n LoadingOverlayRenderer.hideLoadingOverlay();\r\n });\r\n }\r\n\r\n private bindButtons = () => {\r\n this.bindDeleteAdminClick();\r\n this.bindDeleteInvitationClick();\r\n this.bindInviteButtonClick();\r\n this.bindSaveButton();\r\n this._callingCodeDropDownRenderer.renderTemplate(this.countries.sortByCallingCodes(), () => {\r\n $(\".general-administrators__input--select\").on(\"change\", () => {\r\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\r\n });\r\n });\r\n }\r\n\r\n private bindDeleteAdminClick = () => {\r\n $(\".general-administrators__remove-admin--accepted\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const userId = +elem.data(\"userId\");\r\n const administrator = this.administrators.getByUserId(userId);\r\n this.showPopup(administrator);\r\n });\r\n }\r\n private bindDeleteInvitationClick = () => {\r\n $(\".general-administrators__remove-admin--unaccepted\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const inviteLinkId = elem.data(\"inviteLinkId\");\r\n const administrator = this.administrators.getByInviteLinkId(inviteLinkId);\r\n this.showPopup(administrator);\r\n });\r\n }\r\n\r\n private bindInviteButtonClick = () => {\r\n $(\".general-administrators__button\").on(\"click\", () => {\r\n const editableAdminClass = \".general-administrators__body--secondary\";\r\n const inputClass = \"general-administrators__input\";\r\n\r\n if (!this.validateForm(editableAdminClass, inputClass, false)) return;\r\n\r\n const firstName = $(`${editableAdminClass} .${inputClass}--firstname`).val();\r\n const lastName = $(`${editableAdminClass} .${inputClass}--lastname`).val();\r\n const email = $(`${editableAdminClass} .${inputClass}--email`).val();\r\n const phoneNumber = $(`${editableAdminClass} .${inputClass}--number`).val();\r\n const callingCode = +$(`${editableAdminClass} .${inputClass}--select`).val();\r\n const model = new InviteModel(email, firstName, lastName, `${callingCode} ${phoneNumber}`, 1);\r\n\r\n $.when(this._administratorRepository.invite(model))\r\n .done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n this.administrators = Administrators.fromJson(result.content);\r\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\r\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\r\n Toast.displayLabel(\"Business.AdminInvited\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n });\r\n }\r\n\r\n private showPopup = (administrator: Administrator) => {\r\n $.newPopup(\"remove-client-administrator-popup\");\r\n $.togglePopup(\"#remove-client-administrator-popup\", true, true);\r\n\r\n $(\"#remove-client-administrator-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.ClientAdministrator.DeleteConfirmation\")?.format(administrator.getFullName()));\r\n\r\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\", () => {\r\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-client-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n if (administrator.isAcceptedAdmin())\r\n this.onDeleteAdmin(administrator.userId);\r\n else\r\n this.onDeleteInvitation(administrator.id);\r\n\r\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\r\n });\r\n }\r\n\r\n private onDeleteAdmin = (userId: number) => {\r\n $.when(this._administratorRepository.deleteAdmin(userId))\r\n .done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n this.administrators = Administrators.fromJson(result.content);\r\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\r\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\r\n\r\n Toast.displayLabel(\"Business.AdminDeleted\");\r\n\r\n setTimeout(() => {\r\n window.location.href = \"/\";\r\n }, 3000);\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private onDeleteInvitation = (inviteLinkId: number) => {\r\n $.when(this._administratorRepository.deleteInvitation(inviteLinkId))\r\n .done((result: ApiResult) => {\r\n if (result.isSuccess()) {\r\n this.administrators = Administrators.fromJson(result.content);\r\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\r\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\r\n Toast.displayLabel(\"Business.AdminDeleted\");\r\n }\r\n else {\r\n NotificationBar.Display(result.message);\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private bindSaveButton = () => {\r\n $(\".general-administrators__save-button\").on(\"click\", () => {\r\n const editableAdminClass = \".general-administrators__body:first\";\r\n const inputClass = \"general-administrators__input\";\r\n\r\n if (!this.validateForm(editableAdminClass, inputClass, true)) return;\r\n\r\n const firstName = $(`${editableAdminClass} .${inputClass}--firstname`).val();\r\n const lastName = $(`${editableAdminClass} .${inputClass}--lastname`).val();\r\n const phoneNumber = $(`${editableAdminClass} .${inputClass}--number`).val();\r\n const callingCode = $(`${editableAdminClass} .${inputClass}--select`).val();\r\n\r\n $(\".general-administrators__save-button\").addModifiers(\"disabled\");\r\n $.when(this.userRepository.setName(firstName, lastName), this.userRepository.setPhoneNumber(callingCode, phoneNumber)).done(() => {\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\r\n });\r\n });\r\n\r\n $(\".general-administrators__input\").on(\"input change\", () => {\r\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\r\n });\r\n }\r\n\r\n private validateForm = (editableAdminClass: string, inputClass: string, isFirstAdmin: boolean) => {\r\n const isValidFirstName = this.isInputNotEmpty(editableAdminClass, inputClass, \"firstname\");\r\n const isValidLastName = this.isInputNotEmpty(editableAdminClass, inputClass, \"lastname\");\r\n const isValidEmail = this.isInputNotEmpty(editableAdminClass, inputClass, \"email\") &&\r\n this.isEmailValid(editableAdminClass, inputClass, isFirstAdmin);\r\n const isValidPhoneNumber = this.isInputNotEmpty(editableAdminClass, inputClass, \"number\");\r\n\r\n return isValidFirstName && isValidLastName && isValidEmail && isValidPhoneNumber;\r\n }\r\n\r\n private isInputNotEmpty = (editableAdminClass: string, inputClass: string, inputField: string) => {\r\n const value = $(`${editableAdminClass} .${inputClass}--${inputField}`).val();\r\n\r\n if (!value) {\r\n $(`${editableAdminClass} .${inputClass}--${inputField}`).addClass(`${inputClass}--invalid`);\r\n return false;\r\n }\r\n\r\n $(`${editableAdminClass} .${inputClass}--${inputField}`).removeClass(`${inputClass}--invalid`);\r\n return true;\r\n }\r\n\r\n private isEmailValid = (editableAdminClass: string, inputClass: string, isFirstAdmin: boolean) => {\r\n const value = $(`${editableAdminClass} .${inputClass}--email`).val();\r\n\r\n if (!Email.Validate(value)) {\r\n $(`${editableAdminClass} .${inputClass}--email`).addClass(`${inputClass}--invalid`);\r\n return false;\r\n }\r\n\r\n if (isFirstAdmin && !this.administrators.getByEmailAddress(value)?.isPrimary) {\r\n return false;\r\n }\r\n\r\n if (!isFirstAdmin && this.administrators.getByEmailAddress(value)?.isPrimary) {\r\n return false;\r\n }\r\n\r\n $(`${editableAdminClass} .${inputClass}--email`).removeClass(`${inputClass}--invalid`);\r\n return true;\r\n }\r\n }\r\n} ","module Business {\r\n import Countries = Platform.Countries;\r\n\r\n export class CompanyDetailsController extends GeneralTabController {\r\n private readonly accountDataRepository: AccountDataRepository;\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly clientRepository: IClientRepository;\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser, clientRepository: IClientRepository) {\r\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.CompanyDetails);\r\n\r\n this.accountDataRepository = new AccountDataRepository(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this.clientRepository = clientRepository;\r\n\r\n $(\".invoice-info__input--reference-number\").closest(\".invoice-info__row\").remove();\r\n }\r\n\r\n protected loadData = (): void => {\r\n this.loadAccountData();\r\n this.bindContactForm();\r\n this.bindDeleteButton();\r\n }\r\n\r\n private loadAccountData = () => {\r\n $.when(this.platformRepository.getCountries(), this.accountDataRepository.getSalesAccountData())\r\n .done((countries: Countries, salesAccountData: SalesAccountData) => {\r\n const code = countries.getById(salesAccountData.companyCountryId)?.code;\r\n if (!code) {\r\n console.error(`Country ${salesAccountData.companyCountryId} not found`);\r\n }\r\n\r\n const countryCodeDropDown = $(\".country-select-input--country-code-company, .business-help__first-digits\");\r\n countries.sortByCallingCodes().each(country => {\r\n countryCodeDropDown.append(new Option(`+${country.countryCallingCode}`, country.countryCallingCode));\r\n });\r\n\r\n const countryDropDown = $(\".country-select-input--country\").empty();\r\n countries.sortByName().each(country => {\r\n countryDropDown.append(new Option(country.name, country.code));\r\n });\r\n\r\n if (salesAccountData.companyPhoneNumber) {\r\n const fullPhoneNumber = salesAccountData.companyPhoneNumber.trim();\r\n const countryCode = fullPhoneNumber.substr(0, fullPhoneNumber.indexOf((\" \")));\r\n const phoneNumber = this.formatPhoneNumber(fullPhoneNumber.substr(fullPhoneNumber.indexOf(\" \") + 1));\r\n\r\n const country = countries.getByCallingCode(countryCode);\r\n $(\".country-select-input--country\").val(country.code);\r\n $(\".country-select-input--country-code-company\").val(countryCode);\r\n $(\".company-info__input--phone-number\").val(phoneNumber);\r\n\r\n $(\".business-help__first-digits\").val(countryCode);\r\n $(\".business-help__last-digits\").val(phoneNumber);\r\n }\r\n\r\n countryDropDown.val(code);\r\n $(\".company-info__input--name\").val(salesAccountData.companyOrganisationName);\r\n $(\".company-info__input--address\").val(salesAccountData.companyAddress);\r\n $(\".company-info__input--zipcode\").val(salesAccountData.companyZipCode);\r\n $(\".company-info__input--city\").val(salesAccountData.companyCityName);\r\n $(\".invoice-info__input--invoice-mail\").val(salesAccountData.invoiceRecipientEmail);\r\n $(\".invoice-info__input--vat-number\").val(salesAccountData.companyVATNumber);\r\n $(\".invoice-info__input--attention-of\").val(salesAccountData.invoiceRecipientName);\r\n\r\n $(\".business-help__business\").val(salesAccountData.companyOrganisationName);\r\n $(\".business-help__admin\").val(salesAccountData.administratorFullName);\r\n $(\".business-help__email\").val(salesAccountData.administratorEmail);\r\n\r\n $(\".company-info__input--phone-number\").on(\"keyup\", event => {\r\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\r\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\r\n });\r\n\r\n $(\".company-info__input\").on(\"focus\", () => {\r\n $(\".company-info__input\").removeModifiers(\"invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n $(\".invoice-info__input\").on(\"focus\", () => {\r\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n $(\".administrator-info__input\").on(\"focus\", () => {\r\n $(\".administrator-info__input\").removeModifiers(\"invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n this.toggleVatField(countries, salesAccountData.companyVATNumber);\r\n countryDropDown.on(\"change\", () => {\r\n this.toggleVatField(countries, salesAccountData.companyVATNumber);\r\n });\r\n\r\n $(\".invoice-info__checkmark-input\").on(\"change\", e => {\r\n const input = $(\".invoice-info__input--vat-number\");\r\n const checked = $(e.currentTarget).prop(\"checked\");\r\n if (checked) {\r\n input.val(\"\");\r\n }\r\n\r\n input.prop(\"disabled\", checked);\r\n input.toggleModifiers(checked, \"disabled\");\r\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\r\n });\r\n\r\n this.bindSaveButton(countries);\r\n });\r\n }\r\n\r\n private formatPhoneNumber = (phoneNumber: string) => {\r\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\r\n }\r\n\r\n private bindSaveButton = (countries: Countries) => {\r\n $(\".general-company-details__save-button\").on(\"click\", () => {\r\n if (!this.isFormValid(countries)) {\r\n return;\r\n }\r\n\r\n const company = $(\".company-info__input--name\").val();\r\n const address = $(\".company-info__input--address\").val();\r\n const zipCode = $(\".company-info__input--zipcode\").val();\r\n const city = $(\".company-info__input--city\").val();\r\n const countryCode = $(\".country-select-input--country\").val();\r\n const countryId = countries.getByCode(countryCode).id;\r\n const countryCallingCode = $(\".country-select-input--country-code-company\").val();\r\n const phoneNumber = $(\".company-info__input--phone-number\").val();\r\n const invoiceVatNumber = $(\".invoice-info__input--vat-number\").val();\r\n\r\n const invoiceRecipient = $(\".invoice-info__input--attention-of\").val();\r\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val();\r\n const model = new CompanyDetailsModel(company, address, zipCode, city, countryId, countryCallingCode, phoneNumber, invoiceVatNumber, invoiceRecipient, invoiceEmail);\r\n\r\n this.accountDataRepository.saveCompanyDetails(model).done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n });\r\n }\r\n\r\n private toggleVatField(countries: Countries, vatNumber: string) {\r\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n const isNetherlands = countries.getByCode($(\".country-select-input--country\").val()).isNetherlands();\r\n $(\".invoice-info__input--vat-number\").closest(\".invoice-info__row\").toggleModifiers(isNetherlands, \"hidden\");\r\n\r\n if (!isNetherlands && String.isNullOrEmpty(vatNumber)) {\r\n $(\".invoice-info__checkmark-input\").prop(\"checked\", true);\r\n $(\".invoice-info__input--vat-number\").prop(\"disabled\", true).addModifiers(\"disabled\");\r\n }\r\n }\r\n\r\n private isFormValid = (countries: Countries): boolean => {\r\n let emptyFieldsError = false;\r\n let emailInvalidError = false;\r\n let invalidVatError = false;\r\n\r\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\r\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\r\n const vat = $(\".invoice-info__input--vat-number\").val().trim();\r\n\r\n if (!$(\".company-info__input--name\").val().trim()) {\r\n $(\".company-info__input--name\").addModifiers(\"invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--address\").val().trim()) {\r\n $(\".company-info__input--address\").addModifiers(\"invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--city\").val().trim()) {\r\n $(\".company-info__input--city\").addModifiers(\"invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--phone-number\").val().trim()) {\r\n $(\".company-info__input--phone-number\").addModifiers(\"invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--zipcode\").val().trim()) {\r\n $(\".company-info__input--zipcode\").addModifiers(\"invalid\");\r\n emptyFieldsError = true;\r\n }\r\n\r\n if (!invoiceEmail || !Email.Validate(invoiceEmail)) {\r\n $(\".invoice-info__input--invoice-mail\").addModifiers(\"invalid\");\r\n emailInvalidError = true;\r\n }\r\n\r\n if (!isNetherlands && !Vat.validate(vat) && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\r\n $(\".invoice-info__input--vat-number\").addClass(\"invoice-info__input--invalid\");\r\n invalidVatError = true;\r\n }\r\n\r\n if (emptyFieldsError) {\r\n $(\".business-checkout__empty-fields-error\").show();\r\n }\r\n\r\n else if (emailInvalidError) {\r\n $(\".business-checkout__email-invalid-error\").show();\r\n }\r\n else if (invalidVatError) {\r\n $(\".business-checkout__invalid-vat-error\").show();\r\n }\r\n\r\n return !(emptyFieldsError || emailInvalidError || invalidVatError);\r\n }\r\n\r\n private bindContactForm = () => {\r\n const sendButton = $(\".business-help__submit\");\r\n sendButton.off(\"click\");\r\n $(\".business-help__input\").on(\"focus\", e => {\r\n $(e.currentTarget).removeModifiers(\"invalid\");\r\n });\r\n\r\n $(\".business-help__submit\").on(\"click\", () => {\r\n const company = $(\".business-help__business\").val().trim();\r\n const name = $(\".business-help__admin\").val().trim();\r\n const email = $(\".business-help__email\").val().trim();\r\n const countryCallingCode = $(\".business-help__first-digits\").val();\r\n const phoneNumber = $(\".business-help__last-digits\").val().trim();\r\n const question = $(\".business-help__textarea\").val().trim();\r\n\r\n let hasErrors = false;\r\n if (!company) {\r\n $(\".business-help__business\").addModifiers(\"invalid\");\r\n hasErrors = true;\r\n }\r\n if (!name) {\r\n $(\".business-help__admin\").addModifiers(\"invalid\");\r\n hasErrors = true;\r\n }\r\n if (!email || !Email.Validate(email)) {\r\n $(\".business-help__email\").addModifiers(\"invalid\");\r\n hasErrors = true;\r\n }\r\n if (!phoneNumber) {\r\n $(\".business-help__last-digits\").addModifiers(\"invalid\");\r\n hasErrors = true;\r\n }\r\n if (!question) {\r\n $(\".business-help__textarea\").addModifiers(\"invalid\");\r\n hasErrors = true;\r\n }\r\n\r\n if (!hasErrors && !sendButton.hasClass(\"preload\")) {\r\n const formData = new FormData();\r\n formData.append(\"subject\", company);\r\n formData.append(\"message\", question);\r\n formData.append(\"name\", name);\r\n formData.append(\"email\", email);\r\n formData.append(\"phoneNumber\", `${countryCallingCode} 0${phoneNumber}`);\r\n\r\n sendButton.addClass(\"preload\");\r\n this.platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\r\n Toast.displayLabel(\"Business.Management.Help.SendEmail.Success\");\r\n $(\".business-help__textarea\").val(\"\");\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n sendButton.removeClass(\"preload\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n private bindDeleteButton = () => {\r\n let isRemoved = false;\r\n $(\".general-company-details__remove-link\").on(\"click\", () => {\r\n const popup = $.newPopup(\"remove-client-popup\");\r\n $.togglePopup(\"#remove-client-popup\", !popup.hasClass('popup--open'), true);\r\n\r\n $(\"#remove-client-popup .popup-content-header__close,#remove-client-popup .popup-content-body-close-button,#remove-client-popup .popup-overlay\").on(\"click\", () => {\r\n if (isRemoved) location.href = \"/user/logout\";\r\n else $.togglePopup(\"#remove-client-popup\", false, true);\r\n });\r\n\r\n $(\"#remove-client-popup\").on(\"close\", () => {\r\n if (isRemoved) location.href = \"/user/logout\";\r\n });\r\n\r\n $(\"#remove-client-popup .popup-content-body-remove-button\").on(\"click\", () => {\r\n if (!isRemoved) {\r\n this.clientRepository.delete().done(apiResult => {\r\n if (apiResult.isSuccess()) {\r\n $(\"#remove-client-popup .popup-content-header__close,#remove-client-popup .popup-content-body-remove-button\").hide();\r\n $(\"#remove-client-popup .popup-content-body-remove-button\").text(TranslationData.get(\"Common.Close\"));\r\n $(\"#remove-client-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.RemovedBusinessAccount\"));\r\n isRemoved = true;\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n else {\r\n location.href = \"/user/logout\";\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","module Business {\r\n\r\n export class PurchasesController extends GeneralTabController {\r\n private readonly _purchaseRepository: IPurchaseRepository;\r\n private readonly _tabsRepository: TabsRepository;\r\n private readonly _accountDataRepository: AccountDataRepository;\r\n private readonly _platformRepository: Platform.Repository;\r\n\r\n private readonly _purchaseRenderer: PurchaseRenderer;\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser) {\r\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.Purchases);\r\n this._platformRepository = new Platform.Repository(platformApiSettings, 0);\r\n this._purchaseRepository = new PurchaseRepository(salesApiSettings);\r\n this._tabsRepository = new TabsRepository(salesApiSettings);\r\n this._accountDataRepository = new AccountDataRepository(salesApiSettings);\r\n this._purchaseRenderer = new PurchaseRenderer();\r\n }\r\n\r\n protected loadData = (): void => {\r\n LoadingOverlayRenderer.showLoadingOverlay();\r\n\r\n this._purchaseRepository.get().done((purchases: Purchases) => {\r\n this._purchaseRenderer.renderTemplate(purchases, () => {\r\n this.bindOnDownloadInvoice();\r\n this.bindPaymentButtons();\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n LoadingOverlayRenderer.hideLoadingOverlay();\r\n });\r\n }\r\n\r\n private bindOnDownloadInvoice = () => {\r\n $(\".general-purchase-row__download-button\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const orderId = +elem.data(\"orderId\");\r\n\r\n this._purchaseRepository.getInvoice(orderId).done((invoice: Invoice) => {\r\n this.downloadInvoice(invoice);\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n });\r\n }\r\n\r\n private bindPaymentButtons = () => {\r\n $(\".general-purchase-row__pay-button\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const orderId = +elem.data(\"orderId\");\r\n elem.addModifiers(\"loading\");\r\n $.when(\r\n this._purchaseRepository.getDetails(orderId),\r\n this._tabsRepository.GetGamesAndMarkets(regionId),\r\n this._accountDataRepository.getSalesAccountData(),\r\n this._platformRepository.getCountries()\r\n ).done((details: PurchaseDetail, gameTabs: GameTabs, salesAccountData: SalesAccountData, countries: Platform.Countries) => {\r\n const gameTab = gameTabs.getByMarketId(details.marketId);\r\n if (gameTab == null) {\r\n elem.addModifiers(\"disabled\").removeModifiers(\"loading\");\r\n return NotificationBar.Display(TranslationData.get(\"Business.Management.OrderNotAvailable\"));\r\n }\r\n\r\n CheckoutInformationModel.fromDto(salesAccountData, countries, details.countryId).saveToLocalStorage();\r\n CheckoutProgressModel.getFromLocalStorage().updateStep(CheckoutProgressStep.Three);\r\n new PaymentInformationModel(false, \"adyen\", moment.utc().toISOString()).saveToLocalStorage();\r\n if (details.isUpgrade) {\r\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();\r\n }\r\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, \"\")\r\n .setIsUpgrade(details.isUpgrade)\r\n .saveToLocalStorage();\r\n\r\n window.location.href = `/checkout#${CheckoutProgressStep.Three}`;\r\n }).fail(() => {\r\n NotificationBar.Display(\"Common.ErrorOnPage\");\r\n setTimeout(() => {\r\n elem.removeModifiers(\"loading\");\r\n }, 1000);\r\n });\r\n });\r\n }\r\n\r\n private downloadInvoice = (invoice: Invoice) => {\r\n var blob = new Blob([invoice.base64ToArrayBuffer()], { type: \"application/pdf\" });\r\n var link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n\r\n var fileName = invoice.invoiceNumber;\r\n link.download = fileName;\r\n link.click();\r\n };\r\n }\r\n}\r\n\r\n\r\n","///\r\n\r\nmodule Business {\r\n export class AdministratorInviteModel {\r\n public roleType: RoleType;\r\n public hasAccount: boolean;\r\n public managementInvitationStatus: ManagementInvitationStatus;\r\n\r\n public constructor(roleType: number, hasAccount: boolean, managementInvitationStatus: ManagementInvitationStatus) {\r\n this.roleType = roleType;\r\n this.hasAccount = hasAccount;\r\n this.managementInvitationStatus = managementInvitationStatus;\r\n }\r\n\r\n public static fromJson = (data: any) => {\r\n return new AdministratorInviteModel(data.RoleType, data.HasAccount, data.ManagementInvitationStatus);\r\n }\r\n }\r\n} ","///\r\n\r\nmodule Business {\r\n export class AdministratorModel {\r\n public clientId: number;\r\n public countryCallingCode: string;\r\n public emailAddress: string;\r\n public firstName: string;\r\n public managementInvitationStatus: ManagementInvitationStatus;\r\n public isPrimary: boolean;\r\n public lastName: string;\r\n public managementInvitationLinkId: number;\r\n public phoneNumber: string;\r\n public phoneNumberCountryId: number;\r\n public userId: number | null;\r\n\r\n constructor(clientId: number, countryCallingCode: string, emailAddress: string, firstName: string,\r\n managementInvitationStatus: ManagementInvitationStatus, isPrimary: boolean, lastName: string, managementInvitationLinkId: number,\r\n phoneNumber: string, phoneNumberCountryId: number, userId: number | null) {\r\n this.clientId = clientId;\r\n this.countryCallingCode = countryCallingCode;\r\n this.emailAddress = emailAddress;\r\n this.firstName = firstName;\r\n this.managementInvitationStatus = managementInvitationStatus;\r\n this.isPrimary = isPrimary;\r\n this.lastName = lastName;\r\n this.managementInvitationLinkId = managementInvitationLinkId;\r\n this.phoneNumber = phoneNumber;\r\n this.phoneNumberCountryId = phoneNumberCountryId;\r\n this.userId = userId;\r\n }\r\n\r\n public static fromDTO(administrator: Administrator, country: Platform.Country) {\r\n return new this(administrator.clientId, country?.countryCallingCode ?? \"\", administrator.emailAddress, administrator.firstName,\r\n administrator.managementInvitationStatus, administrator.isPrimary, administrator.lastName, administrator.id,\r\n administrator.phoneNumber, administrator.phoneNumberCountryId, administrator.userId);\r\n }\r\n\r\n public getFullName = () => {\r\n return `${this.firstName} ${this.lastName}`;\r\n }\r\n\r\n public getCallingCode = () => {\r\n return this.phoneNumber?.substr(0, this.phoneNumber.indexOf(' ')) ?? '';\r\n }\r\n\r\n public getPhoneNumber = () => {\r\n return this.phoneNumber?.substr(this.phoneNumber.indexOf(' ')).trim() ?? '';\r\n }\r\n\r\n public getStatusLabel() {\r\n const labelKey = \"Business.ManagementInviteStatus.\" + this.managementInvitationStatus;\r\n return TranslationData.get(labelKey);\r\n }\r\n\r\n public isAcceptedAdmin = () => {\r\n return this.isPrimary || (this.managementInvitationStatus === ManagementInvitationStatus.Accepted && this.userId != null);\r\n }\r\n }\r\n} ","module Business {\r\n export class AdministratorRenderer {\r\n private administratorsTemplate: HandlebarsTemplateDelegate;\r\n private administratorTemplate: HandlebarsTemplateDelegate;\r\n private administratorEnabledTemplate: HandlebarsTemplateDelegate;\r\n private administratorDisabledTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (administrators: AdministratorsModel, callback: Function): void => {\r\n if (this.administratorsTemplate == null) {\r\n this.administratorsTemplate = Handlebars.compile($(\"#administrators-template\").html());\r\n }\r\n\r\n if (this.administratorTemplate == null) {\r\n this.administratorTemplate = Handlebars.compile($(\"#administrator-template\").html());\r\n Handlebars.registerPartial(\"administratorPartial\", this.administratorTemplate);\r\n }\r\n\r\n if (this.administratorEnabledTemplate == null) {\r\n this.administratorEnabledTemplate = Handlebars.compile($(\"#administrator-enabled-template\").html());\r\n Handlebars.registerPartial(\"administratorEnabledPartial\", this.administratorEnabledTemplate);\r\n }\r\n\r\n if (this.administratorDisabledTemplate == null) {\r\n this.administratorDisabledTemplate = Handlebars.compile($(\"#administrator-disabled-template\").html());\r\n Handlebars.registerPartial(\"administratorDisabledPartial\", this.administratorDisabledTemplate);\r\n }\r\n\r\n $(\".administrators-placeholder\").html(this.administratorsTemplate(administrators));\r\n\r\n callback();\r\n }\r\n }\r\n}","module Business {\r\n export class AdministratorsModel extends BaseList {\r\n\r\n constructor(administrators: Array) {\r\n super(administrators);\r\n }\r\n\r\n public static fromDTO(administrators: Administrators, countries: Platform.Countries) {\r\n const list = new Array();\r\n _.each(administrators.list, (administrator: Administrator) => {\r\n var country = countries.getById(administrator.phoneNumberCountryId);\r\n list.push(AdministratorModel.fromDTO(administrator, country));\r\n });\r\n\r\n return new this(list).sortByPrimaryAdmin();\r\n }\r\n\r\n public getByUserId = (userId: number) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.userId === userId;\r\n });\r\n }\r\n\r\n public getByInviteLinkId = (inviteLinkId: number) => {\r\n return _.find(this.list, administrator => {\r\n return administrator.managementInvitationLinkId === inviteLinkId;\r\n });\r\n }\r\n\r\n public hasMultipleAdmins = () => {\r\n return _.filter(this.list, (administrator: AdministratorModel) => {\r\n return administrator.isAcceptedAdmin();\r\n }).length > 1;\r\n }\r\n\r\n public hasOnlyOneAdmin = () => {\r\n return this.list.length === 1;\r\n }\r\n\r\n public sortByPrimaryAdmin = () => {\r\n return new AdministratorsModel(_.sortBy(this.list, (admin: AdministratorModel) => {\r\n return admin.isPrimary;\r\n }).reverse());\r\n }\r\n }\r\n} ","module Business {\r\n export class PurchaseRenderer {\r\n private purchasesTemplate: HandlebarsTemplateDelegate;\r\n private purchaseTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (purchases: Purchases, callBack: Function): void => {\r\n if (this.purchasesTemplate == null) {\r\n this.purchasesTemplate = Handlebars.compile($(\"#purchases-template\").html());\r\n }\r\n\r\n if (this.purchaseTemplate == null) {\r\n this.purchaseTemplate = Handlebars.compile($(\"#purchase-template\").html());\r\n Handlebars.registerPartial(\"purchasePartial\", this.purchaseTemplate);\r\n } \r\n\r\n $(\".purchases-placeholder\").html(this.purchasesTemplate(purchases));\r\n callBack();\r\n }\r\n }\r\n}","module Business {\r\n export class CompanyDetailsModel {\r\n public companyOrganisationName: string;\r\n public companyAddress: string;\r\n public companyZipCode: string;\r\n public companyCityName: string;\r\n public companyCountryId: number;\r\n public countryCallingCode: string;\r\n public companyPhoneNumber: string;\r\n public companyVATNumber: string;\r\n\r\n public invoiceRecipientName: string;\r\n public invoiceRecipientEmail: string;\r\n\r\n constructor(companyOrganisationName: string, companyAddress: string, companyZipCode: string, companyCityName: string, companyCountryId: number, countryCallingCode: string, companyPhoneNumber: string, companyVatNumber: string, invoiceRecipientName: string, invoiceRecipientEmail: string) {\r\n this.companyOrganisationName = companyOrganisationName;\r\n this.companyAddress = companyAddress;\r\n this.companyZipCode = companyZipCode;\r\n this.companyCityName = companyCityName;\r\n this.companyCountryId = companyCountryId;\r\n this.countryCallingCode = countryCallingCode;\r\n this.companyPhoneNumber = companyPhoneNumber;\r\n this.companyVATNumber = companyVatNumber;\r\n this.invoiceRecipientName = invoiceRecipientName;\r\n this.invoiceRecipientEmail = invoiceRecipientEmail;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n import UpgradeController = ClientAdministrator.UpgradeController;\r\n import InviteController = ClientAdministrator.InviteController;\r\n import ParticipantsController = ClientAdministrator.ParticipantsController;\r\n import HelpController = ClientAdministrator.HelpController;\r\n import SubLeagueController = ClientAdministrator.SubLeagueController;\r\n import MarketingController = ClientAdministrator.MarketingController;\r\n\r\n export class ClientAdministratorController {\r\n public static readonly TabSwitchEvent: string = \"ClientAdministrator.TabSwitchEvent\";\r\n public static readonly ResetTabDataLoadedEvent: string = \"ClientAdministrator.ResetTabDataLoadedEvent\";\r\n\r\n constructor(cdnUrl: string,\r\n salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings,\r\n upsApiSettings: ApiSettings.UserPredictionStatusApiSettings, leagueApiSettings: League.ApiSettings,\r\n clientRepository: IClientRepository, articleRepository: IArticleRepository, leagueActionsEnabled: boolean, private marketId: number) {\r\n this.handleTabChange();\r\n this.bindListeners();\r\n\r\n new ConfigurationController(cdnUrl, salesApiSettings, userApiSettings, platformApiSettings, leagueApiSettings, clientRepository, leagueActionsEnabled);\r\n new UpgradeController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\r\n new InviteController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\r\n new ParticipantsController(cdnUrl, salesApiSettings, platformApiSettings, upsApiSettings, leagueApiSettings, clientRepository, this.marketId);\r\n new MarketingController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository, articleRepository);\r\n new HelpController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\r\n new SubLeagueController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository);\r\n }\r\n\r\n private handleTabChange = () => {\r\n $(\".client-administrator__tab\").removeClickListeners();\r\n $(\".client-administrator__tab\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n\r\n if (elem.hasModifier(\"active\"))\r\n return;\r\n\r\n const tabType: ClientAdminTabType = +elem.data(\"tab-id\");\r\n $(\".client-administrator__tab\").removeModifiers(\"active\");\r\n elem.addModifiers(\"active\");\r\n\r\n $(\".league-administrator__tab\").removeModifiers(\"active\");\r\n $(\".league-administrator__tab-content\").removeModifiers(\"active\");\r\n\r\n const contentElement = $(`.client-administrator__tab-content[data-tab-id=\"${tabType}\"`);\r\n $(\".client-administrator__tab-content\").removeModifiers(\"active\");\r\n contentElement.addModifiers(\"active\");\r\n\r\n $(\".client-administrator__tabs-content\").addModifiers(\"preload\");\r\n dispatchEvent(new CustomEvent(ClientAdministratorController.TabSwitchEvent, { detail: { tabType } }));\r\n });\r\n }\r\n\r\n private bindListeners = (): void => {\r\n $(\".configuration-incomplete-notice__go-to-configuration-button, .market-not-online-notice__go-to-configuration-button\").on(\"click\", () => {\r\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.Configuration}\"]`).click();\r\n });\r\n\r\n $(\".subleague-notice__go-to-subleagues-button\").on(\"click\", function () {\r\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.SubLeagues}\"]`).click();\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class GeneralController {\r\n public static readonly TabSwitchEvent: string = \"General.TabSwitchEvent\";\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings,\r\n salesUser: SalesUser, clientRepository: IClientRepository) {\r\n\r\n new CompanyDetailsController(salesApiSettings, platformApiSettings, salesUser, clientRepository);\r\n new PurchasesController(salesApiSettings, platformApiSettings, salesUser);\r\n new AdministratorController(salesApiSettings, platformApiSettings, userApiSettings, salesUser);\r\n\r\n this.handleTabClick();\r\n }\r\n\r\n private handleTabClick = () => {\r\n $(\".general-tabs__tab\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n if (elem.hasModifier(\"active\"))\r\n return;\r\n\r\n const tabType: GeneralTabType = +elem.data(\"tab-id\");\r\n $(\".general-tabs__tab\").removeModifiers(\"active\");\r\n elem.addModifiers(\"active\");\r\n\r\n const contentElement = $(`.general-tabs__tab-content[data-tab-id=\"${tabType}\"`);\r\n $(\".general-tabs__tab-content\").removeModifiers(\"active\");\r\n contentElement.addModifiers(\"active\");\r\n\r\n dispatchEvent(new CustomEvent(GeneralController.TabSwitchEvent, { detail: { tabType } }));\r\n });\r\n }\r\n }\r\n}","module Business {\r\n\r\n export class LeagueAdministratorController {\r\n public static readonly TabSwitchEvent: string = \"LeagueAdministrator.TabSwitchEvent\";\r\n public static readonly ResetTabDataLoadedEvent: string = \"LeagueAdministrator.ResetTabDataLoadedEvent\";\r\n public static readonly SetSelectedSubLeagueEvent: string = \"LeagueAdministrator.SetSelectedSubLeagueEvent\";\r\n\r\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, leagueApiSettings: League.ApiSettings,\r\n userPredictionStatusRepository: Business.IUserPredictionStatusRepository, clientRepository: IClientRepository, articleRepository: IArticleRepository, leagueActionsEnabled: boolean, marketId: number) {\r\n this.handleTabClick();\r\n\r\n new LeagueAdministrator.SettingsController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, leagueActionsEnabled);\r\n new LeagueAdministrator.InviteController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\r\n new LeagueAdministrator.ParticipantsController(cdnUrl, salesApiSettings, platformApiSettings, leagueApiSettings, userPredictionStatusRepository, clientRepository, marketId);\r\n new LeagueAdministrator.ArticleController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository, articleRepository); //userApiSettings\r\n new LeagueAdministrator.HelpController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\r\n } \r\n\r\n private handleTabClick = () => {\r\n $(\".league-administrator__tab\").removeClickListeners();\r\n $(\".league-administrator__tab\").on(\"click\", event => {\r\n const elem = $(event.currentTarget);\r\n const tabType: LeagueAdminTabType = +elem.data(\"tab-id\");\r\n\r\n if (elem.hasModifier(\"active\"))\r\n return;\r\n\r\n $(\".league-administrator__tab\").removeModifiers(\"active\");\r\n elem.addModifiers(\"active\");\r\n\r\n $(\".client-administrator__tab\").removeModifiers(\"active\");\r\n $(\".client-administrator__tab-content\").removeModifiers(\"active\");\r\n\r\n const contentElement = $(`.league-administrator__tab-content[data-tab-id=\"${tabType}\"`);\r\n $(\".league-administrator__tab-content\").removeModifiers(\"active\");\r\n contentElement.addModifiers(\"active\");\r\n\r\n $(\".league-administrator__tabs-content\").addModifiers(\"preload\");\r\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.TabSwitchEvent, { detail: { tabType } }));\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class HeaderActionsRowRenderer {\r\n private template: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (model: ClientMarkets, callBack: Function): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#header-actions-row-template\").html());\r\n }\r\n\r\n $(\".header-actions-row-placeholder\").html(this.template(model));\r\n callBack();\r\n }\r\n }\r\n}","module Business {\r\n export class HeaderStatusOverviewRenderer {\r\n private template: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (model: HeaderStatusOverviewModel): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#header-status-overview-template\").html());\r\n }\r\n $(\".header-status-overview-placeholder\").html(this.template(model));\r\n $(\".header-status-overview-placeholder\").removeModifiers(\"preload\");\r\n }\r\n\r\n public renderEmpty = (): void => {\r\n if (this.template == null) {\r\n this.template = Handlebars.compile($(\"#header-status-overview-template\").html());\r\n }\r\n \r\n $(\".header-status-overview-placeholder\").html(this.template(new HeaderStatusOverviewModel(\"\", 0, 0, 0, 0)));\r\n\r\n $(\".header-status-overview-placeholder\").addModifiers(\"preload\");\r\n }\r\n }\r\n}","module Business {\r\n export class HeaderStatusOverviewModel {\r\n public game: string;\r\n public bundleParticipants: number;\r\n public otherParticipants: number;\r\n public totalBundle: number;\r\n public actionCount: number;\r\n public isPollingParticipants: boolean;\r\n\r\n public constructor(game: string, bundleParticipants:\r\n number, otherParticipants: number, totalBundle: number, actionCount: number, isPollingParticipants?: boolean) {\r\n this.game = game;\r\n this.bundleParticipants = bundleParticipants;\r\n this.otherParticipants = otherParticipants;\r\n this.totalBundle = totalBundle;\r\n this.actionCount = actionCount;\r\n this.isPollingParticipants = isPollingParticipants\r\n }\r\n\r\n public hasActionCount = (): boolean => {\r\n return this.actionCount > 0;\r\n }\r\n\r\n public remainder = (): number => {\r\n return this.totalBundle - this.bundleParticipants;\r\n }\r\n\r\n public lowRemainderBundle = (): boolean => {\r\n const lowBundle = this.totalBundle / 5;\r\n return (this.remainder()) <= lowBundle;\r\n }\r\n\r\n public getRemainderBundle = (): string => {\r\n return this.format(this.remainder());\r\n }\r\n\r\n public getTotalParticipants = (): string => {\r\n const total = this.bundleParticipants + this.otherParticipants;\r\n return this.format(total);\r\n }\r\n\r\n public getOtherParticipants = (): string => {\r\n return this.format(Math.max(0, this.otherParticipants));\r\n }\r\n\r\n public getIsPollingParticipants = (): boolean => {\r\n return this.isPollingParticipants != null ? this.isPollingParticipants : false\r\n }\r\n\r\n private format = (number: number): string => {\r\n var formatMask = \"0,000\";\r\n return numeral(number).format(formatMask);\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n import Country = Platform.Country;\r\n import Countries = Platform.Countries;\r\n\r\n export class BusinessController {\r\n private _dealsTableRenderer: DealsTableRenderer;\r\n private _packageOptionsTableRenderer: PackageOptionsTableRenderer;\r\n private _packageOptionPopUpRenderer: PackageOptionPopUpRenderer;\r\n private _marketTabsRenderer: MarketTabsRenderer;\r\n private _promotionalVideoRenderer: PromotionalVideoRenderer;\r\n private _gameTabsRenderer: GameTabsRenderer;\r\n private _orderFormRenderer: OrderFormRenderer;\r\n private _stepsRenderer: StepsRenderer;\r\n private _questionsRenderer: QuestionsRenderer;\r\n private _clientsRenderer: ClientsRenderer;\r\n private _helpRenderer: HelpRenderer;\r\n private _headerRenderer: HeaderRenderer;\r\n private _brochureRenderer: BrochureRenderer;\r\n private _brochurePopupRenderer: BrochurePopupRenderer;\r\n\r\n private _platformRepository: Platform.Repository;\r\n private _tabsRepository: TabsRepository;\r\n private _footerImageRepository: FooterImageRepository;\r\n private _dealsRepository: DealsRepository;\r\n private _packageOptionsRepository: PackageOptionsRepository;\r\n private _faqRepository: FaqRepository;\r\n private _salesUserRepository: SalesUserRepository;\r\n private _brochureRepository: BrochureRepository;\r\n private _steamReferralRepository: SteamReferralRepository;\r\n private _accountDataRepository: IAccountDataRepository;\r\n\r\n private _selectedGameId: number;\r\n private _selectedMarketId: number;\r\n private _selectedDealId: number;\r\n private _selectedCountry: Country;\r\n\r\n private _selectedPackageType: PackageType;\r\n private _selectedPackageParticipants: number;\r\n\r\n private _headerSlider: any;\r\n\r\n private _regionId: number;\r\n private _gameTabs: GameTabs;\r\n private _packageOptions: PackageOptionsResult;\r\n\r\n private _indexedGameTabs: { [id: number]: GameTab } = {};\r\n\r\n public _marketDealResult: MarketDealResult;\r\n private _earlyBirdDiscount: EarlyBirdDiscount;\r\n\r\n private _clientInformation: ClientInformationModel;\r\n private _clientAdminData: SalesAccountData;\r\n\r\n private _orderpageUrl: string;\r\n private _cdnUrl: string;\r\n private selectedDropdownMarketId: number;\r\n\r\n private salesUser: SalesUser;\r\n\r\n constructor(regionId: number, cdnUrl: string, salesApiSettings: any, platformApiSettings: any, orderpageUrl: string) {\r\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this._tabsRepository = new TabsRepository(salesSettings);\r\n this._platformRepository = new Platform.Repository(platformSettings, 0);\r\n this._footerImageRepository = new FooterImageRepository(salesSettings);\r\n this._dealsRepository = new DealsRepository(salesSettings);\r\n this._packageOptionsRepository = new PackageOptionsRepository(salesSettings);\r\n this._faqRepository = new FaqRepository(salesSettings);\r\n this._salesUserRepository = new SalesUserRepository(salesSettings);\r\n this._brochureRepository = new BrochureRepository(salesSettings);\r\n this._accountDataRepository = new AccountDataRepository(salesSettings);\r\n this._steamReferralRepository = new SteamReferralRepository(salesSettings);\r\n this._cdnUrl = cdnUrl;\r\n\r\n this._dealsTableRenderer = new DealsTableRenderer();\r\n this._packageOptionsTableRenderer = new PackageOptionsTableRenderer();\r\n this._packageOptionPopUpRenderer = new PackageOptionPopUpRenderer();\r\n this._promotionalVideoRenderer = new PromotionalVideoRenderer();\r\n this._marketTabsRenderer = new MarketTabsRenderer();\r\n this._gameTabsRenderer = new GameTabsRenderer();\r\n this._orderFormRenderer = new OrderFormRenderer();\r\n this._stepsRenderer = new StepsRenderer();\r\n this._questionsRenderer = new QuestionsRenderer();\r\n\r\n this._clientsRenderer = new ClientsRenderer();\r\n this._helpRenderer = new HelpRenderer();\r\n this._headerRenderer = new HeaderRenderer();\r\n this._brochureRenderer = new BrochureRenderer();\r\n this._brochurePopupRenderer = new BrochurePopupRenderer();\r\n\r\n this._clientInformation = this.saveClientInformation();\r\n this._regionId = this._clientInformation != null ? this._clientInformation.regionId : regionId;\r\n this._orderpageUrl = orderpageUrl;\r\n\r\n $(document).ready(() => {\r\n this.onDomLoaded();\r\n $(\"#inner-content\").css(\"width\", \"100%\").css(\"margin-bottom\", \"0px\");\r\n });\r\n }\r\n\r\n private onDomLoaded() {\r\n const stepModel = new StepModel(this._cdnUrl);\r\n this._stepsRenderer.renderTemplate(stepModel);\r\n const questionsModel = new QuestionsModel(this._cdnUrl);\r\n this._questionsRenderer.renderTemplate(questionsModel);\r\n this.loadSalesUser().always(() => {\r\n this.loadCountryCodeData();\r\n });\r\n this.initGamesAndMarketsHeader();\r\n this.initClientsFooter();\r\n this.bindContactForm();\r\n this.tryInitClientAccountData();\r\n }\r\n\r\n private saveOrderInformationToLocalStorage() {\r\n\r\n const orderInformation = new OrderInformationModel(\r\n this._selectedGameId,\r\n this._selectedMarketId,\r\n this._selectedDealId,\r\n null,\r\n null,\r\n null,\r\n this._selectedCountry?.id ?? 0,\r\n this._selectedCountry?.code ?? '',\r\n null,\r\n this._indexedGameTabs[this._selectedGameId].headerImageUrl,\r\n this.getRequestedParticipants(),\r\n false,\r\n this._indexedGameTabs[this._selectedGameId].salesHeaderImageUrl,\r\n \"\");\r\n\r\n orderInformation.saveToLocalStorage();\r\n }\r\n\r\n public initGamesAndMarketsHeader(): void {\r\n this._tabsRepository.GetGamesAndMarkets(this._regionId)\r\n .done((gamesTabs: GameTabs) => {\r\n var gameId = gamesTabs.defaultSelectedGameId;\r\n var marketId = gamesTabs.defaultSelectedMarketId;\r\n if (this._clientInformation != null) {\r\n marketId = this._clientInformation.marketId;\r\n let gameTab = gamesTabs.getByMarketId(marketId);\r\n if (!gameTab) {\r\n gameTab = gamesTabs.getByMarketId(gamesTabs.defaultSelectedMarketId);\r\n this._selectedMarketId = gamesTabs.defaultSelectedMarketId;\r\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\r\n\r\n if (!gameTab) {\r\n ClientInformationModel.deleteFromLocalStorage();\r\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\r\n }\r\n }\r\n gameId = gameTab.gameId;\r\n $('#calculator-input').val(this._clientInformation.participantCount + \"\");\r\n }\r\n\r\n const marketIdHash = window.location.hash.slice(1);\r\n if (isNumeric(marketIdHash)) {\r\n this._selectedMarketId = +marketIdHash;\r\n this._selectedGameId = _.find(gamesTabs.gameTabs, g => _.any(g.marketTabs, m => m.marketId === this._selectedMarketId))?.gameId;\r\n } else {\r\n this._selectedMarketId = marketId;\r\n this._selectedGameId = gameId;\r\n }\r\n\r\n if (!this._selectedMarketId || !this._selectedGameId) {\r\n this._selectedMarketId = marketId;\r\n this._selectedGameId = gameId;\r\n }\r\n\r\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\r\n\r\n this._gameTabs = gamesTabs;\r\n\r\n this.refreshPackageOptionTable();\r\n this.updatePackageTitle();\r\n\r\n gamesTabs.gameTabs.forEach(tab => {\r\n this._indexedGameTabs[tab.gameId] = tab;\r\n });\r\n\r\n this.initHeader(gamesTabs);\r\n\r\n this.refreshGameTabs();\r\n this.refreshMarketTabs();\r\n this.refreshPromotionalBlock();\r\n this.refreshBrochure();\r\n this.refreshMarketDeals(true);\r\n this.initHelpPage();\r\n\r\n $('#btnCalculate').click((event) => { return this.calculatorClick(null, true, true); });\r\n $(\"#calculator-input\").on(\"keyup\", event => event.which === 13 && this.calculatorClick(null, true, true));\r\n\r\n\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n public initClientsFooter(): void {\r\n $.when(this._footerImageRepository.getFooterImageUrlsForRegion(this._regionId))\r\n .done((imageUrls: Array) => {\r\n this._clientsRenderer.renderTemplate(imageUrls, () => {\r\n $('.bxsliderClients').bxSlider(\r\n {\r\n speed: 600,\r\n auto: true,\r\n pager: true,\r\n controls: false,\r\n responsive: true,\r\n adaptiveHeight: true,\r\n slideWidth: 1400,\r\n pause: 6000\r\n });\r\n });\r\n });\r\n }\r\n\r\n private initHeader(gamesTabs: GameTabs): void {\r\n this._headerRenderer.renderTemplate(gamesTabs, this._selectedGameId, (selectedIndex: number) => {\r\n this._headerSlider = $('#headerImageSlider').bxSlider(\r\n {\r\n speed: 200,\r\n auto: false,\r\n pager: false,\r\n controls: false,\r\n responsive: true,\r\n adaptiveHeight: true,\r\n startSlide: selectedIndex\r\n });\r\n\r\n $('.headerCarouselSlider').bxSlider(\r\n {\r\n speed: 800,\r\n auto: true,\r\n pager: false,\r\n controls: false,\r\n responsive: true,\r\n slideWidth: 1240,\r\n adaptiveHeight: true,\r\n });\r\n });\r\n }\r\n\r\n private loadFromLocalStorage = (selectDeal: boolean) => {\r\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n if (!orderInformation)\r\n return;\r\n $(\"#calculator-input\").val(orderInformation.participantCount.toString());\r\n let selectedDeal = this._marketDealResult.getById(orderInformation.mainDealId);\r\n if (this._selectedPackageType && this._selectedPackageParticipants) {\r\n selectedDeal = this._marketDealResult.getByTablePosition(this._selectedPackageType, this._selectedPackageParticipants);\r\n }\r\n this.calculatorClick(selectedDeal, selectDeal);\r\n this.renderPackageOptionTable(selectDeal ? selectedDeal?.packageType ?? PackageType.Professional : PackageType.Professional);\r\n if (!selectDeal) {\r\n this._selectedDealId = undefined;\r\n this._selectedPackageParticipants = undefined;\r\n this._selectedPackageType = undefined;\r\n }\r\n }\r\n\r\n private tryInitClientAccountData = () => {\r\n if (Authentication.isLoggedIn()) {\r\n this._accountDataRepository.getSalesAccountData().then(res => {\r\n this._clientAdminData = res;\r\n });\r\n }\r\n }\r\n\r\n //Click events\r\n private gametypeClick(event: JQueryEventObject): void {\r\n var target = $(event.target);\r\n $('.gametab').removeClass('active');\r\n $('.helptab').removeClass('active');\r\n target.addClass('active');\r\n $(\".calculator\").removeClass(\"calculator-selected\");\r\n $(\".market-tabs-placeholder\").removeClass(\"market-tabs-placeholder-selected-package\");\r\n this._selectedGameId = target.data(\"gameid\");\r\n var gameTab = this._indexedGameTabs[this._selectedGameId];\r\n this._selectedMarketId = gameTab.marketTabs[0].marketId;\r\n this.selectedDropdownMarketId = null;\r\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\r\n this.updatePackageTitle();\r\n this._headerSlider.goToSlide(target.data('header-tabindex'));\r\n this.refreshMarketTabs();\r\n this.refreshPromotionalBlock();\r\n this.refreshBrochure();\r\n this.refreshPackageOptionTable();\r\n this.refreshMarketDeals(false, false);\r\n this.refreshHelpPage();\r\n }\r\n\r\n private marketChange(event: JQueryEventObject): void {\r\n var target = $(event.target);\r\n const marketId = +target.val();\r\n this.handleMarketClick(marketId, true);\r\n }\r\n\r\n private handleMarketClick = (marketId: number, resetDropdownMarketId: boolean) => {\r\n this._selectedMarketId = marketId;\r\n\r\n if (resetDropdownMarketId) {\r\n this.selectedDropdownMarketId = null;\r\n }\r\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\r\n this.updatePackageTitle();\r\n this.refreshMarketTabs();\r\n this.refreshPromotionalBlock();\r\n this.refreshBrochure();\r\n this.refreshPackageOptionTable();\r\n this.refreshMarketDeals(false, this._selectedDealId ? true : false);\r\n }\r\n\r\n private calculatorClick(selectedDeal: Deal = null, selectDeal: boolean = true, centerDeal: boolean = false) {\r\n var recommendedPackage: PackageType = this.getRecommendedPackage();\r\n this.renderPackageOptionTable(selectDeal ? recommendedPackage : 0 as PackageType);\r\n\r\n var requestedParticipants: number = this.getRequestedParticipants();\r\n\r\n var recommendedDeal = selectedDeal ? selectedDeal : this.getRecommendedDeal(requestedParticipants, PackageType.Business);\r\n if (recommendedDeal == null) {\r\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\r\n }\r\n this._selectedDealId = recommendedDeal.id;\r\n this._dealsTableRenderer.renderTemplateWithNewDeals(this._earlyBirdDiscount, this._marketDealResult?.marketDeals ?? [],\r\n recommendedDeal, selectDeal, centerDeal, () => {\r\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\r\n });\r\n if (selectDeal) {\r\n $('[data-deal-id=' + recommendedDeal.id + ']').click();\r\n }\r\n }\r\n\r\n private dealClick(event: JQueryEventObject): void {\r\n const target = $(event.target);\r\n const dealId: number = target.data('deal-id');\r\n this._selectedDealId = dealId;\r\n const selectedDeal = this.getDeal(dealId);\r\n this._selectedPackageType = selectedDeal.packageType;\r\n this._selectedPackageParticipants = selectedDeal.participantCount;\r\n\r\n this._dealsTableRenderer.renderTemplateWithNewSelection(selectedDeal, () => {\r\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\r\n });\r\n this.renderPackageOptionTable(selectedDeal.packageType);\r\n this.renderOrderForm(OrderInformationModel.getOrderInformationFromLocalStorage()?.countryCode ?? this._selectedCountry?.code);\r\n $(\".calculator\").addClass(\"calculator-selected\");\r\n $(\".market-tabs-placeholder\").addClass(\"market-tabs-placeholder-selected-package\");\r\n this.saveOrderInformationToLocalStorage();\r\n }\r\n\r\n private packageOptionClick(event: JQueryEventObject): void {\r\n var target = $(event.target);\r\n var packageOptionId: number = target.data('package-option-id');\r\n\r\n while (!packageOptionId) {\r\n target = target.parent();\r\n packageOptionId = target.data('package-option-id');\r\n }\r\n\r\n this.renderPackageOptionPopUp(this._regionId, target.data('package-option-id'));\r\n }\r\n\r\n private refreshMarketDeals(withDeal: boolean, preSelectDeal: boolean = true): void {\r\n this._orderFormRenderer.hide();\r\n this._dealsTableRenderer.renderEmptyTemplate();\r\n $.when(\r\n this._dealsRepository.getDealsForMarket(this._selectedMarketId),\r\n this._dealsRepository.getDiscountForMarket(this._selectedMarketId))\r\n .done((marketDealResult: MarketDealResult, discount: EarlyBirdDiscount) => {\r\n marketDealResult.filterRegularOnly();\r\n this._marketDealResult = marketDealResult;\r\n this._earlyBirdDiscount = discount;\r\n if (withDeal && this._clientInformation != null) {\r\n let selectedDeal = this.getRecommendedDeal(this._clientInformation.participantCount, this._clientInformation.packageId);\r\n if (!selectedDeal) {\r\n var requestedParticipants: number = this.getRequestedParticipants();\r\n var packageType: PackageType = requestedParticipants >= 250 ? PackageType.Professional : PackageType.Business;\r\n selectedDeal = this.getRecommendedDeal(requestedParticipants, packageType);\r\n }\r\n\r\n this._dealsTableRenderer.renderTemplateWithNewDeals(this._earlyBirdDiscount, this._marketDealResult.marketDeals, selectedDeal, preSelectDeal, false, () => {\r\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\r\n });\r\n $('[data-deal-id=' + selectedDeal.id + ']').click();\r\n this.renderPackageOptionTable(selectedDeal.packageType);\r\n this.renderOrderForm();\r\n }\r\n else {\r\n this.loadFromLocalStorage(preSelectDeal);\r\n }\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Business.ErrorRetrievingDeals\"));\r\n });\r\n }\r\n\r\n private refreshGameTabs(): void {\r\n this._gameTabsRenderer.renderTemplate(this._gameTabs, this._selectedGameId, () => {\r\n $('.gametab').click((event) => { return this.gametypeClick(event); });\r\n });\r\n }\r\n\r\n private refreshMarketTabs(): void {\r\n this._marketTabsRenderer.renderTemplate(this._indexedGameTabs[this._selectedGameId], this._selectedMarketId, this.showMarketDropdown(), () => {\r\n $(\".initial-market-select\").change((event) => { return this.marketChange(event); });\r\n });\r\n }\r\n\r\n private refreshPromotionalBlock(): void {\r\n this._promotionalVideoRenderer.renderTemplate(this._selectedMarketId, this._regionId);\r\n }\r\n\r\n private refreshBrochure(): void {\r\n this._brochureRenderer.renderTemplate(this._selectedMarketId, this._regionId, () => {\r\n let popup;\r\n $(\".promotional-brochure__thumbnail--brochure\").on(\"click\", () => {\r\n this._brochurePopupRenderer.renderTemplate(() => {\r\n popup = $.scoritoPopup({\r\n elementId: 'brochure-popup',\r\n contentHtml: $(\".brochure-popup-placeholder\").html(),\r\n popupTitle: TranslationData.get(`Sales.BrochurePopup.Title`),\r\n widthInPixels: 600,\r\n follow: [true, false]\r\n });\r\n\r\n if (this._clientAdminData?.administratorEmail) {\r\n $(\".brochure-popup__input:visible\").val(this._clientAdminData.administratorEmail);\r\n }\r\n });\r\n\r\n $(\".brochure-popup__button:visible\").on(\"click\", () => {\r\n const brochureRequestedKey = `BusinessBrochureRequested.${this._selectedMarketId}`;\r\n if (moment().utc().isAfter(localStorage.getItem(brochureRequestedKey) ?? moment().utc().subtract('m', 1))) {\r\n localStorage.setItem(brochureRequestedKey, moment().utc().add('m', 1).toISOString());\r\n\r\n const emailAddress = $(\".brochure-popup__input:visible\").val();\r\n this._brochureRepository.requestBrochure(this._selectedMarketId, emailAddress, this._regionId, uiCulture).then(res => {\r\n if (res.isSuccess()) {\r\n Toast.displayLabel(\"Sales.BrochurePopup.Sent\");\r\n popup?.close();\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n popup?.close();\r\n localStorage.removeItem(brochureRequestedKey);\r\n }\r\n }).fail((res) => {\r\n const errorMessage = res.responseJSON?.errors?.EmailAddress[0] ?? TranslationData.get(\"Common.ErrorOnPage\");\r\n NotificationBar.Display(errorMessage);\r\n localStorage.removeItem(brochureRequestedKey);\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n private refreshPackageOptionTable(): void {\r\n this._packageOptionsRepository.getPackageOptions(this._selectedMarketId)\r\n .done((packageOptions: PackageOptionsResult) => {\r\n this._packageOptions = packageOptions;\r\n\r\n this.renderPackageOptionTable(null);\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private renderPackageOptionTable(recommendedPackage: PackageType): void {\r\n this._packageOptionsRepository.getPackageOptions(this._selectedMarketId)\r\n .done((packageOptions: PackageOptionsResult) => {\r\n this._packageOptions = packageOptions;\r\n this._packageOptionsTableRenderer.renderTemplate(this._packageOptions, recommendedPackage, () => {\r\n $('.package-option-row').click((event) => { return this.packageOptionClick(event); });\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private refreshHelpPage(): void {\r\n $.when(this._faqRepository.getFaqForGame(this._selectedGameId))\r\n .done((faq: FaqQuestions) => {\r\n this._helpRenderer.renderTemplate(faq, () => {\r\n $('.helptab[data-tab]').removeClass('active');\r\n $('.helptab[data-tab=\"faq\"]').addClass('active');\r\n $('.faq-question').click((event) => { return this.faqClick(event); });\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private initHelpPage(): void {\r\n this.refreshHelpPage();\r\n\r\n var termsAndConditionsController = Shared.TermsAndConditionsController.GetInstance();\r\n $.when(termsAndConditionsController.GetTermsAndConditionsContent()).done((json: string) => {\r\n const result = ApiResult.fromJson(json);\r\n $('.helptabcontent.terms').html(result.content);\r\n });\r\n\r\n $('.helptabcontent.privacy').html(TranslationData.get('PrivacyTerms.Description'));\r\n\r\n $('.helptabs a').click((event) => { return this.helpTabClick(event); });\r\n }\r\n\r\n private renderPackageOptionPopUp(regionId: number, packageOptionId: number) {\r\n $.when(this._packageOptionsRepository.getPackageOptionLayoverContent(packageOptionId))\r\n .done((description: PackageOptionDescription) => {\r\n var model = new PackageOptionPopUpModel(description.description, description.imageUrls);\r\n\r\n this._packageOptionPopUpRenderer.renderTemplate(model, () => {\r\n $.scoritoPopup({\r\n elementId: 'packageoptions-popup',\r\n contentHtml: $(\".packageoptions-popup-placeholder\").html(),\r\n popupTitle: description.title,\r\n widthInPixels: 1240,\r\n follow: [true, false]\r\n });\r\n\r\n if (description.imageUrls.length > 1) {\r\n $('.bxslider').bxSlider(\r\n {\r\n speed: 600,\r\n auto: true,\r\n pager: true,\r\n controls: true,\r\n responsive: true,\r\n slideWidth: 780\r\n });\r\n }\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private getRequestedParticipants(): number {\r\n var requestedParticipants = $('#calculator-input').val();\r\n return requestedParticipants;\r\n }\r\n\r\n private getRecommendedPackage(): PackageType {\r\n var requestedParticipants = this.getRequestedParticipants();\r\n var recommendedPackage: PackageType = requestedParticipants >= 500 ? PackageType.Professional : PackageType.Business;\r\n return recommendedPackage;\r\n }\r\n\r\n private getDeal(dealId: number): Deal {\r\n return this._marketDealResult.getById(dealId);\r\n }\r\n\r\n private getRecommendedDeal(requestedParticipants: number, packageType: PackageType): Deal {\r\n var packageDeals: Array = this._marketDealResult?.marketDeals.filter(element => element.packageType === packageType) ?? [];\r\n packageDeals.sort((a, b) => { return a.participantCount - b.participantCount });\r\n var previous: number = 0;\r\n\r\n for (var i = 0; i < packageDeals.length; i++) {\r\n var current: number = packageDeals[i].participantCount;\r\n var next: number = (i != packageDeals.length - 1) ? packageDeals[i + 1].participantCount : null;\r\n\r\n if ((requestedParticipants == current)\r\n || (previous == 0 && requestedParticipants <= current)\r\n || (next == null))\r\n return packageDeals[i];\r\n\r\n if (requestedParticipants >= current && requestedParticipants < next)\r\n return packageDeals[i + 1];\r\n\r\n previous = current;\r\n }\r\n }\r\n\r\n private orderButtonClick(): void {\r\n var selectedMarket = $('#order-market').val();\r\n\r\n if (this.showMarketDropdown() && (selectedMarket == null || selectedMarket <= 0)) {\r\n return this._orderFormRenderer.renderMarketError(() => {\r\n $('#btnOrder').click(event => {\r\n return this.orderButtonClick();\r\n });\r\n\r\n this._platformRepository.getCountries().done(countries => {\r\n $('#order-country').change(() => {\r\n this._selectedCountry = countries.getByCode($('#order-country').val());\r\n });\r\n });\r\n });\r\n }\r\n\r\n var selectedCountry = $('#order-country').val();\r\n if (selectedCountry == null || selectedCountry <= 0) {\r\n return this._orderFormRenderer.renderError(() => {\r\n $('#btnOrder').click(event => {\r\n return this.orderButtonClick();\r\n });\r\n this._platformRepository.getCountries().done(countries => {\r\n $('#order-country').change(() => {\r\n this._selectedCountry = countries.getByCode($('#order-country').val());\r\n });\r\n });\r\n });\r\n }\r\n\r\n this.saveOrderInformationToLocalStorage();\r\n const url = `${this._orderpageUrl}#${this._selectedMarketId}`;\r\n window.open(url, \"_self\");\r\n }\r\n\r\n private helpTabClick(event: JQueryEventObject): void {\r\n var target = $(event.target);\r\n\r\n while (!target.hasClass('helptab')) {\r\n target = target.parent();\r\n }\r\n\r\n\r\n $('.helptab').removeClass('active');\r\n target.addClass('active');\r\n\r\n var tab = target.data('tab');\r\n $('.helptabcontent').hide();\r\n $(`.helptabcontent[data-tab=\"${tab}\"]`).show();\r\n }\r\n\r\n private faqClick(event: JQueryEventObject): void {\r\n var target = $(event.target);\r\n\r\n while (!target.hasClass('faq-question')) {\r\n target = target.parent();\r\n }\r\n $('.faq-question').not(target).removeClass('active')\r\n $('.faq-question').not(target).find('.faq-question-content').hide(100);\r\n\r\n $(target).toggleClass('active');\r\n if ($(target).hasClass('active'))\r\n target.find('.faq-question-content').show(100);\r\n else {\r\n target.find('.faq-question-content').hide(100);\r\n }\r\n }\r\n\r\n private renderOrderForm(countryCode: string = null) {\r\n\r\n if (this._selectedDealId !== undefined) {\r\n $.when(this._platformRepository.getCountries(),\r\n this._dealsRepository.getCalculatedDeal(this._selectedDealId),\r\n this._tabsRepository.GetGamesAndMarkets(this._regionId)\r\n ).done((countries: Countries, calculation: CalculatedDeal, gameTabs: GameTabs) => {\r\n var gameTab = gameTabs.getByGameId(this._selectedGameId);\r\n var selectedDeal = this.getDeal(this._selectedDealId);\r\n var viewModel: OrderFormModel = new OrderFormModel();\r\n viewModel.markets = gameTab.marketTabs;\r\n viewModel.packageDescription = PackageType[selectedDeal.packageType];\r\n viewModel.participantCount = selectedDeal.participantCount;\r\n viewModel.gameName = TranslationData.get(`Scorito.GameType.${KnownGameIds[this._selectedGameId]}`);\r\n viewModel.imageUrl = this._marketDealResult.imageUrl;\r\n viewModel.countries = countries.sortByName();\r\n viewModel.selectedCountry = this._selectedCountry ?? countries.getByCode('NLD');\r\n viewModel.total = calculation.total;\r\n viewModel.selectedMarketId = +this._selectedMarketId\r\n\r\n viewModel.showMarkets = this.showMarketDropdown();\r\n\r\n if (calculation.earlyBirdDiscount !== 0) {\r\n viewModel.subtotal = calculation.subtotal;\r\n viewModel.discount = calculation.earlyBirdDiscount;\r\n }\r\n\r\n var client = ClientInformationModel.getClientInformationFromLocalStorage();\r\n if (client != null) {\r\n viewModel.hasClient = true;\r\n viewModel.clientCompany = client.organization;\r\n viewModel.clientName = `${client.adminFirstname} ${client.adminLastname}`;\r\n viewModel.clientGender = this.getPreamble(client.adminGender);\r\n viewModel.selectedCountry = countries.getByCode(client.country);\r\n }\r\n\r\n if (this.salesUser?.hasPurchasedMarket(this._selectedMarketId)) {\r\n this._orderFormRenderer.renderAlreadyPurchased(viewModel, () => {\r\n $(\".already-purchased-order-form__go-to-management-button\").on(\"click\", () => {\r\n window.location.href = \"/management\";\r\n });\r\n\r\n $(\".already-purchased-order-form__log-out-button\").on(\"click\", () => {\r\n window.location.href = \"/user/logout\";\r\n });\r\n\r\n $(\"#order-market\").change(() => {\r\n const marketId = +$('#order-market').val();\r\n this.selectedDropdownMarketId = marketId;\r\n this.handleMarketClick(marketId, false);\r\n });\r\n });\r\n return;\r\n }\r\n this._orderFormRenderer.renderTemplateWithNewModel(viewModel, () => {\r\n $('#btnOrder').click(event => { return this.orderButtonClick() });\r\n\r\n $('#order-market').change(event => {\r\n const marketId = +$('#order-market').val();\r\n this.selectedDropdownMarketId = marketId;\r\n if (this.selectedDropdownMarketId > 0) {\r\n this.handleMarketClick(marketId, false);\r\n }\r\n });\r\n\r\n this._selectedCountry = countries.getByCode($('#order-country').val());\r\n $('#order-country').change(event => {\r\n this._selectedCountry = countries.getByCode($('#order-country').val());\r\n });\r\n\r\n if (countryCode) {\r\n this._selectedCountry = countries.getByCode(countryCode);\r\n $(\"#order-country\").val(countryCode);\r\n }\r\n });\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n }\r\n\r\n private updatePackageTitle() {\r\n $('#packageTitle').text(TranslationData.get(`Sales.Package.Title.${this._selectedGameId}`));\r\n }\r\n\r\n private saveClientInformation(): ClientInformationModel {\r\n let clientInformation = ClientInformationModel.getClientInformationFromUrl();\r\n if (clientInformation) {\r\n clientInformation.saveToLocalStorage();\r\n\r\n this._steamReferralRepository.create(\r\n clientInformation.organization,\r\n clientInformation.address,\r\n clientInformation.adminFirstname + \" \" + clientInformation.adminLastname,\r\n clientInformation.phoneNumber,\r\n clientInformation.adminEmail,\r\n clientInformation.marketId,\r\n clientInformation.packageId,\r\n clientInformation.participantCount);\r\n }\r\n else {\r\n clientInformation = ClientInformationModel.getClientInformationFromLocalStorage();\r\n }\r\n\r\n window.history.replaceState({}, document.title, `/${window.location.href.substring(window.location.href.lastIndexOf(\"/\") + 1).split(\"?\")[0]}`);\r\n return clientInformation;\r\n }\r\n\r\n private getPreamble(gender: Gender): string {\r\n if (gender === Gender.Male)\r\n return TranslationData.get('Common.Preamble.Male');\r\n if (gender === Gender.Female)\r\n return TranslationData.get('Common.Preamble.Female');;\r\n\r\n return '';\r\n }\r\n\r\n private showMarketDropdown = () => {\r\n return !(this._selectedGameId === KnownGameIds.CyclingTeamManager ||\r\n this._selectedGameId === KnownGameIds.DartsManager ||\r\n this._selectedGameId === KnownGameIds.GpManager ||\r\n this._selectedGameId === KnownGameIds.GpTeamManager ||\r\n this._selectedGameId === KnownGameIds.FootballTournament);\r\n }\r\n\r\n private bindContactForm = () => {\r\n $(\".deals-side-input\").on(\"focus\", e => {\r\n $(e.currentTarget).removeClass(\"deals-side-input--invalid\");\r\n });\r\n\r\n $(\".deals-side-button\").on(\"click\", () => {\r\n const company = $(\".deals-side-input__company\").val().trim();\r\n const name = $(\".deals-side-input__name\").val().trim();\r\n const email = $(\".deals-side-input__email\").val().trim();\r\n const phoneNumber = $(\".deals-side-input__phone-number\").val().trim();\r\n const question = $(\".deals-side-input__question\").val().trim();\r\n\r\n let hasErrors = false;\r\n if (!company) {\r\n $(\".deals-side-input__company\").addClass(\"deals-side-input--invalid\");\r\n hasErrors = true;\r\n }\r\n if (!name) {\r\n $(\".deals-side-input__name\").addClass(\"deals-side-input--invalid\");\r\n hasErrors = true;\r\n }\r\n if (!email || !Email.Validate(email)) {\r\n $(\".deals-side-input__email\").addClass(\"deals-side-input--invalid\");\r\n hasErrors = true;\r\n }\r\n if (!phoneNumber) {\r\n $(\".deals-side-input__phone-number\").addClass(\"deals-side-input--invalid\");\r\n hasErrors = true;\r\n }\r\n if (!question) {\r\n $(\".deals-side-input__question\").addClass(\"deals-side-input--invalid\");\r\n hasErrors = true;\r\n }\r\n\r\n const sendButton = $(\".deals-side-button\");\r\n if (!hasErrors && !sendButton.hasClass(\"preload\")) {\r\n const formData = new FormData();\r\n formData.append(\"subject\", company);\r\n formData.append(\"message\", question);\r\n formData.append(\"name\", name);\r\n formData.append(\"email\", email);\r\n formData.append(\"phoneNumber\", phoneNumber);\r\n\r\n sendButton.addClass(\"preload\");\r\n this._platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\r\n $(\".deals-side-input__company\").val(\"\");\r\n $(\".deals-side-input__name\").val(\"\");\r\n $(\".deals-side-input__email\").val(\"\");\r\n $(\".deals-side-input__phone-number\").val(\"\");\r\n $(\".deals-side-input__question\").val(\"\");\r\n Toast.displayLabel(\"Scorito.PoolAdmin.Mails.Sent\");\r\n }).fail(() => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n sendButton.removeClass(\"preload\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadSalesUser = () => {\r\n if (Authentication.isLoggedIn()) {\r\n return this._salesUserRepository.get().done((salesUser: SalesUser) => {\r\n this.salesUser = salesUser;\r\n });\r\n }\r\n return $.Deferred().resolve(null).promise();\r\n }\r\n\r\n private loadCountryCodeData = () => {\r\n this._platformRepository.getCountries().done((countries: Countries) => {\r\n const countryCodes = countries.getCountryCallingCodes();\r\n _.each(countryCodes, key => {\r\n $(\".country-select-input--country-code\").append(new Option(`+${key}`, key));\r\n });\r\n\r\n if (this.salesUser) {\r\n this._selectedCountry = countries.getById(this.salesUser.countryId);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n import UpgradeInformationModel = ClientAdministrator.UpgradeInformationModel;\r\n\r\n export class CartController {\r\n private readonly _dealsRepository: DealsRepository;\r\n private readonly _platformRepository: Platform.Repository;\r\n private readonly _salesPackageRepository: SalesPackageRepository;\r\n\r\n public orderInformation: OrderInformationModel;\r\n public upgradeInformation: UpgradeInformationModel;\r\n\r\n private _marketDealResult: MarketDealResult;\r\n private _mainMarketDiscount: EarlyBirdDiscount;\r\n private _combiDealMarkets: CombiDeals;\r\n private _marketSalesPackages: MarketSalesPackagesResult;\r\n\r\n private _dealsByMarket: MarketDealResults = new MarketDealResults();\r\n\r\n private _cartRenderer: CartRenderer;\r\n private _summaryRenderer: SummaryRenderer;\r\n private _personalizePopupRenderer: PersonalizePopupRenderer;\r\n private _hideSummary: boolean;\r\n\r\n private _updateCartCallback: Function;\r\n\r\n constructor(salesApiSettings: any, platformApiSettings: any, updateCartCallback: Function) {\r\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this._platformRepository = new Platform.Repository(platformSettings, 0);\r\n this._dealsRepository = new DealsRepository(salesSettings);\r\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\r\n\r\n this._updateCartCallback = updateCartCallback;\r\n\r\n this.orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n this.upgradeInformation = UpgradeInformationModel.getFromLocalStorage();\r\n\r\n this._cartRenderer = new CartRenderer();\r\n this._summaryRenderer = new SummaryRenderer();\r\n this._personalizePopupRenderer = new PersonalizePopupRenderer();\r\n }\r\n\r\n public initializeCart(renderType: CartRenderType, hideSummary: boolean = false): JQueryPromise {\r\n this._hideSummary = hideSummary;\r\n const deferred = $.Deferred();\r\n\r\n if (this.orderInformation == null) {\r\n console.error(`Empty order cart when trying to initialize`);\r\n return deferred.reject().promise();\r\n }\r\n\r\n $.when(\r\n this._dealsRepository.getDealsForMarket(this.orderInformation.marketId),\r\n this._dealsRepository.getDiscountForMarket(this.orderInformation.marketId),\r\n this._dealsRepository.getCombiDealsForMarket(this.orderInformation.marketId),\r\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(this.orderInformation.marketId, this.orderInformation.countryId)\r\n )\r\n .done((marketDealResult: MarketDealResult, discount: EarlyBirdDiscount, combiDeals: CombiDeals, marketSalesPackages: MarketSalesPackagesResult) => {\r\n const deal = marketDealResult.getById(this.orderInformation.mainDealId);\r\n if (deal)\r\n marketDealResult.filterByType(deal.packageType);\r\n\r\n this._marketDealResult = marketDealResult;\r\n\r\n this._mainMarketDiscount = discount;\r\n this._combiDealMarkets = combiDeals;\r\n this._marketSalesPackages = marketSalesPackages;\r\n\r\n this.initializeCombiDeals(() => { deferred.resolve(); }, renderType);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public initializeUpgradeCart = (): void => {\r\n if (this.upgradeInformation == null) {\r\n console.error(`Empty upgrade cart when trying to initialize`);\r\n return;\r\n }\r\n\r\n $.when(\r\n this._dealsRepository.getDealsForMarket(this.upgradeInformation.marketId),\r\n this._dealsRepository.getPackageUpgrades(this.upgradeInformation.marketId),\r\n this._platformRepository.getCountries(),\r\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(this.upgradeInformation.marketId, this.upgradeInformation.countryId)\r\n ).done((marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries, marketSalesPackages: MarketSalesPackagesResult) => {\r\n marketDealResult.filterByType(PackageType.Budget);\r\n this._marketSalesPackages = marketSalesPackages;\r\n\r\n if (marketDealResult.marketDeals.length < 1) {\r\n console.error(`Missing upgrade deals for market ${this.upgradeInformation.marketId}`);\r\n }\r\n\r\n if (this.upgradeInformation.packageUpgradeDealId != null || this.upgradeInformation.participantUpgradeDealId != null || !_.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)) {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n }\r\n\r\n addEventListener(\"updatePayByInvoice\", _ => {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n\r\n addEventListener(\"updateCountryId\", _ => {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n\r\n addEventListener(\"updateVatNumber\", _ => {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n\r\n addEventListener(\"updateCouponCode\", _ => {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n\r\n addEventListener(\"updateSalesPackages\", _ => {\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n });\r\n }\r\n\r\n private initializeCombiDeals(callback: Function, renderType: CartRenderType) {\r\n let getCombiDealsActions: Array> = new Array();\r\n this._combiDealMarkets.each(combi => {\r\n getCombiDealsActions.push(this._dealsRepository.getDealsForMarket(combi.dealMarketId));\r\n });\r\n\r\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\r\n\r\n let controller = this;\r\n $.when(...getCombiDealsActions).done(function () {\r\n let result: Array = Array.prototype.slice.call(arguments);\r\n result.forEach((mdr) => {\r\n mdr.filterByType(mainDeal.packageType);\r\n controller._dealsByMarket.add(mdr);\r\n });\r\n\r\n controller.updateCart(renderType);\r\n callback();\r\n });\r\n }\r\n\r\n private addSalesPackagesToModel = (cartModel: CartModel, salesPackageIdsWithAmounts: Record) => {\r\n let salesPackages: MarketSalesPackage[] = [];\r\n\r\n const salesPackageIds = this.getPurchaseInformationModel()?.getSalesPackageIds() ?? [];\r\n for (let i = 0; i < salesPackageIds.length; i++) {\r\n const salesPackageId = salesPackageIds[i];\r\n const salesPackage = this._marketSalesPackages.getById(+salesPackageId);\r\n if (salesPackage != null) {\r\n salesPackages.push(salesPackage);\r\n }\r\n }\r\n\r\n salesPackages.sort((a, b) => {\r\n if (a.type < b.type) return -1;\r\n if (a.type > b.type) return 1;\r\n return 0;\r\n });\r\n\r\n for (let i = 0; i < salesPackages.length; i++) {\r\n const salesPackage = salesPackages[i];\r\n const amount = salesPackageIdsWithAmounts[salesPackage.id];\r\n const subtitle = amount > 1 ? \"Business.SalesPackage.Packages\" : \"Business.SalesPackage.Package\";\r\n cartModel.add({\r\n id: +salesPackage.id,\r\n type: \"salesPackage\",\r\n canPersonalize: salesPackage.type === SalesPackageType.TrophyPackage,\r\n title: TranslationData.get(`Business.SalesPackage.${salesPackage.id}.Title`),\r\n imageUrl: salesPackage.imageUrls?.[0],\r\n price: salesPackage.price,\r\n subTitle: `${amount} ${TranslationData.get(subtitle)}`,\r\n amount: amount,\r\n totalPrice: salesPackage.price * amount\r\n } as SalesPackageRowModel)\r\n }\r\n }\r\n\r\n public createCartModel(): CartModel {\r\n let cartModel = new CartModel();\r\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\r\n const mainMarketId = this.orderInformation.marketId;\r\n let mainPackageRow = new PackageRowModel(mainDeal, mainMarketId, this._marketDealResult.gameName, this._marketDealResult.eventName, this._marketDealResult.imageUrl);\r\n if (this._mainMarketDiscount)\r\n mainPackageRow.setDiscount(DiscountTypes.EarlyBird, this._mainMarketDiscount.discount);\r\n\r\n mainPackageRow.setAdditionalDeals(this._marketDealResult.marketDeals.filter(d => !d.upgradeOnly), null);\r\n cartModel.addMainPackage(mainPackageRow);\r\n\r\n this.orderInformation.dealIds.forEach((dealId: number) => {\r\n let marketId = this.getMarketIdForDeal(dealId);\r\n let deal = this.getDeal(marketId, dealId);\r\n if (deal) {\r\n const marketDealResult = this._dealsByMarket.getByMarketId(marketId);\r\n let rowModel = new PackageRowModel(deal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\r\n\r\n const discountPercentage = this._combiDealMarkets.getByDealMarketId(marketId).discountPercentage;\r\n rowModel.setDiscount(DiscountTypes.CombiDeal, discountPercentage);\r\n\r\n rowModel.setAdditionalDeals(this.getDealsForMarketId(marketId), mainDeal.participantCount);\r\n\r\n cartModel.add(rowModel);\r\n }\r\n });\r\n\r\n this.addSalesPackagesToModel(cartModel, this.orderInformation.salesPackageIdsWithAmounts);\r\n\r\n return cartModel;\r\n }\r\n\r\n public renderCart(cartModel: CartModel) {\r\n this._cartRenderer.renderTemplate(cartModel, () => {\r\n this.bindPackageRows();\r\n });\r\n }\r\n\r\n public renderUpgradeCart = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries): CartModel => {\r\n const marketId = this.upgradeInformation.marketId;\r\n const cartModel = new CartModel();\r\n if (this.upgradeInformation.participantUpgradeDealId) {\r\n const participantDeal = marketDealResult.getById(this.upgradeInformation.participantUpgradeDealId);\r\n let rowModel = new PackageRowModel(participantDeal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\r\n rowModel.setAdditionalDeals(marketDealResult.marketDeals, null);\r\n rowModel.setIsParticipantUpgrade(true);\r\n cartModel.addMainPackage(rowModel);\r\n }\r\n if (this.upgradeInformation.packageUpgradeDealId) {\r\n const packageDeal = upgrades.getByDealId(this.upgradeInformation.packageUpgradeDealId);\r\n let rowModel = new PackageRowModel(packageDeal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\r\n rowModel.setIsPackageUpgrade(true);\r\n cartModel.addMainPackage(rowModel);\r\n }\r\n if (!_.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)) {\r\n this.addSalesPackagesToModel(cartModel, this.upgradeInformation.salesPackageIdsWithAmounts);\r\n }\r\n\r\n this._cartRenderer.renderTemplate(cartModel, () => {\r\n this.bindParticipantsDropdown(marketDealResult, upgrades, countries);\r\n this.bindPersonalizeButton();\r\n });\r\n\r\n return cartModel;\r\n }\r\n\r\n public updateCountry = (countryId: number) => {\r\n this._platformRepository.getCountries().done(countries => {\r\n const countryCode = countries.getById(countryId)?.code;\r\n if (this.isUpgrade()) {\r\n this.upgradeInformation.updateCountry(countryId);\r\n dispatchEvent(new Event(\"updateCountryId\"));\r\n }\r\n else {\r\n this.orderInformation.updateCountry(countryId, countryCode);\r\n this.updateCart(CartRenderType.All);\r\n }\r\n });\r\n }\r\n\r\n public setvatNumber = (vatNumber: string) => {\r\n if (this.isUpgrade()) {\r\n this.upgradeInformation.setVatNumber(vatNumber);\r\n dispatchEvent(new Event(\"updateVatNumber\"));\r\n }\r\n else {\r\n this.orderInformation.setVatNumber(vatNumber);\r\n this.updateCart(CartRenderType.All);\r\n }\r\n }\r\n\r\n public updateCoupon = (couponCode: string) => {\r\n if (this.isUpgrade()) {\r\n this.upgradeInformation.setCouponCode(couponCode);\r\n this.upgradeInformation.saveToLocalStorage();\r\n dispatchEvent(new Event(\"updateCouponCode\"));\r\n }\r\n else {\r\n this.orderInformation.updateCoupon(couponCode);\r\n this.updateCart(CartRenderType.All);\r\n }\r\n }\r\n\r\n public updatePayByInvoice = (payByInvoice: boolean) => {\r\n if (this.isUpgrade()) {\r\n this.upgradeInformation.updatePayByInvoice(payByInvoice);\r\n dispatchEvent(new Event(\"updatePayByInvoice\"));\r\n return;\r\n }\r\n this.orderInformation.updatePayByInvoice(payByInvoice);\r\n this.updateCart(CartRenderType.All);\r\n }\r\n\r\n private calculateOrder(renderType: CartRenderType): JQueryPromise {\r\n const deferred = $.Deferred();\r\n $.when(\r\n this._dealsRepository.calculateOrder(JSON.stringify(this.orderInformation)),\r\n this._platformRepository.getCountries()\r\n ).done((result: CalculatedOrder, countries: Platform.Countries) => {\r\n\r\n let country = (countries.getById(this.orderInformation.countryId) ?? countries.first())?.name;\r\n let summary = new SummaryModel(result, country);\r\n\r\n if (renderType === CartRenderType.All && !this._hideSummary) {\r\n // only needed if the sideview also rendered\r\n this._summaryRenderer.renderTemplate(summary);\r\n }\r\n\r\n deferred.resolve(summary);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n private calculateUpgradeOrder = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries) => {\r\n return this._dealsRepository.calculateUpgrade(\r\n this.upgradeInformation.marketId,\r\n this.upgradeInformation.participantUpgradeDealId,\r\n this.upgradeInformation.packageUpgradeDealId,\r\n this.upgradeInformation.payByInvoice,\r\n this.upgradeInformation.countryId,\r\n this.upgradeInformation.vatNumber,\r\n this.upgradeInformation.couponCode,\r\n this.upgradeInformation.salesPackageIdsWithAmounts\r\n ).done((calculatedOrder: CalculatedOrder) => {\r\n const cart = this.renderUpgradeCart(marketDealResult, upgrades, countries);\r\n const country = countries.getById(this.upgradeInformation.countryId);\r\n const summary = new SummaryModel(calculatedOrder, country.name);\r\n if (!this._hideSummary) {\r\n this._summaryRenderer.renderTemplate(summary);\r\n }\r\n\r\n this._updateCartCallback(summary, cart);\r\n });\r\n }\r\n\r\n public addDealToCart(dealId: number) {\r\n this.orderInformation.dealIds.push(dealId);\r\n this.updateCart(CartRenderType.All);\r\n }\r\n\r\n public getPurchaseInformationModel = (): PurchaseInformationModel => this.isUpgrade() ? this.upgradeInformation : this.orderInformation;\r\n\r\n public setSalesPackageInCart(id: number, amount: number) {\r\n const purchaseInformationModel = this.getPurchaseInformationModel();\r\n\r\n if (amount <= 0) {\r\n delete purchaseInformationModel.salesPackageIdsWithAmounts[id];\r\n }\r\n else {\r\n purchaseInformationModel.salesPackageIdsWithAmounts[id] = amount;\r\n }\r\n\r\n purchaseInformationModel.saveToLocalStorage();\r\n if (this.isUpgrade()) {\r\n dispatchEvent(new Event(\"updateSalesPackages\"));\r\n }\r\n else {\r\n this.updateCart(CartRenderType.OnlySideView);\r\n }\r\n }\r\n\r\n private updateCartHandler = (renderType: CartRenderType) => {\r\n const cartModel = this.createCartModel();\r\n this.orderInformation?.saveToLocalStorage();\r\n this.upgradeInformation?.saveToLocalStorage();\r\n\r\n this.calculateOrder(renderType).done((summary) => {\r\n this._updateCartCallback(summary, cartModel);\r\n\r\n if (renderType === CartRenderType.All) {\r\n this.renderCart(cartModel);\r\n if (!this._hideSummary) {\r\n this._summaryRenderer.renderTemplate(summary);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private updateCart = _.debounce(this.updateCartHandler, 200);\r\n\r\n private bindPackageRows() {\r\n this.bindPackageRowDropdown();\r\n this.bindPackageRowDeleteButton();\r\n this.bindPersonalizeButton();\r\n }\r\n\r\n private bindPackageRowDeleteButton() {\r\n $('.icon-cross').click(event => {\r\n const target = $(event.target);\r\n const dealId = parseInt(target.data('dealid'));\r\n this.orderInformation.dealIds = this.orderInformation.dealIds.filter(d => d != dealId);\r\n this.updateCart(CartRenderType.All);\r\n });\r\n }\r\n\r\n private bindPackageRowDropdown() {\r\n $('.select-participants.packagerow').change((event) => {\r\n const target = $(event.target);\r\n const marketId = target.data('marketid');\r\n const selectedDeal = parseInt(target.val());\r\n\r\n if (marketId === this._marketDealResult.marketId) {\r\n this.orderInformation.mainDealId = selectedDeal;\r\n this.consolidateCombideals();\r\n }\r\n else {\r\n const previousDeal = target.data('pre');\r\n const index = this.orderInformation.dealIds.indexOf(previousDeal);\r\n if (index !== -1) {\r\n this.orderInformation.dealIds[index] = selectedDeal;\r\n }\r\n else {\r\n this.orderInformation.dealIds.push(selectedDeal);\r\n }\r\n }\r\n this.updateCart(CartRenderType.All);\r\n });\r\n }\r\n\r\n private bindParticipantsDropdown = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries) => {\r\n $('.select-participants.packagerow').change((event) => {\r\n const elem = $(event.currentTarget);\r\n const selectedDeal = marketDealResult.getById(+elem.val());\r\n this.upgradeInformation.setParticipantUpgrade(selectedDeal);\r\n\r\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\r\n });\r\n }\r\n\r\n private consolidateCombideals() {\r\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\r\n\r\n let removeDeals: Array = new Array();\r\n let addDeals: Array = new Array();\r\n\r\n this.orderInformation.dealIds.forEach((dealId: number) => {\r\n let marketId = this.getMarketIdForDeal(dealId);\r\n let deal = this.getDeal(marketId, dealId);\r\n if (deal.participantCount > mainDeal.participantCount) {\r\n removeDeals.push(deal.id);\r\n deal = this.getDealByParticipantCount(marketId, mainDeal.participantCount);\r\n addDeals.push(deal.id);\r\n }\r\n });\r\n if (removeDeals.length > 0 || addDeals.length > 0) {\r\n this.orderInformation.dealIds = this.orderInformation.dealIds.filter(d => removeDeals.indexOf(d) == -1);\r\n addDeals.forEach(d => { this.orderInformation.dealIds.push(d) });\r\n }\r\n }\r\n\r\n public getDeal(marketId: number, dealId: number): Deal {\r\n if (this._marketDealResult.marketId == marketId)\r\n return this._marketDealResult.marketDeals.filter(d => d.id == dealId)[0];\r\n else\r\n return this.getDealsForMarketId(marketId).filter(d => d.id == dealId)[0];\r\n }\r\n\r\n public getDealByParticipantCount(marketId: number, participantCount: number) {\r\n return this.getDealsForMarketId(marketId).filter(d => d.participantCount == participantCount)[0];\r\n }\r\n\r\n public getMarketDealResult(marketId: number) {\r\n return this._dealsByMarket.getByMarketId(marketId);\r\n }\r\n\r\n public getDealsForMarketId(marketId: number): Array {\r\n return this._dealsByMarket.getByMarketId(marketId).marketDeals;\r\n }\r\n\r\n public getMarketIdForDeal(dealId: number): number {\r\n return this._dealsByMarket.getByDealId(dealId).marketId;\r\n }\r\n\r\n public getMarketDealsByDealId = (dealId: number): Deal[] => {\r\n return this._dealsByMarket.getByDealId(dealId)?.marketDeals ?? [];\r\n }\r\n\r\n public getGameIdForMarket(marketId: number): number {\r\n return this._combiDealMarkets.getByDealMarketId(marketId).dealGameId;\r\n }\r\n\r\n public getCombiDealMarkets(): CombiDeals {\r\n return this._combiDealMarkets;\r\n }\r\n\r\n public isUpgrade = (): boolean => {\r\n return this.upgradeInformation != null;\r\n }\r\n\r\n public deleteUpgradeInformation = () => {\r\n this.upgradeInformation = null;\r\n UpgradeInformationModel.deleteFromLocalStorage();\r\n }\r\n\r\n public isEmpty = () => {\r\n return (this.orderInformation == null && this.upgradeInformation == null)\r\n || (\r\n (this.orderInformation?.mainDealId ?? 0) === 0\r\n && (this.orderInformation?.dealIds ?? []).length === 0\r\n && _.isEmpty(this.orderInformation?.salesPackageIdsWithAmounts)\r\n && (this.upgradeInformation?.packageUpgradeDealId ?? 0) == 0\r\n && (this.upgradeInformation?.participantUpgradeDealId ?? 0) == 0\r\n && _.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)\r\n );\r\n }\r\n\r\n public isEmptyIgnoreSalesPackages = () => {\r\n return (this.orderInformation == null && this.upgradeInformation == null)\r\n || (\r\n (this.orderInformation?.mainDealId ?? 0) === 0\r\n && (this.orderInformation?.dealIds ?? []).length === 0\r\n && (this.upgradeInformation?.packageUpgradeDealId ?? 0) == 0\r\n && (this.upgradeInformation?.participantUpgradeDealId ?? 0) == 0\r\n );\r\n }\r\n\r\n public getMarketId = () => {\r\n if (this.upgradeInformation) {\r\n return this.upgradeInformation.marketId;\r\n }\r\n if (this.orderInformation) {\r\n return this.orderInformation.marketId;\r\n }\r\n }\r\n\r\n public bindPersonalizeButton = () => {\r\n $(\".package-row__personalize-button\").on(\"click\", (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".package-row\");\r\n const id: number = row.data(\"id\")\r\n\r\n const purchaseInformationModel = this.getPurchaseInformationModel();\r\n let popup;\r\n this._personalizePopupRenderer.renderTemplate(() => {\r\n popup = $.scoritoPopup({\r\n elementId: 'personalize-popup',\r\n contentHtml: $(\".personalize-popup-placeholder\").html(),\r\n popupTitle: TranslationData.get(`Sales.Cart.Personalize.Title`),\r\n widthInPixels: 600,\r\n follow: [true, false]\r\n });\r\n $(\".personalize-popup__input\").val(purchaseInformationModel.salesPackagePersonalizationTexts?.[+id])\r\n })\r\n\r\n $(\".personalize-popup__button\").on(\"click\", () => {\r\n const value = $(\".personalize-popup__input:visible\").val();\r\n\r\n if (value.length > 0 && value.length <= 25) {\r\n purchaseInformationModel.salesPackagePersonalizationTexts[+id] = value;\r\n }\r\n else {\r\n delete purchaseInformationModel.salesPackagePersonalizationTexts[+id];\r\n }\r\n\r\n purchaseInformationModel.saveToLocalStorage();\r\n popup?.close();\r\n Toast.displayLabel(\"Business.PersonalizePopup.Saved\");\r\n })\r\n })\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule Business {\r\n import Countries = Platform.Countries;\r\n import AdyenAuthResult = Business.AdyenAuthResult;\r\n\r\n declare var dataLayer: any;\r\n declare var window: any;\r\n\r\n export class CheckoutController {\r\n private readonly platformRepository: Platform.Repository;\r\n private readonly userRepository: UserRepository;\r\n private readonly paymentRepository: PaymentRepository;\r\n private readonly accountDataRepository: AccountDataRepository;\r\n private readonly territoryRepository: TerritoryRepository;\r\n private readonly salesUserRepository: SalesUserRepository;\r\n private readonly salesPackageRepository: SalesPackageRepository;\r\n\r\n private readonly checkoutRenderer: CheckoutRenderer;\r\n private readonly checkoutProgressRenderer: CheckoutProgressRenderer;\r\n private readonly paymentMethodsRenderer: PaymentMethodsRenderer;\r\n private readonly totalRenderer: TotalRenderer;\r\n\r\n private readonly checkoutProgressModel: CheckoutProgressModel;\r\n private readonly clientInformation: ClientInformationModel;\r\n\r\n private marketSalesPackages: MarketSalesPackagesResult;\r\n private salesAccountData: SalesAccountData;\r\n private signUpDeadline: string;\r\n private isValidatingUser: boolean;\r\n\r\n private readonly orderUrl: string;\r\n private readonly managementUrl: string;\r\n private readonly cdnUrl: string;\r\n private readonly checkoutUrl: string;\r\n private readonly cartController: CartController;\r\n\r\n private readonly enviroment: string;\r\n private readonly clientKey: string;\r\n\r\n private countries: Countries;\r\n private summary: SummaryModel;\r\n private salesUser: SalesUser;\r\n private adyenCheckout: UIElement;\r\n\r\n constructor(salesApiSettings: any, platformApiSettings: any, userApiSettings: any, cdnUrl: string, orderUrl: string, managementUrl: string, checkoutUrl: string, adyenClientKey: string, adyenEnviroment: string) {\r\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this.platformRepository = new Platform.Repository(platformSettings, 0);\r\n this.userRepository = new UserRepository(new ApiSettings.UserApiSettings(userApiSettings));\r\n this.paymentRepository = new PaymentRepository(salesSettings);\r\n this.accountDataRepository = new AccountDataRepository(salesSettings);\r\n this.territoryRepository = new TerritoryRepository(platformSettings);\r\n this.salesUserRepository = new SalesUserRepository(salesSettings);\r\n this.salesPackageRepository = new SalesPackageRepository(salesSettings);\r\n\r\n this.checkoutRenderer = new CheckoutRenderer();\r\n this.checkoutProgressRenderer = new CheckoutProgressRenderer();\r\n this.paymentMethodsRenderer = new PaymentMethodsRenderer();\r\n this.totalRenderer = new TotalRenderer();\r\n\r\n this.checkoutProgressModel = CheckoutProgressModel.getFromLocalStorage();\r\n this.clientInformation = ClientInformationModel.getClientInformationFromLocalStorage();\r\n\r\n this.orderUrl = orderUrl;\r\n this.managementUrl = managementUrl;\r\n this.cdnUrl = cdnUrl;\r\n this.checkoutUrl = checkoutUrl;\r\n\r\n this.enviroment = adyenEnviroment;\r\n this.clientKey = adyenClientKey;\r\n\r\n this.cartController = new CartController(salesApiSettings, platformApiSettings,\r\n (summary: SummaryModel, cartModel: CartModel) => {\r\n this.summary = summary;\r\n const amount = `€ ${numeral(this.summary.payByInvoiceCost).format(\"0,000.00\")}`;\r\n $(`.payment-method__container[data-invoice=\"true\"] .payment-method__checkmark-sub-text`).html(`(${amount} ${TranslationData.get(\"Common.Extra\")})`);\r\n\r\n this.totalRenderer.renderTemplate(summary.netTotal, () => {\r\n this.initializeInvoiceCheckout();\r\n this.initializeAdyenCheckout();\r\n });\r\n\r\n this.fillConfirmPaymentMethod();\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\r\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\r\n this.switchStep(summary.isFree() ? CheckoutProgressStep.Three : CheckoutProgressStep.Two);\r\n this.initializeAdyenCheckout();\r\n }\r\n\r\n return this.renderOrderSummary(summary, cartModel);\r\n });\r\n\r\n if (this.cartController.isEmpty()) {\r\n window.location.href = \"/\";\r\n return;\r\n }\r\n\r\n $(document).ready(() => {\r\n this.onDomLoaded();\r\n $(\"#inner-content\").css(\"width\", \"100%\");\r\n window.onhashchange = (event: HashChangeEvent) => {\r\n if (event.newURL !== event.oldURL) {\r\n if (event.newURL.lastIndexOf('#') === -1) return;\r\n const hash = event.newURL.substring(event.newURL.lastIndexOf('#'));\r\n const step = this.getStepFromUrlHash(hash, false);\r\n if (step === -1) return;\r\n this.checkoutProgressModel.updateStep(step);\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(step);\r\n }\r\n };\r\n });\r\n\r\n $(window).bind(\"pageshow\", function (event) {\r\n if ((event.originalEvent as any).persisted) {\r\n window.location.reload()\r\n }\r\n });\r\n }\r\n\r\n private getStepFromUrlHash(from: string, returnDefaultStepOne: boolean): CheckoutProgressStep | number {\r\n if (from && from.length > 0) {\r\n const hashText = from.substring(1);\r\n const step = +hashText as CheckoutProgressStep;\r\n if (!isNaN(step) && typeof CheckoutProgressStep[step] !== 'undefined') {\r\n return step;\r\n }\r\n }\r\n return returnDefaultStepOne ? this.checkoutProgressModel.currentStep : -1;\r\n }\r\n\r\n private onDomLoaded() {\r\n this.loadSalesUser().always(() => {\r\n this.loadSalesAccountData();\r\n this.loadOrderData();\r\n this.loadCartData();\r\n this.loadPaymentData();\r\n this.loadSalesPackages();\r\n\r\n const step = this.getStepFromUrlHash(window.location.hash, true);\r\n this.switchStep(step);\r\n\r\n this.updateDomLoadedStep();\r\n\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.showPopup();\r\n\r\n $(\".business-checkout__administrator-info\").toggle(!this.cartController.isUpgrade());\r\n this.showSalesPackageAddressMessage();\r\n });\r\n }\r\n\r\n private updateDomLoadedStep = (): void => {\r\n if (localStorage[UserValidationController.createNewAccountLocalStorageKey] === \"true\" && $(\".administrator-info__input--password\").val().trim() === \"\") {\r\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\r\n }\r\n }\r\n\r\n private showPopup = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has(\"authResult\")) {\r\n return;\r\n }\r\n\r\n if (+urlParams.get(\"authResult\") === AdyenAuthResult.Authorised) {\r\n return;\r\n }\r\n window.history.replaceState({}, document.title, window.location.pathname);\r\n\r\n const popup = $.scoritoPopup({\r\n elementId: \"payment-failed-popup\",\r\n popupTitle: $(\".payment-failed-popup\").data(\"title\"),\r\n contentHtml: $(\".payment-failed-popup\").html(),\r\n widthInPixels: 591,\r\n follow: [true, true],\r\n });\r\n\r\n $(\".popup-block__retry-button\").on(\"click\", () => {\r\n popup.close();\r\n });\r\n }\r\n\r\n private loadCartData = () => {\r\n if (this.cartController.isUpgrade()) {\r\n $.when(\r\n this.cartController.initializeUpgradeCart(),\r\n this.platformRepository.getCountries()\r\n ).done((_, countries: Platform.Countries) => {\r\n this.initializeCountryData(countries, this.salesAccountData?.administratorPhoneNumber ?? \"\");\r\n });\r\n return;\r\n }\r\n\r\n $.when(\r\n this.cartController.initializeCart(CartRenderType.All),\r\n this.platformRepository.getCountries()\r\n ).done((_, countries: Platform.Countries) => {\r\n this.initializeCountryData(countries, this.salesAccountData?.administratorPhoneNumber ?? \"\");\r\n });\r\n }\r\n\r\n private loadOrderData = () => {\r\n const marketId = this.cartController.getMarketId();\r\n\r\n this.platformRepository.getGameInfo(marketId).done((gameInfo) => {\r\n this.signUpDeadline = gameInfo.signUpDeadline;\r\n });\r\n }\r\n\r\n private renderOrderSummary(summary: SummaryModel, cartModel: CartModel) {\r\n const marketId = this.cartController.getMarketId();\r\n const hasPurchased = this.salesUser?.hasPurchasedMarket(marketId) && !this.cartController.isUpgrade();\r\n this.checkoutRenderer.renderSideViewTemplate(summary, [...cartModel.list], this.checkoutProgressModel, this.cartController.isUpgrade(), hasPurchased, () => {\r\n this.calculatePaymentMethodMargin();\r\n this.calculateFormMargin();\r\n $(\".order-overview-side-view__go-to-management-button\").on(\"click\", () => {\r\n window.location.href = \"/management\";\r\n });\r\n\r\n $(\".order-overview-side-view__log-out-button\").on(\"click\", () => {\r\n window.location.href = \"/user/logout\";\r\n });\r\n\r\n $(\".business-checkout__button--next\").toggleModifiers(hasPurchased, \"disabled\");\r\n });\r\n }\r\n\r\n private calculateFormMargin = () => {\r\n $(\".business-checkout__forms\").css(\"margin-bottom\", Math.max(37, $(\".business-checkout__side-view\").height() - $(\".business-checkout__forms\").height()));\r\n\r\n }\r\n private calculatePaymentMethodMargin = () => {\r\n $(\".payment-method__content\").css(\"margin-bottom\", Math.max(37, $(\".business-checkout__side-view\").height() - $(\".payment-method__placeholder\").height()));\r\n }\r\n\r\n private bindButtons = () => {\r\n $(\".company-info__input\").on(\"focus\", () => {\r\n $(\".company-info__input\").removeClass(\"company-info__input--invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n $(\".invoice-info__input\").on(\"focus\", () => {\r\n $(\".invoice-info__input\").removeClass(\"invoice-info__input--invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n $(\".administrator-info__input\").on(\"focus\", () => {\r\n $(\".administrator-info__input\").removeClass(\"administrator-info__input--invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n });\r\n\r\n $(\".business-checkout__button--next\").on(\"click\", () => {\r\n if (this.checkoutProgressModel.isStepOne()) {\r\n if (this.isValidatingUser)\r\n return;\r\n\r\n this.showLoadingOverlay(\"Common.PleaseWait\");\r\n this.validateForm(this.countries).done(isValid => {\r\n if (!isValid) {\r\n this.hideLoadingOverlay();\r\n return;\r\n }\r\n\r\n this.saveDetailsToLocalStorage();\r\n let progress = CheckoutProgressStep.Two;\r\n if (this.summary?.isFree()) {\r\n progress = CheckoutProgressStep.Three;\r\n }\r\n\r\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const paymentData = PaymentInformationModel.getFromLocalStorage();\r\n\r\n this.createAccountIfNecessary(checkoutData, orderData, paymentData).done((createdNewAccount: boolean) => {\r\n this.checkoutProgressModel.updateStep(progress);\r\n if (createdNewAccount) {\r\n const returnUrl = encodeURIComponent(`/${this.checkoutUrl}?${UserValidationController.returnAfterLogin}=true`);\r\n location.href = `/user/login?returnUrl=${returnUrl}`\r\n return;\r\n }\r\n\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(progress);\r\n\r\n }).fail((err) => {\r\n if (err.message?.length > 0) {\r\n NotificationBar.Display(err.message);\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.AccountCreationFailed\"));\r\n }\r\n }).always(() => {\r\n this.hideLoadingOverlay();\r\n });\r\n });\r\n }\r\n else if (this.checkoutProgressModel.isStepTwo()) {\r\n if ($(\".payment-method__content\").find(\".payment-method__checkmark-input:checked\").length < 1) {\r\n $(\".payment-method__not-selected-error\").show();\r\n return;\r\n }\r\n\r\n if (this.hasMissingData()) {\r\n return;\r\n }\r\n\r\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const paymentData = PaymentInformationModel.getFromLocalStorage();\r\n\r\n this.showLoadingOverlay(\"Common.PleaseWait\");\r\n this.createAccountIfNecessary(checkoutData, orderData, paymentData).done((createdNewAccount: boolean) => {\r\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.Three);\r\n\r\n if (createdNewAccount) {\r\n const returnUrl = encodeURIComponent(`/${this.checkoutUrl}?${UserValidationController.returnAfterLogin}=true`);\r\n location.href = `/user/login?returnUrl=${returnUrl}`\r\n return;\r\n }\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(CheckoutProgressStep.Three);\r\n this.initializeAdyenCheckout();\r\n }).fail((err) => {\r\n if (err.message?.length > 0) {\r\n NotificationBar.Display(err.message);\r\n }\r\n else {\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.AccountCreationFailed\"));\r\n }\r\n }).always(() => {\r\n this.hideLoadingOverlay();\r\n });\r\n }\r\n });\r\n\r\n $(\".business-checkout__button--previous\").on(\"click\", () => {\r\n if (this.checkoutProgressModel.isStepOne()) {\r\n this.saveDetailsToLocalStorage();\r\n const shouldGoToSalesPackagePage = this.marketSalesPackages.marketSalesPackages.length > 0;\r\n\r\n SalesPackageProgressModel.getFromLocalStorage().setShouldInitiallyGoToCurrentPage(true);\r\n\r\n location.href = shouldGoToSalesPackagePage\r\n ? '/salespackage'\r\n : this.orderUrl;\r\n }\r\n else if (this.checkoutProgressModel.isStepTwo()) {\r\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(CheckoutProgressStep.One);\r\n }\r\n else if (this.checkoutProgressModel.isStepThree()) {\r\n let progress = CheckoutProgressStep.Two;\r\n if (this.summary?.isFree()) {\r\n progress = CheckoutProgressStep.One;\r\n }\r\n\r\n this.checkoutProgressModel.updateStep(progress);\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(progress);\r\n }\r\n });\r\n\r\n $(\".administrator-info__label\").on(\"click\", e => {\r\n $(e.currentTarget).parent().find(\".administrator-info__checkmark-input\").prop(\"checked\", false);\r\n $(e.currentTarget).find(\".administrator-info__checkmark-input\").prop(\"checked\", true);\r\n });\r\n\r\n $(\".payment-method__checkbox\").on(\"click\", e => {\r\n $(e.currentTarget).closest('.payment-method__content').find(\".payment-method__checkmark-input\").prop(\"checked\", false);\r\n $(e.currentTarget).find(\".payment-method__checkmark-input\").prop(\"checked\", true);\r\n });\r\n\r\n $(\".payment-method__checkbox\").on(\"click\", e => {\r\n $(e.currentTarget).closest('.payment-method__content').find(\".select-container\").hide();\r\n $(e.currentTarget).closest('.payment-method__container').find(\".select-container\").show();\r\n });\r\n\r\n $(\".company-info__input--phone-number, .administrator-info__input--phone-number\").on(\"keyup\", event => {\r\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\r\n\r\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\r\n });\r\n\r\n $(\".confirm-conditions__link\").on(\"click\", () => {\r\n $.scoritoPopup({\r\n elementId: \"terms-and-conditions-popup\",\r\n popupTitle: $(\".terms-and-conditions-popup\").data(\"title\"),\r\n contentHtml: $(\".terms-and-conditions-popup\").html(),\r\n widthInPixels: 640,\r\n follow: [true, false]\r\n });\r\n });\r\n\r\n $(\".invoice-info__checkmark-input\").on(\"change\", e => {\r\n const input = $(\".invoice-info__input--vat-number\");\r\n const checked = $(e.currentTarget).prop(\"checked\");\r\n if (checked) {\r\n input.val(\"\");\r\n }\r\n\r\n this.cartController.setvatNumber(checked ? input.val() : Vat.PLACEHOLDER);\r\n input.prop(\"disabled\", checked);\r\n input.toggleModifiers(checked, \"disabled\");\r\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\r\n });\r\n }\r\n\r\n private formatPhoneNumber = (phoneNumber: string) => {\r\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\r\n }\r\n\r\n private switchStep = (step: CheckoutProgressStep) => {\r\n $(\".business-checkout__step\").addClass(\"business-checkout__step--hidden\");\r\n $(`.business-checkout__step-${step}`).removeClass(\"business-checkout__step--hidden\");\r\n\r\n $(\".business-checkout__side-view\").removeClass(\"business-checkout__side-view--hidden\");\r\n $(\".business-checkout__button-container\").removeClass(\"business-checkout__button-container--hidden\");\r\n if (step === CheckoutProgressStep.One) {\r\n this.calculateFormMargin();\r\n this.prefillCheckoutData();\r\n window.location.hash = CheckoutProgressStep.One.toString();\r\n }\r\n if (step === CheckoutProgressStep.Two) {\r\n this.calculatePaymentMethodMargin();\r\n\r\n window.location.hash = CheckoutProgressStep.Two.toString();\r\n }\r\n\r\n if (step === CheckoutProgressStep.Three) {\r\n if (this.hasMissingData()) {\r\n return;\r\n }\r\n\r\n $(\".business-checkout__side-view\").addClass(\"business-checkout__side-view--hidden\");\r\n $(\".business-checkout__button-container\").addClass(\"business-checkout__button-container--hidden\");\r\n\r\n this.fillConfirmPaymentMethod();\r\n this.fillOrderCheck();\r\n this.fillConfirmAdmin();\r\n window.location.hash = CheckoutProgressStep.Three.toString();\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n private validateForm = (countries: Countries): JQueryPromise => {\r\n let emptyFieldsError = false;\r\n let passwordError = false;\r\n let emailMatchError = false;\r\n let emailInvalidError = false;\r\n let invoiceEmailInvalidError = false;\r\n let usernameInUseError = false;\r\n let passwordLengthError = false;\r\n let emailInUseError = false;\r\n let invalidUsernameError = false;\r\n let invalidVatError = false;\r\n\r\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\r\n\r\n const password = $(\".administrator-info__input--password\").val().trim();\r\n const repeatPassword = $(\".administrator-info__input--repeat-password\").val().trim();\r\n\r\n const email = $(\".administrator-info__input--email\").val().trim();\r\n const repeatEmail = $(\".administrator-info__input--repeat-email\").val().trim();\r\n const vat = $(\".invoice-info__input--vat-number\").val().trim();\r\n\r\n const username = $(\".administrator-info__input--username\").val().trim();\r\n\r\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\r\n\r\n if (!$(\".company-info__input--name\").val().trim()) {\r\n $(\".company-info__input--name\").addClass(\"company-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--address\").val().trim()) {\r\n $(\".company-info__input--address\").addClass(\"company-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--city\").val().trim()) {\r\n $(\".company-info__input--city\").addClass(\"company-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--phone-number\").val().trim()) {\r\n $(\".company-info__input--phone-number\").addClass(\"company-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".company-info__input--zipcode\").val().trim()) {\r\n $(\".company-info__input--zipcode\").addClass(\"company-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n\r\n if (!invoiceEmail || !Email.Validate(invoiceEmail)) {\r\n $(\".invoice-info__input--invoice-mail\").addClass(\"invoice-info__input--invalid\");\r\n invoiceEmailInvalidError = true;\r\n }\r\n\r\n if (!isNetherlands && !Vat.validate(vat) && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\r\n $(\".invoice-info__input--vat-number\").addClass(\"invoice-info__input--invalid\");\r\n invalidVatError = true;\r\n }\r\n\r\n if (!this.cartController.isUpgrade()) {\r\n if (!$(\".administrator-info__input--first-name\").val().trim()) {\r\n $(\".administrator-info__input--first-name\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".administrator-info__input--last-name\").val().trim()) {\r\n $(\".administrator-info__input--last-name\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!$(\".administrator-info__input--phone-number\").val().trim()) {\r\n $(\".administrator-info__input--phone-number\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n }\r\n if (this.salesAccountData?.isLoggedInWithBusinessAccount || Authentication.isLoggedIn()) {\r\n if (!Email.Validate($(\".administrator-info__input--existing-email\").val().trim())) {\r\n $(\".administrator-info__input--existing-email\").addClass(\".administrator-info__input--invalid\");\r\n emailMatchError = true;\r\n }\r\n }\r\n else {\r\n if (!username) {\r\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n else if (!this.isAlphaNumeric(username)) {\r\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\r\n invalidUsernameError = true;\r\n }\r\n if (!email) {\r\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!repeatEmail) {\r\n $(\".administrator-info__input--repeat-email\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!password) {\r\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n if (!repeatPassword) {\r\n $(\".administrator-info__input--repeat-password\").addClass(\"administrator-info__input--invalid\");\r\n emptyFieldsError = true;\r\n }\r\n else if ((email && repeatEmail && email !== repeatEmail)) {\r\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\r\n $(\".administrator-info__input--repeat-email\").addClass(\"administrator-info__input--invalid\");\r\n emailMatchError = true;\r\n }\r\n else if (!Email.Validate(email)) {\r\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\r\n emailInvalidError = true;\r\n }\r\n else if (password.length < 6) {\r\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\r\n passwordLengthError = true;\r\n }\r\n else if (password !== repeatPassword) {\r\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\r\n $(\".administrator-info__input--repeat-password\").addClass(\"administrator-info__input--invalid\");\r\n passwordError = true;\r\n }\r\n else if (username && !emptyFieldsError && !emailMatchError && !passwordError && !emailInvalidError) {\r\n this.isValidatingUser = true;\r\n $(\".business-checkout__button--next\").addClass(\"preload\");\r\n const deferred = $.Deferred();\r\n $.when(\r\n this.userRepository.checkEmail(email)\r\n ).done((emailAvailable) => {\r\n if (!emailAvailable)\r\n emailInUseError = true;\r\n\r\n deferred.resolve(this.handleErrors(emptyFieldsError, emailMatchError, emailInvalidError, invoiceEmailInvalidError, passwordError, usernameInUseError, passwordLengthError, emailInUseError, invalidUsernameError, invalidVatError));\r\n }).fail(() => {\r\n deferred.reject();\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }).always(() => {\r\n this.isValidatingUser = false;\r\n $(\".business-checkout__button--next\").removeClass(\"preload\");\r\n this.hideLoadingOverlay();\r\n });\r\n return deferred.promise();\r\n }\r\n }\r\n return $.Deferred().resolve(this.handleErrors(emptyFieldsError, emailMatchError, emailInvalidError, invoiceEmailInvalidError, passwordError, usernameInUseError, passwordLengthError, emailInUseError, invalidUsernameError, invalidVatError)).promise();\r\n }\r\n\r\n private handleErrors = (emptyFieldsError: boolean, emailMatchError: boolean, emailInvalidError: boolean, invoiceEmailInvalidError: boolean, passwordError: boolean, usernameInUseError: boolean, passwordLengthError: boolean, emailInUseError: boolean, invalidUsernameError: boolean, invalidVatError: boolean): boolean => {\r\n if (emptyFieldsError) {\r\n $(\".business-checkout__empty-fields-error\").show();\r\n }\r\n else if (invoiceEmailInvalidError) {\r\n $(\".business-checkout__email-invoice-invalid-error\").show();\r\n }\r\n else if (invalidVatError) {\r\n $(\".business-checkout__invalid-vat-error\").show();\r\n }\r\n else if (emailMatchError) {\r\n $(\".business-checkout__email-match-error\").show();\r\n }\r\n else if (emailInvalidError) {\r\n $(\".business-checkout__email-invalid-error\").show();\r\n }\r\n else if (passwordError) {\r\n $(\".business-checkout__password-match-error\").show();\r\n }\r\n else if (usernameInUseError) {\r\n $(\".business-checkout__username-in-use-error\").show();\r\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\r\n }\r\n else if (passwordLengthError) {\r\n $(\".business-checkout__password-length-error\").show();\r\n }\r\n else if (emailInUseError) {\r\n $(\".business-checkout__email-in-use-error\").show();\r\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\r\n }\r\n else if (invalidUsernameError) {\r\n $(\".business-checkout__invalid-username-error\").show();\r\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\r\n }\r\n\r\n return !(emptyFieldsError || passwordError || emailMatchError || emailInvalidError || invoiceEmailInvalidError || usernameInUseError || passwordLengthError || emailInUseError || invalidUsernameError || invalidVatError);\r\n }\r\n\r\n private showSalesPackageCountryMessage = (country: Platform.Country) => {\r\n const hasSalesPackageOrderInForeignCountry = !country?.isNetherlands() && this.cartController.getPurchaseInformationModel()?.getSalesPackageIds().length > 0;\r\n $(\".company-info__package-country-message\").toggle(hasSalesPackageOrderInForeignCountry);\r\n }\r\n\r\n private showSalesPackageAddressMessage = () => {\r\n const showAddressMessage = this.cartController.getPurchaseInformationModel().getSalesPackageIds().length > 0\r\n $(\".company-info__package-address-message\").toggle(showAddressMessage);\r\n }\r\n\r\n private initializeCountryData = (countries: Platform.Countries, administratorPhoneNumber: string) => {\r\n this.countries = countries;\r\n const countryCallingCode = administratorPhoneNumber.split(\" \")[0];\r\n countries.sortByName().each(country => {\r\n $(\".country-select-input--country\").append(new Option(country.name, country.code));\r\n });\r\n\r\n this.toggleVatField(countries);\r\n $(\".country-select-input--country\").on(\"change\", e => {\r\n const country = countries.getByCode($(e.currentTarget).val());\r\n this.cartController.updateCountry(country.id);\r\n this.toggleVatField(countries);\r\n this.loadPaymentData();\r\n $(\".country-select-input--country-code-company\").val(country.countryCallingCode);\r\n this.showSalesPackageCountryMessage(country);\r\n });\r\n\r\n const countryCallingCodes = countries.sortByCallingCodes().getCountryCallingCodes();\r\n _.each(countryCallingCodes, key => {\r\n $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").append(``);\r\n });\r\n\r\n if (this.cartController.upgradeInformation?.countryId != null) {\r\n const country = countries.getById(this.cartController.upgradeInformation.countryId);\r\n $(\".country-select-input--country\").val(country.code).change();\r\n }\r\n\r\n else if (this.cartController.orderInformation?.countryCode != null) {\r\n const country = countries.getByCode(this.cartController.orderInformation.countryCode);\r\n $(\".country-select-input--country\").val(this.cartController.orderInformation.countryCode).change();\r\n $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").val(country.countryCallingCode).change();\r\n }\r\n\r\n }\r\n\r\n private toggleVatField(countries: Countries) {\r\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\r\n $(\".business-checkout__error-message\").hide();\r\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val()).isNetherlands();\r\n $(\".invoice-info__input--vat-number\").closest(\".invoice-info__row\").toggleModifiers(isNetherlands, \"hidden\");\r\n\r\n if (!isNetherlands && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\r\n const vatNumber = $(\".invoice-info__input--vat-number\").val().trim();\r\n this.cartController.setvatNumber(String.isNullOrEmpty(vatNumber) ? Vat.PLACEHOLDER : vatNumber);\r\n }\r\n }\r\n\r\n private initializeInvoiceCheckout() {\r\n $(\".total-block__checkout--finish\").on(\"click\", () => {\r\n if (this.cartController.orderInformation) {\r\n this.cartController.orderInformation.saveToLocalStorage();\r\n }\r\n\r\n if (this.cartController.upgradeInformation) {\r\n this.cartController.upgradeInformation.saveToLocalStorage();\r\n }\r\n\r\n if (this.cartController.isUpgrade()) {\r\n const upgradeInformation = this.cartController.upgradeInformation;\r\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();\r\n }\r\n\r\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const paymentData = PaymentInformationModel.getFromLocalStorage();\r\n if (this.hasMissingData()) {\r\n return;\r\n }\r\n\r\n const clientData = ClientInformationModel.getClientInformationFromLocalStorage();\r\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const payByInvoice = paymentData?.payByInvoice ?? false;\r\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\r\n this.showLoadingOverlay();\r\n this.paymentRepository.savePayment(countryId, checkoutData, orderData, paymentData, clientData, \"\").done((apiResult) => {\r\n if (!apiResult.isSuccess()) {\r\n this.hideLoadingOverlay();\r\n return NotificationBar.Display(apiResult.message);\r\n }\r\n\r\n if (payByInvoice || this.summary?.isFree()) {\r\n location.href = this.managementUrl + \"?marketId=\" + orderData.marketId;\r\n return;\r\n }\r\n }).fail((err) => {\r\n this.hideLoadingOverlay();\r\n console.error(`Failed to save invoice payment: ${JSON.stringify(err)}`);\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.PaymentFailed\"));\r\n });\r\n });\r\n }\r\n\r\n private showLoadingOverlay = (labelKey?: string): void => {\r\n const initialMessageDelay = 10000;\r\n $(\".business-checkout__loading-text\").text(TranslationData.get(labelKey ?? \"Business.Checkout.LoadingMessage.1\"));\r\n $(\".business-checkout__loading-overlay\").show();\r\n setTimeout(() => {\r\n $(\".business-checkout__loading-text\").text(TranslationData.get(\"Business.Checkout.LoadingMessage.2\"));\r\n }, initialMessageDelay);\r\n\r\n setTimeout(() => {\r\n $(\".business-checkout__loading-text\").text(TranslationData.get(\"Business.Checkout.LoadingMessage.3\"));\r\n }, initialMessageDelay + 30000);\r\n }\r\n\r\n private hideLoadingOverlay = (): void => {\r\n $(\".business-checkout__loading-overlay\").hide();\r\n }\r\n\r\n private isAlphaNumeric = (alphaNumericField: string): boolean => {\r\n const regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n const result = regex.test(alphaNumericField);\r\n return result;\r\n }\r\n\r\n public loadSalesAccountData = () => {\r\n if (localStorage.getItem(UserValidationController.createNewAccountLocalStorageKey) === \"true\" && !Authentication.isLoggedIn()) {\r\n this.prefillData();\r\n return;\r\n }\r\n $.when(this.platformRepository.getCountries(), this.accountDataRepository.getSalesAccountData())\r\n .done((countries: Platform.Countries, salesAccountData: SalesAccountData) => {\r\n this.salesAccountData = salesAccountData;\r\n\r\n $(\".administrator-info__input--first-name\").val(salesAccountData.administratorName);\r\n $(\".administrator-info__input--last-name\").val(salesAccountData.administratorSurname);\r\n $(\".administrator-info__input--email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\r\n $(\".administrator-info__input--repeat-email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\r\n $(\".administrator-info__input--existing-email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\r\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\r\n $(`.administrator-info__checkmark-input--${salesAccountData.administratorGender}`).prop(\"checked\", true);\r\n\r\n if (salesAccountData.companyPhoneNumber) {\r\n const phoneNumber = salesAccountData.companyPhoneNumber.trim();\r\n $(\".country-select-input--country-code-company\").val(phoneNumber.substr(0, phoneNumber.indexOf((\" \"))));\r\n $(\".company-info__input--phone-number\").val(this.formatPhoneNumber(phoneNumber.substr(phoneNumber.indexOf(\" \") + 1)));\r\n }\r\n\r\n $(\".administrator-info__new-administrator\").hide();\r\n $(\".administrator-info__existing-administrator\").show();\r\n\r\n if (salesAccountData.isLoggedInWithBusinessAccount) {\r\n $(\".company-info__input--name\").val(salesAccountData.companyOrganisationName);\r\n $(\".company-info__input--address\").val(salesAccountData.companyAddress);\r\n $(\".company-info__input--zipcode\").val(salesAccountData.companyZipCode);\r\n $(\".company-info__input--city\").val(salesAccountData.companyCityName);\r\n $(\".invoice-info__input--attention-of\").val(salesAccountData.invoiceRecipientName);\r\n $(\".invoice-info__input--invoice-mail\").val(salesAccountData.invoiceRecipientEmail);\r\n $(\".company-info__dropdown--country\").val(countries.getById(salesAccountData.companyCountryId).code).change();\r\n $(\".invoice-info__checkmark-input\").prop(\"checked\", String.isNullOrEmpty(salesAccountData.companyVATNumber));\r\n $(\".invoice-info__input--vat-number\").val(salesAccountData.companyVATNumber);\r\n if (salesAccountData.administratorPhoneNumber) {\r\n const adminPhoneNumber = salesAccountData.administratorPhoneNumber.trim();\r\n $(\".country-select-input--country-code-admin\").val(adminPhoneNumber.substr(0, adminPhoneNumber.indexOf(\" \")));\r\n $(\".administrator-info__input--phone-number\").val(this.formatPhoneNumber(adminPhoneNumber.substr(adminPhoneNumber.indexOf(\" \") + 1)));\r\n }\r\n }\r\n });\r\n }\r\n\r\n private savePaymentDataToLocalStorage = (): void => {\r\n const paymentMethodElement = $(\".payment-method__checkmark-input:checked\").closest(\".payment-method__container\");\r\n const paymentGroupType = paymentMethodElement.data(\"payment-group\");\r\n const payByInvoice: boolean = paymentMethodElement.data(\"invoice\");\r\n\r\n new PaymentInformationModel(payByInvoice, paymentGroupType, new Date().toISOString()).saveToLocalStorage();\r\n }\r\n\r\n private prefillData = () => {\r\n if (!this.clientInformation)\r\n return;\r\n\r\n $(\".company-info__input--name\").val(this.clientInformation.organization);\r\n $(\".company-info__input--address\").val(this.clientInformation.address);\r\n $(\".company-info__input--zipcode\").val(this.clientInformation.zipCode);\r\n $(\".company-info__input--city\").val(this.clientInformation.city);\r\n $(\".country-select-input--country\").val(this.clientInformation.country).change();\r\n $(\".company-info__input--phone-number\").val(this.clientInformation.phoneNumber?.replace(\"-\", \"\") ?? \"\");\r\n\r\n $(\".invoice-info__input--vat-number\").val(this.clientInformation.vatNumber);\r\n\r\n $(\".administrator-info__input--first-name\").val(this.clientInformation.adminFirstname);\r\n $(\".administrator-info__input--last-name\").val(this.clientInformation.adminLastname);\r\n $(\".administrator-info__input--phone-number\").val(this.clientInformation.adminPhone?.replace(\"-\", \"\") ?? \"\");\r\n $(\".administrator-info__input--email\").val(this.clientInformation.adminEmail);\r\n $(\".administrator-info__input--repeat-email\").val(this.clientInformation.adminEmail);\r\n\r\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\r\n $(`.administrator-info__checkmark-input--${this.clientInformation.adminGender}`).prop(\"checked\", true);\r\n }\r\n\r\n private loadPaymentData = () => {\r\n this.territoryRepository.getRegions().done(regions => {\r\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n switch (orderInformation?.countryCode) {\r\n case \"NLD\": regionId = getRegionById(regions, 1)?.regionId ?? regionId; break;\r\n case \"BEL\": regionId = getRegionById(regions, 2)?.regionId ?? regionId; break;\r\n case \"DEU\": regionId = getRegionById(regions, 3)?.regionId ?? regionId; break;\r\n case \"FRA\": regionId = getRegionById(regions, 4)?.regionId ?? regionId; break;\r\n case \"ESP\": regionId = getRegionById(regions, 5)?.regionId ?? regionId; break;\r\n default: regionId = getRegionById(regions, 6)?.regionId ?? regionId; break;\r\n }\r\n\r\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\r\n this.paymentRepository.getPaymentMethods(regionId, countryId)\r\n .done((paymentMethods: PaymentMethods) => {\r\n if (this.signUpDeadline) {\r\n this.paymentMethodsRenderer.renderTemplate(paymentMethods, this.signUpDeadline, this.cdnUrl, () => {\r\n this.handlePaymentMethodClick();\r\n });\r\n\r\n this.prefillPaymentMethodData();\r\n }\r\n else {\r\n const marketId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.marketId : this.cartController.orderInformation.marketId;\r\n\r\n this.platformRepository.getGameInfo(marketId)\r\n .done(gameInfo => {\r\n this.signUpDeadline = gameInfo.signUpDeadline;\r\n\r\n this.paymentMethodsRenderer.renderTemplate(paymentMethods, this.signUpDeadline, this.cdnUrl, () => {\r\n this.handlePaymentMethodClick();\r\n });\r\n\r\n this.prefillPaymentMethodData();\r\n });\r\n }\r\n }).fail((err) => {\r\n $(\"#adyen-loading-spinner\").hide();\r\n console.error(`Loading payment data filed: ${JSON.stringify(err)}`);\r\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.Error.PaymentData\"));\r\n });\r\n }).fail(err => {\r\n $(\"#adyen-loading-spinner\").hide();\r\n console.error(`Loading region data filed: ${JSON.stringify(err)}`);\r\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.Error.PaymentData\"));\r\n });\r\n }\r\n\r\n private loadSalesPackages = () => {\r\n const purchaseInformationModel = this.cartController.getPurchaseInformationModel();\r\n\r\n this.salesPackageRepository.getSalesPackagesByMarketAndCountry(purchaseInformationModel.marketId, purchaseInformationModel.countryId)\r\n .done(marketSalesPackages => {\r\n this.marketSalesPackages = marketSalesPackages;\r\n }).fail(err => {\r\n console.error(\"Failed to load market sales packages on checkout page\", err);\r\n }).always(() => {\r\n this.bindButtons();\r\n });\r\n }\r\n\r\n private handlePaymentMethodClick = () => {\r\n $(\".payment-method__row\").on(\"click\", e => {\r\n if ($(e.currentTarget).find(\".payment-method__checkmark-input:checked\").length > 0) {\r\n return;\r\n }\r\n\r\n $(e.currentTarget).closest(\".payment-method__content\").find(\".payment-method__checkmark-input\").prop(\"checked\", false);\r\n $(e.currentTarget).find(\".payment-method__checkmark-input\").prop(\"checked\", true);\r\n\r\n $(\".payment-method__not-selected-error\").hide();\r\n this.savePaymentDataToLocalStorage();\r\n\r\n const invoiceSelected: boolean = $(e.currentTarget).closest(\".payment-method__container\").data(\"invoice\");\r\n this.cartController.updatePayByInvoice(invoiceSelected);\r\n });\r\n }\r\n\r\n private prefillCheckoutData = () => {\r\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\r\n if (!checkoutInformationModel) {\r\n return;\r\n }\r\n\r\n $(\".company-info__input--name\").val(checkoutInformationModel.companyOrganisationName);\r\n $(\".company-info__input--address\").val(checkoutInformationModel.companyAddress);\r\n $(\".company-info__input--zipcode\").val(checkoutInformationModel.companyZipCode);\r\n $(\".company-info__input--city\").val(checkoutInformationModel.companyCityName);\r\n\r\n $(\".country-select-input--country-code-company\").val(checkoutInformationModel.countryCallingCode);\r\n $(\".company-info__input--phone-number\").val(checkoutInformationModel.companyPhoneNumber);\r\n\r\n $(\".invoice-info__input--attention-of\").val(checkoutInformationModel.invoiceRecipientName);\r\n $(\".invoice-info__input--invoice-mail\").val(checkoutInformationModel.invoiceRecipientEmail);\r\n $(\".invoice-info__input--vat-number\").val(checkoutInformationModel.companyVATNumber);\r\n $(\".invoice-info__input--reference-number\").val(checkoutInformationModel.poNumber);\r\n\r\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\r\n $(`.administrator-info__checkmark-input--${checkoutInformationModel.administratorGender}`).prop(\"checked\", true);\r\n $(\".administrator-info__input--first-name\").val(checkoutInformationModel.administratorName);\r\n $(\".administrator-info__input--last-name\").val(checkoutInformationModel.administratorSurname);\r\n $(\".country-select-input--country-code-admin\").val(checkoutInformationModel.adminCountryCallingCode);\r\n $(\".administrator-info__input--phone-number\").val(checkoutInformationModel.administratorPhoneNumber);\r\n $(\".administrator-info__input--username\").val(checkoutInformationModel.username);\r\n $(\".administrator-info__input--email\").val(checkoutInformationModel.administratorEmail);\r\n $(\".administrator-info__input--repeat-email\").val(checkoutInformationModel.administratorEmail);\r\n }\r\n\r\n private prefillPaymentMethodData = () => {\r\n const paymentInformationModel = PaymentInformationModel.getFromLocalStorage();\r\n if (!paymentInformationModel) {\r\n this.uncheckPaymentMethods();\r\n return;\r\n }\r\n\r\n if (paymentInformationModel.payByInvoice) {\r\n const paymentMethodContainer = $(`.payment-method__container[data-invoice=\"true\"]`);\r\n paymentMethodContainer.find(\".payment-method__checkmark-input\").prop(\"checked\", true);\r\n this.cartController.updatePayByInvoice(paymentInformationModel.payByInvoice);\r\n return;\r\n }\r\n let paymentMethodContainer = $(`.payment-method__container[data-payment-group=\"${paymentInformationModel.paymentGroupType}\"]`);\r\n paymentMethodContainer.find(\".payment-method__checkmark-input\").prop(\"checked\", true);\r\n paymentMethodContainer.find(\".payment-method__options-container\").show();\r\n }\r\n\r\n private fillOrderCheck = () => {\r\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\r\n if (!checkoutInformationModel)\r\n return;\r\n\r\n $(\".confirm-invoice__bolded-label--company\").text(checkoutInformationModel.companyOrganisationName);\r\n $(\".confirm-invoice__label--attention-of\").text(checkoutInformationModel.invoiceRecipientName);\r\n $(\".confirm-invoice__label--reference-number\").text(checkoutInformationModel.poNumber);\r\n $(\".confirm-invoice__label--address\").text(checkoutInformationModel.companyAddress);\r\n $(\".confirm-invoice__label--zip-code\").text(`${checkoutInformationModel.companyZipCode} ${checkoutInformationModel.companyCityName}`);\r\n\r\n this.platformRepository.getCountries().done(countries => {\r\n $(\".confirm-invoice__label--country\").text(countries.getById(checkoutInformationModel.companyCountryId).name);\r\n });\r\n\r\n $(\".confirm-invoice__label--invoice-mail\").text(checkoutInformationModel.invoiceRecipientEmail);\r\n $(\".confirm-invoice__label--vat-number\").text(checkoutInformationModel.companyVATNumber);\r\n }\r\n\r\n private fillConfirmAdmin = () => {\r\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\r\n if (!checkoutInformationModel)\r\n return;\r\n\r\n var firstName = checkoutInformationModel.administratorName;\r\n var namePrefix = checkoutInformationModel.administratorGender === Gender.Male ? TranslationData.get(\"Business.Mr\") : TranslationData.get(\"Business.Mrs\");\r\n var lastName = checkoutInformationModel.administratorSurname;\r\n var email = checkoutInformationModel.administratorEmail;\r\n var countryCallingCode = checkoutInformationModel.countryCallingCode;\r\n var phoneNumber = checkoutInformationModel.administratorPhoneNumber;\r\n\r\n $(\".confirm-admin__bolded-label--name\").text(`${namePrefix} ${firstName} ${lastName}`);\r\n $(\".confirm-admin__label--email\").text(email);\r\n $(\".confirm-admin__label--phone-number\").text(`+${countryCallingCode} ${phoneNumber}`);\r\n }\r\n\r\n private fillConfirmPaymentMethod = () => {\r\n if (this.summary && this.summary.isFree()) {\r\n $(\".confirm-payment-method\").hide();\r\n $(\".adyen-block\").hide();\r\n $(\".total-block\").show();\r\n }\r\n\r\n const paymentInformationModel = PaymentInformationModel.getFromLocalStorage();\r\n if (!paymentInformationModel) {\r\n this.uncheckPaymentMethods();\r\n return;\r\n }\r\n\r\n const paymentMethodLabelKey = paymentInformationModel.payByInvoice ? \"Business.Invoice\" : `PaidPlatform.PaymentMethod.${paymentInformationModel.paymentGroupType}`;\r\n $(\".confirm-payment-method__text--paymentMethod\").text(TranslationData.get(paymentMethodLabelKey));\r\n\r\n if (paymentInformationModel.payByInvoice && this.summary) {\r\n const amount = `€ ${numeral(this.summary.payByInvoiceCost).format(\"0,000.00\")}`;\r\n $(\".confirm-payment-method__sub-text--paymentMethodSubtext\").html(`(${amount} ${TranslationData.get(\"Common.Extra\")})`);\r\n }\r\n else {\r\n $(\".confirm-payment-method__sub-text--paymentMethodSubtext\").text(`(${TranslationData.get(\"Business.Free\")})`);\r\n }\r\n\r\n $(\".confirm-payment-method\").show();\r\n\r\n if (!paymentInformationModel.payByInvoice && this.checkoutProgressModel.isStepThree()) {\r\n $('.adyen-block').show();\r\n $('.total-block').hide();\r\n $(\"#dropin-container\").hide();\r\n $(\"#adyen-loading-spinner\").show()\r\n } else {\r\n $('.adyen-block').hide();\r\n $('.total-block').show();\r\n }\r\n }\r\n\r\n private uncheckPaymentMethods = () => {\r\n $(\".payment-method__checkmark-input\").prop(\"checked\", false);\r\n }\r\n\r\n private saveDetailsToLocalStorage = () => {\r\n const company = $(\".company-info__input--name\").val();\r\n const address = $(\".company-info__input--address\").val();\r\n const zipCode = $(\".company-info__input--zipcode\").val();\r\n const city = $(\".company-info__input--city\").val();\r\n const countryCode = $(\".country-select-input--country\").val();\r\n const countryId = this.countries.getByCode(countryCode).id;\r\n const countryCallingCode = $(\".country-select-input--country-code-company\").val();\r\n const phoneNumber = $(\".company-info__input--phone-number\").val();\r\n\r\n const invoiceRecipient = $(\".invoice-info__input--attention-of\").val();\r\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\r\n const invoiceVatNumber = $(\".invoice-info__input--vat-number\").val();\r\n const poNumber = $(\".invoice-info__input--reference-number\").val();\r\n\r\n const gender = $(\".administrator-info__checkmark-input--2:checked\").length > 0 ? Gender.Female : Gender.Male;\r\n const firstName = $(\".administrator-info__input--first-name\").val();\r\n const infix = $(\".administrator-info__input--infix\").val();\r\n const lastName = $(\".administrator-info__input--last-name\").val();\r\n const adminCountryCallingCode = $(\".country-select-input--country-code-admin\").val();\r\n const adminPhoneNumber = $(\".administrator-info__input--phone-number\").val();\r\n const username = $(\".administrator-info__input--username\").val().trim();\r\n const adminEmail = $(\".administrator-info__input--email\").val().trim();\r\n\r\n this.cartController.setvatNumber(invoiceVatNumber);\r\n\r\n new CheckoutInformationModel(false,\r\n false,\r\n company,\r\n address,\r\n zipCode,\r\n city,\r\n countryId,\r\n phoneNumber,\r\n invoiceVatNumber,\r\n invoiceRecipient,\r\n invoiceEmail,\r\n poNumber,\r\n gender,\r\n firstName,\r\n infix,\r\n lastName,\r\n adminPhoneNumber,\r\n adminEmail,\r\n username,\r\n countryCallingCode,\r\n adminCountryCallingCode,\r\n new Date().toISOString()\r\n ).saveToLocalStorage();\r\n }\r\n\r\n private createAccountIfNecessary = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n if (localStorage.getItem(UserValidationController.createNewAccountLocalStorageKey) === \"true\" && !Authentication.isLoggedIn()) {\r\n this.createBusinessAccount(checkoutData, orderData, paymentData).done(() => {\r\n deferred.resolve(true);\r\n }).fail((err) => {\r\n deferred.reject(err);\r\n })\r\n }\r\n else {\r\n this.updateAccountData();\r\n this.createBusinessLink(checkoutData, orderData, paymentData).done(() => {\r\n deferred.resolve(false);\r\n }).fail((err) => {\r\n deferred.reject(err);\r\n });\r\n }\r\n\r\n return deferred.promise();\r\n }\r\n\r\n private updateAccountData = () => {\r\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\r\n if (!checkoutInformationModel)\r\n return;\r\n\r\n this.userRepository.setGender(checkoutInformationModel.administratorGender);\r\n this.userRepository.setName(checkoutInformationModel.administratorName, checkoutInformationModel.administratorSurname);\r\n this.userRepository.setPhoneNumber(checkoutInformationModel.adminCountryCallingCode, checkoutInformationModel.administratorPhoneNumber);\r\n }\r\n\r\n private createBusinessAccount = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n const password = $(\".administrator-info__input--password\").val().trim();\r\n this.accountDataRepository.createSalesAccount(checkoutData, orderData, paymentData, password)\r\n .done((result) => {\r\n if (!result.isSuccess()) {\r\n console.error(`Creating sales account reponse unsuccessful ${JSON.stringify(result)}`)\r\n deferred.reject(result);\r\n }\r\n else {\r\n var baseDomain = '.scorito.com', expireAfter = new Date();\r\n expireAfter.setDate(expireAfter.getDate() + 1);\r\n document.cookie = \"otac=\" + result.content + \"; domain=\" + baseDomain + \"; expires=\" + expireAfter + \"; path=/\";\r\n\r\n deferred.resolve(result);\r\n }\r\n }).fail(err => {\r\n console.error(`Creating business account failed: ${JSON.stringify(err)}`);\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n private createBusinessLink = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\r\n const deferred = $.Deferred();\r\n this.accountDataRepository.createBusinessLink(checkoutData, orderData, paymentData).done(result => {\r\n if (!result.isSuccess()) {\r\n console.error(`Creating sales link reponse unsuccessful ${JSON.stringify(result)}`)\r\n deferred.reject(result);\r\n }\r\n else {\r\n deferred.resolve(result);\r\n }\r\n }).fail(err => {\r\n console.error(`Creating business link failed: ${JSON.stringify(err)}`);\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n private loadSalesUser = () => {\r\n if (Authentication.isLoggedIn()) {\r\n return this.salesUserRepository.get().done((salesUser: SalesUser) => {\r\n this.salesUser = salesUser;\r\n });\r\n }\r\n return $.Deferred().resolve(null).promise();\r\n }\r\n\r\n private hasMissingData = () => {\r\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const paymentData = PaymentInformationModel.getFromLocalStorage();\r\n\r\n if (!checkoutData || (!orderData && !this.cartController.isUpgrade()) || (!paymentData && !this.summary?.isFree())) {\r\n CheckoutInformationModel.deleteFromLocalStorage();\r\n OrderInformationModel.deleteFromLocalStorage();\r\n PaymentInformationModel.deleteFromLocalStorage();\r\n ClientInformationModel.deleteFromLocalStorage();\r\n this.uncheckPaymentMethods();\r\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\r\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\r\n this.switchStep(CheckoutProgressStep.One);\r\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()}`);\r\n this.hideLoadingOverlay();\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.MissingData\"));\r\n return true;\r\n }\r\n\r\n const isNetherlands = this.countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\r\n if (!isNetherlands && orderData?.vatNumber === Vat.PLACEHOLDER) {\r\n console.error(`Missing VAT data when checkout out`);\r\n this.switchStep(CheckoutProgressStep.One);\r\n this.hideLoadingOverlay();\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.MissingData\"));\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private trackOrder = (order: OrderInformationModel, checkoutInformationModel: CheckoutInformationModel) => {\r\n try {\r\n window.dataLayer = window.dataLayer || [];\r\n dataLayer.push({\r\n \"event\": \"purchase\",\r\n \"transactionAffiliation\": checkoutInformationModel.companyOrganisationName,\r\n \"transactionTotal\": this.summary?.netTotal ?? 0,\r\n \"transactionTax\": this.summary?.vat ?? 0,\r\n \"transactionId\": `${checkoutInformationModel.companyOrganisationName}_${order.mainDealId}_${moment.utc().valueOf()}`,\r\n \"transactionProducts\": [\r\n {\r\n \"name\": order.mainDealId.toString(),\r\n \"sku\": order.mainDealId.toString(),\r\n \"quantity\": 1,\r\n \"price\": this.cartController.getDeal(order.marketId, order.mainDealId)?.price ?? 0,\r\n } as IGTMTransactionProduct,\r\n ...order.dealIds.map(dealId => ({\r\n name: dealId.toString(),\r\n sku: dealId.toString(),\r\n quantity: 1,\r\n price: _.find(this.cartController.getMarketDealsByDealId(dealId), d => d.id === dealId)?.price ?? 0\r\n } as IGTMTransactionProduct))\r\n ]\r\n } as IGTMTransaction);\r\n }\r\n catch (err) {\r\n console.error(`Failed to push order to gtm: ${JSON.stringify(err)}`);\r\n }\r\n }\r\n\r\n private initializeAdyenCheckout = () => {\r\n if (!this.checkoutProgressModel.isStepThree())\r\n return;\r\n\r\n const paymentData = PaymentInformationModel.getFromLocalStorage();\r\n\r\n const payByInvoice = paymentData?.payByInvoice ?? false;\r\n\r\n if (payByInvoice || this.summary?.isFree())\r\n return;\r\n\r\n if (this.hasMissingData()) {\r\n console.error(\"Attempting to initialize adyen checkout without payment data\");\r\n NotificationBar.Display(TranslationData.get(\"Business.AdyenCheckout.MissingData\"));\r\n }\r\n\r\n if (this.cartController.orderInformation) {\r\n this.cartController.orderInformation.saveToLocalStorage();\r\n }\r\n\r\n if (this.cartController.upgradeInformation) {\r\n this.cartController.upgradeInformation.saveToLocalStorage();\r\n }\r\n\r\n if (this.cartController.isUpgrade()) {\r\n const upgradeInformation = this.cartController.upgradeInformation;\r\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();\r\n }\r\n\r\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const clientData = ClientInformationModel.getClientInformationFromLocalStorage();\r\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\r\n\r\n this.paymentRepository.createSession(countryId, checkoutData, orderData, paymentData, clientData)\r\n .done((apiResult) => {\r\n if (!apiResult.isSuccess()) {\r\n $(\"#adyen-loading-spinner\").hide();\r\n $(\".adyen-block__error\").show().text(apiResult.message);\r\n console.error(`Failed to create session: ${JSON.stringify(apiResult)}`);\r\n return;\r\n }\r\n $(\".adyen-block__error\").hide();\r\n const session = new PaymentSession(apiResult.content)\r\n const config = session.getConfig(this.enviroment, this.clientKey, (resultCode) => {\r\n if (resultCode === AdyenAuthResult.Authorised) {\r\n setTimeout(() => {\r\n location.href = `${this.managementUrl}?marketId=${orderData.marketId}&new=true`;\r\n }, 2000);\r\n }\r\n else {\r\n console.error(`Checkout payment not successful: ${resultCode}`);\r\n this.adyenCheckout.setStatus(\"error\", { message: TranslationData.get(`Business.Checkout.PaymentResult.${AdyenAuthResult[resultCode]}`) });\r\n setTimeout(() => {\r\n this.initializeAdyenCheckout();\r\n }, 3000);\r\n }\r\n });\r\n AdyenCheckout(config)\r\n .then((checkout) => {\r\n if (this.adyenCheckout) {\r\n this.adyenCheckout.unmount()\r\n }\r\n\r\n this.adyenCheckout = checkout.create(\"dropin\", {\r\n openFirstPaymentMethod: false,\r\n showStoredPaymentMethods: false,\r\n setStatusAutomatically: false,\r\n onSelect: (component: any) => {\r\n new PaymentInformationModel(false, component.type, new Date().toISOString()).saveToLocalStorage();\r\n },\r\n onReady: () => {\r\n this.adyenCheckout.setStatus(\"ready\");\r\n $(\"#adyen-loading-spinner\").hide()\r\n $(\"#dropin-container\").show();\r\n },\r\n beforeSubmit: (data, component, actions) => {\r\n this.adyenCheckout.setStatus(\"loading\");\r\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\r\n this.paymentRepository.savePayment(countryId, checkoutData, orderData, paymentData, clientData, session.reference).done((apiResult) => {\r\n if (!apiResult.isSuccess()) {\r\n console.error(`Failed to save checkout payment: ${JSON.stringify(apiResult)}`);\r\n this.adyenCheckout.setStatus(\"error\");\r\n setTimeout(() => {\r\n this.initializeAdyenCheckout();\r\n }, 3000);\r\n return NotificationBar.Display(apiResult.message);\r\n }\r\n\r\n // Submit\r\n actions.resolve(data)\r\n }).fail((err) => {\r\n console.error(`Checkout payment threw an error: ${JSON.stringify(err)}`);\r\n this.adyenCheckout.setStatus(\"error\");\r\n setTimeout(() => {\r\n this.initializeAdyenCheckout();\r\n }, 3000);\r\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.PaymentError\"));\r\n });\r\n }\r\n }).mount(\"#dropin-container\");\r\n })\r\n })\r\n .fail((err) => {\r\n $(\"#adyen-loading-spinner\").hide();\r\n console.error(`Failed to create session: ${JSON.stringify(err)}`);\r\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.SessionError\"));\r\n })\r\n .always(() => {\r\n this.hideLoadingOverlay();\r\n });\r\n }\r\n }\r\n}","module Business {\r\n export class ClientInformationModel {\r\n public static localStorageKey = \"sales.ClientInformation\";\r\n\r\n public regionId: number;\r\n public culture: string;\r\n public organization: string;\r\n public address: string;\r\n public zipCode: string;\r\n public city: string;\r\n public country: string;\r\n public phoneNumber: string;\r\n public adminGender: Gender;\r\n public adminFirstname: string;\r\n public adminLastname: string;\r\n public adminPhone: string;\r\n public adminEmail: string;\r\n public packageId: number;\r\n public marketId: number;\r\n public participantCount: number;\r\n public importSetupId: number;\r\n public agentId: number;\r\n public ctpId: number;\r\n public vatNumber: string;\r\n public readonly timestamp: string;\r\n\r\n constructor(\r\n regionId: number\r\n , culture: string\r\n , organization: string\r\n , address: string\r\n , zipCode: string\r\n , city: string\r\n , country: string\r\n , phoneNumber: string\r\n , adminGender: Gender\r\n , adminFirstname: string\r\n , adminLastname: string\r\n , adminPhone: string\r\n , adminEmail: string\r\n , packageId: number\r\n , marketId: number\r\n , participantCount: number\r\n , importSetupId: number\r\n , agentId: number\r\n , ctpId: number\r\n , vatNumber: string\r\n , timestamp: string\r\n\r\n ) {\r\n this.regionId = regionId;\r\n this.culture = culture;\r\n this.organization = organization;\r\n this.address = address;\r\n this.zipCode = zipCode;\r\n this.city = city;\r\n this.country = country;\r\n this.phoneNumber = phoneNumber;\r\n this.adminGender = adminGender;\r\n this.adminFirstname = adminFirstname;\r\n this.adminLastname = adminLastname;\r\n this.adminPhone = adminPhone;\r\n this.adminEmail = adminEmail;\r\n this.packageId = packageId;\r\n this.marketId = marketId;\r\n this.participantCount = participantCount;\r\n this.importSetupId = importSetupId;\r\n this.agentId = agentId;\r\n this.ctpId = ctpId;\r\n this.vatNumber = vatNumber;\r\n this.timestamp = timestamp;\r\n }\r\n\r\n public static getClientInformationFromUrl(): Business.ClientInformationModel {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!(urlParams.has(\"packageId\") && urlParams.has(\"marketId\") && urlParams.has(\"participantCount\"))) {\r\n return null;\r\n }\r\n\r\n return new this(\r\n +(urlParams.get(\"regionId\") ?? regionId.toString())\r\n , urlParams.get(\"culture\")\r\n , urlParams.get(\"organization\")\r\n , urlParams.get(\"address\")\r\n , urlParams.get(\"zipCode\")\r\n , urlParams.get(\"city\")\r\n , urlParams.get(\"country\")\r\n , urlParams.get(\"phoneNumber\")\r\n , +urlParams.get(\"adminGender\")\r\n , urlParams.get(\"adminFirstname\")\r\n , urlParams.get(\"adminLastname\")\r\n , urlParams.get(\"adminPhone\")\r\n , urlParams.get(\"adminEmail\")\r\n , +urlParams.get(\"packageId\")\r\n , +urlParams.get(\"marketId\")\r\n , +urlParams.get(\"participantCount\")\r\n , +urlParams.get(\"importSetupId\")\r\n , +urlParams.get(\"agentId\")\r\n , +(urlParams.get(\"ctpId\") ?? urlParams.get(\"ctId\"))\r\n , urlParams.get(\"vatNumber\")\r\n , new Date().toISOString()\r\n );\r\n }\r\n\r\n public static getClientInformationFromLocalStorage(): Business.ClientInformationModel {\r\n var storageObject = JSON.parse(localStorage.getItem(ClientInformationModel.localStorageKey));\r\n if (storageObject != null) {\r\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\r\n ClientInformationModel.deleteFromLocalStorage();\r\n return null;\r\n }\r\n\r\n return new this(\r\n storageObject.regionId\r\n , storageObject.culture\r\n , storageObject.organization\r\n , storageObject.address\r\n , storageObject.zipCode\r\n , storageObject.city\r\n , storageObject.country\r\n , storageObject.phoneNumber\r\n , storageObject.adminGender\r\n , storageObject.adminFirstname\r\n , storageObject.adminLastname\r\n , storageObject.adminPhone\r\n , storageObject.adminEmail\r\n , storageObject.packageId\r\n , storageObject.marketId\r\n , storageObject.participantCount\r\n , storageObject.importSetupId\r\n , storageObject.agentId\r\n , storageObject.ctpId\r\n , storageObject.vatNumber\r\n , storageObject.timestamp\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public saveToLocalStorage(): void {\r\n localStorage.setItem(ClientInformationModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static deleteFromLocalStorage(): void {\r\n localStorage.removeItem(ClientInformationModel.localStorageKey);\r\n }\r\n }\r\n}","\r\nmodule Business {\r\n export class InvitationController {\r\n private code: string;\r\n private email: string;\r\n private administratorRepository: IAdministratorRepository;\r\n private hasAccepted: boolean;\r\n private hasAccount: boolean;\r\n private mainWebsiteUrl: string;\r\n private businessWebsiteUrl: string;\r\n\r\n constructor(salesApiSettings: any, platformApiSettings: any, code: any, email: any, hasAccepted: boolean, hasAccount: boolean, businessWebsiteUrl: string, mainWebsiteUrl: string) {\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\r\n this.code = code;\r\n this.email = email;\r\n this.hasAccepted = hasAccepted;\r\n this.hasAccount = hasAccount;\r\n this.administratorRepository = new AdministratorRepository(salesSettings, platformSettings);\r\n this.mainWebsiteUrl = mainWebsiteUrl;\r\n this.businessWebsiteUrl = businessWebsiteUrl;\r\n this.getData();\r\n }\r\n\r\n private getData = () => {\r\n $.when(\r\n this.administratorRepository.validateInvite(this.code)\r\n ).done((apiResult: ApiResult) => {\r\n const administrator = AdministratorInviteModel.fromJson(apiResult.content);\r\n if (administrator.managementInvitationStatus !== ManagementInvitationStatus.Pending) {\r\n window.location.href = `${this.businessWebsiteUrl}/invitation/expired`;\r\n return;\r\n }\r\n\r\n if (!this.hasAccount) {\r\n if (Authentication.isLoggedIn()) {\r\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}`)}`;\r\n }\r\n else {\r\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}`;\r\n }\r\n return;\r\n }\r\n\r\n const labelKey = `Business.Management.Role.${administrator.roleType}`;\r\n const headerWaitTextElem = $(\".business-invitation__wait-text\");\r\n const headerTextElem = $(\".business-invitation__accepted-text\");\r\n headerWaitTextElem.addModifiers(\"hidden\");\r\n headerTextElem.html(headerTextElem.html().format(TranslationData.get(labelKey)));\r\n headerTextElem.removeModifiers(\"hidden\");\r\n if (this.hasAccepted) {\r\n this.acceptedInvite().then(() => {\r\n this.startTimer(true);\r\n });\r\n } else {\r\n this.declinedInvite().then(() => {\r\n this.startTimer(false);\r\n });\r\n }\r\n\r\n }).fail((err) => {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n });\r\n }\r\n\r\n private acceptedInvite(): JQueryPromise {\r\n return $.when(\r\n this.administratorRepository.acceptInvite(this.code)\r\n ).done((apiResult: ApiResult) => {\r\n const adminInviteResult = AdministratorInviteModel.fromJson(apiResult.content);\r\n if (adminInviteResult.managementInvitationStatus !== ManagementInvitationStatus.Accepted) {\r\n NotificationBar.Display(TranslationData.get(\"Business.LeagueInviteAccept.Failed.PossiblyNotAParticipant\"));\r\n }\r\n });\r\n }\r\n\r\n private declinedInvite(): JQueryPromise {\r\n return $.when(\r\n this.administratorRepository.declineInvite(this.code)\r\n ).done((apiResult: ApiResult) => {\r\n const adminInviteResult = AdministratorInviteModel.fromJson(apiResult.content);\r\n if (adminInviteResult.managementInvitationStatus !== ManagementInvitationStatus.Declined) {\r\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\r\n }\r\n });\r\n }\r\n\r\n private startTimer(agree: boolean) {\r\n let timer = 5;\r\n let seconds = 0;\r\n const interval = setInterval(function () {\r\n if (seconds >= 0) {\r\n seconds = parseInt((timer % 60).toString(), 10);\r\n $(\"#time\").html(seconds.toString());\r\n }\r\n\r\n if (--timer < 0) {\r\n console.log(\"redirecting to: \" + this.businessWebsiteUrl)\r\n /*if (!agree) window.location.href = this.mainWebsiteUrl + \"/\";\r\n else window.location.href = this.businessWebsiteUrl + \"/management/\";*/\r\n clearInterval(interval);\r\n }\r\n }, 1000);\r\n }\r\n }\r\n}","module Business {\r\n import Country = Platform.Country;\r\n import UpgradeInformationModel = ClientAdministrator.UpgradeInformationModel;\r\n\r\n export class OrderController {\r\n private readonly _couponRepository: CouponRepository;\r\n private readonly accountDataRepository: Business.AccountDataRepository;\r\n private readonly _salesPackageRepository: SalesPackageRepository;\r\n\r\n private _cartController: CartController;\r\n\r\n private _couponRenderer: CouponRenderer;\r\n private _combidealsRenderer: CombidealsRenderer;\r\n\r\n private _userValidationController: UserValidationController;\r\n\r\n private _orderInformation: OrderInformationModel;\r\n private _upgradeInformation: UpgradeInformationModel;\r\n\r\n private _marketSalesPackages: MarketSalesPackagesResult;\r\n\r\n constructor(salesApiSettings: any, platformApiSettings: any, userApiSettings: any, checkoutUrl: string, orderUrl: string) {\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this._couponRepository = new CouponRepository(salesSettings);\r\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\r\n this.accountDataRepository = new Business.AccountDataRepository(salesSettings);\r\n\r\n this._cartController = new CartController(salesApiSettings, platformApiSettings, () => {\r\n this.renderCombiDeals();\r\n });\r\n this._orderInformation = this._cartController.orderInformation;\r\n this._upgradeInformation = this._cartController.upgradeInformation;\r\n\r\n this._combidealsRenderer = new CombidealsRenderer();\r\n this._couponRenderer = new CouponRenderer();\r\n\r\n this._userValidationController = new UserValidationController(salesSettings, checkoutUrl, orderUrl, UserValidationPopupRedirectPage.Order);\r\n\r\n $(document).ready(() => {\r\n this.renderHeader();\r\n this.initializePage();\r\n });\r\n }\r\n\r\n private initializePage() {\r\n PaymentInformationModel.deleteFromLocalStorage();\r\n if (this._cartController.isUpgrade()) {\r\n if (Authentication.isLoggedIn()) {\r\n this.accountDataRepository.getSalesAccountData().done(salesAccountData => {\r\n this._cartController.setvatNumber(salesAccountData.companyVATNumber);\r\n this._cartController.initializeUpgradeCart();\r\n this.initializeCouponBlock();\r\n this.displayCouponBlock(this._upgradeInformation?.couponCode);\r\n })\r\n }\r\n else {\r\n this._cartController.deleteUpgradeInformation();\r\n }\r\n }\r\n else {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\r\n this._userValidationController.displayPopup();\r\n }\r\n\r\n $.when(this._cartController.initializeCart(CartRenderType.All, true))\r\n .done(() => {\r\n this._cartController.updatePayByInvoice(false);\r\n this._cartController.setvatNumber(Country.isNetherlands(this._orderInformation?.countryCode) ? this._orderInformation.vatNumber : Vat.PLACEHOLDER)\r\n this.initializeCouponBlock();\r\n this.displayCouponBlock(this._orderInformation?.couponCode);\r\n this.initializeCombiDeals();\r\n }).fail(() => {\r\n window.location.href = \"/\";\r\n });\r\n }\r\n\r\n const purchaseInformation = this._cartController.getPurchaseInformationModel();\r\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(purchaseInformation.marketId, purchaseInformation.countryId)\r\n .done(marketSalesPackages => {\r\n this._marketSalesPackages = marketSalesPackages;\r\n })\r\n .fail(err => {\r\n console.error(\"Failed to load market sales packages on order page\", err);\r\n })\r\n .always(() => {\r\n this.bindNavigationButtons();\r\n });\r\n\r\n }\r\n\r\n private displayCouponBlock = (couponCode: string) => {\r\n if (!String.isNullOrEmpty(couponCode)) {\r\n $('.coupon-input').prop('disabled', true);\r\n $('.coupon-confirm').prop('disabled', true);\r\n $('.icon-coupon-approved').addClass('icon-coupon-approved--active');\r\n $('.coupon-input').addClass('coupon-input--approved');\r\n $('.coupon-confirm').addClass('coupon-confirm--approved');\r\n $('.coupon-confirm').text(TranslationData.get(\"Business.Order.CouponConfirmed\"));\r\n $('.coupon-block').addClass('coupon-block--disabled');\r\n $('.coupon-title').addClass('coupon-title--disabled');\r\n $('.coupon-arrow').addClass('coupon-arrow--active');\r\n $('.coupon-input').val(couponCode);\r\n $('.coupon-block__body').show();\r\n }\r\n }\r\n\r\n private initializeCombiDeals() {\r\n this.renderCombiDeals();\r\n }\r\n\r\n private initializeCouponBlock() {\r\n this._couponRenderer.renderTemplate(() => {\r\n return this.bindCouponBlock();\r\n });\r\n }\r\n\r\n private renderCombiDeals() {\r\n if (this._cartController.upgradeInformation != null)\r\n return;\r\n\r\n const mainDeal = this._cartController.getDeal(this._orderInformation.marketId, this._orderInformation.mainDealId);\r\n\r\n const model: Array = new Array();\r\n\r\n let filteredCombideals = this._cartController.getCombiDealMarkets();\r\n this._orderInformation.dealIds.forEach(dealId => {\r\n filteredCombideals = new CombiDeals(filteredCombideals.list.filter(cd => cd.dealMarketId !== this._cartController.getMarketIdForDeal(dealId)));\r\n });\r\n\r\n filteredCombideals.each((cd) => {\r\n const deal = this._cartController.getDealByParticipantCount(cd.dealMarketId, mainDeal.participantCount);\r\n if (deal) {\r\n const marketId = cd.dealMarketId;\r\n const gameId = this._cartController.getGameIdForMarket(marketId);\r\n\r\n const marketDealResult = this._cartController.getMarketDealResult(marketId);\r\n let rowModel = new CombidealRowModel(deal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\r\n\r\n if (cd.discountPercentage)\r\n rowModel.setDiscount(DiscountTypes.CombiDeal, cd.discountPercentage);\r\n\r\n rowModel.setAdditionalDeals(this._cartController.getDealsForMarketId(cd.dealMarketId), mainDeal.participantCount);\r\n model.push(rowModel);\r\n }\r\n });\r\n\r\n this._combidealsRenderer.renderTemplate(model, () => { return this.bindCombidealRows(); });\r\n }\r\n\r\n private bindCombidealRows() {\r\n this.bindCombidealRowDropdown();\r\n\r\n this.bindCombidealRowAddButton();\r\n }\r\n\r\n private bindCombidealRowAddButton() {\r\n $('.addtocart').click((event) => {\r\n return this.addToCartClick(event);\r\n });\r\n }\r\n\r\n private bindCombidealRowDropdown() {\r\n $('.select-participants.combidealrow').change((event) => {\r\n const target = $(event.target);\r\n const marketId = target.data('marketid');\r\n const selectedDeal = target.val();\r\n const newDeal = this._cartController.getDeal(marketId, selectedDeal);\r\n this._combidealsRenderer.updateDeal(marketId, newDeal, () => {\r\n this.bindCombidealRows();\r\n });\r\n });\r\n }\r\n\r\n private bindCouponBlock() {\r\n $('.coupon-block').click((event) => {\r\n const target = $(event.target);\r\n if (target.hasClass('coupon-confirm') ||\r\n target.hasClass('coupon-input')) {\r\n return;\r\n }\r\n return this.couponBlockHeaderClick(event);\r\n });\r\n\r\n $('.coupon-confirm').click(event => {\r\n return this.couponConfirmClick(event);\r\n });\r\n\r\n $('input.coupon-input').on('keyup', (event) => {\r\n if (event.keyCode === 13) {\r\n return this.couponConfirmClick(event);\r\n }\r\n });\r\n }\r\n\r\n private bindNavigationButtons() {\r\n $(\".order-page__proceed-button\").on(\"click\", () => {\r\n this._orderInformation?.saveToLocalStorage();\r\n this._upgradeInformation?.saveToLocalStorage();\r\n if (this._marketSalesPackages?.marketSalesPackages.length > 0) {\r\n Business.SalesPackageProgressModel.deleteFromLocalStorage();\r\n location.href = '/salespackage';\r\n }\r\n else {\r\n this._userValidationController.displayPopup();\r\n }\r\n });\r\n\r\n $(\".order-page__back-button\").on(\"click\", () => {\r\n const marketIdHash = window.location.hash.slice(1);\r\n if (this._upgradeInformation && (this._orderInformation?.marketId ?? 0) !== this._upgradeInformation.marketId) {\r\n localStorage.setItem(ManagementController.initalTabTypeLocalStorageKey, ClientAdminTabType.Upgrade.toString());\r\n location.href = `/management?marketid=${this._upgradeInformation.marketId}`;\r\n }\r\n else\r\n location.href = `${isNumeric(marketIdHash) ? `/#${marketIdHash}` : \"/\"}`;\r\n });\r\n }\r\n\r\n private renderHeader() {\r\n var header = $('
');\r\n header.addClass('business-header-image');\r\n header.addClass('business-header-image--small');\r\n header.attr('style', `background-image:url(${this._orderInformation?.salesHeaderImageUrl ?? \"/images/business/background-business.jpg\"})`);\r\n\r\n $('#inner-content').before(header);\r\n }\r\n\r\n private couponBlockHeaderClick(event: JQueryEventObject): void {\r\n let body = $('.coupon-block__body');\r\n if (body.is(\":visible\")) {\r\n $('.coupon-arrow').removeClass('coupon-arrow--active');\r\n body.hide(200);\r\n }\r\n else {\r\n body.show(200);\r\n $('.coupon-arrow').addClass('coupon-arrow--active');\r\n $('.coupon-input').focus();\r\n }\r\n }\r\n\r\n private couponConfirmClick(event: JQueryEventObject) {\r\n $(event.target).blur();\r\n\r\n $('.icon-coupon-approved').removeClass('icon-coupon-approved--active');\r\n $('.coupon-input').removeClass('coupon-input--approved');\r\n $('.coupon-input').removeClass('coupon-input--declined');\r\n $('.coupon-confirm').removeClass('coupon-confirm--approved');\r\n $('.icon-coupon-declined').removeClass('icon-coupon-declined--active');\r\n\r\n const coupon = $.trim($('input.coupon-input').val());\r\n if (coupon) {\r\n $('input.coupon-input').val(coupon);\r\n this._couponRepository.validateCoupon(coupon).done((coupon: Coupon) => {\r\n if (coupon.isValid) {\r\n $('.coupon-input').prop('disabled', true);\r\n $('.coupon-confirm').prop('disabled', true);\r\n $('.icon-coupon-approved').addClass('icon-coupon-approved--active');\r\n $('.coupon-input').addClass('coupon-input--approved');\r\n $('.coupon-confirm').addClass('coupon-confirm--approved');\r\n $('.coupon-confirm').text(TranslationData.get(\"Business.Order.CouponConfirmed\"));\r\n $('.coupon-block').addClass('coupon-block--disabled');\r\n $('.coupon-title').addClass('coupon-title--disabled');\r\n this._cartController.updateCoupon(coupon.code);\r\n }\r\n else {\r\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\r\n $('.coupon-input').addClass('coupon-input--declined');\r\n }\r\n }).fail(() => {\r\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\r\n $('.coupon-input').addClass('coupon-input--declined');\r\n });\r\n } else {\r\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\r\n $('.coupon-input').addClass('coupon-input--declined');\r\n }\r\n }\r\n\r\n private addToCartClick(event: JQueryEventObject): void {\r\n const target = $(event.target);\r\n const dealId = target.data('dealid');\r\n\r\n this._cartController.addDealToCart(dealId);\r\n }\r\n }\r\n}","/// \r\n\r\nmodule Business {\r\n export class OrderInformationModel extends PurchaseInformationModel {\r\n public static localStorageKey = `sales.OrderInformation.${location.hostname}`;\r\n\r\n protected isUpgrade: boolean = false;\r\n\r\n public gameHeaderImageUrl: string;\r\n public salesHeaderImageUrl: string;\r\n\r\n public mainDealId: number;\r\n public dealIds: Array;\r\n\r\n public countryCode: string;\r\n public participantCount: number;\r\n\r\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) {\r\n super(marketId, gameId, countryId, payByInvoice, vatNumber, couponCode, salesPackageIdsWithAmounts, salesPackagePersonalizationTexts);\r\n\r\n this.gameHeaderImageUrl = gameHeaderImageUrl;\r\n this.salesHeaderImageUrl = salesHeaderImageUrl;\r\n this.mainDealId = mainDealId;\r\n this.dealIds = dealIds != null ? dealIds : new Array();\r\n this.countryCode = countryCode;\r\n this.participantCount = participantCount;\r\n }\r\n\r\n public updateCountry = (countryId: number, countryCode: string): void => {\r\n this.countryId = countryId;\r\n this.countryCode = countryCode;\r\n }\r\n\r\n // Used for checkout\r\n public setIsUpgrade = (isUpgrade: boolean): OrderInformationModel => {\r\n this.isUpgrade = isUpgrade;\r\n return this;\r\n }\r\n\r\n public static getOrderInformationFromLocalStorage(): Business.OrderInformationModel {\r\n var storageObject = JSON.parse(localStorage.getItem(OrderInformationModel.localStorageKey));\r\n if (storageObject != null) {\r\n return new this(\r\n storageObject.gameId\r\n , storageObject.marketId\r\n , storageObject.mainDealId\r\n , storageObject.dealIds\r\n , storageObject.salesPackageIdsWithAmounts\r\n , storageObject.salesPackagePersonalizationTexts\r\n , storageObject.countryId\r\n , storageObject.countryCode\r\n , storageObject.couponCode\r\n , storageObject.gameHeaderImageUrl\r\n , storageObject.participantCount\r\n , storageObject.payByInvoice\r\n , storageObject.salesHeaderImageUrl\r\n , storageObject.vatNumber\r\n ).setIsUpgrade(storageObject.isUpgrade);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public saveToLocalStorage(): void {\r\n localStorage.setItem(OrderInformationModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static deleteFromLocalStorage(): void {\r\n localStorage.removeItem(OrderInformationModel.localStorageKey);\r\n }\r\n }\r\n}","module Business {\r\n export class SalesPackageController {\r\n private readonly _salesPackageRepository: SalesPackageRepository;\r\n\r\n private readonly _cartController: CartController;\r\n private readonly _userValidationController: UserValidationController;\r\n\r\n private readonly _salesPackageSideViewRenderer: SalesPackageSideViewRenderer;\r\n private readonly _salesPackageProgressModel: SalesPackageProgressModel;\r\n private readonly _salesPackageItemsRenderer: SalesPackageItemsRenderer;\r\n private readonly _salesPackageImagePopupRenderer: SalesPackageImagePopupRenderer;\r\n\r\n private marketSalesPackages: MarketSalesPackagesResult;\r\n\r\n private static readonly MAX_CSHARP_SAFE_INT32 = 2_147_483_647;\r\n\r\n constructor(salesApiSettings: any, platformApiSettings: any, checkoutUrl: string, orderUrl: string) {\r\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\r\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\r\n\r\n this._cartController = new CartController(salesApiSettings, platformApiSettings, (summary: SummaryModel, _: CartModel) => { });\r\n this._salesPackageSideViewRenderer = new SalesPackageSideViewRenderer();\r\n this._salesPackageItemsRenderer = new SalesPackageItemsRenderer();\r\n this._salesPackageImagePopupRenderer = new SalesPackageImagePopupRenderer();\r\n this._userValidationController = new UserValidationController(salesSettings, checkoutUrl, orderUrl, UserValidationPopupRedirectPage.SalesPackage);\r\n\r\n this._salesPackageProgressModel = SalesPackageProgressModel.getFromLocalStorage();\r\n this._cartController = new CartController(salesApiSettings, platformApiSettings,\r\n (summary: SummaryModel, cartModel: CartModel) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\r\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\r\n }\r\n\r\n return this.renderSideView(summary, cartModel);\r\n });\r\n\r\n $(document).ready(() => {\r\n this.renderHeader();\r\n this.initializePage();\r\n });\r\n }\r\n\r\n private initializePage() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\r\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\r\n this._userValidationController.displayPopup();\r\n }\r\n\r\n const purchaseInformationModel = this._cartController.getPurchaseInformationModel()\r\n const marketId = purchaseInformationModel?.marketId;\r\n const countryId = purchaseInformationModel?.countryId;\r\n\r\n if (!marketId || !countryId) {\r\n location.href = \"/\";\r\n }\r\n\r\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(marketId, countryId)\r\n .done(result => {\r\n if (result.marketSalesPackages.length < 1) {\r\n location.href = \"/\";\r\n return;\r\n }\r\n this.marketSalesPackages = result;\r\n\r\n const initialPage = this.determineInitialPage();\r\n this.renderPage(initialPage);\r\n\r\n if (this._cartController.isUpgrade()) {\r\n this._cartController.initializeUpgradeCart();\r\n }\r\n else {\r\n this._cartController.initializeCart(CartRenderType.OnlySideView);\r\n }\r\n });\r\n\r\n this.bindButtons();\r\n }\r\n\r\n private renderPage = (page: SalesPackageType) => {\r\n this._salesPackageProgressModel.updatePage(page);\r\n this._salesPackageItemsRenderer.renderTemplate(this.marketSalesPackages, this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts, this.bindSalesPackageItemsRendererButtons);\r\n this._salesPackageItemsRenderer.updateNavigationButtons(this.getSelectionStateByType(), this.getSelectionStateForPackages(), this.determineNextPage(), this._cartController.isEmpty());\r\n }\r\n\r\n private bindSalesPackageItemsRendererButtons = () => {\r\n $(\".sales-package__amount-button--decrease\").on(\"click\", (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts[id] ?? 0;\r\n\r\n this.updateSalesPackageAmount(id, Math.max(0, amount - 1));\r\n });\r\n\r\n $(\".sales-package__amount-input\").on(\"keyup\", (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n const newAmount: number = +elem.val();\r\n\r\n this.updateSalesPackageAmount(id, Math.max(0, newAmount));\r\n });\r\n\r\n $(\".sales-package__amount-button--increase\").on(\"click\", (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts[id] ?? 0;\r\n\r\n this.updateSalesPackageAmount(id, amount + 1);\r\n });\r\n\r\n $(\".sales-package__item-image-container, .sales-package__item-info--more-info\").on(\"click\", (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n const salesPackage = this.marketSalesPackages.getById(id);\r\n if (salesPackage == null)\r\n return;\r\n\r\n this._salesPackageImagePopupRenderer.renderTemplate(salesPackage, () => {\r\n $.scoritoPopup({\r\n elementId: 'sales-package-image-popup',\r\n contentHtml: $(\".sales-package-image-popup-placeholder\").html(),\r\n popupTitle: TranslationData.get(`Business.SalesPackage.${salesPackage.id}.Title`),\r\n widthInPixels: 1240,\r\n follow: [true, false]\r\n });\r\n\r\n if (salesPackage.imageUrls.length > 1) {\r\n $('.bxslider').bxSlider({\r\n speed: 600,\r\n auto: true,\r\n pager: true,\r\n controls: true,\r\n responsive: true,\r\n slideWidth: 780\r\n });\r\n }\r\n });\r\n });\r\n\r\n $(\".sales-package__item-image-container\").hover((e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n $(`#preview-image-${id}`).addClass(\"sales-package__item-image--hover\");\r\n $(`#overlay-icon-${id}`).addClass(\"sales-package__item-image-overlay-icon--hover\");\r\n }, (e) => {\r\n const elem = $(e.currentTarget);\r\n const row = elem.closest(\".sales-package__row\");\r\n const id: number = row.data(\"id\");\r\n $(`#preview-image-${id}`).removeClass(\"sales-package__item-image--hover\");\r\n $(`#overlay-icon-${id}`).removeClass(\"sales-package__item-image-overlay-icon--hover\");\r\n });\r\n }\r\n\r\n private updateSalesPackageAmount = (id: number, amount: number) => {\r\n const safeAmount = Math.max(0, Math.min(amount, SalesPackageController.MAX_CSHARP_SAFE_INT32));\r\n this._cartController.setSalesPackageInCart(id, safeAmount);\r\n\r\n this._salesPackageItemsRenderer.updateNavigationButtons(this.getSelectionStateByType(), this.getSelectionStateForPackages(), this.determineNextPage(), this._cartController.isEmpty());\r\n\r\n const packageRow = $(`.sales-package__row[data-id=\"${id}\"]`);\r\n\r\n const salesPackage = this.marketSalesPackages.getById(id);\r\n\r\n this._salesPackageItemsRenderer.updateAmountButtons(packageRow, +safeAmount.toString().replace(/\\D/g, \"\"), salesPackage)\r\n }\r\n\r\n private renderSideView = (summary: SummaryModel, cartModel: CartModel) => {\r\n this._salesPackageSideViewRenderer.renderSideViewTemplate(summary, [...cartModel.list], false, () => {\r\n $(\".sales-package\").css(\"min-height\", 200 + $(\".sales-package__side-view\").height())\r\n });\r\n }\r\n\r\n private renderHeader() {\r\n var header = $('
');\r\n header.addClass('business-header-image');\r\n header.addClass('business-header-image--small');\r\n header.attr('style', `background-image:url(${this._cartController.orderInformation?.salesHeaderImageUrl ?? \"/images/business/background-business.jpg\"})`);\r\n\r\n $('#inner-content').before(header);\r\n }\r\n\r\n private calculateState = (amountSelected: number, minimumRequired: number): SelectionState => {\r\n if (amountSelected < 1 || minimumRequired < 2) {\r\n return \"ValidNothingSelected\";\r\n }\r\n\r\n if (amountSelected < minimumRequired) {\r\n return \"Invalid\";\r\n }\r\n\r\n return \"ValidSelected\";\r\n }\r\n\r\n private getSelectionStateForPackages = (): SelectionState[] => {\r\n const currentPage = this._salesPackageProgressModel.currentPage;\r\n const filteredSalesPackages = this.marketSalesPackages.getSalesPackagesByPageType(currentPage);\r\n\r\n const selectionStates: SelectionState[] = [];\r\n for (let index = 0; index < filteredSalesPackages.length; index++) {\r\n const salesPackage = filteredSalesPackages[index];\r\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts?.[salesPackage.id] ?? 0;\r\n selectionStates.push(this.calculateState(amount, salesPackage.minPurchasesRequired));\r\n }\r\n\r\n return selectionStates;\r\n }\r\n\r\n private getSelectionStateByType = (): Selection => {\r\n const currentPage = this._salesPackageProgressModel.currentPage;\r\n const filteredSalesPackages = this.marketSalesPackages.getSalesPackagesByPageType(currentPage);\r\n\r\n let amountSelected = 0;\r\n filteredSalesPackages.forEach(salesPackage => {\r\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts?.[salesPackage.id] ?? 0;\r\n amountSelected += amount;\r\n })\r\n\r\n const minimumRequired = +this.marketSalesPackages.minPurchaseByType[SalesPackageType[currentPage].toString()];\r\n\r\n const data = {\r\n type: currentPage,\r\n minimumRequired,\r\n amountSelected\r\n }\r\n\r\n return { state: this.calculateState(amountSelected, minimumRequired), ...data }\r\n }\r\n\r\n private bindButtons = () => {\r\n $(\".sales-package__button--next\").on(\"click\", () => {\r\n if (this.getSelectionStateByType().state === \"Invalid\" || this.getSelectionStateForPackages().some(s => s === \"Invalid\")) {\r\n return;\r\n }\r\n let nextPage = this.determineNextPage();\r\n if (nextPage == null) {\r\n this._userValidationController.displayPopup();\r\n return;\r\n }\r\n\r\n this.renderPage(nextPage);\r\n });\r\n\r\n $(\".sales-package__button--previous\").on(\"click\", () => {\r\n let prevPage = this.determinePreviousPage();\r\n if (prevPage == null) {\r\n\r\n if (!this._cartController.isEmptyIgnoreSalesPackages())\r\n location.href = '/order';\r\n else if (this._cartController.upgradeInformation?.marketId > 0) {\r\n localStorage.setItem(ManagementController.initalTabTypeLocalStorageKey, ClientAdminTabType.Upgrade.toString());\r\n location.href = `/management?marketid=${this._cartController.upgradeInformation.marketId}`;\r\n }\r\n else\r\n location.href = `/`;\r\n\r\n return;\r\n }\r\n\r\n this.renderPage(prevPage);\r\n });\r\n }\r\n\r\n private determineInitialPage = (): SalesPackageType | null => {\r\n if (this._salesPackageProgressModel.shouldInitiallyGoToCurrentPage) {\r\n this._salesPackageProgressModel.setShouldInitiallyGoToCurrentPage(false);\r\n return this._salesPackageProgressModel.currentPage;\r\n }\r\n\r\n for (let i = 0; i < this._salesPackageProgressModel.pageOrder.length; i++) {\r\n const page = this._salesPackageProgressModel.pageOrder[i];\r\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\r\n return page;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private determineNextPage = (): SalesPackageType | null => {\r\n\r\n const indexOfCurrentPage = this._salesPackageProgressModel.pageOrder.indexOf(this._salesPackageProgressModel.currentPage);\r\n for (let i = 0; i < this._salesPackageProgressModel.pageOrder.length; i++) {\r\n if (indexOfCurrentPage < i) {\r\n const page = this._salesPackageProgressModel.pageOrder[i];\r\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\r\n return page;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private determinePreviousPage = (): SalesPackageType | null => {\r\n\r\n const indexOfCurrentPage = this._salesPackageProgressModel.pageOrder.indexOf(this._salesPackageProgressModel.currentPage);\r\n for (let i = this._salesPackageProgressModel.pageOrder.length - 1; i >= 0; i--) {\r\n if (i < indexOfCurrentPage) {\r\n const page = this._salesPackageProgressModel.pageOrder[i];\r\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\r\n return page;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nmodule Business {\r\n export class UserValidationController {\r\n private readonly _checkoutUrl: string;\r\n private readonly redirectPage: UserValidationPopupRedirectPage;\r\n private readonly _redirectToLoginReturnUrl: string;\r\n\r\n private readonly _popupRenderer: PopupRenderer;\r\n\r\n private readonly _accountDataRepository: AccountDataRepository;\r\n\r\n public static createNewAccountLocalStorageKey = \"sales.CreateNewAccount\";\r\n public static returnAfterLogin = \"returnAfterLogin\";\r\n\r\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, checkoutUrl: string, orderUrl: string, redirectPage: UserValidationPopupRedirectPage) {\r\n this._checkoutUrl = checkoutUrl;\r\n this._popupRenderer = new PopupRenderer();\r\n this._accountDataRepository = new AccountDataRepository(salesApiSettings);\r\n\r\n let redirectUrl: string;\r\n switch (redirectPage) {\r\n case UserValidationPopupRedirectPage.Order:\r\n redirectUrl = orderUrl;\r\n break;\r\n case UserValidationPopupRedirectPage.SalesPackage:\r\n redirectUrl = '/salespackage';\r\n break;\r\n default:\r\n redirectUrl = orderUrl;\r\n }\r\n\r\n this.redirectPage = redirectPage;\r\n this._redirectToLoginReturnUrl = `${encodeURIComponent(redirectUrl)}?${UserValidationController.returnAfterLogin}=true`;\r\n }\r\n\r\n public displayPopup() {\r\n if (!Authentication.isLoggedIn()) {\r\n this.initializePopup();\r\n this.showAccountCheck();\r\n return;\r\n }\r\n this._accountDataRepository.getSalesAccountData().done((accountData: SalesAccountData) => {\r\n if (accountData.isLoggedInWithBusinessAccount) {\r\n this.proceedToCheckout(false);\r\n } else {\r\n this.initializePopup();\r\n this.showExtendAccount();\r\n }\r\n }).fail(err => {\r\n if (err.status === 401) {\r\n return NotificationBar.Display(TranslationData.get(\"Identity.API.NoAccessToken\"));\r\n }\r\n\r\n console.error(JSON.stringify(err));\r\n NotificationBar.Display(TranslationData.get(\"Business.ErrorOnPage\"))\r\n });\r\n }\r\n\r\n private initializePopup() {\r\n let popupPlaceholder = $('
');\r\n popupPlaceholder.addClass(\"uservalidation-popup-placeholder\");\r\n $.scoritoPopup({\r\n elementId: 'uservalidation-popup',\r\n contentHtml: popupPlaceholder[0].outerHTML,\r\n widthInPixels: 591,\r\n follow: [false, false]\r\n });\r\n }\r\n\r\n private showAccountCheck() {\r\n this._popupRenderer.renderAccountCheck(() => {\r\n return this.bindAccountCheck();\r\n });\r\n }\r\n\r\n private showExtendAccount() {\r\n this._popupRenderer.renderExtendAccount(() => {\r\n return this.bindExtendAccount();\r\n });\r\n }\r\n\r\n private redirectToLogin() {\r\n if (this.redirectPage === UserValidationPopupRedirectPage.SalesPackage) {\r\n SalesPackageProgressModel.getFromLocalStorage().setShouldInitiallyGoToCurrentPage(true);\r\n }\r\n\r\n location.href = `/user/login?returnUrl=${this._redirectToLoginReturnUrl}`;\r\n }\r\n\r\n\r\n private bindAccountCheck() {\r\n $(\".popup-block__yes-button\").click((event) => {\r\n this.redirectToLogin();\r\n });\r\n\r\n $(\".popup-block__no-button\").click((event) => {\r\n this.proceedToCheckout(true);\r\n });\r\n }\r\n\r\n private bindExtendAccount() {\r\n $(\".popup-block__yes-button\").click((event) => {\r\n this.proceedToCheckout(false);\r\n });\r\n\r\n $(\".popup-block__no-button\").click((event) => {\r\n this.proceedToCheckout(true);\r\n });\r\n }\r\n\r\n private proceedToCheckout(createNewAccount: boolean) {\r\n localStorage[UserValidationController.createNewAccountLocalStorageKey] = createNewAccount;\r\n if (createNewAccount && Authentication.isLoggedIn()) {\r\n location.href = `/user/logout?returnUrl=${this._checkoutUrl}`;\r\n }\r\n else {\r\n location.href = this._checkoutUrl;\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class CheckoutProgressRenderer {\r\n private checkoutProgressTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (model: CheckoutProgressModel): void => {\r\n if (this.checkoutProgressTemplate == null) {\r\n this.checkoutProgressTemplate = Handlebars.compile($(\"#checkout-progress-template\").html());\r\n }\r\n\r\n $(\".business-checkout__progress-placeholder\").html(this.checkoutProgressTemplate(model));\r\n\r\n }\r\n }\r\n}","module Business {\r\n export enum CheckoutProgressStep {\r\n One = 1,\r\n Two = 2,\r\n Three = 3\r\n }\r\n}","module Business {\r\n export class CheckoutRenderer {\r\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewSalesPackageTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderSideViewTemplate = (summary: SummaryModel, order: (PackageRowModel | SalesPackageRowModel)[], checkoutProgress: CheckoutProgressModel, isUpgrade: boolean, hasPurchased: boolean, bindHtmlElements: Function): void => {\r\n if (this.orderOverviewSideViewTemplate == null) {\r\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\r\n }\r\n\r\n if (this.orderOverviewSalesPackageTemplate == null) {\r\n this.orderOverviewSalesPackageTemplate = Handlebars.compile($(\"#order-overview-sales-package-template\").html());\r\n Handlebars.registerPartial(\"orderOverviewSalesPackageTemplate\", this.orderOverviewSalesPackageTemplate);\r\n }\r\n\r\n if (this.orderOverviewGameTemplate == null) {\r\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\r\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\r\n }\r\n\r\n const games = order.filter(o => o.type === \"game\")\r\n $(\".order-block--games\").toggle(games.length > 0);\r\n $(\".business-checkout__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\r\n games,\r\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\r\n summary,\r\n hasPurchased\r\n }));\r\n\r\n const sideBar = $(\".business-checkout__side-view\");\r\n const titleHeight = $($(\".business-checkout__title\")[checkoutProgress.currentStep - 1]).outerHeight(true);\r\n sideBar.css(\"top\", titleHeight);\r\n\r\n this.scrollInView(sideBar, titleHeight, checkoutProgress, isUpgrade);\r\n\r\n $(document).scroll(_.throttle(() => {\r\n this.scrollInView(sideBar, titleHeight, checkoutProgress, isUpgrade);\r\n }, 15));\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n private scrollInView = (sideBar: JQuery, titleHeight: number, checkoutProgress: CheckoutProgressModel, isUpgrade: boolean) => {\r\n let bottomContainer: JQuery;\r\n\r\n if (checkoutProgress.isStepOne()) {\r\n if (isUpgrade) {\r\n bottomContainer = $(\".business-checkout__forms\");\r\n }\r\n else {\r\n bottomContainer = $(\".business-checkout__administrator-info\");\r\n }\r\n }\r\n else if (checkoutProgress.isStepTwo()) {\r\n bottomContainer = $(\".payment-method__placeholder\");\r\n }\r\n else {\r\n bottomContainer = $(\".business-checkout__step-3\");\r\n }\r\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\r\n const currentScroll = $(document).scrollTop();\r\n const maxBottomPosition = currentScroll > bottomPosition ? bottomPosition : currentScroll - (sideBar.outerHeight(true) / 2) + (titleHeight * 2);\r\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\r\n }\r\n }\r\n}","module Business {\r\n export class PaymentMethodsRenderer {\r\n private paymentMethodsTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (\r\n paymentMethods: PaymentMethods,\r\n signUpDeadline: string,\r\n cdnUrl: string,\r\n bindClickListeners: Function\r\n ): void => {\r\n if (this.paymentMethodsTemplate == null) {\r\n this.paymentMethodsTemplate = Handlebars.compile($(\"#payment-methods-template\").html());\r\n }\r\n\r\n let expirationDate = moment.utc().add(14, 'days');\r\n const withinEventDeadline = moment.utc(signUpDeadline).isAfter(moment.utc()) && moment.utc(signUpDeadline).isBefore(expirationDate);\r\n if (withinEventDeadline) {\r\n expirationDate = moment.utc(signUpDeadline);\r\n }\r\n const invoiceDeadline = !withinEventDeadline\r\n ? new String(TranslationData.get(\"Business.InvoiceDeadlineAfterEventDeadline\")).format(expirationDate.locale(uiCulture).format(\"DD MMMM YYYY\"))\r\n : new String(TranslationData.get(\"Business.InvoiceDeadline\")).format(expirationDate.locale(uiCulture).format(\"DD MMMM YYYY\"));\r\n\r\n const creditcardGroups = paymentMethods.primaryPaymentMethods.filter(i => i.businessPaymentGroupType === \"CreditCard\");\r\n const secondaryCreditcardGroups = paymentMethods.secondaryPaymentMethods.filter(i => i.businessPaymentGroupType === \"CreditCard\");\r\n\r\n let finalPaymentMethods = paymentMethods;\r\n\r\n if (creditcardGroups.length > 0 && secondaryCreditcardGroups.length > 0) {\r\n const primaryPaymentGroups = paymentMethods.primaryPaymentMethods.filter(i => i.businessPaymentGroupType !== \"CreditCard\");\r\n const creditcardGroup = creditcardGroups[0];\r\n const secondaryCreditcardGroup = secondaryCreditcardGroups[0];\r\n\r\n creditcardGroup.paymentMethods.push(...secondaryCreditcardGroup.paymentMethods);\r\n\r\n primaryPaymentGroups.push(creditcardGroup);\r\n\r\n finalPaymentMethods.primaryPaymentMethods = primaryPaymentGroups;\r\n finalPaymentMethods.secondaryPaymentMethods = finalPaymentMethods.secondaryPaymentMethods.filter(i => i.businessPaymentGroupType !== \"CreditCard\");\r\n }\r\n\r\n $(\".payment-method__placeholder\").html(this.paymentMethodsTemplate({ paymentMethods: finalPaymentMethods, cdnUrl, invoiceDeadline }));\r\n\r\n bindClickListeners();\r\n }\r\n }\r\n}","module Business {\r\n export class ClientsRenderer {\r\n private _clientsTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public renderTemplate(imageUrls: Array, bindHtmlElements: Function): void {\r\n if (this._clientsTemplate == null) {\r\n this._clientsTemplate = Handlebars.compile($(\"#clients-template\").html());\r\n }\r\n\r\n var model = new ClientsCarouselModel(imageUrls);\r\n\r\n $(\".clients-placeholder\").html(this._clientsTemplate(model));\r\n\r\n if (model.multipleSlides) {\r\n bindHtmlElements();\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class DealsTableRenderer {\r\n private _dealsTableTemplate: HandlebarsTemplateDelegate;\r\n private _dealsTableRowTemplate: HandlebarsTemplateDelegate;\r\n private _viewModel: DealsTableModel;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderEmptyTemplate() {\r\n this.renderTemplateForModel(DealsTableModel.createEmpty(), () => { });\r\n }\r\n\r\n public renderTemplateWithNewDeals(earlyBirdDiscount: EarlyBirdDiscount, marketDeals: Array, selectedDeal: Deal, preSelectDeal: boolean, centerDeal: boolean, bindHtmlElements: Function): void {\r\n this._viewModel = DealsTableModel.fromDto(earlyBirdDiscount, marketDeals, selectedDeal, preSelectDeal, centerDeal, this._viewModel?.middleTier?.count);\r\n this.renderTemplateForModel(this._viewModel, bindHtmlElements);\r\n }\r\n\r\n public renderTemplateWithNewSelection(selectedDeal: Deal, bindHtmlElements: Function) {\r\n this._viewModel.setSelectedDeal(selectedDeal);\r\n this.renderTemplateForModel(this._viewModel, bindHtmlElements);\r\n }\r\n\r\n private renderTemplateForModel(dealsTable: DealsTableModel, bindHtmlElements: Function): void {\r\n if (this._dealsTableTemplate == null) {\r\n this._dealsTableTemplate = Handlebars.compile($(\"#deals-table-template\").html());\r\n }\r\n\r\n if (this._dealsTableRowTemplate == null) {\r\n this._dealsTableRowTemplate = Handlebars.compile($(\"#deals-table-row-template\").html());\r\n Handlebars.registerPartial(\"dealstablerowpartial\", this._dealsTableRowTemplate);\r\n }\r\n $(\".deals-table-placeholder\").html(this._dealsTableTemplate(dealsTable));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class HelpRenderer {\r\n private _faqTabTemplate: HandlebarsTemplateDelegate;\r\n private _faqQuestionTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(faqModel: FaqQuestions, bindHtmlElements: Function): void {\r\n if (this._faqTabTemplate == null) {\r\n this._faqTabTemplate = Handlebars.compile($(\"#faq-template\").html());\r\n }\r\n\r\n if (this._faqQuestionTemplate == null) {\r\n this._faqQuestionTemplate = Handlebars.compile($(\"#faq-question-template\").html());\r\n Handlebars.registerPartial(\"faqquestionpartial\", this._faqQuestionTemplate);\r\n }\r\n\r\n $(\".faq-placeholder\").html(this._faqTabTemplate(faqModel));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class BrochurePopupRenderer {\r\n private brochurePopupTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(bindHtmlElements: Function): void {\r\n if (this.brochurePopupTemplate == null) {\r\n this.brochurePopupTemplate = Handlebars.compile($(\"#brochure-popup-template\").html());\r\n }\r\n\r\n $(\".brochure-popup-placeholder\").html(this.brochurePopupTemplate({}));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class BrochureRenderer {\r\n private _brochureTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (marketId: number, regionId: number, bindHtmlElements: Function): void => {\r\n if (this._brochureTemplate == null) {\r\n this._brochureTemplate = Handlebars.compile($(\"#promotional-brochure-template\").html());\r\n }\r\n\r\n const brochureModel = new BrochurePromotionalBlockModel(marketId, regionId);\r\n if (!brochureModel.isEmpty()) {\r\n $(\".brochure-placeholder\").show()\r\n $(\".brochure-placeholder\").html(this._brochureTemplate(brochureModel));\r\n } else {\r\n $(\".brochure-placeholder\").hide()\r\n }\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class GameTabsRenderer {\r\n private _gameTabsTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(gameTabs: GameTabs, selectedGame: number, bindHtmlElements: Function): void {\r\n if (this._gameTabsTemplate == null) {\r\n this._gameTabsTemplate = Handlebars.compile($(\"#game-tabs-template\").html());\r\n }\r\n var model: GameTabsModel = new GameTabsModel();\r\n gameTabs.gameTabs.forEach((gameTab) => {\r\n model.gameTabs.push(new GameTabModel(gameTab.gameId, gameTab.gameId == selectedGame, null, null, null));\r\n });\r\n\r\n $(\".game-tabs-placeholder\").html(this._gameTabsTemplate(model));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class HeaderRenderer {\r\n private _headerTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(gameTabs: GameTabs, selectedGame: number, bindHtmlElements: Function): void {\r\n if (this._headerTemplate == null) {\r\n this._headerTemplate = Handlebars.compile($(\"#header-template\").html());\r\n }\r\n\r\n var model: GameTabsModel = new GameTabsModel();\r\n var selectedIndex: number;\r\n gameTabs.gameTabs.forEach((gameTab, index) => {\r\n var selected = gameTab.gameId == selectedGame;\r\n if (selected)\r\n selectedIndex = index;\r\n\r\n model.gameTabs.push(new GameTabModel(gameTab.gameId, selected, gameTab.headerImageUrl, gameTab.carouselImageUrls, gameTab.salesHeaderImageUrl));\r\n });\r\n\r\n $('.business-header-placeholder').html(this._headerTemplate(model));\r\n\r\n bindHtmlElements(selectedIndex);\r\n }\r\n }\r\n}","module Business {\r\n export class MarketTabsRenderer {\r\n private _marketTabsTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(gameTab: GameTab, selectedMarket: number, showMarketDropdown: boolean, bindHtmlElements: Function): void {\r\n if (this._marketTabsTemplate == null) {\r\n this._marketTabsTemplate = Handlebars.compile($(\"#market-tabs-template\").html());\r\n }\r\n var model: MarketTabsModel = new MarketTabsModel();\r\n gameTab.marketTabs.forEach((marketTab) => {\r\n model.marketTabs.push(new MarketTabModel(marketTab.marketId, marketTab.marketId == selectedMarket));\r\n });\r\n\r\n $(\".market-tabs-placeholder\").html(showMarketDropdown ? this._marketTabsTemplate(model) : \"\");\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public renderEmpty() {\r\n $(\".market-tabs-placeholder\").html('');\r\n }\r\n }\r\n}","module Business {\r\n export class PromotionalVideoRenderer {\r\n\r\n public renderTemplate = (marketId: number, regionId: number, callback?: Function): void => {\r\n\r\n const videoModel = _.first(VideoPromotionalBlockModel.getVideoPromotionalBlockModel(marketId, regionId));\r\n if (videoModel) {\r\n if (videoModel.videoUrl?.indexOf(\"youtube.com/embed/\") !== -1) {\r\n\r\n const html = ``;\r\n $(\".promotional-video__video-player\").html(html)\r\n $(\".promotional-column\").show();\r\n\r\n callback?.();\r\n }\r\n else {\r\n $(\".promotional-column\").hide();\r\n }\r\n } else {\r\n $(\".promotional-column\").hide();\r\n }\r\n\r\n }\r\n }\r\n}","module Business {\r\n export class CouponRenderer {\r\n private _couponTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(bindHtmlElements: Function): void {\r\n if (this._couponTemplate == null) {\r\n this._couponTemplate = Handlebars.compile($(\"#coupon-template\").html());\r\n }\r\n\r\n const salesPackageIds = OrderInformationModel.getOrderInformationFromLocalStorage()?.getSalesPackageIds()?? [];\r\n if (salesPackageIds.length > 0) {\r\n $(\".order-block--sales-packages .coupon-placeholder\").html(this._couponTemplate);\r\n $(\".order-block--games .order-block__seperator\").hide();\r\n $(\".order-block--games .order-block__summary\").hide();\r\n }\r\n else {\r\n $(\".order-block--games .coupon-placeholder\").html(this._couponTemplate);\r\n $(\".order-block--sales-packages .order-block__seperator\").hide();\r\n $(\".order-block--sales-packages .order-block__summary\").hide();\r\n }\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class OrderFormRenderer {\r\n private _orderFormTemplate: HandlebarsTemplateDelegate;\r\n private _alreadyPurchasedorderFormTemplate: HandlebarsTemplateDelegate;\r\n private _viewModel: OrderFormModel;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplateWithNewModel(viewModel: OrderFormModel, bindHtmlElements: Function) {\r\n this._viewModel = viewModel;\r\n this.renderTemplateWithModel(bindHtmlElements);\r\n }\r\n\r\n public renderError(bindHtmlElements: Function) {\r\n this._viewModel.hasError = true;\r\n this.renderTemplateWithModel(bindHtmlElements);\r\n }\r\n\r\n public renderMarketError(bindHtmlElements: Function) {\r\n this._viewModel.hasMarketError = true;\r\n this.renderTemplateWithModel(bindHtmlElements);\r\n }\r\n\r\n public hide() {\r\n $(\".order-form-placeholder\").html(\"\");\r\n }\r\n\r\n private renderTemplateWithModel(bindHtmlElements: Function) {\r\n if (this._orderFormTemplate == null) {\r\n this._orderFormTemplate = Handlebars.compile($(\"#order-form-template\").html());\r\n }\r\n $(\".order-form-placeholder\").html(this._orderFormTemplate(this._viewModel));\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public renderAlreadyPurchased = (viewModel: OrderFormModel, callback: Function) => {\r\n if (this._alreadyPurchasedorderFormTemplate == null) {\r\n this._alreadyPurchasedorderFormTemplate = Handlebars.compile($(\"#already-purchased-order-form-template\").html());\r\n }\r\n\r\n $(\".order-form-placeholder\").html(this._alreadyPurchasedorderFormTemplate(viewModel));\r\n\r\n callback();\r\n }\r\n }\r\n}","module Business {\r\n export class QuestionsRenderer {\r\n private _questionsTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public renderTemplate(model: QuestionsModel): void {\r\n if (this._questionsTemplate == null) {\r\n this._questionsTemplate = Handlebars.compile($(\"#questions-template\").html());\r\n }\r\n\r\n $(\".questions-placeholder\").html(this._questionsTemplate(model));\r\n }\r\n }\r\n}","module Business {\r\n export class SalesPackageImagePopupRenderer {\r\n private salesPackageImagePopupTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(marketSalesPackage: MarketSalesPackage, bindHtmlElements: Function): void {\r\n if (this.salesPackageImagePopupTemplate == null) {\r\n this.salesPackageImagePopupTemplate = Handlebars.compile($(\"#sales-package-image-popup-template\").html());\r\n }\r\n\r\n $(\".sales-package-image-popup-placeholder\").html(this.salesPackageImagePopupTemplate({\r\n imageUrls: marketSalesPackage.imageUrls,\r\n hasCarousel: marketSalesPackage.imageUrls.length > 1,\r\n description: TranslationData.get(`Business.SalesPackage.${marketSalesPackage.id}.PopupDescription`),\r\n }));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}\r\n","module Business {\r\n export class SalesPackageItemsRenderer {\r\n private salesPackageItemsTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderTemplate = (\r\n salesPackages: MarketSalesPackagesResult,\r\n salesPackageIdsWithAmounts: Record,\r\n bindClickListeners: Function\r\n ): void => {\r\n if (this.salesPackageItemsTemplate == null) {\r\n this.salesPackageItemsTemplate = Handlebars.compile($(\"#sales-package-items-template\").html());\r\n }\r\n\r\n const page = SalesPackageProgressModel.getFromLocalStorage().currentPage;\r\n const filteredSalesPackages = salesPackages.getSalesPackagesByPageType(page);\r\n const salesPackagesViewModels = filteredSalesPackages.map(x => new SalesPackageViewModel(salesPackageIdsWithAmounts?.[x.id] ?? 0, x));\r\n\r\n let salesPackageTitleKey;\r\n switch (page) {\r\n case SalesPackageType.BrandingPackage:\r\n salesPackageTitleKey = \"Business.SalesPackage.Branding.Title\";\r\n break;\r\n case SalesPackageType.PromotionalPackage:\r\n salesPackageTitleKey = \"Business.SalesPackage.Promotional.Title\";\r\n break;\r\n case SalesPackageType.TrophyPackage:\r\n salesPackageTitleKey = \"Business.SalesPackage.Trophy.Title\";\r\n break;\r\n }\r\n\r\n $(\".sales-package-items__placeholder\").html(this.salesPackageItemsTemplate({\r\n salesPackages: salesPackagesViewModels,\r\n salesPackageTitle: TranslationData.get(salesPackageTitleKey)\r\n }));\r\n\r\n salesPackagesViewModels.forEach((salesPackage) => {\r\n this.updateAmountButtons($(`.sales-package__row[data-id=\"${salesPackage.id}\"]`), salesPackage.amountSelected, salesPackage);\r\n });\r\n\r\n bindClickListeners();\r\n }\r\n\r\n public updateNavigationButtons = (selectionByType: Selection, selectionStateByPackages: SelectionState[], nextPage: SalesPackageType | null, isCartEmpty: boolean) => {\r\n\r\n if (nextPage == null && isCartEmpty) {\r\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\r\n return;\r\n }\r\n\r\n if (selectionStateByPackages.some(s => s === \"Invalid\")) {\r\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\r\n $(\".sales-package__button-description\").addModifiers(\"invalid\");\r\n return;\r\n }\r\n\r\n if (selectionByType.state === \"ValidNothingSelected\") {\r\n $(\".sales-package__button-description\").css(\"visibility\", \"hidden\");\r\n $(\".sales-package__button--next\").removeModifiers(\"disabled\");\r\n return;\r\n }\r\n\r\n $(\".sales-package__button-description\").css(\"visibility\", \"unset\");\r\n $(\".sales-package__button-description\").text(format(TranslationData.get(\"Business.SalesPackage.MinimumRequiredMessage\"), selectionByType.minimumRequired.toString()));\r\n\r\n if (selectionByType.state === \"Invalid\") {\r\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\r\n $(\".sales-package__button-description\").addModifiers(\"invalid\");\r\n }\r\n else {\r\n $(\".sales-package__button--next\").removeModifiers(\"disabled\");\r\n $(\".sales-package__button-description\").removeModifiers(\"invalid\");\r\n }\r\n }\r\n\r\n public updateAmountButtons = (packageRow: JQuery, amount: number, salesPackage: MarketSalesPackage) => {\r\n if (amount != 0) {\r\n packageRow.find(\".sales-package__amount-input\").val(amount.toString());\r\n } else {\r\n packageRow.find(\".sales-package__amount-input\").val(\"\");\r\n }\r\n\r\n const visibility = (amount > 0 || packageRow.find(\".sales-package__amount-input\").is(\":focus\")) ? \"unset\" : \"hidden\";\r\n packageRow.find(\".sales-package__amount-button--decrease\").css(\"visibility\", visibility);\r\n packageRow.find(\".sales-package__amount-input\").css(\"visibility\", visibility);\r\n packageRow.find(\".sales-package__min-purchase-required\").css(\"visibility\", visibility);\r\n\r\n if (salesPackage.minPurchasesRequired < 2) {\r\n packageRow.find(\".sales-package__min-purchase-required\").remove();\r\n }\r\n else if (amount > 0 && amount < salesPackage.minPurchasesRequired) {\r\n const text = format(TranslationData.get(\"Business.SalesPackage.MinimumRequiredMessage\"), salesPackage.minPurchasesRequired.toString());\r\n packageRow.find(\".sales-package__min-purchase-required\").text(text);\r\n packageRow.find(\".sales-package__min-purchase-required\").addModifiers(\"invalid\");\r\n }\r\n else {\r\n packageRow.find(\".sales-package__min-purchase-required\").removeModifiers(\"invalid\");\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class SalesPackageSideViewRenderer {\r\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\r\n private orderOverviewSalesPackageTemplate: HandlebarsTemplateDelegate;\r\n\r\n public renderSideViewTemplate = (summary: SummaryModel, order: (PackageRowModel | SalesPackageRowModel)[], hasPurchased: boolean, bindHtmlElements: Function): void => {\r\n if (this.orderOverviewSideViewTemplate == null) {\r\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\r\n }\r\n\r\n if (this.orderOverviewGameTemplate == null) {\r\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\r\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\r\n }\r\n\r\n if (this.orderOverviewSalesPackageTemplate == null) {\r\n this.orderOverviewSalesPackageTemplate = Handlebars.compile($(\"#order-overview-sales-package-template\").html());\r\n Handlebars.registerPartial(\"orderOverviewSalesPackageTemplate\", this.orderOverviewSalesPackageTemplate);\r\n }\r\n\r\n $(\".sales-package__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\r\n games: order.filter(o => o.type === \"game\"),\r\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\r\n summary,\r\n hasPurchased\r\n }));\r\n\r\n $(\".order-overview-side-view\").toggle(order.length > 0);\r\n\r\n const sideBar = $(\".sales-package__side-view\");\r\n const titleHeight = $(\".sales-package__title\").outerHeight(true);\r\n sideBar.css(\"top\", titleHeight);\r\n\r\n this.scrollInView(sideBar, titleHeight);\r\n\r\n $(document).scroll(_.throttle(() => {\r\n this.scrollInView(sideBar, titleHeight);\r\n }, 15));\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n private scrollInView = (sideBar: JQuery, titleHeight: number) => {\r\n const bottomContainer = $(\".sales-package__container\");\r\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\r\n const currentScroll = $(document).scrollTop();\r\n const maxBottomPosition = currentScroll > bottomPosition ? bottomPosition : currentScroll - (sideBar.outerHeight(true) / 2) + (titleHeight * 2);\r\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\r\n }\r\n }\r\n}","module Business {\r\n export class StepsRenderer {\r\n private _stepsTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public renderTemplate(model: StepModel): void {\r\n if (this._stepsTemplate == null) {\r\n this._stepsTemplate = Handlebars.compile($(\"#steps-template\").html());\r\n }\r\n\r\n $(\".steps-placeholder\").html(this._stepsTemplate(model));\r\n }\r\n }\r\n}","module Business {\r\n\r\n export class PopupRenderer {\r\n private _accountCheckTemplate: HandlebarsTemplateDelegate;\r\n private _extendAccountTemplate: HandlebarsTemplateDelegate;\r\n private _loginTemplate: HandlebarsTemplateDelegate;\r\n private _forgotPasswordTemplate: HandlebarsTemplateDelegate;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n public renderAccountCheck(bindHtmlElements :Function) {\r\n if (this._accountCheckTemplate == null) {\r\n this._accountCheckTemplate = Handlebars.compile($(\"#uservalidation-accountcheck-template\").html());\r\n }\r\n\r\n this.setTitle(TranslationData.get(\"Business.Order.Popup.AccountCheck\"));\r\n\r\n $('.uservalidation-popup-placeholder').html(this._accountCheckTemplate);\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public renderExtendAccount(bindHtmlElements: Function) {\r\n if (this._extendAccountTemplate == null) {\r\n this._extendAccountTemplate = Handlebars.compile($(\"#uservalidation-extendaccount-template\").html());\r\n }\r\n\r\n this.setTitle(TranslationData.get(\"Business.Order.Popup.ExtendAccount\"));\r\n\r\n $('.uservalidation-popup-placeholder').html(this._extendAccountTemplate);\r\n\r\n bindHtmlElements();\r\n }\r\n\r\n public renderLogin(bindHtmlElements: Function) {\r\n if (this._loginTemplate == null) {\r\n this._loginTemplate = Handlebars.compile($(\"#uservalidation-login-template\").html());\r\n }\r\n\r\n this.setTitle(TranslationData.get(\"Business.Order.Popup.Login\"));\r\n\r\n $('.uservalidation-popup-placeholder').html(this._loginTemplate);\r\n\r\n bindHtmlElements();\r\n } \r\n \r\n public renderForgotPassword(bindHtmlElements: Function) { \r\n if (this._forgotPasswordTemplate == null) {\r\n this._forgotPasswordTemplate = Handlebars.compile($(\"#uservalidation-forgotpassword-template\").html());\r\n }\r\n\r\n this.setTitle(TranslationData.get(\"Business.Order.Popup.FogotPassword\"));\r\n\r\n $('.uservalidation-popup-placeholder').html(this._forgotPasswordTemplate);\r\n\r\n bindHtmlElements(); \r\n }\r\n\r\n private setTitle(title: string) {\r\n $('#uservalidation-popup').find(\".boxheader .boxheaderTitle\").html(title);\r\n }\r\n }\r\n}","///\r\n\r\nmodule Business {\r\n export class CheckoutInformationModel extends SalesAccountData {\r\n\r\n public static localStorageKey = \"sales.CheckoutInformation\";\r\n\r\n public username: string;\r\n public countryCallingCode: string;\r\n public adminCountryCallingCode: string;\r\n\r\n public readonly timestamp: string;\r\n\r\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) {\r\n super(isLoggedInWithBusinessAccount, isClientAdministrator, companyOrganisationName, companyAddress, companyZipCode, companyCityName, companyCountryId, companyPhoneNumber, companyVatNumber, invoiceRecipientName, invoiceRecipientEmail, purchaseOrderNumber, administratorGender, administratorName, administratorInfix, administratorSurname, administratorPhoneNumber, administratorEmail);\r\n this.username = username;\r\n this.countryCallingCode = countryCallingCode;\r\n this.adminCountryCallingCode = adminCountryCallingCode;\r\n this.timestamp = timestamp;\r\n }\r\n\r\n public static getFromLocalStorage = (): CheckoutInformationModel => {\r\n const storageObject = JSON.parse(localStorage.getItem(CheckoutInformationModel.localStorageKey));\r\n if (storageObject != null) {\r\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\r\n CheckoutInformationModel.deleteFromLocalStorage();\r\n return null;\r\n }\r\n return new CheckoutInformationModel(\r\n storageObject.isLoggedInWithBusinessAccount,\r\n storageObject.isClientAdministrator,\r\n storageObject.companyOrganisationName,\r\n storageObject.companyAddress,\r\n storageObject.companyZipCode,\r\n storageObject.companyCityName,\r\n storageObject.companyCountryId,\r\n storageObject.companyPhoneNumber,\r\n storageObject.companyVATNumber,\r\n storageObject.invoiceRecipientName,\r\n storageObject.invoiceRecipientEmail,\r\n storageObject.poNumber,\r\n storageObject.administratorGender,\r\n storageObject.administratorName,\r\n storageObject.administratorInfix,\r\n storageObject.administratorSurname,\r\n storageObject.administratorPhoneNumber,\r\n storageObject.administratorEmail,\r\n storageObject.username,\r\n storageObject.countryCallingCode,\r\n storageObject.adminCountryCallingCode,\r\n storageObject.timestamp\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n static fromDto(salesAccountData: SalesAccountData, countries: Platform.Countries, administratorCountryId) {\r\n return new CheckoutInformationModel(\r\n salesAccountData.isLoggedInWithBusinessAccount,\r\n salesAccountData.isClientAdministrator,\r\n salesAccountData.companyOrganisationName,\r\n salesAccountData.companyAddress,\r\n salesAccountData.companyZipCode,\r\n salesAccountData.companyCityName,\r\n salesAccountData.companyCountryId,\r\n salesAccountData.companyPhoneNumber,\r\n salesAccountData.companyVATNumber,\r\n salesAccountData.invoiceRecipientName,\r\n salesAccountData.invoiceRecipientEmail,\r\n salesAccountData.poNumber,\r\n salesAccountData.administratorGender,\r\n salesAccountData.administratorName,\r\n salesAccountData.administratorInfix,\r\n salesAccountData.administratorSurname,\r\n salesAccountData.administratorPhoneNumber,\r\n salesAccountData.administratorEmail,\r\n \"\",\r\n countries.getById(salesAccountData.companyCountryId)?.countryCallingCode ?? \"\",\r\n countries.getById(administratorCountryId)?.countryCallingCode ?? \"\",\r\n new Date().toISOString()\r\n );\r\n }\r\n\r\n public saveToLocalStorage(): void {\r\n localStorage.setItem(CheckoutInformationModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static deleteFromLocalStorage(): void {\r\n localStorage.removeItem(CheckoutInformationModel.localStorageKey);\r\n }\r\n }\r\n}","module Business {\r\n export class CheckoutProgressModel {\r\n public static readonly localStorageKey = \"sales.CheckoutProgress\";\r\n\r\n public currentStep: CheckoutProgressStep;\r\n\r\n private constructor(step: CheckoutProgressStep) {\r\n this.updateStep(step);\r\n }\r\n\r\n public updateStep = (step: CheckoutProgressStep) => {\r\n this.currentStep = step;\r\n this.saveToLocalStorage();\r\n }\r\n\r\n public isStepOne = () => {\r\n return this.currentStep === CheckoutProgressStep.One;\r\n }\r\n\r\n public isStepTwo = () => {\r\n return this.currentStep === CheckoutProgressStep.Two;\r\n }\r\n\r\n public isStepThree = () => {\r\n return this.currentStep === CheckoutProgressStep.Three;\r\n }\r\n\r\n public saveToLocalStorage = (): void => {\r\n localStorage.setItem(CheckoutProgressModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static getFromLocalStorage = (): CheckoutProgressModel => {\r\n const storageObject = JSON.parse(localStorage.getItem(CheckoutProgressModel.localStorageKey));\r\n if (storageObject != null) {\r\n return new CheckoutProgressModel(storageObject.currentStep);\r\n }\r\n else {\r\n return new CheckoutProgressModel(CheckoutProgressStep.One);\r\n }\r\n }\r\n\r\n public static deleteFromLocalStorage = (): void => {\r\n localStorage.removeItem(CheckoutProgressModel.localStorageKey);\r\n }\r\n }\r\n}","module Business {\r\n export class PaymentInformationModel {\r\n public static localStorageKey = \"sales.PaymentInformation\";\r\n\r\n public payByInvoice: boolean;\r\n public paymentGroupType: string;\r\n\r\n public readonly timestamp: string;\r\n\r\n constructor(payByInvoice: boolean, paymentGroupType: string, timestamp: string) {\r\n this.payByInvoice = payByInvoice;\r\n this.paymentGroupType = paymentGroupType;\r\n this.timestamp = timestamp;\r\n }\r\n\r\n public static getFromLocalStorage = (): PaymentInformationModel => {\r\n const storageObject = JSON.parse(localStorage.getItem(PaymentInformationModel.localStorageKey));\r\n if (storageObject != null) {\r\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\r\n PaymentInformationModel.deleteFromLocalStorage();\r\n return null;\r\n }\r\n return new PaymentInformationModel(\r\n storageObject.payByInvoice,\r\n storageObject.paymentGroupType,\r\n storageObject.timestamp\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public saveToLocalStorage(): void {\r\n localStorage.setItem(PaymentInformationModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static deleteFromLocalStorage(): void {\r\n localStorage.removeItem(PaymentInformationModel.localStorageKey);\r\n }\r\n }\r\n}","module Business {\r\n export class ClientsCarouselModel {\r\n private _imagesPerSlide: number = 12;\r\n\r\n public multipleSlides: boolean;\r\n public slides: Array>;\r\n\r\n constructor(imageUrls: Array) {\r\n this.multipleSlides = imageUrls.length > this._imagesPerSlide;\r\n\r\n this.slides = new Array();\r\n while (imageUrls.length) {\r\n this.slides.push(imageUrls.splice(0, this._imagesPerSlide));\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class DealModel {\r\n public id: number;\r\n public price: number;\r\n\r\n constructor(id: number, price: number) {\r\n this.id = id;\r\n this.price = price;\r\n }\r\n }\r\n}","module Business {\r\n export class DealsTableModel {\r\n public hasDeal: boolean;\r\n\r\n public lesserTier: DealsTierModel;\r\n public middleTier: DealsTierModel;\r\n public upperTier: DealsTierModel;\r\n\r\n public selectedDeal: number;\r\n\r\n public discount: boolean;\r\n public discountLabel: string;\r\n\r\n public recommendedPackage: PackageType | number;\r\n\r\n constructor(lesser: DealsTierModel, middle: DealsTierModel, upper: DealsTierModel, dealId: number, recommendedPackage: PackageType, hasDeal: boolean, selectDeal: boolean) {\r\n \r\n this.hasDeal = hasDeal;\r\n if (hasDeal) {\r\n this.lesserTier = lesser;\r\n this.middleTier = middle;\r\n this.upperTier = upper;\r\n\r\n if (selectDeal) {\r\n this.selectedDeal = dealId;\r\n this.recommendedPackage = recommendedPackage;\r\n }\r\n else {\r\n this.selectedDeal = 0;\r\n this.recommendedPackage = 0;\r\n }\r\n }\r\n }\r\n\r\n public setSelectedDeal(deal: Deal) {\r\n this.recommendedPackage = deal.packageType;\r\n this.selectedDeal = deal.id;\r\n }\r\n\r\n public setDiscount(percentage: number, expiryDate: any): void {\r\n this.discount = true;\r\n\r\n this.discountLabel = new String(TranslationData.get(\"Sales.Package.DiscountLabel\"))\r\n .format(\r\n DateTimeData.getValue(expiryDate, DateTimeFormatType.ShortDateOnly),\r\n percentage.toString());\r\n }\r\n\r\n public static createEmpty(): Business.DealsTableModel {\r\n var empty = new Business.DealsTableModel(null, null, null, null, null, false, false);\r\n empty.hasDeal = false;\r\n return empty;\r\n }\r\n\r\n public static fromDto = (earlyBirdDiscount: EarlyBirdDiscount, marketDeals: Array, selectedDeal: Deal, preSelectDeal: boolean, centerDeal: boolean, middleParticipantCount: number = null) => {\r\n const indexedDealTiers: { [id: number]: DealsTierModel } = {};\r\n const participantCountArray: Array = new Array();\r\n\r\n marketDeals.forEach((deal: Deal) => {\r\n if (indexedDealTiers[deal.participantCount] == null) {\r\n participantCountArray.push(deal.participantCount);\r\n var model = new DealsTierModel();\r\n model.count = deal.participantCount;\r\n indexedDealTiers[deal.participantCount] = model;\r\n }\r\n indexedDealTiers[deal.participantCount].setDeal(deal);\r\n });\r\n\r\n participantCountArray.sort((a, b) => { return a - b });\r\n\r\n var lesserTier: DealsTierModel;\r\n var middleTier: DealsTierModel;\r\n var greaterTier: DealsTierModel;\r\n\r\n var index = participantCountArray.indexOf(selectedDeal.participantCount);\r\n\r\n if (index == 0) {\r\n lesserTier = indexedDealTiers[participantCountArray[0]];\r\n middleTier = indexedDealTiers[participantCountArray[1]];\r\n greaterTier = indexedDealTiers[participantCountArray[2]];\r\n }\r\n else if (index == participantCountArray.length - 1) {\r\n lesserTier = indexedDealTiers[participantCountArray[index - 2]];\r\n middleTier = indexedDealTiers[participantCountArray[index - 1]];\r\n greaterTier = indexedDealTiers[participantCountArray[index]];\r\n }\r\n else if (!centerDeal && middleParticipantCount !== null) {\r\n const middleIndex = participantCountArray.indexOf(middleParticipantCount);\r\n lesserTier = indexedDealTiers[participantCountArray[middleIndex - 1]];\r\n middleTier = indexedDealTiers[participantCountArray[middleIndex]];\r\n greaterTier = indexedDealTiers[participantCountArray[middleIndex + 1]];\r\n }\r\n else {\r\n lesserTier = indexedDealTiers[participantCountArray[index - 1]];\r\n middleTier = indexedDealTiers[participantCountArray[index]];\r\n greaterTier = indexedDealTiers[participantCountArray[index + 1]];\r\n }\r\n\r\n var dealsTableModel = new DealsTableModel(lesserTier, middleTier, greaterTier, selectedDeal.id, selectedDeal.packageType, true, preSelectDeal);\r\n\r\n if (earlyBirdDiscount != null && !earlyBirdDiscount.isExpired()) {\r\n dealsTableModel.setDiscount(earlyBirdDiscount.discount, earlyBirdDiscount.expiryDate);\r\n }\r\n\r\n return dealsTableModel;\r\n }\r\n }\r\n}","module Business {\r\n export class DealsTierModel {\r\n\r\n public count: number;\r\n\r\n public budgetPrice: number;\r\n public businessPrice: number;\r\n public corporatePrice: number;\r\n\r\n public budgetDeal: DealModel;\r\n public businessDeal: DealModel;\r\n public corporateDeal: DealModel;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public setDeal(marketDeal: Deal) {\r\n switch (marketDeal.packageType) {\r\n case PackageType.Budget:\r\n this.budgetDeal = new DealModel(marketDeal.id, marketDeal.price);\r\n break;\r\n case PackageType.Business:\r\n this.businessDeal = new DealModel(marketDeal.id, marketDeal.price);\r\n break;\r\n case PackageType.Professional:\r\n this.corporateDeal = new DealModel(marketDeal.id, marketDeal.price);\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n public setPrice(packageType: PackageType, price: number) {\r\n switch (packageType) {\r\n case PackageType.Budget:\r\n this.budgetPrice = price;\r\n break;\r\n case PackageType.Business:\r\n this.businessPrice = price;\r\n break;\r\n case PackageType.Professional:\r\n this.corporatePrice = price;\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class BrochurePromotionalBlockModel extends PromotionalBlockModel {\r\n private brochureUrl: string;\r\n private brochureUrlLabel: string;\r\n\r\n constructor(marketId: number, regionId: number) {\r\n super(marketId, regionId);\r\n\r\n this.brochureUrlLabel = `Business.Brochure.${this.marketId}.${this.regionId}`;\r\n this.description = TranslationData.get(\"Business.RequestBrochure\");\r\n this.thumbnail = `background: linear-gradient(rgba(0,0,0, 0.2), rgba(0,0,0, 0.2)), url('/images/business/260x170-brochure.jpg');`;\r\n this.brochureUrl = TranslationData.get(this.brochureUrlLabel);\r\n }\r\n\r\n public isEmpty() {\r\n return this.brochureUrl === this.brochureUrlLabel;\r\n }\r\n\r\n public getType = () => \"brochure\";\r\n\r\n public isBrochure = () => true;\r\n public isVideo = () => false;\r\n }\r\n}","module Business {\r\n export class GameTabModel {\r\n public gameId: number;\r\n public label: string;\r\n public selected: boolean;\r\n public headerImageUrl: string;\r\n public saleHeaderUrl: string;\r\n public carouselImageUrls: Array;\r\n\r\n constructor(gameId: number, selected: boolean, headerImageUrl: string, carouselImageUrls: Array, saleHeaderUrl: string) {\r\n this.gameId = gameId;\r\n this.label = TranslationData.get(`Scorito.GameType.${KnownGameIds[gameId]}`);\r\n this.selected = selected;\r\n this.headerImageUrl = headerImageUrl;\r\n this.carouselImageUrls = carouselImageUrls;\r\n this.saleHeaderUrl = saleHeaderUrl;\r\n }\r\n }\r\n}","module Business {\r\n export class GameTabsModel {\r\n public gameTabs: Array = new Array();\r\n }\r\n}","module Business {\r\n export class MarketTabModel {\r\n public marketId: number;\r\n public label: string;\r\n public selected: boolean;\r\n\r\n constructor(marketId: number, selected: boolean) {\r\n this.marketId = marketId;\r\n this.label = TranslationData.get(`Sales.Package.MarketTab.${marketId}`);\r\n this.selected = selected;\r\n }\r\n }\r\n}","module Business {\r\n export class MarketTabsModel {\r\n public marketTabs: Array = new Array();\r\n }\r\n}","module Business {\r\n export class VideoPromotionalBlockModel extends PromotionalBlockModel {\r\n public videoUrl: string;\r\n\r\n private constructor(marketId: number, regionId: number, videoUrl: string, index: number) {\r\n super(marketId, regionId);\r\n\r\n const indexSuffix = index > 0 ? `.${index}` : \"\";\r\n this.description = TranslationData.get(`Business.PromotionalText${index > 0 ? `.${marketId}${indexSuffix}` : \"\"}`);\r\n this.thumbnail = `background-image: url('${TranslationData.get(`Business.PromotionalVideo.Placeholder.${marketId}${indexSuffix}`)}')`;\r\n this.videoUrl = videoUrl;\r\n }\r\n\r\n public isEmpty = () => String.isNullOrEmpty(this.videoUrl);\r\n\r\n public getType = () => \"video\";\r\n\r\n public isBrochure = () => false;\r\n public isVideo = () => true;\r\n\r\n public static getVideoPromotionalBlockModel = (marketId: number, regionId: number): VideoPromotionalBlockModel[] => {\r\n const videoUrlLabel = `Business.PromotionalVideo.${marketId}.${regionId}`;\r\n const videoUrls = TranslationData.get(videoUrlLabel);\r\n const models: VideoPromotionalBlockModel[] = [];\r\n\r\n if (videoUrlLabel === videoUrls) {\r\n return models;\r\n }\r\n\r\n videoUrls.split(\" \").forEach((url, index) => {\r\n models.push(new VideoPromotionalBlockModel(marketId, regionId, url, index));\r\n });\r\n\r\n return models;\r\n }\r\n }\r\n}","module Business {\r\n export class CartRenderer {\r\n private _packageRowTemplate: HandlebarsTemplateDelegate;\r\n private _salesPackageRowTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate = (cartModel: CartModel, bindHtmlElements: () => void): void => {\r\n\r\n if (this._packageRowTemplate == null) {\r\n this._packageRowTemplate = Handlebars.compile($(\"#package-row-template\").html());\r\n }\r\n\r\n if (this._salesPackageRowTemplate == null) {\r\n this._salesPackageRowTemplate = Handlebars.compile($(\"#sales-package-row-template\").html());\r\n }\r\n\r\n $(\".order-block--sales-packages\").toggle(cartModel.hasSalesPackage());\r\n\r\n $(\".order-block--games .order-block__order-placeholder\").html(this._packageRowTemplate(cartModel.getByType(\"game\")));\r\n\r\n $(\".order-block--sales-packages .order-block__order-placeholder\").html(this._salesPackageRowTemplate(cartModel.getByType(\"salesPackage\")));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class SummaryRenderer {\r\n private _summaryTemplate: HandlebarsTemplateDelegate;\r\n private _summaryGamesTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate = (model: SummaryModel) => {\r\n if (this._summaryTemplate == null) {\r\n this._summaryTemplate = Handlebars.compile($(\"#summary-template\").html());\r\n }\r\n if (this._summaryGamesTemplate == null) {\r\n this._summaryGamesTemplate = Handlebars.compile($(\"#summary-games-template\").html());\r\n }\r\n\r\n if (model.hasSalesPackage) {\r\n $(\".order-block--games .summary-games-placeholder\").html(this._summaryGamesTemplate(model));\r\n $(\".order-block--sales-packages .summary-placeholder\").html(this._summaryTemplate(model));\r\n }\r\n else {\r\n $(\".summary-games-placeholder\").html(this._summaryGamesTemplate(model));\r\n $(\".summary-placeholder\").html(this._summaryTemplate(model));\r\n }\r\n }\r\n }\r\n}","module Business {\r\n export class CombidealsRenderer {\r\n private _combidealsTemplate: HandlebarsTemplateDelegate;\r\n private _combidealRowTemplate: HandlebarsTemplateDelegate;\r\n\r\n private _model: { [id: number]: CombidealRowModel } = {};\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(model: Array, bindHtmlElements: Function): void {\r\n this._model = {};\r\n model.forEach((cdrm) => {\r\n this._model[cdrm.marketId] = cdrm;\r\n });\r\n\r\n this.renderCombideals(bindHtmlElements);\r\n }\r\n\r\n public updateDeal(marketId: number, newDeal: Deal, bindHtmlElements: Function) {\r\n this._model[marketId].updateDeal(newDeal);\r\n this.renderCombideals(bindHtmlElements);\r\n }\r\n\r\n private renderCombideals(bindHtmlElements: Function) {\r\n if (this._combidealsTemplate == null) {\r\n this._combidealsTemplate = Handlebars.compile($(\"#combideals-template\").html());\r\n }\r\n\r\n if (this._combidealRowTemplate == null) {\r\n this._combidealRowTemplate = Handlebars.compile($(\"#combideal-row-template\").html());\r\n Handlebars.registerPartial(\"combidealrowpartial\", this._combidealRowTemplate);\r\n }\r\n\r\n $('.combideals-placeholder').html(this._combidealsTemplate(this._model));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n export class TotalRenderer {\r\n private _totalTemplate: HandlebarsTemplateDelegate;\r\n\r\n constructor() {\r\n }\r\n\r\n public renderTemplate(amount: number, bindHtmlElements: Function) {\r\n if (this._totalTemplate == null) {\r\n this._totalTemplate = Handlebars.compile($(\"#total-template\").html());\r\n }\r\n\r\n $(\".total-placeholder\").html(this._totalTemplate(amount));\r\n\r\n bindHtmlElements();\r\n }\r\n }\r\n}","module Business {\r\n import Country = Platform.Country;\r\n import Countries = Platform.Countries;\r\n\r\n export class OrderFormModel {\r\n public hasClient: boolean;\r\n public clientCompany: string;\r\n public clientGender: string;\r\n public clientName: string;\r\n\r\n public imageUrl: string;\r\n public dealId: number;\r\n public gameName: string;\r\n public packageDescription: string;\r\n public participantCount: number\r\n\r\n public subtotal: number;\r\n public discount: number;\r\n public total: number;\r\n\r\n public selectedCountry: Country;\r\n public countries: Countries;\r\n\r\n public hasError: boolean;\r\n\r\n public markets: Array;\r\n public showMarkets: boolean;\r\n public hasMarketError: boolean;\r\n public selectedMarketId: number;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class QuestionsModel {\r\n public cdnUrl: string;\r\n\r\n constructor(cdnUrl: string) {\r\n this.cdnUrl = cdnUrl;\r\n }\r\n\r\n }\r\n}","module Business {\r\n export class SalesPackageProgressModel {\r\n public static readonly localStorageKey = \"sales.SalesPackagePageType\";\r\n\r\n public currentPage: SalesPackageType;\r\n public shouldInitiallyGoToCurrentPage: boolean;\r\n public pageOrder: SalesPackageType[];\r\n\r\n private constructor(\r\n page: SalesPackageType,\r\n shouldInitiallyGoToCurrentPage: boolean,\r\n pageOrder: SalesPackageType[] = [\r\n SalesPackageType.BrandingPackage,\r\n SalesPackageType.PromotionalPackage,\r\n SalesPackageType.TrophyPackage\r\n ]) {\r\n this.currentPage = page;\r\n this.shouldInitiallyGoToCurrentPage = shouldInitiallyGoToCurrentPage;\r\n this.pageOrder = pageOrder;\r\n this.saveToLocalStorage();\r\n }\r\n\r\n public updatePage = (page: SalesPackageType) => {\r\n this.currentPage = page;\r\n this.saveToLocalStorage();\r\n }\r\n\r\n public setShouldInitiallyGoToCurrentPage = (shouldInitiallyGoToCurrentPage: boolean) => {\r\n this.shouldInitiallyGoToCurrentPage = shouldInitiallyGoToCurrentPage;\r\n this.saveToLocalStorage();\r\n }\r\n\r\n public saveToLocalStorage = (): void => {\r\n localStorage.setItem(SalesPackageProgressModel.localStorageKey, JSON.stringify(this));\r\n }\r\n\r\n public static getFromLocalStorage = (): SalesPackageProgressModel => {\r\n const storageObject = JSON.parse(localStorage.getItem(SalesPackageProgressModel.localStorageKey));\r\n if (storageObject != null) {\r\n return new SalesPackageProgressModel(storageObject.currentPage, storageObject.shouldInitiallyGoToCurrentPage, storageObject.pageOrder);\r\n }\r\n else {\r\n return new SalesPackageProgressModel(SalesPackageType.BrandingPackage, false);\r\n }\r\n }\r\n\r\n public static deleteFromLocalStorage = (): void => {\r\n localStorage.removeItem(SalesPackageProgressModel.localStorageKey);\r\n }\r\n\r\n public static createWithAlteredPageOrder = (initialPage: SalesPackageType): void => {\r\n let pageOrder: SalesPackageType[] = [];\r\n switch (initialPage) {\r\n case SalesPackageType.PromotionalPackage:\r\n pageOrder = [SalesPackageType.PromotionalPackage, SalesPackageType.BrandingPackage, SalesPackageType.TrophyPackage];\r\n break;\r\n case SalesPackageType.TrophyPackage:\r\n pageOrder = [SalesPackageType.TrophyPackage, SalesPackageType.BrandingPackage, SalesPackageType.PromotionalPackage];\r\n break;\r\n case SalesPackageType.BrandingPackage:\r\n default:\r\n pageOrder = [SalesPackageType.BrandingPackage, SalesPackageType.PromotionalPackage, SalesPackageType.TrophyPackage];\r\n break;\r\n }\r\n\r\n new SalesPackageProgressModel(initialPage, false, pageOrder).saveToLocalStorage();\r\n }\r\n }\r\n}","module Business {\r\n export class SalesPackageViewModel implements MarketSalesPackage {\r\n public id: number;\r\n public type: SalesPackageType;\r\n public price: number;\r\n public imageUrls: string[];\r\n public minPurchasesRequired: number;\r\n public inStock: boolean;\r\n\r\n public amountSelected;\r\n public firstImageUrl: string;\r\n\r\n public title: string;\r\n public description: string;\r\n\r\n constructor(amountSelected: number, marketSalesPackage: MarketSalesPackage) {\r\n this.id = marketSalesPackage.id;\r\n this.type = marketSalesPackage.type;\r\n this.price = marketSalesPackage.price;\r\n this.imageUrls = marketSalesPackage.imageUrls;\r\n this.minPurchasesRequired = marketSalesPackage.minPurchasesRequired;\r\n this.inStock = marketSalesPackage.inStock;\r\n\r\n this.amountSelected = amountSelected;\r\n this.firstImageUrl = marketSalesPackage.imageUrls?.[0];\r\n this.title = TranslationData.get(`Business.SalesPackage.${this.id}.Title`);\r\n this.description = TranslationData.get(`Business.SalesPackage.${this.id}.Description`);\r\n }\r\n }\r\n}"]}