// Metro module 3840 (f3841). import SubscriptionPlanRecord from "../../records/SubscriptionPlanRecord"; import { CurrencyCodes, PriceSetAssignmentPurchaseTypes } from "../../Constants"; import * as _PremiumConstants from "../../modules/premium/PremiumConstants"; import { ACTIVE_PREMIUM_SKUS, PremiumSubscriptionSKUs } from "../../modules/premium/PremiumConstants"; import { clearObject } from "../../utils/FunctionUtils"; import Module589 from "../../_bundle/Module589"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import Dispatcher from "../../Dispatcher"; function $mk72848($env) { return (a0) => { (0, addSubscriptionPlan)(SubscriptionPlanRecord.createFromServer({ id: a0.id, name: a0.name, interval: a0.interval, interval_count: a0.intervalCount, tax_inclusive: true, sku_id: a0.skuId, currency: CurrencyCodes.USD, price: 0, price_tier: 0 })); }; } let addSubscriptionPlanFromServer, c2174_10, c2174_11, c2174_12, c2174_13, c2174_14, c2174_15, c2174_18, c2174_19; let env2174; const r9 = env2174 = {}; const addSubscriptionPlan = function addSubscriptionPlan(a0) { const skuId = a0.skuId; c2174_10[a0.id] = a0; const r20 = a0.prices[PriceSetAssignmentPurchaseTypes.DEFAULT]; if (r20 != null) { const set = new Set(Object.keys(r20.paymentSourcePrices)); c2174_14[a0.id] = set; const r27 = Array; let r31 = c2174_15[a0.skuId]; if (r31 == null) { r31 = new Set(); } c2174_15[a0.skuId] = new Set([...r27.from(r31), ...Array.from(set)]); } const r49 = c2174_11[skuId]; if (r49 != null) { r49.add(a0.id); } else { c2174_11[skuId] = new Set([a0.id]); } }; addSubscriptionPlanFromServer = function addSubscriptionPlanFromServer(a0) { addSubscriptionPlan(SubscriptionPlanRecord.createFromServer(a0)); }; const reset = function reset() { const r1 = env2174; clearObject(c2174_10); clearObject(c2174_11); c2174_12.clear(); c2174_13.clear(); clearObject(c2174_14); clearObject(c2174_15); [_PremiumConstants.SubscriptionPlanInfo[_PremiumConstants.SubscriptionPlans.NONE_MONTH], _PremiumConstants.SubscriptionPlanInfo[_PremiumConstants.SubscriptionPlans.NONE_YEAR], _PremiumConstants.SubscriptionPlanInfo[_PremiumConstants.SubscriptionPlans.NONE_3_MONTH], _PremiumConstants.SubscriptionPlanInfo[_PremiumConstants.SubscriptionPlans.NONE_6_MONTH]].forEach($mk72848(r1)); }; const { SubscriptionIntervalTypes, SubscriptionPlanInfo: SubscriptionPlanInfo2, SubscriptionPlans: SubscriptionPlans2 } = _PremiumConstants; c2174_10 = {}; c2174_11 = {}; const set = new Set(); c2174_12 = set; c2174_13 = new Set(); c2174_14 = {}; c2174_15 = {}; [SubscriptionPlanInfo2[SubscriptionPlans2.NONE_MONTH], SubscriptionPlanInfo2[SubscriptionPlans2.NONE_YEAR], SubscriptionPlanInfo2[SubscriptionPlans2.NONE_3_MONTH], SubscriptionPlanInfo2[SubscriptionPlans2.NONE_6_MONTH]].forEach($mk72848(r9)); c2174_18 = [SubscriptionIntervalTypes.DAY, SubscriptionIntervalTypes.MONTH, SubscriptionIntervalTypes.YEAR]; class SubscriptionPlanStore extends Module589.Store { static displayName = "SubscriptionPlanStore"; constructor() { super(...arguments); } getPlanIdsForSkus(a0) { const r0 = []; for (const item of a0) { const r10 = Array; let r29 = c2174_11[item]; if (r29 == null) { r29 = new Set(); } const r32 = r10.from(r29); r32.sort((a, b) => { const r2 = c2174_10[a]; const r7 = c2174_10[b]; return c2174_18.indexOf(r2.interval) - c2174_18.indexOf(r7.interval) || r2.intervalCount - r7.intervalCount; }); r0.push.apply(r0, [...r32]); } return r0; } getFetchedSKUIDs() { return SnowflakeUtils.keys(c2174_11); } getForSKU(a0) { const r4 = Array; let r7 = c2174_11[a0]; if (r7 == null) { r7 = []; } return r4.from(r7).map((item) => c2174_10[item]); } getForSkuAndInterval(a0, c13664_0, r6 = 1) { let c13664_1 = r6; return this.getForSKU(a0).find((item) => item.id !== _PremiumConstants.SubscriptionPlans.PREMIUM_GROUP_MONTH && item.interval === c13664_0 && item.intervalCount === c13664_1); } get(a0) { return c2174_10[a0]; } isFetchingForSKU(a0) { return c2174_12.has(a0); } isFetchingForSKUs(a0) { return a0.some((item) => this.isFetchingForSKU(item)); } isLoadedForSKU(a0) { let r8 = !!c2174_13.has(a0); if (!r8) { const r11 = c2174_12.has(a0); r8 = r11 ? !r11 : c2174_11[a0] != null; } return r8; } isLoadedForSKUs(a0) { return a0.every((item) => this.isLoadedForSKU(item)); } isFetchingForPremiumSKUs() { return ACTIVE_PREMIUM_SKUS.some((item) => this.isFetchingForSKU(item)); } isLoadedForPremiumSKUs() { return ACTIVE_PREMIUM_SKUS.every((item) => this.isLoadedForSKU(item)); } ignoreSKUFetch(a0) { c2174_13.add(a0); } getPaymentSourcesForPlanId(a0) { return c2174_14.hasOwnProperty(a0) ? c2174_14[a0] : null; } getPaymentSourceIds() { const set = new Set(); let c13669_0 = set; Object.values(c2174_14).forEach((a0) => a0.forEach((item) => c13669_0.add(item))); return set; } hasPaymentSourceForSKUId(a0, a1) { let r7 = PremiumSubscriptionSKUs.NONE === a1; if (!r7) { r7 = c2174_15[a1] != null && c2174_15[a1].has(a0); } return r7; } hasPaymentSourceForSKUIds(c13670_0, a1) { return a1.every((item) => this.hasPaymentSourceForSKUId(c13670_0, item)); } } c2174_19 = SubscriptionPlanStore; const r108 = new SubscriptionPlanStore(Dispatcher, { SUBSCRIPTION_PLANS_FETCH: function handleSubscriptionPlansFetch(a0) { c2174_12.add(a0.skuId); }, SUBSCRIPTION_PLANS_FETCH_SUCCESS: function handleSubscriptionPlansFetchSuccess({ skuId, subscriptionPlans }) { c2174_11[skuId] = new Set(); c2174_15[skuId] = new Set(); subscriptionPlans.forEach(addSubscriptionPlanFromServer); c2174_12.delete(skuId); c2174_13.delete(skuId); }, SUBSCRIPTION_PLANS_FETCH_FAILURE: function handleSubscriptionPlansFetchFailure({ skuId }) { c2174_12.delete(skuId); c2174_13.delete(skuId); }, SUBSCRIPTION_PLANS_RESET: reset, GIFT_CODE_RESOLVE_SUCCESS: function handleGiftCodeResolveSuccess({ giftCode }) { if (giftCode.subscription_plan != null) { addSubscriptionPlan(SubscriptionPlanRecord.createFromServer(giftCode.subscription_plan)); } }, ENTITLEMENTS_GIFTABLE_FETCH_SUCCESS: function handleEntitlementGiftsFetchSuccess(a0) { for (const entitlement of a0.entitlements) { if (entitlement.subscription_plan != null) { addSubscriptionPlanFromServer(entitlement.subscription_plan); } } }, LOGOUT: reset }); export default r108; export { set as subscriptionPlansFetchingForSKU };