@smartico/public-api 0.0.322 → 0.0.323

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1133,6 +1133,22 @@ var AchievementAvailabilityStatus;
1133
1133
  AchievementAvailabilityStatus[AchievementAvailabilityStatus["MissedByLimitInTime"] = 14] = "MissedByLimitInTime";
1134
1134
  })(AchievementAvailabilityStatus || (AchievementAvailabilityStatus = {}));
1135
1135
 
1136
+ var BadgesTimeLimitStates;
1137
+ (function (BadgesTimeLimitStates) {
1138
+ /** Before Start Date */
1139
+ BadgesTimeLimitStates[BadgesTimeLimitStates["BeforeStartDate"] = 0] = "BeforeStartDate";
1140
+ /** After Start Date but before earned */
1141
+ BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateNoProgress"] = 1] = "AfterStartDateNoProgress";
1142
+ /** After Start Date but before started (no progress) + End date */
1143
+ BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateNoProgressAndEndDate"] = 2] = "AfterStartDateNoProgressAndEndDate";
1144
+ /** After Start Date, but with some progress + End date */
1145
+ BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateWithProgressAndEndDate"] = 3] = "AfterStartDateWithProgressAndEndDate";
1146
+ /** After End Date (not started) */
1147
+ BadgesTimeLimitStates[BadgesTimeLimitStates["AfterEndDateNotStarted"] = 4] = "AfterEndDateNotStarted";
1148
+ /** After End Date (player has some progress, but not completed) */
1149
+ BadgesTimeLimitStates[BadgesTimeLimitStates["AfterEndDateWithProgress"] = 5] = "AfterEndDateWithProgress";
1150
+ })(BadgesTimeLimitStates || (BadgesTimeLimitStates = {}));
1151
+
1136
1152
  var _class;
1137
1153
  class MissionUtils {}
1138
1154
  _class = MissionUtils;
@@ -1355,7 +1371,49 @@ MissionUtils.replaceFavGameNameTag = ({
1355
1371
  }
1356
1372
  return task;
1357
1373
  };
1374
+ MissionUtils.determineBadgeState = badge => {
1375
+ const now = Date.now();
1376
+ const {
1377
+ active_from_ts,
1378
+ active_till_ts,
1379
+ progress
1380
+ } = badge;
1381
+ // 1. BEFORE START
1382
+ if (active_from_ts > now) {
1383
+ return BadgesTimeLimitStates.BeforeStartDate;
1384
+ }
1385
+ // 2. AFTER START, NO END DATE (infinite badge)
1386
+ // → grey, no locked, no date chip
1387
+ if (!active_till_ts) {
1388
+ if (progress === 0) {
1389
+ return BadgesTimeLimitStates.AfterStartDateNoProgress;
1390
+ }
1391
+ // If infinite and with progress → this state does not exist in enum
1392
+ // (but if needed we can add one)
1393
+ }
1394
+ // 3. AFTER START, BEFORE END DATE
1395
+ if (now < active_till_ts) {
1396
+ if (progress === 0) {
1397
+ // now < end + has end date → must show chip
1398
+ return BadgesTimeLimitStates.AfterStartDateNoProgressAndEndDate;
1399
+ }
1400
+ return BadgesTimeLimitStates.AfterStartDateWithProgressAndEndDate;
1401
+ }
1402
+ // 4. AFTER END DATE
1403
+ if (progress === 0) {
1404
+ return BadgesTimeLimitStates.AfterEndDateNotStarted;
1405
+ }
1406
+ return BadgesTimeLimitStates.AfterEndDateWithProgress;
1407
+ };
1358
1408
 
1409
+ const enrichUserAchievementsWithBadgeState = items => {
1410
+ return items.map(item => {
1411
+ if (item.ach_type_id === AchievementType.Badge && (item.active_from_ts || item.active_till_ts)) {
1412
+ item.badgeTimeLimitState = MissionUtils.determineBadgeState(item);
1413
+ }
1414
+ return item;
1415
+ });
1416
+ };
1359
1417
  const UserAchievementTransform = items => {
1360
1418
  return items.filter(r => r.ach_id >= 1).map(r => {
1361
1419
  var _missionName, _missionSubHeader, _missionDescription, _r$ach_categories;
@@ -1455,7 +1513,8 @@ const UserAchievementTransform = items => {
1455
1513
  custom_section_type_id: r.ach_public_meta.custom_section_type_id,
1456
1514
  availability_status: MissionUtils.getAvailabilityStatus(r),
1457
1515
  claim_button_title: r.ach_public_meta.claim_button_title,
1458
- claim_button_action: r.ach_public_meta.claim_button_action
1516
+ claim_button_action: r.ach_public_meta.claim_button_action,
1517
+ badgeTimeLimitState: r.badgeTimeLimitState
1459
1518
  };
1460
1519
  if (r.ach_status_id === AchievementStatus.Recurring) {
1461
1520
  x.next_recurrence_date_ts = Date.now() + (r == null ? void 0 : r.milliseconds_till_available);
@@ -3728,6 +3787,7 @@ class SmarticoAPI {
3728
3787
  const responseClone = _extends({}, response);
3729
3788
  if (responseClone.achievements) {
3730
3789
  responseClone.achievements = responseClone.achievements.filter(a => a.ach_type_id === AchievementType.Badge);
3790
+ responseClone.achievements = enrichUserAchievementsWithBadgeState(responseClone.achievements);
3731
3791
  }
3732
3792
  return responseClone;
3733
3793
  }
@@ -4421,5 +4481,5 @@ var JackpotType;
4421
4481
  JackpotType[JackpotType["Personal"] = 2] = "Personal";
4422
4482
  })(JackpotType || (JackpotType = {}));
4423
4483
 
4424
- export { AchCategoryTransform, AchCustomLayoutTheme, AchCustomSectionType, AchMissionsTabsOptions, AchOverviewMissionsFilter, AchievementAvailabilityStatus, AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, AnalyticsInboxSubScreenNameId, AnalyticsInterfaceType, AnalyticsScreenNameId, AnalyticsTournamentsLobbySubScreenNameId, BonusItemsTransform, BonusStatus, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, ECacheContext, GetJackpotEligibleGamesResponseTransform, GetJackpotWinnersResponseTransform, GetLevelMapResponseTransform, InboxCategories, InboxMessageBodyTransform, InboxMessageType, InboxMessagesTransform, InboxReadStatus, JackPotTemparature, JackpotContributionType, JackpotType, LeaderBoardPeriodType, LiquidEntityData, MiniGamePrizeTypeName, MiniGamePrizeTypeNamed, MissionCategory, MissionUtils, OCache, OpenLinksType, PrizeModifiers, PrizeModifiersKeysNames, PublicLabelSettings, QuizAnswersValueType, QuizMarketPerSport, QuizSportType, SAWAcknowledgeType, SAWAcknowledgeTypeName, SAWAcknowledgeTypeNamed, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWBuyInTypeNamed, SAWExposeUserSpinId, SAWGPMarketType, SAWGameDifficultyType, SAWGameDifficultyTypeName, SAWGameLayout, SAWGameType, SAWGameTypeName, SAWGameTypeNamed, SAWHistoryTransform, SAWPrizeType, SAWSpinErrorCode, SAWTemplatesTransform, SAWUtils, SAWWheelLayout, SAWWinSoundFiles, SAWWinSoundType, SawGameDifficultyTypeNamed, ScheduledMissionType, SmarticoAPI, StoreCategoryTransform, StoreItemPurchaseType, StoreItemPurchasedTransform, StoreItemTransform, StoreItemType, StoreItemTypeName, StoreItemTypeNamed, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentItemsTransform, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed, TournamentRegistrationType, TournamentRegistrationTypeGetName, TournamentType, TournamentUtils, TranslationArea, UICustomSectionTransform, UserAchievementTransform, getLeaderBoardTransform, marketsInfo, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizAnswersTrKeys, quizDrawReplacementText, quizEvenReplacementText, quizNoGoalsReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizSupportedSports, quizYesReplacementText, tournamentInfoItemTransform };
4484
+ export { AchCategoryTransform, AchCustomLayoutTheme, AchCustomSectionType, AchMissionsTabsOptions, AchOverviewMissionsFilter, AchievementAvailabilityStatus, AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, AnalyticsInboxSubScreenNameId, AnalyticsInterfaceType, AnalyticsScreenNameId, AnalyticsTournamentsLobbySubScreenNameId, BadgesTimeLimitStates, BonusItemsTransform, BonusStatus, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, ECacheContext, GetJackpotEligibleGamesResponseTransform, GetJackpotWinnersResponseTransform, GetLevelMapResponseTransform, InboxCategories, InboxMessageBodyTransform, InboxMessageType, InboxMessagesTransform, InboxReadStatus, JackPotTemparature, JackpotContributionType, JackpotType, LeaderBoardPeriodType, LiquidEntityData, MiniGamePrizeTypeName, MiniGamePrizeTypeNamed, MissionCategory, MissionUtils, OCache, OpenLinksType, PrizeModifiers, PrizeModifiersKeysNames, PublicLabelSettings, QuizAnswersValueType, QuizMarketPerSport, QuizSportType, SAWAcknowledgeType, SAWAcknowledgeTypeName, SAWAcknowledgeTypeNamed, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWBuyInTypeNamed, SAWExposeUserSpinId, SAWGPMarketType, SAWGameDifficultyType, SAWGameDifficultyTypeName, SAWGameLayout, SAWGameType, SAWGameTypeName, SAWGameTypeNamed, SAWHistoryTransform, SAWPrizeType, SAWSpinErrorCode, SAWTemplatesTransform, SAWUtils, SAWWheelLayout, SAWWinSoundFiles, SAWWinSoundType, SawGameDifficultyTypeNamed, ScheduledMissionType, SmarticoAPI, StoreCategoryTransform, StoreItemPurchaseType, StoreItemPurchasedTransform, StoreItemTransform, StoreItemType, StoreItemTypeName, StoreItemTypeNamed, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentItemsTransform, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed, TournamentRegistrationType, TournamentRegistrationTypeGetName, TournamentType, TournamentUtils, TranslationArea, UICustomSectionTransform, UserAchievementTransform, enrichUserAchievementsWithBadgeState, getLeaderBoardTransform, marketsInfo, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizAnswersTrKeys, quizDrawReplacementText, quizEvenReplacementText, quizNoGoalsReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizSupportedSports, quizYesReplacementText, tournamentInfoItemTransform };
4425
4485
  //# sourceMappingURL=index.modern.mjs.map