{ "version": 3, "sources": ["apps/partner-center-client/src/app/core/partner/partner-trial-status.ts", "apps/partner-center-client/src/app/partner-trial/utils.ts", "apps/partner-center-client/src/app/core/partner/partner-trial-store.service.ts"], "sourcesContent": ["export enum TrialStatus {\n ACTIVE = 'Active',\n SCHEDULED = 'Scheduled',\n CANCELLED = 'Canceled',\n EXPIRED = 'Expired',\n}\n", "import { TrialInterface } from '@galaxy/partner';\nimport { TrialStatus } from '../core/partner/partner-trial-status';\n\nexport function getTrialStatus(trial: TrialInterface): TrialStatus {\n if (trialCancelled(trial)) {\n return TrialStatus.CANCELLED;\n } else if (trialActive(trial)) {\n return TrialStatus.ACTIVE;\n } else if (trialScheduled(trial)) {\n return TrialStatus.SCHEDULED;\n } else if (trialExpired(trial)) {\n return TrialStatus.EXPIRED;\n }\n return null;\n}\n\nexport function getTrialStatusKey(trial: TrialInterface): string {\n if (trialCancelled(trial)) {\n return 'TRIAL_STATUS.CANCELED';\n } else if (trialActive(trial)) {\n return 'TRIAL_STATUS.ACTIVE';\n } else if (trialScheduled(trial)) {\n return 'TRIAL_STATUS.SCHEDULED';\n } else if (trialExpired(trial)) {\n return 'TRIAL_STATUS.EXPIRED';\n }\n return '';\n}\n\nexport function trialActive(trial: TrialInterface): boolean {\n const today = new Date();\n return trial.end > today && trial.start <= today;\n}\n\nexport function trialScheduled(trial: TrialInterface): boolean {\n const today = new Date();\n return trial.end > today;\n}\n\nexport function trialExpired(trial: TrialInterface): boolean {\n const today = new Date();\n return trial.end <= today;\n}\n\nexport function trialExpiring(trial: TrialInterface): boolean {\n const today = new Date();\n const diffDays = differenceBetweenDates(today, trial.end);\n return diffDays > 0 && diffDays <= 3;\n}\n\nexport function trialExpiredOver30DaysAgo(trial: TrialInterface): boolean {\n const today = new Date();\n const diffDays = differenceBetweenDates(trial.end, today);\n return diffDays > 30;\n}\nexport function trialCancelled(trial: TrialInterface): boolean {\n const today = new Date();\n return trial.cancel && trial.cancel <= today && trial.cancel.getTime() > new Date('2000-01-01').getTime();\n}\n\nexport function differenceBetweenDates(start: Date, end: Date): number {\n if (start && end && start.getTime() < end.getTime()) {\n let diff = 0;\n diff = end.getTime() - start.getTime();\n const diffDays = Math.ceil(diff / (1000 * 3600 * 24));\n return diffDays;\n }\n return 0;\n}\n\nexport function convertLocalDateToUTCDate(date: Date): Date {\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n}\n\nexport function daysRemaining(start: Date, end: Date): number {\n const currentDate = new Date();\n if (start && end && start.getTime() <= currentDate.getTime()) {\n return differenceBetweenDates(currentDate, end);\n } else {\n return differenceBetweenDates(start, end);\n }\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { PartnerTrialService, PartnerTrialServiceInterface, SubscriptionLevel, TrialInterface } from '@galaxy/partner';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { daysRemaining, getTrialStatus, trialExpiredOver30DaysAgo, trialExpiring } from '../../partner-trial/utils';\nimport { TrialStatus } from './partner-trial-status';\n\nexport interface PartnerTrial {\n status: TrialStatus;\n subscriptionLevel: SubscriptionLevel;\n expiringSoon: boolean;\n expiredOver30DaysAgo: boolean;\n remainingDays: number;\n subscriptionTierId: string;\n start: Date;\n end: Date;\n}\n\nexport interface PartnerTrialStore {\n partnerTrial$: Observable;\n partnerHasTrial$: Observable;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PartnerTrialStoreService implements PartnerTrialStore {\n private partnerTrial$$: ReplaySubject = new ReplaySubject(1);\n private partnerHasTrial$$: Subject = new ReplaySubject(1);\n\n partnerHasTrial$: Observable = this.partnerHasTrial$$.asObservable();\n partnerTrial$: Observable;\n\n constructor(\n @Inject(PartnerTrialService) private partnerTrialService: PartnerTrialServiceInterface,\n @Inject('PARTNER_ID') private partnerId$: Observable,\n ) {\n this.partnerTrial$ = this.partnerTrial$$.pipe(\n map((t) => ({\n status: getTrialStatus(t),\n remainingDays: daysRemaining(t.start, t.end),\n expiringSoon: trialExpiring(t),\n expiredOver30DaysAgo: trialExpiredOver30DaysAgo(t),\n subscriptionLevel: t.subscriptionLevel,\n subscriptionTierId: t.subscriptionTierId,\n start: t.start,\n end: t.end,\n })),\n );\n\n this.partnerId$\n .pipe(\n filter((partnerId) => !!partnerId),\n switchMap((partnerId) => this.partnerTrialService.getTrial(partnerId)),\n )\n .subscribe((trial) => this.handleTrialResponse(trial));\n }\n\n handleTrialResponse(trial: TrialInterface): void {\n const emptyTrial = Object.keys(trial).length === 0 && trial.constructor === Object;\n this.partnerHasTrial$$.next(!emptyTrial);\n this.partnerTrial$$.next(trial);\n }\n}\n"], "mappings": "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", "names": ["TrialStatus", "getTrialStatus", "trial", "trialCancelled", "TrialStatus", "CANCELLED", "trialActive", "ACTIVE", "trialScheduled", "SCHEDULED", "trialExpired", "EXPIRED", "getTrialStatusKey", "today", "Date", "end", "start", "trialExpiring", "diffDays", "differenceBetweenDates", "trialExpiredOver30DaysAgo", "cancel", "getTime", "diff", "Math", "ceil", "convertLocalDateToUTCDate", "date", "getUTCFullYear", "getUTCMonth", "getUTCDate", "daysRemaining", "currentDate", "PartnerTrialStoreService", "constructor", "partnerTrialService", "partnerId$", "partnerTrial$$", "ReplaySubject", "partnerHasTrial$$", "partnerHasTrial$", "asObservable", "partnerTrial$", "pipe", "map", "t", "status", "getTrialStatus", "remainingDays", "daysRemaining", "start", "end", "expiringSoon", "trialExpiring", "expiredOver30DaysAgo", "trialExpiredOver30DaysAgo", "subscriptionLevel", "subscriptionTierId", "filter", "partnerId", "switchMap", "getTrial", "subscribe", "trial", "handleTrialResponse", "emptyTrial", "Object", "keys", "length", "next", "\u0275\u0275inject", "PartnerTrialService", "factory", "\u0275fac", "providedIn", "_PartnerTrialStoreService"] }