@stigg/react-sdk 5.26.0 → 5.27.0
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.
- package/dist/components/BooleanEntitlementGuard.d.ts +8 -0
- package/dist/components/MeteredEntitlementGuard.d.ts +8 -0
- package/dist/components/StiggProvider.d.ts +1 -1
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/useActiveSubscriptions.d.ts +6 -0
- package/dist/hooks/useBooleanEntitlement.d.ts +5 -0
- package/dist/hooks/useCustomerPortal.d.ts +6 -0
- package/dist/hooks/useFetch.d.ts +8 -0
- package/dist/hooks/useMeteredEntitlement.d.ts +6 -0
- package/dist/hooks/useNumericEntitlement.d.ts +6 -0
- package/dist/hooks/usePaywall.d.ts +6 -0
- package/dist/hooks/useStiggContext.d.ts +7 -0
- package/dist/index.d.ts +4 -1
- package/dist/react-sdk.cjs.development.js +432 -200
- package/dist/react-sdk.cjs.development.js.map +1 -1
- package/dist/react-sdk.cjs.production.min.js +1 -1
- package/dist/react-sdk.cjs.production.min.js.map +1 -1
- package/dist/react-sdk.esm.js +426 -202
- package/dist/react-sdk.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/components/BooleanEntitlementGuard.tsx +22 -0
- package/src/components/MeteredEntitlementGuard.tsx +22 -0
- package/src/components/StiggProvider.tsx +4 -9
- package/src/components/checkout/hooks/useLoadCheckout.ts +1 -1
- package/src/components/checkout/hooks/usePreviewSubscription.ts +1 -1
- package/src/components/customerPortal/hooks/useCustomerPortal.ts +1 -1
- package/src/components/hooks/useWaitForCheckoutCompleted.ts +1 -1
- package/src/components/paywall/hooks/useLoadPaywallData.ts +1 -1
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useActiveSubscriptions.ts +21 -0
- package/src/hooks/useBooleanEntitlement.ts +20 -0
- package/src/hooks/useCustomerPortal.ts +21 -0
- package/src/hooks/useFetch.ts +31 -0
- package/src/hooks/useMeteredEntitlement.ts +20 -0
- package/src/hooks/useNumericEntitlement.ts +20 -0
- package/src/hooks/usePaywall.ts +21 -0
- package/src/hooks/useStiggContext.ts +13 -0
- package/src/index.ts +12 -7
- package/src/theme/Theme.tsx +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-sdk.cjs.development.js","sources":["../src/assets/check-stigg.svg","../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/utils/formatNumber.ts","../src/components/common/Typography.tsx","../src/components/paywall/EntitlementRow.tsx","../src/components/paywall/PlanEntitlements.tsx","../src/components/paywall/types.ts","../src/theme/getResolvedTheme.ts","../src/components/utils/getSubscriptionScheduleUpdateTexts.tsx","../src/components/utils/priceTierUtils.ts","../src/components/paywall/PlanOfferingButton.tsx","../src/assets/mini-schedule.svg","../src/components/utils/currencyUtils.ts","../src/components/utils/numberUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/Skeletons.style.ts","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../src/components/utils/onWheelBlur.ts","../src/components/common/VolumePerUnitInput.tsx","../src/components/common/VolumeBulkSelect.tsx","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.tsx","../src/components/paywall/PlanOffering.tsx","../src/components/paywall/BillingPeriodPicker.tsx","../src/components/utils/calculateDiscountRate.ts","../src/assets/powered-by-stigg.svg","../src/components/common/PoweredByStigg.tsx","../src/components/paywall/utils/hasPricePoints.ts","../src/components/paywall/utils/getPlansToDisplay.ts","../src/components/paywall/Paywall.tsx","../node_modules/regenerator-runtime/runtime.js","../src/services/logger.ts","../src/components/StiggProvider.tsx","../src/components/paywall/utils/computeDefaultBillingPeriod.ts","../src/components/paywall/utils/calculateTrialDaysLeft.ts","../src/components/checkout/configurations/typography.ts","../src/components/common/mapExternalTheme.ts","../src/components/paywall/utils/mapPaywallData.ts","../src/components/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../src/components/paywall/PaywallLoader.tsx","../src/theme/Fonts.tsx","../src/theme/Theme.tsx","../src/components/customerPortal/hooks/useCustomerPortal.ts","../src/components/customerPortal/customerPortalTextOverrides.ts","../src/components/customerPortal/customerPortalTheme.ts","../src/components/customerPortal/CustomerPortalProvider.tsx","../src/components/paywall/PaywallContainer.tsx","../src/components/customerPortal/common/StyledButton.tsx","../src/assets/edit-icon.svg","../src/components/customerPortal/common/SectionHeader.ts","../src/components/customerPortal/common/SectionTitle.tsx","../src/components/customerPortal/types.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx","../src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx","../src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx","../src/components/common/iconColor.ts","../src/assets/addons.svg","../src/assets/billing-info-customer.svg","../src/assets/contact-support.svg","../src/assets/credit-card.svg","../src/assets/dollar-coin.svg","../src/assets/promotions.svg","../src/assets/restore.svg","../src/assets/schedule-box.svg","../src/assets/schedule.svg","../src/assets/subscription-renews-icon.svg","../src/assets/trash.svg","../src/assets/payment-method.svg","../src/assets/outlined-circle.svg","../src/assets/outlined-checked-circle.svg","../src/assets/outlined-checked-circle-disabled.svg","../src/assets/arrow-forward.svg","../src/assets/close.svg","../src/assets/check.svg","../src/assets/pay-as-you-go-charge.svg","../src/assets/coupon.svg","../src/components/common/Icon.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../src/components/common/mediaQuery.ts","../src/components/hooks/useIsScreenWiderThan.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx","../src/components/customerPortal/common/SectionContainer.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx","../src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx","../src/assets/sand-clock.svg","../src/components/common/InformationTooltip.tsx","../src/components/common/LongText.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx","../src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx","../src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx","../src/components/customerPortal/CustomerPortalHeader.tsx","../src/components/customerPortal/common/ExternalLinkButton.tsx","../src/components/customerPortal/billing/InformationGrid.tsx","../src/components/customerPortal/common/SkeletonButton.tsx","../src/components/customerPortal/billing/PaymentDetailsSection.tsx","../src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts","../src/components/customerPortal/paywall/CustomerPortalPaywall.tsx","../src/components/customerPortal/CustomerPortal.style.ts","../src/components/utils/getFeatureName.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx","../src/components/customerPortal/usage/CustomerUsageData.style.tsx","../src/components/customerPortal/usage/CustomerUsageData.tsx","../src/components/customerPortal/CustomerPortalContainer.tsx","../src/components/customerPortal/CustomerPortal.tsx","../src/components/customerPortal/billing/InvoicesSection.tsx","../src/components/checkout/steps/addons/addon.utils.ts","../src/components/checkout/hooks/useAddonsStepModel.ts","../src/components/checkout/hooks/useCheckoutModel.ts","../src/components/checkout/hooks/useLoadCheckout.ts","../src/components/utils/priceUtils.ts","../src/components/utils/planPrices.ts","../src/components/checkout/hooks/usePlanStepModel.ts","../src/components/checkout/hooks/useProgressBarModel.ts","../src/components/checkout/hooks/useSubscriptionModel.ts","../src/components/checkout/hooks/usePreviewSubscription.ts","../src/components/checkout/hooks/usePaymentStepModel.ts","../src/components/checkout/configurations/textOverrides.ts","../src/components/checkout/configurations/theme.ts","../src/components/checkout/CheckoutProvider.tsx","../src/components/checkout/CheckoutContainer.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/hooks/useCouponModel.ts","../src/assets/plus-icon.svg","../src/components/checkout/promotionCode/AddPromotionCodeButton.tsx","../src/components/checkout/promotionCode/AddPromotionCode.tsx","../src/components/checkout/promotionCode/AppliedPromotionCode.tsx","../src/components/checkout/promotionCode/PromotionCodeSection.tsx","../src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx","../src/components/checkout/steps/payment/stripe/useStripeIntegration.ts","../src/components/checkout/hooks/useSubscriptionState.ts","../src/components/checkout/steps/payment/stripe/stripe.utils.ts","../src/components/checkout/summary/CheckoutSuccess.tsx","../src/components/checkout/steps/payment/stripe/useSubmit.ts","../src/components/checkout/summary/components/WithSkeleton.tsx","../src/components/checkout/summary/components/CheckoutCaptions.tsx","../src/components/checkout/summary/components/getPriceBreakdownString.ts","../src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx","../src/components/common/CollapsableSectionIcon.tsx","../src/components/checkout/summary/components/LineItems.tsx","../src/components/checkout/summary/CheckoutSummary.tsx","../src/components/checkout/summary/CheckoutSummarySkeleton.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.tsx","../src/components/checkout/steps/payment/PaymentMethods.style.ts","../src/components/checkout/steps/payment/PaymentMethods.tsx","../src/components/checkout/steps/payment/PaymentStep.tsx","../src/components/checkout/components/ChangePlanButton.tsx","../src/components/checkout/planHeader/PlanHeader.tsx","../src/components/checkout/formatting.ts","../src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx","../src/components/checkout/steps/plan/BillingPeriodPicker.tsx","../src/components/checkout/steps/plan/CheckoutChargeList.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.tsx","../src/assets/arrow-right.svg","../src/components/checkout/components/StyledArrow.tsx","../src/components/checkout/components/DowngradeToFreeContainer.tsx","../src/components/checkout/CheckoutContainer.tsx","../src/components/checkout/Checkout.tsx","../src/components/hooks/useWaitForCheckoutCompleted.ts"],"sourcesContent":["<svg width=\"15\" height=\"11\" viewBox=\"0 0 15 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.59 7.9899L2.125 4.5249C1.73524 4.13514 1.10365 4.13402 0.712509 4.52241V4.52241C0.319409 4.91274 0.318286 5.54819 0.710005 5.9399L5.59 10.8199L14.2948 2.11513C14.6843 1.72565 14.6843 1.09417 14.2948 0.704691V0.704691C13.9055 0.315381 13.2743 0.315184 12.8848 0.70425L5.59 7.9899Z\" fill=\"#B2BBD3\"/>\n</svg>\n","export function calculateUnitQuantityText(\n minUnitQuantity?: number | null,\n maxUnitQuantity?: number | null,\n unitsPlural?: string | null,\n) {\n const unitsText = unitsPlural ? ` ${unitsPlural}` : '';\n\n // copy for only maxunit\n if ((!minUnitQuantity || minUnitQuantity === 1) && maxUnitQuantity) {\n return `Up to ${maxUnitQuantity}${unitsText}`;\n }\n\n // both limits\n if (minUnitQuantity && minUnitQuantity > 1 && maxUnitQuantity) {\n return `${minUnitQuantity}-${maxUnitQuantity}${unitsText}`;\n }\n\n if (minUnitQuantity && minUnitQuantity > 1) {\n return `Minimum ${minUnitQuantity}${unitsText}`;\n }\n\n return '';\n}\n","export function formatNumber(usageLimit: number | null | undefined) {\n return usageLimit?.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\n}\n","import React, { CSSProperties, forwardRef } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { FontWeight as StyledFontWeight, Text, TypeProps } from 'styled-typography';\nimport { Theme, useTheme } from '@emotion/react';\nimport { FontWeight } from '../../theme/types';\n\ntype Colors =\n | 'primary'\n | 'primary.main'\n | 'primary.main.light'\n | 'secondary'\n | 'tertiary'\n | 'disabled'\n | 'white'\n | 'warning'\n | 'error';\n\nexport type TypographyProps = {\n children: React.ReactNode;\n variant?: 'h1' | 'h3' | 'h6' | 'body1' | 'caption';\n style?: CSSProperties | undefined;\n color?: Colors;\n // This is being used when passing color from the theming which\n // can be any color and not from the closed list of colors above\n overrideColor?: string;\n className?: string;\n bold?: boolean;\n span?: boolean;\n as?: 'div' | 'p' | 'span';\n} & Omit<TypeProps, 'color' | 'level'>;\n\nfunction getColor(theme: Theme, $color: Colors) {\n switch ($color) {\n case 'white':\n return 'white';\n case 'primary.main':\n return theme.stigg.palette.primary;\n case 'primary.main.light':\n return theme.stigg.palette.primaryLight;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.text[$color];\n }\n}\n\nconst StyledText = styled(Text)<{ $span?: boolean }>`\n margin: 0;\n ${({ $span }) => $span && `display: inline`};\n`;\n\nfunction getLevel(variant: TypographyProps['variant']) {\n switch (variant) {\n case 'h1':\n return 1;\n case 'h3':\n return 2;\n case 'h6':\n return 3;\n case 'body1':\n return 4;\n case 'caption':\n return 5;\n default:\n return 3;\n }\n}\n\nfunction mapFontWeight(fontWeight: FontWeight) {\n switch (fontWeight) {\n case 'bold':\n return StyledFontWeight.Bold;\n case 'normal':\n return StyledFontWeight.Normal;\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nfunction getFontWeight(theme: Theme, variant: TypographyProps['variant']) {\n const { typography } = theme.stigg;\n switch (variant) {\n case 'h1':\n return mapFontWeight(typography.h1.fontWeight);\n case 'h3':\n return mapFontWeight(typography.h2.fontWeight);\n case 'h6':\n return mapFontWeight(typography.h3.fontWeight);\n case 'body1':\n return mapFontWeight(typography.body.fontWeight);\n case 'caption':\n return mapFontWeight(typography.caption.fontWeight);\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nexport const Typography = forwardRef((props: TypographyProps, ref) => {\n const {\n children,\n span,\n style,\n fontWeight,\n variant = 'body1',\n color = 'primary',\n overrideColor,\n bold,\n as = 'p',\n ...rest\n } = props;\n const theme = useTheme();\n const level = getLevel(variant);\n const levelClassName = `typography-level-${level}`;\n const className = props.className ? `${props.className} ${levelClassName}` : levelClassName;\n\n return (\n <StyledText\n as={as}\n ref={ref}\n {...rest}\n className={className}\n style={style}\n level={level}\n color={overrideColor || getColor(theme, color)}\n fontWeight={fontWeight ?? (bold ? StyledFontWeight.Bold : getFontWeight(theme, variant))}\n $span={span}>\n {children}\n </StyledText>\n );\n});\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport CheckUrl from '../../assets/check-stigg.svg';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { formatNumber } from '../utils/formatNumber';\nimport { Typography } from '../common/Typography';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: baseline;\n`;\n\nconst EntitlementIconContainer = styled.div`\n display: flex;\n align-items: center;\n margin-right: 16px;\n height: ${({ theme }) => theme.stigg.typography.h3.fontSize};\n flex-shrink: 0;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n flex-shrink: 0;\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.disabled};\n }\n`;\n\ntype EntitlementRowProps = {\n hasUnlimitedUsage?: boolean | null;\n isCustom?: boolean | null;\n usageLimit?: number | null;\n minUnitQuantity?: number | null;\n maxUnitQuantity?: number | null;\n resetPeriod?: EntitlementResetPeriod | null;\n displayNameOverride?: string | null;\n feature?: {\n units?: string | null | undefined;\n unitsPlural?: string | null | undefined;\n unitQuantity?: number | null;\n displayName: string;\n } | null;\n};\n\nfunction getResetPeriodText(resetPeriod?: EntitlementResetPeriod) {\n if (!resetPeriod) {\n return '';\n }\n\n switch (resetPeriod) {\n case EntitlementResetPeriod.Day: {\n return 'per day';\n }\n case EntitlementResetPeriod.Hour: {\n return 'per hour';\n }\n case EntitlementResetPeriod.Week: {\n return 'per week';\n }\n case EntitlementResetPeriod.Month: {\n return 'per month';\n }\n case EntitlementResetPeriod.Year: {\n return 'per year';\n }\n default: {\n return '';\n }\n }\n}\n\nfunction getEntitlementDisplay({\n hasUnlimitedUsage,\n feature,\n resetPeriod,\n usageLimit,\n minUnitQuantity,\n maxUnitQuantity,\n isCustom,\n}: EntitlementRowProps) {\n const unitBasedEntitlement = minUnitQuantity || maxUnitQuantity;\n const resetPeriodSuffix = `${resetPeriod && usageLimit ? `${getResetPeriodText(resetPeriod)}` : ''}`;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${feature?.unitsPlural}`;\n }\n\n if (isCustom) {\n return `Custom ${feature?.unitsPlural}`;\n }\n\n if (usageLimit) {\n const featureUnits = usageLimit === 1 ? feature?.units : feature?.unitsPlural;\n return `${formatNumber(usageLimit)} ${featureUnits} ${resetPeriodSuffix}`;\n }\n\n if (unitBasedEntitlement) {\n return calculateUnitQuantityText(minUnitQuantity, maxUnitQuantity, feature?.unitsPlural);\n }\n\n return feature?.displayName;\n}\n\nexport function EntitlementRow(props: EntitlementRowProps) {\n const { displayNameOverride, ...restProps } = props;\n const displayName = getEntitlementDisplay(restProps);\n\n return (\n <EntitlementRowContainer className=\"stigg-entitlement-row-container\">\n <EntitlementIconContainer>\n <EntitlementCheckIcon className=\"stigg-entitlement-row-icon\" />\n </EntitlementIconContainer>\n <EntitlementName className=\"stigg-entitlement-name\" variant=\"h6\" color=\"secondary\">\n {displayNameOverride || displayName}\n </EntitlementName>\n </EntitlementRowContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, WidgetType } from '@stigg/js-client-sdk';\nimport { EntitlementRow } from './EntitlementRow';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Typography } from '../common/Typography';\n\nconst PlanEntitlementsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nfunction getTitle(plan: PaywallPlan, paywallLocale: PaywallLocalization, hasFeatures: boolean) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = hasFeatures ? `${plan.displayName} includes` : '';\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}${hasFeatures ? ', plus:' : ''}`;\n }\n\n return title;\n}\n\nexport function PlanEntitlements({\n plan,\n billingPeriod,\n paywallLocale,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n}) {\n const prices = plan.pricePoints?.filter((price) => price.billingPeriod === billingPeriod) || [];\n const unitBasedEntitlements = prices\n .filter((price) => (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity)\n .map((price) => {\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\n\n const visibleEntitlements = plan.entitlements.filter(\n (entitlement) => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall),\n );\n\n const hasFeatures = unitBasedEntitlements.length > 0 || visibleEntitlements.length > 0;\n\n return (\n <PlanEntitlementsContainer className=\"stigg-plan-entitlements-container\">\n <Typography className=\"stigg-plan-entitlements-title\" color=\"secondary\" variant=\"h6\" bold>\n {getTitle(plan, paywallLocale, hasFeatures)}\n </Typography>\n {unitBasedEntitlements}\n {visibleEntitlements.map((entitlement) => (\n <EntitlementRow\n key={entitlement.feature?.id}\n displayNameOverride={entitlement.displayNameOverride}\n feature={entitlement.feature}\n resetPeriod={entitlement.resetPeriod}\n hasUnlimitedUsage={entitlement.hasUnlimitedUsage}\n usageLimit={entitlement.usageLimit}\n isCustom={entitlement.isCustom}\n />\n ))}\n </PlanEntitlementsContainer>\n );\n}\n","import {\n BillingPeriod,\n Customer,\n Plan,\n Subscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n PaywallCurrency,\n PaywallCalculatedPricePoint,\n BillableFeature,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\n\nexport type PaywallData = {\n plans: PaywallPlan[] | null;\n customer: Customer | null;\n currentSubscription: Subscription | null;\n isCustomerOnTrial: boolean;\n isLoading: boolean;\n selectedBillingPeriod: BillingPeriod;\n setSelectedBillingPeriod: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n locale: string;\n configuration?: CustomizedTheme;\n};\n\nexport enum SubscribeIntentionType {\n START_TRIAL = 'START_TRIAL',\n UPGRADE_TRIAL_TO_PAID = 'UPGRADE_TRIAL_TO_PAID',\n REQUEST_CUSTOM_PLAN_ACCESS = 'REQUEST_CUSTOM_PLAN_ACCESS',\n CHANGE_BILLING_PERIOD = 'CHANGE_BILLING_PERIOD',\n CHANGE_UNIT_QUANTITY = 'CHANGE_UNIT_QUANTITY',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n DOWNGRADE_PLAN = 'DOWNGRADE_PLAN',\n CANCEL_SCHEDULED_UPDATES = 'CANCEL_SCHEDULED_UPDATES',\n}\n\nexport type PaywallPlan = Plan & {\n isLowerThanCurrentPlan?: boolean;\n isTriable: boolean;\n isCurrentCustomerPlan: boolean;\n currentCustomerPlanBillingPeriod?: BillingPeriod;\n trialDaysLeft?: number;\n isNextPlan?: (billingPeriod: BillingPeriod) => boolean;\n scheduledUpdate?: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n paywallCurrency?: PaywallCurrency;\n paywallCalculatedPricePoints?: PaywallCalculatedPricePoint[];\n};\n\nexport type OnPlanSelectedCallbackFn = ({\n plan,\n customer,\n subscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n}: {\n plan: Plan;\n customer: Customer | null;\n subscription: Subscription | null;\n intentionType: SubscribeIntentionType;\n selectedBillingPeriod: BillingPeriod;\n billableFeatures?: BillableFeature[];\n}) => void | Promise<void>;\n\nexport type ShouldHidePlanFn = ({ plan }: { plan: PaywallPlan }) => boolean | Promise<boolean>;\n\nexport type SelectDefaultTierIndexFn = ({ plan }: { plan: PaywallPlan }) => number;\n","import Color from 'color';\nimport merge from 'lodash/merge';\nimport { HorizontalAlignment, StiggTheme } from './types';\nimport { CustomizedTheme } from './Theme';\n\nexport const flexLayoutMapper = (horizontalAlignment: HorizontalAlignment) => {\n return {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n }[horizontalAlignment];\n};\n\nexport const getResolvedTheme = (customizedTheme?: CustomizedTheme): StiggTheme => {\n const primaryColor = Color(customizedTheme?.palette?.primary || '#327EEE');\n const textColor = Color(customizedTheme?.palette?.text?.primary || '#001E6C');\n const successColor = Color('#4CAF50');\n const errorColor = Color('#f44336');\n\n const baseTheme: StiggTheme = {\n palette: {\n primary: primaryColor.hex(),\n primaryDark: primaryColor.darken(0.3).hex(),\n primaryLight: primaryColor.alpha(0.5).toString(),\n backgroundPaper: '#FFFFFF',\n backgroundHighlight: '#F5F6F9',\n backgroundSection: primaryColor.alpha(0.1).toString(),\n backgroundButton: primaryColor.alpha(0.08).toString(),\n outlinedBorder: '#C4CBDD',\n outlinedRestingBorder: primaryColor.alpha(0.5).toString(),\n outlinedHoverBackground: primaryColor.lightness(95).hex(),\n switchBorder: primaryColor.lighten(0.1).hex(),\n switchFill: primaryColor.lighten(0.5).hex(),\n switchHandle: primaryColor.hex(),\n warning: '#ed6c02',\n error: errorColor.hex(),\n errorDark: errorColor.darken(0.3).hex(),\n success: successColor.hex(),\n successDark: successColor.darken(0.3).hex(),\n white: '#FFFFFF',\n text: {\n primary: textColor.hex(),\n secondary: textColor.alpha(0.75).toString(),\n tertiary: textColor.alpha(0.5).toString(),\n disabled: textColor.alpha(0.35).toString(),\n },\n },\n layout: {\n planMinWidth: '330px',\n planMaxWidth: '330px',\n planMargin: '20px',\n planPadding: '40px',\n ctaAlignment: 'left',\n headerAlignment: 'left',\n descriptionAlignment: 'left',\n descriptionMinHeight: '80px',\n switchBottomSpacing: '40px',\n },\n shadows: {\n light: '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12)',\n popover:\n '0px 4px 5px -2px rgba(0, 30, 108, 0.2), 0px 7px 10px 1px rgba(0, 30, 108, 0.14), 0px 2px 16px 1px rgba(0, 30, 108, 0.12)',\n },\n border: {\n radius: '10px',\n },\n typography: {\n fontFamily: 'custom-font, DM Sans, sans-serif',\n h1: {\n fontSize: '32px',\n fontWeight: 'bold',\n },\n h2: {\n fontSize: '24px',\n fontWeight: 'normal',\n },\n h3: {\n fontSize: '16px',\n fontWeight: 'normal',\n },\n body: {\n fontSize: '14px',\n fontWeight: 'normal',\n },\n caption: {\n fontSize: '12px',\n fontWeight: 'normal',\n },\n },\n customCss: '',\n };\n\n return merge(baseTheme, customizedTheme);\n};\n","import React from 'react';\nimport moment from 'moment';\nimport isNil from 'lodash/isNil';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\n\nconst formatDate = (date: string) => moment.utc(date).format('MMMM Do, yyyy');\n\ntype GetSubscriptionScheduleUpdateTextsProps = {\n scheduledUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment | undefined;\n subscriptionPrices?: CustomerPortalSubscriptionPriceFragment[];\n billingPeriodRange?: CustomerPortalSubscription['billingPeriodRange'];\n options?: { withDate?: boolean; postfix?: string };\n};\n\nexport function getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices,\n billingPeriodRange,\n options = {},\n}: GetSubscriptionScheduleUpdateTextsProps) {\n if (!scheduledUpdate) {\n return {};\n }\n const { withDate, postfix = '' } = options;\n\n switch (scheduledUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n let shouldShowDate = withDate;\n if (isNil(shouldShowDate) && billingPeriodRange?.end) {\n shouldShowDate = !moment(scheduledUpdate.scheduledExecutionTime).isSame(billingPeriodRange?.end, 'day');\n }\n\n const line1 = (\n <>\n Your subscription will be downgraded to the <b>{scheduledUpdate.targetPackage?.displayName} plan</b>{' '}\n {shouldShowDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n const line2 = `Until then you still have access to your current plan.`;\n\n return { line1, line2 };\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n const variables = scheduledUpdate.scheduleVariables as BillingPeriodChangeVariables;\n const line1 = (\n <>\n Your billing cycle will change to <b>{variables.billingPeriod?.toLocaleLowerCase()}</b>{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n return { line1 };\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n const variables = scheduledUpdate.scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscriptionPrices, 'feature')).find(({ id }) => id === variables.featureId);\n const { featureUnits, featureUnitsPlural } = feature || {};\n const unitsText = variables.newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n const line1 = (\n <>\n Your subscription will be updated to <b>{variables.newUnitAmount}</b> {unitsText}{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n const line2 = `Until then you still have access to your current ${featureUnits} count.`;\n\n return { line1, line2 };\n }\n\n default: {\n return {};\n }\n }\n}\n","import { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { sum } from 'lodash';\nimport { PaywallPlan } from '../paywall';\nimport { SelectDefaultTierIndexFn } from '../paywall/types';\n\nexport function getPriceFeatureUnit(price: Price) {\n if (!price.feature) {\n return '';\n }\n\n return (price.feature.unitQuantity !== 1 ? price.feature.unitsPlural : price.feature.units) || '';\n}\n\nexport function getTierByQuantity(tiers: PriceTierFragment[], quantity: number): PriceTierFragment {\n const ascendingTiers = [...tiers];\n // Sort tiers by upTo value, ascending, if upTo is not set,\n // put it at the end as it represent the last infinity tier\n ascendingTiers.sort((a, b) => (!a.upTo ? 1 : !b.upTo ? -1 : a.upTo - b.upTo));\n\n for (const tier of ascendingTiers) {\n if (tier.upTo && quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nfunction getAmount(amount: number, selectedBillingPeriod?: BillingPeriod, shouldShowMonthlyPriceAmount?: boolean) {\n return selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? amount / 12 : amount;\n}\n\nfunction calculateTierPriceVolume(\n currentTier: PriceTierFragment,\n perUnitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n let amount = 0;\n\n if (currentTier.unitPrice) {\n const unitPrice = getAmount(currentTier.unitPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n amount += unitPrice * perUnitQuantity;\n }\n\n if (currentTier.flatPrice) {\n amount += getAmount(currentTier.flatPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n\n return amount;\n}\n\nexport function calculateTierPriceGraduated(\n tiers: PriceTierFragment[],\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): { total: number; breakdown: Array<{ unitQuantity: number; amount: number }> } {\n let remainingQuantity = unitQuantity;\n let prevUpTo = 0;\n let currentTierIndex = 0;\n\n const breakdown: Array<{ unitQuantity: number; amount: number }> = [];\n\n while (remainingQuantity > 0 && currentTierIndex < tiers.length) {\n const tier = tiers[currentTierIndex];\n const { upTo } = tier;\n\n if (isNil(upTo)) {\n breakdown.push({\n unitQuantity: remainingQuantity,\n amount: calculateTierPriceVolume(tier, remainingQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity = 0;\n } else {\n const unitsInTier = upTo - prevUpTo;\n const consumed = Math.min(remainingQuantity, unitsInTier);\n breakdown.push({\n unitQuantity: consumed,\n amount: calculateTierPriceVolume(tier, consumed, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity -= consumed;\n prevUpTo = upTo;\n }\n\n currentTierIndex += 1;\n }\n\n const total = sum(breakdown.map(({ amount }) => amount));\n\n return {\n breakdown,\n total,\n };\n}\n\nexport function calculateTierPrice(\n price: Pick<Price, 'tiers' | 'tiersMode'>,\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n if (!price.tiers) {\n return 0;\n }\n\n switch (price.tiersMode) {\n case TiersMode.Volume: {\n const currentTier = getTierByQuantity(price.tiers, unitQuantity);\n return calculateTierPriceVolume(currentTier, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n case TiersMode.Graduated: {\n return calculateTierPriceGraduated(price.tiers, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount)\n .total;\n }\n default:\n return 0;\n }\n}\n\nexport function hasTierWithUnitPrice(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.some(({ unitPrice, upTo }) => unitPrice && !isNil(upTo));\n}\n\nexport function isBulkTiers(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.every(({ unitPrice, upTo }) => !unitPrice || isNil(upTo));\n}\n\nexport function isQuantityInFirstTier(tiers: PriceTierFragment[] | null | undefined, quantity: number) {\n return tiers?.[0].upTo && quantity <= tiers[0].upTo;\n}\n\nexport function getTiersPerUnitQuantities(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n currentSubscription: Subscription | null,\n selectDefaultTierIndex?: SelectDefaultTierIndexFn,\n): Record<string, number> {\n const planTierPrices = plan.pricePoints.filter(\n (price) => price.billingPeriod === billingPeriod && price.isTieredPrice,\n );\n\n if (planTierPrices.length === 1) {\n const [price] = planTierPrices;\n const { featureId } = price.feature!;\n const selectedDefaultTierIndex = selectDefaultTierIndex ? selectDefaultTierIndex({ plan }) : 0;\n const currentTier = price.tiers![selectedDefaultTierIndex];\n let quantity = hasTierWithUnitPrice(price.tiers) ? 1 : currentTier.upTo || 1;\n\n if (currentSubscription && currentSubscription.plan.id === plan.id) {\n const tieredPrice = currentSubscription.prices.find(\n (subscriptionPrice) =>\n subscriptionPrice.pricingModel === BillingModel.PerUnit &&\n subscriptionPrice.tiersMode &&\n subscriptionPrice.feature?.featureId === featureId,\n );\n\n if (tieredPrice) {\n quantity = tieredPrice.feature!.unitQuantity || 1;\n }\n }\n\n const result: Record<string, number> = {};\n result[featureId] = quantity;\n\n return result;\n }\n\n return {};\n}\n\nexport enum PriceTierComparison {\n Lower = -1,\n Equal = 0,\n Higher = 1,\n}\n\nexport function compareSelectedTierToCurrentTier(\n perUnitQuantityByFeature: Record<string, number>,\n currentSubscription: Subscription | null,\n): PriceTierComparison {\n if (!currentSubscription) {\n return PriceTierComparison.Equal;\n }\n\n const currentTierPrice = currentSubscription.prices.find(\n (price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode,\n );\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity: oldQuantity } = currentTierPrice.feature!;\n\n if (isNil(oldQuantity)) {\n return PriceTierComparison.Equal;\n }\n\n const newQuantity = perUnitQuantityByFeature[featureId];\n\n if (newQuantity < oldQuantity) {\n return PriceTierComparison.Lower;\n }\n if (newQuantity > oldQuantity) {\n return PriceTierComparison.Higher;\n }\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport { isFunction } from 'lodash';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport styled from '@emotion/styled/macro';\nimport { css, useTheme } from '@emotion/react';\nimport { PaywallPlan, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport { getSubscriptionScheduleUpdateTexts } from '../utils/getSubscriptionScheduleUpdateTexts';\nimport { compareSelectedTierToCurrentTier, PriceTierComparison } from '../utils/priceTierUtils';\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 10px;\n`;\n\nconst OfferingButton = styled.button<{ $disabled?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'default' : 'pointer')};\n padding: 8px 12px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundButton};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedRestingBorder}`};\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 42px;\n min-width: 120px;\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n `}\n\n &:hover {\n background-color: ${({ theme, $disabled }) =>\n $disabled ? theme.stigg.palette.backgroundButton : theme.stigg.palette.outlinedHoverBackground};\n }\n`;\n\nconst ButtonText = styled(Typography)`\n margin: 0;\n font-size: 15px;\n`;\n\nconst ScheduledUpdateText = styled(Typography)`\n min-height: 87px;\n`;\n\nconst CancelScheduledUpdateButton = styled.button<{ $disabled?: boolean }>`\n background: none;\n border: none;\n padding: 0;\n color: ${({ theme }) => theme.stigg.palette.text.secondary};\n\n text-decoration: underline;\n cursor: pointer;\n`;\n\nconst TrialDaysLeft = styled(Typography)`\n margin-top: 8px;\n margin-bottom: 17px;\n min-height: 20px;\n`;\n\nconst ButtonLayout = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 4px;\n align-self: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.ctaAlignment)};\n width: 100%;\n`;\n\ntype PlanOfferingButtonProps = {\n isNextPlan?: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n withTrialLeftRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n withTrialLeftRow,\n currentSubscription,\n perUnitQuantityByFeature,\n}: PlanOfferingButtonProps) {\n const theme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const {\n currentPlan,\n custom,\n downgrade,\n startTrial,\n upgrade,\n startNew,\n switchToBillingPeriod,\n cancelScheduledUpdate,\n } = paywallLocale.planCTAButton;\n const resolvedDowngrade = isFunction(downgrade) ? downgrade(plan) : downgrade;\n const resolvedUpgrade = isFunction(upgrade) ? upgrade(plan) : upgrade;\n\n const buttonProps: {\n title: string;\n disabled: boolean;\n intentionType: SubscribeIntentionType;\n } = {\n title: customer ? (plan.isLowerThanCurrentPlan ? resolvedDowngrade : resolvedUpgrade) : startNew,\n disabled: false,\n intentionType: plan.isLowerThanCurrentPlan\n ? SubscribeIntentionType.DOWNGRADE_PLAN\n : isCustomerOnTrial\n ? SubscribeIntentionType.UPGRADE_TRIAL_TO_PAID\n : SubscribeIntentionType.UPGRADE_PLAN,\n };\n const isCustomPrice = plan.pricingType === PricingType.Custom;\n\n const { line1: scheduledUpdateText } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate: plan.scheduledUpdate,\n options: { withDate: true },\n });\n\n if (plan.isTriable && !plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n buttonProps.title = startTrial(plan);\n buttonProps.intentionType = SubscribeIntentionType.START_TRIAL;\n } else if (plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n const isSameBillingPeriod = billingPeriod === plan.currentCustomerPlanBillingPeriod;\n\n if (\n isSameBillingPeriod ||\n (plan.pricingType && [PricingType.Free, PricingType.Custom].includes(plan.pricingType))\n ) {\n const planComparison = compareSelectedTierToCurrentTier(perUnitQuantityByFeature, currentSubscription);\n switch (planComparison) {\n case PriceTierComparison.Lower:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedDowngrade;\n break;\n case PriceTierComparison.Higher:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedUpgrade;\n break;\n\n default:\n buttonProps.title = currentPlan;\n buttonProps.disabled = true;\n break;\n }\n } else {\n buttonProps.title = switchToBillingPeriod(billingPeriod);\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_BILLING_PERIOD;\n }\n } else if (isCustomPrice) {\n buttonProps.title = typeof custom === 'function' ? custom({ plan, selectedBillingPeriod: billingPeriod }) : custom;\n buttonProps.intentionType = SubscribeIntentionType.REQUEST_CUSTOM_PLAN_ACCESS;\n }\n\n if (isNextPlan && plan.scheduledUpdate) {\n buttonProps.disabled = false;\n buttonProps.title = cancelScheduledUpdate;\n buttonProps.intentionType = SubscribeIntentionType.CANCEL_SCHEDULED_UPDATES;\n }\n\n const isDisabled = isLoading || buttonProps.disabled;\n return (\n <>\n <ButtonLayout className=\"stigg-paywall-plan-button-layout\">\n {isNextPlan && scheduledUpdateText ? (\n <ScheduledUpdateText color=\"secondary\" variant=\"body1\" className=\"stigg-paywall-schedule-update-text\">\n {scheduledUpdateText}{' '}\n <CancelScheduledUpdateButton\n color=\"secondary\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n {buttonProps.title}\n </CancelScheduledUpdateButton>\n </ScheduledUpdateText>\n ) : (\n <>\n <OfferingButton\n className=\"stigg-paywall-plan-button\"\n data-testid={`paywall-card-cta-${plan.displayName}`}\n disabled={isDisabled}\n $disabled={isDisabled}\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n <ButtonText className=\"stigg-paywall-plan-button-text\" variant=\"h6\" color=\"primary.main\">\n {buttonProps.title}\n </ButtonText>\n {isLoading && <LoadingIndicator color={theme.stigg.palette.text.disabled} loading size={16} />}\n </OfferingButton>\n\n {!withTrialLeftRow ? (\n <div style={{ height: '20px' }} />\n ) : (\n <TrialDaysLeft className=\"stigg-trial-days-left-text\" variant=\"h6\" color=\"secondary\">\n {plan.isCurrentCustomerPlan && plan.trialDaysLeft && (\n <>\n <b>{plan.trialDaysLeft} days</b> left on your free trial\n </>\n )}\n </TrialDaysLeft>\n )}\n </>\n )}\n </ButtonLayout>\n </>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.95392 1.03353C7.1196 1.56038 6.82682 2.12178 6.29997 2.28746C5.79034 2.44773 5.30237 2.68036 4.85175 2.98146C3.76168 3.70982 2.95789 4.79361 2.57732 6.04817C2.19675 7.30273 2.26296 8.65044 2.76466 9.86166C3.26637 11.0729 4.17252 12.0727 5.32873 12.6907C6.48494 13.3087 7.81967 13.5067 9.10549 13.2509C10.3913 12.9951 11.5487 12.3014 12.3804 11.288C13.2121 10.2746 13.6666 9.00413 13.6666 7.69312C13.6666 7.14083 14.1144 6.69312 14.6666 6.69312C15.2189 6.69312 15.6666 7.14083 15.6666 7.69312C15.6666 7.92228 15.6564 8.15052 15.6361 8.37721C15.6465 8.44937 15.6492 8.52379 15.6432 8.59952L15.6392 8.64883C15.6298 8.75932 15.6028 8.86407 15.5612 8.96057C15.3409 10.2743 14.7807 11.5158 13.9264 12.5568C12.8012 13.9279 11.2353 14.8664 9.49568 15.2125C7.75603 15.5585 5.95022 15.2906 4.38594 14.4545C2.82166 13.6184 1.59568 12.2657 0.916905 10.627C0.238131 8.98832 0.148554 7.16495 0.663439 5.4676C1.17832 3.77025 2.26581 2.30394 3.74061 1.31852C4.35023 0.911179 5.01049 0.596408 5.69999 0.379577C6.22684 0.213898 6.78824 0.506683 6.95392 1.03353ZM7.56761 1.27284C7.61434 0.722538 8.09832 0.314306 8.64863 0.361031L8.69791 0.365373C9.24791 0.415584 9.65307 0.902149 9.60286 1.45215C9.55265 2.00214 9.06608 2.4073 8.51608 2.35709L8.47942 2.35386C7.92912 2.30714 7.52089 1.82315 7.56761 1.27284ZM12.4186 2.90891C12.8384 2.55014 13.4697 2.59967 13.8284 3.01954C13.8498 3.04454 13.871 3.06967 13.892 3.09494C14.2454 3.51937 14.1878 4.14991 13.7634 4.50329C13.339 4.85667 12.7084 4.79906 12.355 4.37463C12.3395 4.35592 12.3238 4.33731 12.3079 4.31879C11.9492 3.89892 11.9987 3.26769 12.4186 2.90891ZM8.99998 5.33352C8.99998 4.78124 8.55226 4.33352 7.99998 4.33352C7.44769 4.33352 6.99998 4.78124 6.99998 5.33352V8.00019C6.99998 8.55247 7.44769 9.00019 7.99998 9.00019H10.6666C11.2189 9.00019 11.6666 8.55247 11.6666 8.00019C11.6666 7.4479 11.2189 7.00019 10.6666 7.00019H8.99998V5.33352Z\" fill=\"#7586B0\"/>\n</svg>\n","import { Currency } from '@stigg/js-client-sdk';\nimport getSymbolFromCurrency from 'currency-symbol-map';\n\nexport const currencyPriceFormatter = ({\n amount,\n currency = Currency.Usd,\n locale,\n maximumFractionDigits = 5,\n minimumFractionDigits = 0,\n}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) => {\n const currencyString = currency.toString();\n const currencySymbol = getSymbolFromCurrency(currencyString);\n let formattedPrice = new Intl.NumberFormat(locale, {\n maximumFractionDigits,\n minimumFractionDigits,\n style: 'currency',\n currency: currencyString,\n ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n }).format(amount || 0);\n\n if (currencySymbol) {\n formattedPrice = formattedPrice.replace(currencyString, currencySymbol);\n }\n\n // remove space between currency symbol and price\n formattedPrice = formattedPrice.replace(/\\s/g, '');\n\n return formattedPrice;\n};\n","export function numberFormatter(number: number, { locale }: { locale?: string } = {}) {\n return new Intl.NumberFormat(locale).format(number);\n}\n","import { BillingModel, BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\nimport { numberFormatter } from './numberUtils';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n paywallLocale: PaywallLocalization;\n perUnitQuantityByFeature?: Record<string, number>;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n paywallLocale,\n perUnitQuantityByFeature,\n}: GetPaidPriceTextParams): PlanPriceText {\n const { amount, currency } = paywallCalculatedPrice || planPrices[0];\n const priceAmount = amount || 0;\n\n const isSinglePrice = planPrices.length === 1;\n let priceNumber =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? priceAmount / 12 : priceAmount;\n\n let tiers;\n let tierUnits;\n const pricePeriod = paywallLocale.price.pricePeriod(\n shouldShowMonthlyPriceAmount ? BillingPeriod.Monthly : BillingPeriod.Annually,\n );\n let unit = pricePeriod;\n\n for (const price of planPrices) {\n if (price.isTieredPrice && price.tiers) {\n const quantity = perUnitQuantityByFeature?.[price.feature!.featureId] || 1;\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n\n priceNumber += calculateTierPrice(price, quantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const formattedUnits =\n price.blockSize && price.blockSize > 1\n ? `for ${numberFormatter(price.blockSize)} ${price.feature?.unitsPlural || price.feature?.units || ''}`\n : `per ${price.feature?.units || ''}`;\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = `${formattedUnits} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `${formattedUnits}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({ amount: priceNumber, currency, locale }),\n unit,\n tiers,\n tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { getPaidPriceText } from './getPaidPriceText';\nimport { PaywallPlan, PaywallLocalization } from '../paywall';\n\nexport type PlanPriceText = {\n price: string;\n unit?: string;\n tiers?: PriceTierFragment[] | null | undefined;\n tierUnits?: string;\n};\n\nexport function getPlanPrice(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n paywallLocale: PaywallLocalization,\n locale: string,\n shouldShowMonthlyPriceAmount: boolean,\n perUnitQuantityByFeature?: Record<string, number>,\n): PlanPriceText {\n switch (plan.pricingType) {\n case PricingType.Free:\n if (typeof paywallLocale.price.free === 'function') {\n return paywallLocale.price.free(plan.paywallCurrency);\n }\n\n return paywallLocale.price.free;\n case PricingType.Custom:\n return {\n price:\n typeof paywallLocale.price.custom === 'function'\n ? paywallLocale.price.custom({ plan, selectedBillingPeriod: billingPeriod })\n : paywallLocale.price.custom,\n };\n case PricingType.Paid: {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n\n if (!planPrices?.length && !paywallCalculatedPrice) {\n return {\n price: paywallLocale.price.priceNotSet,\n };\n }\n\n const paidParams = {\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod: billingPeriod,\n perUnitQuantityByFeature: perUnitQuantityByFeature || {},\n };\n\n return paywallLocale.price.paid\n ? paywallLocale.price.paid({ ...paidParams, plan })\n : getPaidPriceText({ ...paidParams, locale, shouldShowMonthlyPriceAmount, paywallLocale });\n }\n default:\n return {\n price: '',\n };\n }\n}\n","import React from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport MuiButton, { ButtonProps } from '@mui/material/Button';\n\nexport type StyledButtonProps = { $success?: boolean; $error?: boolean };\n\nconst StyledButton = styled(MuiButton, { shouldForwardProp: (prop) => !prop.startsWith('$') })<StyledButtonProps>`\n border-radius: 10px;\n text-transform: none;\n\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.success;\n }\n if ($error) {\n return theme.stigg.palette.error;\n }\n return '';\n }};\n\n &:hover {\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.successDark;\n }\n if ($error) {\n return theme.stigg.palette.errorDark;\n }\n return '';\n }};\n }\n`;\n\nexport const Button = ({ variant = 'outlined', ...props }: ButtonProps & StyledButtonProps) => {\n return <StyledButton variant={variant} {...props} />;\n};\n","import styled from '@emotion/styled';\nimport { OutlinedInputProps } from '@mui/material/OutlinedInput';\nimport TextField from '@mui/material/TextField';\n\nexport const InputField = styled(TextField)<OutlinedInputProps>(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n height: '42px',\n borderRadius: theme.stigg.border.radius,\n fieldset: {\n borderColor: theme.stigg.palette.outlinedBorder,\n },\n '&:not(.Mui-focused):hover fieldset': {\n borderColor: theme.stigg.palette.outlinedRestingBorder,\n },\n },\n '& .MuiInputBase-input': {\n padding: '8px 12px',\n borderRadius: theme.stigg.border.radius,\n fontFamily: theme.stigg.typography.fontFamily,\n color: theme.stigg.palette.text.primary,\n ...theme.stigg.typography.body,\n },\n '& .Mui-error': {\n fontFamily: theme.stigg.typography.fontFamily,\n },\n}));\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport ReactSkeleton from 'react-loading-skeleton';\n\nexport const SkeletonsContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $gap: number;\n $flexDirection?: 'row' | 'column';\n}>`\n display: flex;\n flex-direction: ${({ $flexDirection }) => $flexDirection || 'row'};\n gap: ${({ $gap }) => $gap}px;\n`;\n\nexport const FlexedSkeletonContainer = styled(SkeletonsContainer)`\n span {\n display: flex;\n flex: 1;\n }\n`;\n\nexport const FlexedSkeleton = styled(Grid)<{ flex: number }>`\n span {\n display: flex;\n flex: ${({ flex }) => flex};\n }\n`;\n\nexport const Skeleton = styled(ReactSkeleton)`\n border-radius: 4px;\n`;\n","import React from 'react';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport styled from '@emotion/styled/macro';\nimport { FlexedSkeleton, FlexedSkeletonContainer, Skeleton, SkeletonsContainer } from './Skeletons.style';\n\nconst ContentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n\nexport function ContentLoadingSkeleton() {\n return (\n <ContentContainer container>\n <SkeletonsContainer item $gap={48}>\n <Skeleton width={120} height={20} />\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <Divider className=\"stigg-checkout-plan-header-divider\" sx={{ marginY: 2 }} />\n\n <ContentContainer item>\n <Skeleton width={120} height={20} />\n\n <FlexedSkeletonContainer $gap={16} marginTop={3}>\n <Skeleton height={20} />\n <Skeleton height={20} />\n </FlexedSkeletonContainer>\n\n <SkeletonsContainer $gap={130} marginTop={3}>\n <FlexedSkeleton flex={1}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n\n <FlexedSkeleton flex={3}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n </SkeletonsContainer>\n </ContentContainer>\n </ContentContainer>\n );\n}\n","import React from 'react';\n\nexport const ON_WHEEL_BLUR = (e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur();\n","import InputAdornment from '@mui/material/InputAdornment';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { InputField } from '../checkout/components';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { ON_WHEEL_BLUR } from '../utils/onWheelBlur';\n\nexport function VolumePerUnitInput({\n width,\n tierUnits,\n value,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'width' | 'tierUnits' | 'value'> & {\n handleChange: (quantity: number) => void;\n}) {\n return (\n <InputField\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n fullWidth\n sx={{ minHeight: '46px', width }}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Typography variant=\"body1\" color=\"primary\">\n {tierUnits}\n </Typography>\n </InputAdornment>\n ),\n }}\n value={value}\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n />\n );\n}\n","import { PriceTierFragment } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport { map } from 'lodash';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { formatNumber } from '../utils/formatNumber';\n\nconst TierSelect = styled(Select)`\n border-radius: 10px;\n min-height: 42px;\n min-width: 120px;\n\n &:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n }\n`;\n\nconst TierInput = styled(OutlinedInput)`\n & .MuiInputBase-input {\n padding: 10px 12px;\n }\n\n &.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.primary} !important;\n }\n`;\n\nexport function VolumeBulkSelect({\n value,\n componentId,\n tierUnits,\n tiers,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'value' | 'componentId' | 'tiers' | 'tierUnits'> & {\n handleChange: (quantity: number) => void;\n}) {\n if (!tiers) {\n return null;\n }\n\n return (\n <TierSelect\n value={value.toString()}\n fullWidth\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n id={componentId}\n input={<TierInput />}\n MenuProps={{\n MenuListProps: { disablePadding: true },\n PaperProps: {\n sx: { marginTop: '4px', borderRadius: '10px' },\n },\n }}>\n {map(tiers, (tier: PriceTierFragment) => (\n <MenuItem className=\"stigg-price-tier-menu-item-text\" key={tier.upTo} value={tier.upTo?.toString()}>\n <Typography variant=\"body1\" color=\"primary\" style={{ lineHeight: 'unset' }}>\n {formatNumber(tier.upTo)} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n );\n}\n","import { PriceTierFragment, TiersMode } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { hasTierWithUnitPrice } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\nimport { VolumePerUnitInput } from './VolumePerUnitInput';\nimport { VolumeBulkSelect } from './VolumeBulkSelect';\n\nexport type TiersSelectContainerProps = {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n tiersMode?: TiersMode | null;\n handleChange: (quantity: number) => void;\n value: number;\n width?: number;\n};\n\nconst TiersSelectLayout = styled(Typography)`\n min-height: 46px;\n`;\n\nexport function TiersSelectContainer(props: TiersSelectContainerProps) {\n const { tiers } = props;\n\n return (\n <TiersSelectLayout as=\"div\" className=\"stigg-price-tier-select\">\n {hasTierWithUnitPrice(tiers) ? <VolumePerUnitInput {...props} /> : <VolumeBulkSelect {...props} />}\n </TiersSelectLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { Typography } from '../common/Typography';\nimport { TiersSelectContainer } from '../common/TiersSelectContainer';\n\nconst EMPTY_CHAR = '';\n\nconst PlanPriceContainer = styled(Typography)`\n word-break: break-word;\n width: 100%;\n`;\n\nconst UnitSpan = styled(Typography)`\n white-space: nowrap;\n`;\n\nconst PriceSpan = styled(Typography)`\n white-space: normal;\n min-height: 39px;\n`;\n\ntype PriceBillingPeriodProps = {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n paywallLocale: PaywallLocalization;\n};\n\nfunction PriceBillingPeriod({\n plan,\n billingPeriod,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n paywallLocale,\n}: PriceBillingPeriodProps) {\n const hasPrice = plan.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n\n let content = EMPTY_CHAR;\n if (hasPrice && hasMonthlyPrice && hasAnnuallyPrice) {\n content = paywallLocale.price.billingPeriod?.(billingPeriod) || `, billed ${billingPeriod.toLowerCase()}`;\n }\n\n return (\n <Typography span className=\"stigg-price-billing-period-text\" variant=\"h6\" color=\"secondary\">\n {content}\n </Typography>\n );\n}\n\nexport const PlanPrice = ({\n showStartingAt,\n withUnitPriceRow,\n withStartingAtRow,\n withTiersRow,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n perUnitQuantityByFeature,\n setPerUnitQuantityByFeature,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n setPerUnitQuantityByFeature: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n locale: string;\n}) => {\n const { price, unit, tiers, tierUnits } = getPlanPrice(\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n perUnitQuantityByFeature,\n );\n\n // We currently only support prices with one tier - so we select the first one\n const tieredPrice = plan.pricePoints.find((planPrice) => {\n return planPrice.billingPeriod === billingPeriod && planPrice.isTieredPrice;\n });\n const featureId = tieredPrice ? tieredPrice.feature!.featureId : undefined;\n const perUnitQuantity = perUnitQuantityByFeature[featureId || ''] ?? 1;\n\n const handlePerUnitQuantityChange = (quantity: number) => {\n if (!featureId) {\n return;\n }\n\n setPerUnitQuantityByFeature((prevState) => ({\n ...prevState,\n [featureId]: quantity,\n }));\n };\n\n return (\n <PlanPriceContainer as=\"div\" className=\"stigg-price-text\">\n <>\n {withStartingAtRow && (\n <Typography\n style={{ minHeight: '20px' }}\n className=\"stigg-starting-at-text\"\n variant=\"body1\"\n color=\"secondary\">\n {showStartingAt ? paywallLocale.price.startingAtCaption : EMPTY_CHAR}\n </Typography>\n )}\n\n <PriceSpan className=\"stigg-price-point\" variant=\"h1\">\n {price}\n </PriceSpan>\n\n {withUnitPriceRow && (\n <Typography as=\"div\" className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan className=\"stigg-price-unit-text\" span variant=\"h6\" color=\"secondary\">\n {unit}\n </UnitSpan>\n\n <PriceBillingPeriod\n plan={plan}\n billingPeriod={billingPeriod}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n paywallLocale={paywallLocale}\n />\n </Typography>\n )}\n\n {withTiersRow ? (\n <TiersSelectContainer\n componentId={`${plan.id}_${featureId}_tier`}\n tiers={tiers}\n tierUnits={tierUnits}\n tiersMode={tieredPrice?.tiersMode}\n handleChange={handlePerUnitQuantityChange}\n value={perUnitQuantity}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useState } from 'react';\nimport { BillableFeature, BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport Grid from '@mui/material/Grid';\nimport { PlanEntitlements } from './PlanEntitlements';\nimport { PlanOfferingButton } from './PlanOfferingButton';\nimport { PaywallPlan, SelectDefaultTierIndexFn, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport MiniSchedule from '../../assets/mini-schedule.svg';\nimport { PlanPrice } from './PlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PlanOfferingButtonHeight = '66px';\n\nconst PlanOfferingContainer = styled.div<{ $isHighlighted: boolean; $isCurrentPlan: boolean }>`\n position: relative;\n background-color: ${({ theme, $isCurrentPlan }) =>\n $isCurrentPlan ? theme.stigg.palette.backgroundHighlight : theme.stigg.palette.backgroundPaper};\n border: ${({ theme, $isHighlighted }) =>\n $isHighlighted ? `3px solid ${theme.stigg.palette.primary}` : `1px solid ${theme.stigg.palette.outlinedBorder}`};\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n display: flex;\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n position: relative;\n`;\n\nconst PlanHeader = styled(Typography)`\n padding-bottom: 8px;\n`;\n\nconst Divider = styled.div`\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n margin-bottom: 40px;\n`;\n\nconst PlanDescription = styled(Typography)`\n text-align: ${({ theme }) => theme.stigg.layout.descriptionAlignment};\n min-height: ${({ theme }) => theme.stigg.layout.descriptionMinHeight};\n`;\n\nconst HighlightBadge = styled.div`\n background-color: ${({ theme }) => theme.stigg.palette.primary};\n border-radius: 40px;\n position: absolute;\n top: -12px;\n`;\n\nconst HighlightText = styled(Typography)`\n margin: 0;\n padding: 2px 8px;\n`;\n\nconst HeaderWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.headerAlignment)};\n`;\n\ntype PlanOfferingProps = {\n withUnitPriceRow: boolean;\n withTiersRow: boolean;\n withTrialLeftRow: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n isHighlighted: boolean;\n shouldShowDescriptionSection: boolean;\n hasAnnuallyPrice: boolean;\n hasMonthlyPrice: boolean;\n isCustomerOnTrial: boolean;\n onPlanSelected: (intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => void | Promise<void>;\n paywallLocale: PaywallLocalization;\n locale: string;\n withStartingAtRow: boolean;\n isCustomerInCustomPlan: boolean;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nconst NextPlanTagContainer = styled.div`\n position: absolute;\n top: 0;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n border-radius: 0px 0px 10px 10px;\n padding: 3px 12px;\n`;\n\nconst StyledMiniSchedule = styled(MiniSchedule)<{ $iconsColor?: string }>`\n display: flex;\n height: 100%;\n margin-right: 4px;\n\n path {\n fill: ${({ theme }) => theme.stigg.palette.text.primary};\n }\n`;\n\nfunction UpcomingChangeTag({ text = 'Next', iconsColor }: { text?: string; iconsColor?: string }) {\n return (\n <NextPlanTagContainer>\n <Grid display=\"flex\" alignItems=\"center\" gap={1}>\n <StyledMiniSchedule $iconsColor={iconsColor} />\n <Typography color=\"primary\" variant=\"body1\">\n {text}\n </Typography>\n </Grid>\n </NextPlanTagContainer>\n );\n}\n\nexport function PlanOffering({\n withUnitPriceRow,\n withTiersRow,\n withTrialLeftRow,\n customer,\n plan,\n billingPeriod,\n isHighlighted,\n currentSubscription,\n shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\n isCustomerInCustomPlan,\n selectDefaultTierIndex,\n}: PlanOfferingProps) {\n const isNextPlan = plan.isNextPlan && plan.isNextPlan(billingPeriod);\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n const showStartingAt = planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n const showCTAButton = !isCustomerInCustomPlan || plan.pricingType === PricingType.Custom;\n\n let planBadge = null;\n if (isNextPlan) {\n planBadge = <UpcomingChangeTag text=\"Next plan\" />;\n } else if (isHighlighted && paywallLocale.highlightChip) {\n planBadge = (\n <HighlightBadge className=\"stigg-highlight-badge\">\n <HighlightText className=\"stigg-highlight-badge-text\" color=\"white\" bold>\n {paywallLocale.highlightChip}\n </HighlightText>\n </HighlightBadge>\n );\n }\n\n const [perUnitQuantityByFeature, setPerUnitQuantityByFeature] = useState<Record<string, number>>(\n getTiersPerUnitQuantities(plan, billingPeriod, currentSubscription, selectDefaultTierIndex),\n );\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const perUnitBillableFeatures: BillableFeature[] = Object.keys(perUnitQuantityByFeature).map((featureId) => ({\n featureId,\n quantity: perUnitQuantityByFeature[featureId],\n }));\n\n return onPlanSelected(intentionType, perUnitBillableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames(`stigg-${plan.id}`, 'stigg-plan-offering-container', {\n 'stigg-current-plan': plan.isCurrentCustomerPlan,\n })}\n $isHighlighted={isHighlighted}\n $isCurrentPlan={plan.isCurrentCustomerPlan}>\n {planBadge}\n\n <HeaderWrapper className=\"stigg-header-wrapper\">\n <PlanHeader className=\"stigg-plan-header\" variant=\"h3\">\n {plan.displayName}\n </PlanHeader>\n\n {shouldShowDescriptionSection && (\n <PlanDescription className=\"stigg-plan-description\" variant=\"h6\" color=\"secondary\">\n {plan.description}\n </PlanDescription>\n )}\n\n <PlanPrice\n showStartingAt={showStartingAt}\n withUnitPriceRow={withUnitPriceRow}\n withStartingAtRow={withStartingAtRow}\n withTiersRow={withTiersRow}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n setPerUnitQuantityByFeature={setPerUnitQuantityByFeature}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n\n {showCTAButton ? (\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n withTrialLeftRow={withTrialLeftRow}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n ) : (\n <div style={{ height: PlanOfferingButtonHeight }} />\n )}\n\n <Divider className=\"stigg-plan-header-divider\" />\n </HeaderWrapper>\n\n <PlanEntitlements plan={plan} billingPeriod={billingPeriod} paywallLocale={paywallLocale} />\n </PlanOfferingContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Switch from 'react-switch';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Typography } from '../common/Typography';\n\nconst PickerContainer = styled.div`\n height: 40px;\n padding: 0 20px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n border-radius: 10px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PeriodText = styled(Typography)`\n margin: 0 8px;\n`;\n\nconst StyledSwitch = styled(Switch)`\n & .react-switch-bg {\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.switchBorder}`};\n background: ${({ theme }) => theme.stigg.palette.switchFill} !important;\n }\n\n & .react-switch-handle {\n box-shadow: ${({ theme }) => theme.stigg.shadows.light};\n background: ${({ theme }) => theme.stigg.palette.switchHandle} !important;\n top: 0.5px !important;\n }\n`;\n\nfunction DiscountRate({ discount, disabled }: { discount: number; disabled: boolean }) {\n return (\n <Typography variant=\"h6\" color={disabled ? 'disabled' : 'primary'} className=\"stigg-discount-rate-text\">\n {discount}% off\n </Typography>\n );\n}\n\nexport function BillingPeriodPicker({\n discountRate,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n}: {\n discountRate: number;\n selectedBillingPeriod: BillingPeriod;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n}) {\n if (availableBillingPeriods.length <= 1) {\n return null;\n }\n\n const isMonthlyBillingPeriod = selectedBillingPeriod === BillingPeriod.Monthly;\n\n return (\n <PickerContainer className=\"stigg-period-picker-container\">\n <PeriodText\n variant=\"h6\"\n className=\"stigg-monthly-period-text\"\n color={isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Monthly\n </PeriodText>\n <StyledSwitch\n className=\"stigg-period-switch\"\n uncheckedIcon={false}\n checkedIcon={false}\n height={16}\n width={33}\n onChange={(isAnnuallySelected) =>\n onBillingPeriodChanged(isAnnuallySelected ? BillingPeriod.Annually : BillingPeriod.Monthly)\n }\n checked={!isMonthlyBillingPeriod}\n borderRadius={10}\n handleDiameter={19}\n />\n <PeriodText\n variant=\"h6\"\n className=\"stigg-annual-period-text\"\n color={!isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Annual\n </PeriodText>\n {discountRate !== 0 && <DiscountRate discount={discountRate} disabled={isMonthlyBillingPeriod} />}\n </PickerContainer>\n );\n}\n","import { BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { PaywallPlan } from '../paywall';\nimport { calculateTierPrice } from './priceTierUtils';\n\nexport function calculateDiscountRate(monthlyPrice?: number | null, annuallyPrice?: number | null) {\n if (!isNil(monthlyPrice) && !isNil(annuallyPrice)) {\n const annuallyPerMonthPrice = annuallyPrice / 12;\n return Math.round(((monthlyPrice - annuallyPerMonthPrice) / monthlyPrice) * 100);\n }\n\n return null;\n}\n\nfunction getPlanBillingPeriodAmount(plan: PaywallPlan, billingPeriod: BillingPeriod) {\n let pricePoint: PaywallCalculatedPricePoint | Price | undefined;\n\n pricePoint = plan.paywallCalculatedPricePoints?.find((price) => price.billingPeriod === billingPeriod);\n\n if (!pricePoint) {\n pricePoint = plan.pricePoints.find((price) => price.billingPeriod === billingPeriod);\n }\n\n if (!pricePoint?.amount) {\n const tieredPrice = plan.pricePoints.find((price) => {\n return price.isTieredPrice && price.billingPeriod === billingPeriod;\n });\n\n if (tieredPrice) {\n return calculateTierPrice(tieredPrice, 1);\n }\n }\n\n return pricePoint?.amount;\n}\n\nexport function calculatePaywallDiscountRate(plans: PaywallPlan[]) {\n return plans.reduce((maxDiscount, plan) => {\n const monthlyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Monthly);\n const annuallyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Annually);\n\n const discountRate = calculateDiscountRate(monthlyAmount, annuallyAmount);\n if (discountRate) {\n maxDiscount = Math.max(maxDiscount, discountRate);\n }\n\n return maxDiscount;\n }, 0);\n}\n","<svg width=\"135\" height=\"16\" viewBox=\"0 0 135 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0.0987549 3.43016V12.9878H1.15589V9.52681H3.96527C5.94922 9.52681 7.28874 8.25245 7.28874 6.47848C7.28874 4.70452 5.94922 3.43016 3.96527 3.43016H0.0987549ZM1.15589 8.55656V4.40765H4.04492C5.33376 4.40765 6.18816 5.26205 6.18816 6.47848C6.18816 7.69492 5.33376 8.55656 4.04492 8.55656H1.15589Z\" fill=\"#001E6C\"/>\n<path d=\"M11.7787 13.1616C13.9075 13.1616 15.6525 11.5397 15.6525 9.38199C15.6525 7.21703 13.9365 5.62408 11.8077 5.62408C9.64999 5.62408 7.93395 7.24599 7.93395 9.41095C7.93395 11.5687 9.62103 13.1616 11.7787 13.1616ZM11.7932 12.2276C10.2365 12.2276 9.02005 11.0256 9.02005 9.39647C9.02005 7.76732 10.2365 6.56537 11.7932 6.56537C13.321 6.56537 14.5664 7.76732 14.5664 9.39647C14.5664 11.0256 13.321 12.2276 11.7932 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M19.9054 12.9878L21.4766 6.94189H21.5056L23.0623 12.9878H24.4018L26.5958 5.8051H25.4155L23.7936 11.909H23.7647L22.2152 5.8051H20.7815L19.232 11.909H19.203L17.5522 5.8051H16.3575L18.5659 12.9878H19.9054Z\" fill=\"#001E6C\"/>\n<path d=\"M34.9835 9.42544C34.9835 7.30392 33.4051 5.62408 31.1532 5.62408C29.0534 5.62408 27.3084 7.18083 27.3084 9.41095C27.3084 11.5542 28.9086 13.1616 31.1822 13.1616C32.7679 13.1616 34.0567 12.3941 34.6794 11.1922L33.7816 10.707C33.3688 11.6049 32.3696 12.2348 31.1966 12.2348C29.5241 12.2348 28.5031 10.9894 28.4017 9.7223H34.969C34.9835 9.59197 34.9835 9.54129 34.9835 9.42544ZM31.1387 6.55089C32.5434 6.55089 33.6657 7.49942 33.854 8.80998H28.4307C28.6552 7.5501 29.7558 6.55089 31.1387 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M39.5922 5.68201C38.564 5.68201 37.8182 6.20334 37.4924 6.93464L37.391 5.8051H36.486V12.9878H37.5431V8.5638C37.5431 7.44873 38.1585 6.77535 39.3171 6.77535H39.9977V5.68201H39.5922Z\" fill=\"#001E6C\"/>\n<path d=\"M48.2486 9.42544C48.2486 7.30392 46.6702 5.62408 44.4183 5.62408C42.3185 5.62408 40.5735 7.18083 40.5735 9.41095C40.5735 11.5542 42.1737 13.1616 44.4473 13.1616C46.033 13.1616 47.3218 12.3941 47.9445 11.1922L47.0467 10.707C46.634 11.6049 45.6348 12.2348 44.4618 12.2348C42.7892 12.2348 41.7682 10.9894 41.6669 9.7223H48.2342C48.2486 9.59197 48.2486 9.54129 48.2486 9.42544ZM44.4039 6.55089C45.8085 6.55089 46.9308 7.49942 47.1191 8.80998H41.6958C41.9203 7.5501 43.0209 6.55089 44.4039 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M55.846 7.02877C55.2161 6.13817 54.2024 5.63132 53.0149 5.63132C50.9224 5.63132 49.2425 7.21703 49.2425 9.39647C49.2425 11.5759 50.8934 13.1616 52.986 13.1616C54.1807 13.1616 55.2161 12.6403 55.8533 11.7425L55.9981 12.9878H56.9032V2.56128L55.846 2.67713V7.02877ZM53.0294 12.2276C51.5306 12.2276 50.3286 11.0401 50.3286 9.39647C50.3286 7.75284 51.5306 6.56537 53.0294 6.56537C54.5789 6.56537 55.846 7.76732 55.846 9.39647C55.846 11.0256 54.5789 12.2276 53.0294 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M65.7314 5.63132C64.5367 5.63132 63.5085 6.14541 62.8713 7.04325V2.56128L61.8142 2.67713V12.9878H62.7192L62.8641 11.7497C63.494 12.6475 64.5077 13.1616 65.7024 13.1616C67.795 13.1616 69.4748 11.5759 69.4748 9.39647C69.4748 7.21703 67.8239 5.63132 65.7314 5.63132ZM65.6879 12.2276C64.1384 12.2276 62.8713 11.0256 62.8713 9.39647C62.8713 7.76732 64.1384 6.56537 65.6879 6.56537C67.1867 6.56537 68.3887 7.75284 68.3887 9.39647C68.3887 11.0401 67.1867 12.2276 65.6879 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M76.2187 5.8051V9.9178C76.2187 11.3297 75.3136 12.1841 74.0465 12.1841C72.7866 12.1841 72.077 11.4456 72.077 10.1133V5.8051H71.0199V10.2726C71.0199 11.9669 72.1349 13.0965 73.7641 13.0965C74.843 13.0965 75.6901 12.6765 76.2187 11.9814V12.8937C76.2187 14.1608 75.2629 15.0804 73.8727 15.0804C72.7504 15.0804 71.8236 14.4794 71.5847 13.4295L70.6579 13.9074C71.0995 15.16 72.3087 16 73.8582 16C75.8132 16 77.2758 14.5953 77.2758 12.7923V5.8051H76.2187Z\" fill=\"#001E6C\"/>\n<path d=\"M108.672 10.4867C108.672 11.9077 107.411 12.7873 105.491 12.7873C104.464 12.7873 103.634 12.6028 102.84 12.2091C102.914 11.76 102.982 11.2187 103 10.5913C103.738 11.0219 104.575 11.231 105.381 11.231C106.34 11.231 106.839 11.0096 106.839 10.5421C106.857 10.0807 106.5 9.87155 105.067 9.59473C103.406 9.26255 102.668 8.57359 102.668 7.35559C102.668 5.97767 103.929 5.0857 105.848 5.0857C106.697 5.0857 107.54 5.24564 108.186 5.52246L107.866 7.06647C107.226 6.7712 106.537 6.63587 105.848 6.63587C104.95 6.63587 104.507 6.85733 104.507 7.29408C104.507 7.67547 104.815 7.83541 106.217 8.12453C108.007 8.50592 108.678 9.19488 108.678 10.4744L108.672 10.4867ZM112.879 11.0957C112.16 11.0957 111.581 10.7143 111.581 9.70546V6.88808H113.408L113.747 5.25794H111.581V2.93884C111.157 3.06187 110.517 3.2095 109.681 3.28332L109.662 10.0315C109.662 11.8708 110.763 12.7996 112.412 12.7996C112.787 12.7996 113.113 12.7627 113.39 12.6951L113.753 10.9665C113.525 11.0465 113.236 11.1018 112.879 11.1018V11.0957ZM114.965 12.6889H116.884V5.25794H114.965V12.6889ZM115.93 2.21912C115.309 2.21297 114.829 2.66817 114.823 3.27102C114.823 3.89232 115.278 4.35983 115.894 4.36598C116.515 4.36598 116.976 3.92923 116.989 3.32638C117.001 2.70508 116.546 2.23142 115.937 2.21912H115.93ZM126.056 5.25794V11.5263C126.056 13.8946 124.456 15.5247 121.756 15.5247C120.784 15.5247 119.714 15.3094 118.994 14.8973C119.492 14.3867 119.831 13.9438 120.046 13.6239C120.532 13.79 121.042 13.8762 121.565 13.8762C123.275 13.8762 124.143 12.9288 124.143 11.7354V11.4955C123.534 12.1968 122.654 12.6336 121.602 12.6336C119.584 12.6336 118.065 11.1326 118.065 8.90577C118.065 6.67893 119.726 5.098 121.756 5.098C122.808 5.098 123.724 5.4794 124.333 6.19912L124.395 5.25179H126.062L126.056 5.25794ZM124.155 8.90577C124.155 7.72468 123.294 6.82657 122.107 6.82657C120.919 6.82657 120.046 7.72468 120.046 8.90577C120.046 10.0868 120.907 10.9542 122.107 10.9542C123.306 10.9542 124.155 10.0561 124.155 8.90577ZM134.994 5.25794V11.5263C134.994 13.8946 133.394 15.5247 130.694 15.5247C129.722 15.5247 128.652 15.3094 127.932 14.8973C128.43 14.3867 128.769 13.9438 128.984 13.6239C129.47 13.79 129.98 13.8762 130.503 13.8762C132.213 13.8762 133.081 12.9288 133.081 11.7354V11.4955C132.472 12.1968 131.592 12.6336 130.54 12.6336C128.523 12.6336 127.003 11.1326 127.003 8.90577C127.003 6.67893 128.664 5.098 130.694 5.098C131.746 5.098 132.662 5.4794 133.271 6.19912L133.333 5.25179H135L134.994 5.25794ZM133.093 8.90577C133.093 7.72468 132.232 6.82657 131.045 6.82657C129.857 6.82657 128.984 7.72468 128.984 8.90577C128.984 10.0868 129.845 10.9542 131.045 10.9542C132.244 10.9542 133.093 10.0561 133.093 8.90577Z\" fill=\"#001E6C\"/>\n<path d=\"M95.7092 14.9825C95.6354 15.0194 94.2267 15.6407 91.7353 15.5238C90.4374 15.4623 89.3117 15.2224 88.512 15.0009L92.8241 9.99361C93.5931 10.1905 94.5835 10.375 95.7092 10.4304C98.2005 10.5534 99.6092 9.92594 99.683 9.88903L95.7092 14.9886V14.9825ZM89.2686 5.36155C88.5612 2.96863 88.838 1.45537 88.8564 1.3754L84.8457 6.44421C84.8334 6.52418 84.5566 8.03744 85.2578 10.4304C85.6269 11.673 86.1252 12.7126 86.5312 13.4384L90.3759 8.0682C90.0068 7.36693 89.5885 6.44421 89.2686 5.3677V5.36155ZM99.2647 5.89058C98.6988 3.97132 97.813 2.55033 97.4501 2.009L93.8822 6.55494L94.5527 9.77216C94.9526 9.82752 95.3462 9.86443 95.7461 9.88903C95.9491 9.89518 96.1521 9.90134 96.3489 9.90134C98.2805 9.90134 99.357 9.44613 99.4739 9.39076L99.7507 9.26773C99.7753 8.60338 99.7322 7.42844 99.2709 5.88443L99.2647 5.89058ZM97.0256 1.68297C96.4166 1.45537 94.8295 0.932493 92.8303 0.83407C91.2248 0.754101 90.0744 0.987856 89.4347 1.1724L89.3793 1.46767C89.367 1.52919 89.121 2.96248 89.7792 5.20777C89.8899 5.58916 90.0252 5.9644 90.1729 6.33964L93.4577 6.22891L97.0318 1.68912L97.0256 1.68297Z\" fill=\"#001E6C\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\n\nexport const STIGG_WATERMARK_CLASSNAME = 'stigg-watermark';\n\nexport type PoweredByStiggSources = 'paywall' | 'customer_portal' | 'checkout';\n\nconst PoweredByStiggThemedSvg = styled(PoweredByStiggSvg)`\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n\ntype PoweredByStiggProps = {\n source: PoweredByStiggSources;\n showWatermark?: boolean;\n style?: React.CSSProperties;\n align?: 'center' | 'end';\n};\n\nconst StyledPoweredByStigg = styled.div<{ $alignSelf?: string }>`\n align-self: ${({ $alignSelf }) => $alignSelf || 'unset'};\n\n @media (max-width: 1040px) {\n align-self: center;\n }\n`;\n\nexport function PoweredByStigg({ source, showWatermark, align, style = {} }: PoweredByStiggProps) {\n if (!showWatermark) {\n return null;\n }\n\n const onWatermarkClick = () => {\n const sourceDomain = window.location.hostname.replace('www.', '');\n window.open(\n `https://www.stigg.io/?utm_source=${sourceDomain}&utm_medium=referral&utm_campaign=${source}`,\n '_blank',\n );\n };\n\n return (\n <StyledPoweredByStigg\n $alignSelf={align}\n className={STIGG_WATERMARK_CLASSNAME}\n style={{ cursor: 'pointer', ...style }}\n onClick={onWatermarkClick}>\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some((plan) => hasPricePoints(plan, billingPeriod));\n}\n","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { ShouldHidePlanFn, PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(\n plans: PaywallPlan[],\n selectedBillingPeriod: BillingPeriod,\n shouldHidePlan?: ShouldHidePlanFn,\n): PaywallPlan[] {\n return plans\n .filter((plan) => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod))\n .filter((plan) => !shouldHidePlan || !shouldHidePlan({ plan }));\n}\n","import { BillableFeature, BillingPeriod, Customer, Plan, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PlanOffering } from './PlanOffering';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { calculatePaywallDiscountRate } from '../utils/calculateDiscountRate';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n PaywallPlan,\n SubscribeIntentionType,\n SelectDefaultTierIndexFn,\n} from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\nimport { useStiggContext } from '../..';\nimport { hasPricePointsForPlans } from './utils/hasPricePoints';\nimport { getPlansToDisplay } from './utils/getPlansToDisplay';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PaywallPlansContainer = styled.div`\n color: ${({ theme }) => theme.stigg.palette.text.primary};\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: wrap;\n padding: 10px 0;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n`;\n\nconst PaywallContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nconst PaywallLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\ntype PaywallProps = {\n plans: PaywallPlan[];\n customer: Customer | null;\n currentSubscription: Subscription | null;\n selectedBillingPeriod: BillingPeriod;\n highlightedPlanId?: string;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n isCustomerOnTrial: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n paywallLocale: PaywallLocalization;\n locale: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nexport const Paywall = ({\n plans,\n customer,\n currentSubscription,\n highlightedPlanId,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n shouldHidePlan,\n selectDefaultTierIndex,\n}: PaywallProps) => {\n const { stigg } = useStiggContext();\n const discountRate = calculatePaywallDiscountRate(plans);\n const shouldShowDescriptionSection = plans.some((plan) => !!plan.description);\n const hasMonthlyPrice = hasPricePointsForPlans(plans, BillingPeriod.Monthly);\n const hasAnnuallyPrice = hasPricePointsForPlans(plans, BillingPeriod.Annually);\n const plansToShow = getPlansToDisplay(plans, selectedBillingPeriod, shouldHidePlan);\n\n const handleOnSubscribe = useCallback(\n (plan: Plan, intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => {\n return onPlanSelected({\n plan,\n customer,\n subscription: currentSubscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n });\n },\n [customer, selectedBillingPeriod, currentSubscription, onPlanSelected],\n );\n\n const isCustomerInCustomPlan = !!currentSubscription && currentSubscription.plan.pricingType === PricingType.Custom;\n\n const withStartingAtRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod,\n );\n return planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n }),\n [selectedBillingPeriod, plansToShow],\n );\n\n const withUnitPriceRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n return !!getPlanPrice(plan, selectedBillingPeriod, paywallLocale, locale, hasMonthlyPrice).unit;\n }),\n [selectedBillingPeriod, hasMonthlyPrice, locale, paywallLocale, plansToShow],\n );\n\n const withTiersRow = useMemo(() => {\n return (\n !isCustomerInCustomPlan &&\n plansToShow.some((plan) => {\n const tiers = getTiersPerUnitQuantities(plan, selectedBillingPeriod, currentSubscription);\n return Object.values(tiers).length > 0;\n })\n );\n }, [selectedBillingPeriod, currentSubscription, isCustomerInCustomPlan, plansToShow]);\n\n const withTrialLeftRow = plansToShow.some((plan) => {\n return plan.isCurrentCustomerPlan && plan.trialDaysLeft;\n });\n\n return (\n <PaywallContainer className=\"stigg-paywall-container\">\n <PaywallLayout className=\"stigg-paywall-layout\">\n <BillingPeriodPicker\n onBillingPeriodChanged={onBillingPeriodChanged}\n selectedBillingPeriod={selectedBillingPeriod}\n availableBillingPeriods={availableBillingPeriods}\n discountRate={discountRate}\n />\n\n <PaywallPlansContainer className=\"stigg-paywall-plans-layout\">\n {plansToShow.map((plan) => (\n <PlanOffering\n withUnitPriceRow={withUnitPriceRow}\n withTiersRow={withTiersRow}\n withTrialLeftRow={withTrialLeftRow}\n key={plan.id}\n shouldShowDescriptionSection={shouldShowDescriptionSection}\n hasMonthlyPrice={hasMonthlyPrice}\n hasAnnuallyPrice={hasAnnuallyPrice}\n plan={plan}\n withStartingAtRow={withStartingAtRow}\n currentSubscription={currentSubscription}\n billingPeriod={selectedBillingPeriod}\n isHighlighted={plan.id === highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={(intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) =>\n handleOnSubscribe(plan, intentionType, billableFeatures)\n }\n paywallLocale={paywallLocale}\n locale={locale}\n customer={customer}\n isCustomerInCustomPlan={isCustomerInCustomPlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n />\n ))}\n </PaywallPlansContainer>\n <PoweredByStigg\n source=\"paywall\"\n align=\"end\"\n style={{ marginTop: 16 }}\n showWatermark={stigg.isWidgetWatermarkEnabled}\n />\n </PaywallLayout>\n </PaywallContainer>\n );\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export interface Logger {\n log: (message: string, object?: Record<string, string>) => void;\n debug: (message: string, object?: Record<string, string>) => void;\n error: (message: string, error?: Error, ...params: Record<string, string>[]) => void;\n}\n\nexport class LoggerService implements Logger {\n error(message: string, error?: Error, ...params: Record<string, string>[]): void {\n console.error(message, error || {}, params);\n }\n\n log(message: string, object?: Record<string, string>): void {\n console.log(message, object || {});\n }\n\n debug(message: string, object?: Record<string, string> | undefined): void {\n console.debug(message, object || {});\n }\n}\n\n// Export a singleton logger service, in the future we might allow to user to configure external logger\nexport default new LoggerService();\n","import React, { useEffect, useState, PropsWithChildren, useContext, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { ClientConfiguration, EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\nimport { name as CLIENT_NAME, version as CLIENT_VERSION } from '../../package.json';\n\nexport interface StiggContextValue {\n stigg: StiggJs.StiggClient;\n isInitialized: boolean;\n locale: string;\n updatedAt?: Date;\n customerPortalUpdatedAt?: Date;\n refreshData: () => Promise<void>;\n theme?: CustomizedTheme;\n}\n\nexport const StiggContext = React.createContext<StiggContextValue | null>(null);\nStiggContext.displayName = 'StiggContext';\n\nexport type StiggProviderProps = {\n apiKey: string;\n baseUri?: string;\n baseEdgeUri?: string;\n enableEdge?: boolean;\n entitlementsFallback?: EntitlementsFallback;\n customerId?: string;\n customerToken?: string;\n resourceId?: string;\n theme?: CustomizedTheme;\n locale?: string;\n cacheTtlMs?: number;\n /** @deprecated not longer in use */\n useEntitlementPolling?: boolean;\n /** @deprecated not longer in use */\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\n clientName?: string;\n clientVersion?: string;\n};\n\nconst DEFAULT_LOCALE = 'en-US';\n\nexport const StiggProvider: React.FC<PropsWithChildren<StiggProviderProps>> = ({\n apiKey,\n baseUri,\n baseEdgeUri,\n enableEdge,\n customerId,\n customerToken,\n resourceId,\n theme,\n locale,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n clientName = CLIENT_NAME,\n clientVersion = CLIENT_VERSION,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams: ClientConfiguration = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n clientName,\n clientVersion,\n };\n const [ctx, setContext] = useState<StiggContextValue>(() => ({\n stigg:\n stiggClient ??\n Stigg.initialize({\n ...initializeParams,\n lazyLoad: true,\n }),\n locale: locale || DEFAULT_LOCALE,\n isInitialized: false,\n theme,\n refreshData: async () => {\n setContext((ctx) => ({ ...ctx, customerPortalUpdatedAt: new Date() }));\n await ctx.stigg.refresh();\n },\n }));\n\n useEffect(() => {\n let isMounted = true;\n\n const safeSetContext = (setContextFunc: React.SetStateAction<StiggContextValue>) => {\n if (isMounted) {\n setContext(setContextFunc);\n }\n };\n\n const onEntitlementsUpdated = () => safeSetContext((ctx) => ({ ...ctx, updatedAt: new Date() }));\n\n const setStiggInstance = (stigg: StiggJs.StiggClient) =>\n safeSetContext((ctx) => {\n if (ctx.stigg) {\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n }\n stigg.addListener('entitlementsUpdated', onEntitlementsUpdated);\n\n return {\n ...ctx,\n stigg,\n isInitialized: true,\n updatedAt: new Date(),\n };\n });\n\n const loadStiggClient = async () => {\n let stiggClient = ctx.stigg;\n if (apiKey !== currentApiKey.current) {\n logger.log('Updating stigg client', { apiKey });\n currentApiKey.current = apiKey;\n stiggClient = Stigg.initialize({\n ...initializeParams,\n });\n safeSetContext((ctx) => ({ ...ctx, isInitialized: false, updatedAt: new Date() }));\n }\n await stiggClient.waitForInitialization();\n setStiggInstance(stiggClient);\n };\n\n void loadStiggClient();\n\n return () => {\n isMounted = false;\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n ctx.stigg.clearCustomer();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiKey]);\n\n useEffect(() => {\n const stiggClient = ctx.stigg;\n if (customerId) {\n void stiggClient.setCustomerId(customerId, customerToken, resourceId);\n } else {\n stiggClient.clearCustomer();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [customerId, customerToken, resourceId]);\n\n useEffect(() => {\n setContext((ctx) => ({ ...ctx, theme }));\n }, [theme]);\n\n return (\n <StiggContext.Provider value={ctx}>\n <SkeletonTheme baseColor=\"#F5F6F9\" highlightColor=\"#e5e6ea\">\n {children}\n </SkeletonTheme>\n </StiggContext.Provider>\n );\n};\n\nexport const useStiggContext = (): StiggContextValue => {\n const ctx = useContext(StiggContext);\n if (!ctx) {\n throw new Error('Could not find Stigg context; You need to wrap your app in an <StiggProvider> component.');\n }\n return ctx;\n};\n","import { BillingPeriod, Plan, Subscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { countBy, uniq } from 'lodash';\n\nexport function computeBillingPeriods(\n plans: Plan[],\n activeSubscriptions?: Subscription[] | null,\n preferredBillingPeriod?: BillingPeriod,\n): { defaultBillingPeriod: BillingPeriod; availableBillingPeriods: BillingPeriod[] } {\n const billingPeriods = plans.flatMap((x) => x.pricePoints).map((x) => x.billingPeriod);\n const counts = countBy(billingPeriods);\n\n const availableBillingPeriods = uniq(billingPeriods);\n let defaultBillingPeriod: BillingPeriod | undefined;\n\n if (preferredBillingPeriod && availableBillingPeriods.includes(preferredBillingPeriod)) {\n defaultBillingPeriod = preferredBillingPeriod;\n } else if (activeSubscriptions) {\n const activeSubscription = activeSubscriptions.find((x) => x.status === SubscriptionStatus.Active);\n\n if (activeSubscription && activeSubscription.prices.length > 0) {\n defaultBillingPeriod = activeSubscription?.prices[0].billingPeriod;\n }\n }\n\n if (!defaultBillingPeriod) {\n defaultBillingPeriod =\n (counts[BillingPeriod.Monthly] || 0) > (counts[BillingPeriod.Annually] || 0)\n ? BillingPeriod.Monthly\n : BillingPeriod.Annually;\n }\n\n return { defaultBillingPeriod, availableBillingPeriods };\n}\n","import moment from 'moment';\n\nexport function calculateTrialDaysLeft(trialEndDate: Date) {\n return moment.utc(trialEndDate).diff(moment.utc(), 'days', false) + 1;\n}\n","import { FontWeight, TypographyConfiguration } from '@stigg/js-client-sdk';\n\nexport const defaultCheckoutTypography: TypographyConfiguration = {\n h1: {\n fontSize: 24,\n fontWeight: FontWeight.Bold,\n },\n h2: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n h3: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n body: {\n fontSize: 14,\n fontWeight: FontWeight.Normal,\n },\n};\n","import {\n Alignment,\n CheckoutConfiguration,\n CustomerPortalConfiguration,\n FontWeight as JSFontWeight,\n PaywallConfiguration,\n TypographyConfiguration,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\nimport { HorizontalAlignment, FontWeight } from '../../theme/types';\nimport { defaultCheckoutTypography } from '../checkout/configurations/typography';\n\nfunction addCssUnits(value?: number | null, unit = 'px') {\n if (!value) {\n return undefined;\n }\n return `${value}${unit}`;\n}\n\nfunction mapFontWeight(defaultValue: FontWeight, fontWeight?: JSFontWeight | null): FontWeight {\n if (!fontWeight) {\n return defaultValue;\n }\n\n switch (fontWeight) {\n case JSFontWeight.Normal:\n return 'normal';\n case JSFontWeight.Bold:\n return 'bold';\n default:\n return 'normal';\n }\n}\n\nexport function mapTypography(\n typography?: TypographyConfiguration | null,\n defaultTypography?: TypographyConfiguration | null,\n): CustomizedTheme['typography'] {\n return {\n fontFamilyUrl: typography?.fontFamily || undefined,\n h1: {\n fontSize: addCssUnits(typography?.h1?.fontSize || defaultTypography?.h1?.fontSize),\n fontWeight: mapFontWeight('bold', typography?.h1?.fontWeight || defaultTypography?.h1?.fontWeight),\n },\n h2: {\n fontSize: addCssUnits(typography?.h2?.fontSize || defaultTypography?.h2?.fontSize),\n fontWeight: mapFontWeight('normal', defaultTypography?.h2?.fontWeight),\n },\n h3: {\n fontSize: addCssUnits(typography?.h3?.fontSize || defaultTypography?.h3?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.h3?.fontWeight || defaultTypography?.h3?.fontWeight),\n },\n body: {\n fontSize: addCssUnits(typography?.body?.fontSize || defaultTypography?.body?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.body?.fontWeight || defaultTypography?.body?.fontWeight),\n },\n };\n}\n\nfunction mapAlignment(alignment?: Alignment | null): HorizontalAlignment | undefined {\n if (!alignment) {\n return undefined;\n }\n\n switch (alignment) {\n case Alignment.Left:\n return 'left';\n case Alignment.Center:\n return 'center';\n case Alignment.Right:\n return 'right';\n default: {\n return undefined;\n }\n }\n}\n\nexport function mapCustomerPortalConfiguration(configuration: CustomerPortalConfiguration): CustomizedTheme {\n const { palette, customCss, typography } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.paywallBackgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n customCss: customCss || undefined,\n };\n}\n\nexport function mapPaywallConfiguration(paywallConfiguration: PaywallConfiguration): CustomizedTheme {\n const { palette, layout, customCss, typography } = paywallConfiguration;\n return {\n customCss: customCss || undefined,\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n layout: {\n ctaAlignment: mapAlignment(layout?.alignment),\n headerAlignment: mapAlignment(layout?.alignment),\n descriptionAlignment: mapAlignment(layout?.alignment),\n planMaxWidth: addCssUnits(layout?.planWidth),\n planMinWidth: addCssUnits(layout?.planWidth),\n planMargin: addCssUnits(layout?.planMargin),\n planPadding: addCssUnits(layout?.planPadding),\n },\n };\n}\n\nexport function mapCheckoutConfiguration(configuration: CheckoutConfiguration): CustomizedTheme {\n const { palette, typography, customCss } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n backgroundHighlight: palette?.summaryBackgroundColor || undefined,\n },\n typography: mapTypography(typography, defaultCheckoutTypography),\n customCss: customCss || undefined,\n };\n}\n","import {\n BillingPeriod,\n SubscriptionStatus,\n Paywall,\n Plan,\n Subscription,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport sortBy from 'lodash/sortBy';\nimport { PaywallPlan } from '../types';\nimport { calculateTrialDaysLeft } from './calculateTrialDaysLeft';\nimport { BillingPeriodChangeVariables, DeepPartial, DowngradeChangeVariables } from '../../../types';\nimport { StiggTheme } from '../../../theme/types';\nimport { mapPaywallConfiguration } from '../../common/mapExternalTheme';\n\nfunction getCustomerSubscriptionDetails(activeSubscriptions?: Subscription[] | null) {\n let isCustomerOnTrial = true;\n let currentSubscription: Subscription | null =\n activeSubscriptions?.find((s) => s.status === SubscriptionStatus.InTrial) || null;\n let currentPlan = currentSubscription?.plan;\n const trialDaysLeft = currentSubscription?.trialEndDate\n ? calculateTrialDaysLeft(currentSubscription.trialEndDate)\n : undefined;\n if (!currentPlan) {\n isCustomerOnTrial = false;\n currentSubscription = activeSubscriptions?.find((s) => s.status === SubscriptionStatus.Active) || null;\n currentPlan = currentSubscription?.plan;\n }\n\n return {\n currentSubscription,\n currentPlan,\n isCustomerOnTrial,\n trialDaysLeft,\n };\n}\n\ntype PaywallData = {\n currentPlan?: Plan;\n currentSubscription: Subscription | null;\n isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(paywall: Paywall | null, showOnlyEligiblePlans?: boolean): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } =\n getCustomerSubscriptionDetails(activeSubscriptions);\n\n const scheduledUpdates = currentSubscription?.scheduledUpdates || [];\n const currentCustomerPlanBillingPeriod = currentSubscription?.price?.billingPeriod;\n const downgradeSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.Downgrade,\n );\n const billingChangedSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.BillingPeriod,\n );\n\n let paywallPlans: PaywallPlan[] = sortBy(plans, (plan) => plan.order).map((plan) => {\n const eligibleForProductTrial = customer?.eligibleForTrial?.find(\n (productTrial) => productTrial.productId === plan.product.id,\n );\n const isCurrentCustomerPlan = plan.id === currentPlan?.id;\n\n const isNextPlan = (currentBillingPeriod: BillingPeriod) => {\n const downgradeVariables = downgradeSchedule?.scheduleVariables as DowngradeChangeVariables;\n const billingChangedVariables = billingChangedSchedule?.scheduleVariables as BillingPeriodChangeVariables;\n const isPlanHasBillingPeriodPrice = plan.pricePoints.some(\n (price) => price.billingPeriod === currentBillingPeriod,\n );\n\n return downgradeSchedule\n ? downgradeSchedule.targetPackage?.refId === plan.id &&\n (!isPlanHasBillingPeriodPrice || downgradeVariables.billingPeriod === currentBillingPeriod)\n : billingChangedSchedule && isCurrentCustomerPlan\n ? billingChangedVariables.billingPeriod === currentBillingPeriod\n : false;\n };\n\n return {\n ...plan,\n paywallCalculatedPricePoints: paywallCalculatedPricePoints?.filter((pricePoint) => pricePoint.planId === plan.id),\n isTriable: !isNil(plan.defaultTrialConfig) && (!eligibleForProductTrial || eligibleForProductTrial.eligible),\n isCurrentCustomerPlan,\n currentCustomerPlanBillingPeriod,\n isUpcomingPlan: false,\n trialDaysLeft,\n isNextPlan,\n paywallCurrency: currency,\n scheduledUpdate: downgradeSchedule || billingChangedSchedule,\n };\n });\n if (plans && currentPlan) {\n const currentPlanOrder = currentPlan && plans?.find((x) => x.id === currentPlan?.id)?.order;\n if (!isNil(currentPlanOrder)) {\n paywallPlans = paywallPlans.map<PaywallPlan>((plan) => ({\n ...plan,\n isLowerThanCurrentPlan: currentPlanOrder > plan.order,\n }));\n if (showOnlyEligiblePlans) {\n paywallPlans = paywallPlans.filter((plan) => plan.order >= currentPlanOrder);\n }\n }\n }\n const paywallConfiguration = configuration ? mapPaywallConfiguration(configuration) : undefined;\n\n return {\n currentPlan,\n currentSubscription,\n isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../StiggProvider';\nimport { PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\n\ntype UseLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n}: UseLoadPaywallDataProps): PaywallData {\n const { stigg, locale } = useStiggContext();\n const [selectedBillingPeriod, setSelectedBillingPeriod] = useState(BillingPeriod.Annually);\n const [availableBillingPeriods, setAvailableBillingPeriods] = useState<BillingPeriod[]>([]);\n const [paywall, setPaywall] = useState<Paywall | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const loadPaywall = async () => {\n try {\n setIsLoading(true);\n\n await stigg.waitForInitialization();\n const paywallResult = await stigg.getPaywall({\n productId,\n resourceId,\n billingCountryCode,\n });\n const { availableBillingPeriods, defaultBillingPeriod } = computeBillingPeriods(\n paywallResult.plans,\n paywallResult.activeSubscriptions,\n preferredBillingPeriod,\n );\n\n setPaywall(paywallResult);\n setAvailableBillingPeriods(availableBillingPeriods);\n setSelectedBillingPeriod(defaultBillingPeriod);\n } catch (err) {\n logger.error(`Failed to load paywall ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n void loadPaywall();\n }, [stigg, productId, stigg.isCustomerLoaded, billingCountryCode, resourceId, preferredBillingPeriod]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans);\n\n return {\n customer: paywall?.customer || null,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration: paywallData.paywallConfiguration,\n ...paywallData,\n };\n}\n","import {\n BillingPeriod,\n PaywallCalculatedPricePoint,\n PaywallCurrency,\n Plan,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\nimport { PlanPriceText } from '../utils/getPlanPrice';\nimport { PaywallPlan } from './types';\n\nexport { PlanPriceText } from '../utils/getPlanPrice';\n\nexport type CurrentPlanParams = {\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n};\n\nexport type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n currentPlan: string;\n startNew: string;\n switchToBillingPeriod: (billingPeriod: BillingPeriod) => string;\n cancelScheduledUpdate: string;\n };\n price: {\n startingAtCaption: string;\n billingPeriod?: (billingPeriod: BillingPeriod) => string;\n pricePeriod: (billingPeriod: BillingPeriod) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n priceNotSet: string;\n free: PlanPriceText | ((currency?: PaywallCurrency) => PlanPriceText);\n paid?: (priceData: {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n selectedTier?: PriceTierFragment;\n }) => PlanPriceText;\n };\n};\n\nexport function getResolvedPaywallLocalize(localizeOverride?: DeepPartial<PaywallLocalization>) {\n const paywallDefaultLocalization: PaywallLocalization = {\n highlightChip: 'Recommended',\n planCTAButton: {\n upgrade: 'Upgrade',\n downgrade: 'Downgrade',\n startTrial: (plan: PaywallPlan) => `Start ${plan.defaultTrialConfig?.duration} day trial`,\n custom: 'Contact us',\n currentPlan: 'Current plan',\n startNew: 'Get started',\n switchToBillingPeriod: (billingPeriod) => {\n return billingPeriod === BillingPeriod.Monthly ? 'Switch to monthly billing' : 'Switch to annual billing';\n },\n cancelScheduledUpdate: 'Cancel',\n },\n price: {\n startingAtCaption: 'Starts at',\n pricePeriod: (billingPeriod: BillingPeriod) => (billingPeriod === BillingPeriod.Monthly ? '/ month' : '/ year'),\n free: (currency) => ({\n price: `${currency?.symbol}0`,\n }),\n custom: 'Custom',\n priceNotSet: 'Price not set',\n },\n };\n return merge(paywallDefaultLocalization, localizeOverride);\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Skeleton from 'react-loading-skeleton';\nimport CheckUrl from '../../assets/check-stigg.svg';\n\nconst SkeletonContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n margin-right: 16px;\n`;\n\nconst PlanOfferingSkeleton = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n min-height: 450px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nconst PlansContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst EntitlementContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 12px;\n`;\n\nconst FooterSkeletonLoader = styled.div`\n margin-top: auto;\n`;\n\nconst BillingPeriodLoader = styled.div`\n width: 150px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n padding: 12px 12px;\n border-radius: 10px;\n background-color: white;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nfunction PlanOfferingLoader() {\n return (\n <PlanOfferingSkeleton>\n <Skeleton width={120} borderRadius={4} />\n <Skeleton circle width={40} height={40} />\n <Skeleton style={{ marginBottom: 33 }} width={120} borderRadius={4} />\n\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n\n <FooterSkeletonLoader>\n <Skeleton height={50} borderRadius={4} />\n </FooterSkeletonLoader>\n </PlanOfferingSkeleton>\n );\n}\n\nexport function PaywallLoader() {\n return (\n <SkeletonContainer className=\"stigg-skeleton-loader-container\">\n <BillingPeriodLoader className=\"stigg-skeleton-loader-billing-period\">\n <Skeleton borderRadius={4} />\n </BillingPeriodLoader>\n\n <PlansContainer className=\"stigg-skeleton-loader-plans-container\">\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n </PlansContainer>\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { Global, css } from '@emotion/react';\n\nexport const Fonts = ({ externalFontUrl }: { externalFontUrl?: string }) => {\n return (\n <Global\n styles={css`\n ${externalFontUrl &&\n `\n @font-face {\n font-family: 'custom-font';\n font-style: normal;\n font-weight: normal;\n src: local('custom-font'), url(${externalFontUrl}) format('woff');\n }\n `}\n\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZ2IHTWEBlwu8Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZOIHTWEBlw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n `}\n />\n );\n};\n","import { merge } from 'lodash';\nimport React, { PropsWithChildren } from 'react';\nimport { ThemeProvider as StyledThemeProvider } from 'styled-components';\nimport { TypographyProps } from 'styled-typography';\nimport { css, ThemeProvider } from '@emotion/react';\nimport styled from '@emotion/styled/macro';\nimport { createTheme, ThemeProvider as MuiThemeProvider, THEME_ID } from '@mui/material/styles';\nimport { useStiggContext } from '../components/StiggProvider';\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\n\nexport type CustomizedTheme = DeepPartial<StiggTheme>;\n\nconst CustomCssGlobal = styled.div<{ customCss?: string }>`\n ${({ customCss }) =>\n customCss &&\n css`\n ${customCss}\n `}\n`;\n\ntype SdkThemeProviderProps = {\n componentTheme?: CustomizedTheme;\n};\n\n/*\n This merge the theme from 3 places:\n 1. External theme that we got from the user in StiggProvider\n 2. Remote theme from api\n 3. Default theme\n*/\nexport function useStiggTheme(remoteThemeOverride?: CustomizedTheme): StiggTheme {\n const { theme: externalTheme } = useStiggContext();\n const mergedTheme = merge(remoteThemeOverride, externalTheme);\n const resolvedTheme = getResolvedTheme(mergedTheme);\n\n return resolvedTheme;\n}\n\nfunction createTypographyTheme(theme: StiggTheme): Partial<TypographyProps> {\n const { typography } = theme;\n const htmlFontSize = 16;\n const coef = Number(typography.body.fontSize.replace('px', '')) / 14;\n\n return {\n // Hack to fix theming issues\n // @ts-ignore\n pxToRem: (size) => `${(size / htmlFontSize) * coef}rem`,\n bodyFontFamily: typography.fontFamily,\n headingFontFamily: typography.fontFamily,\n fontSizes: [\n typography.h1.fontSize,\n typography.h2.fontSize,\n typography.h3.fontSize,\n typography.body.fontSize,\n '12px',\n '10px',\n ],\n };\n}\n\nconst createMuiPalette = (theme: StiggTheme) => {\n return {\n primary: {\n main: theme.palette.primary,\n },\n };\n};\n\nexport const SdkThemeProvider: React.FC<PropsWithChildren<SdkThemeProviderProps>> = ({ children, componentTheme }) => {\n const theme = useStiggTheme(componentTheme);\n const muiPalette = createMuiPalette(theme);\n const materialTheme = createTheme({ palette: muiPalette, stigg: theme });\n\n return (\n // We are using styled-components theme here only because we are using styled-typography\n // which depends on styled-components for the typography theming\n <MuiThemeProvider theme={{ [THEME_ID]: materialTheme }}>\n <ThemeProvider theme={{ stigg: theme }}>\n <CustomCssGlobal customCss={theme.customCss}>\n <Fonts externalFontUrl={theme.typography.fontFamilyUrl} />\n <StyledThemeProvider theme={{ typography: createTypographyTheme(theme) }}>{children}</StyledThemeProvider>\n </CustomCssGlobal>\n </ThemeProvider>\n </MuiThemeProvider>\n );\n};\n","import { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../StiggProvider';\n\ntype UseCustomerPortalProps = {\n resourceId?: string;\n productId?: string;\n};\n\nexport function useCustomerPortal({ resourceId, productId }: UseCustomerPortalProps) {\n const { stigg, customerPortalUpdatedAt } = useStiggContext();\n const [isLoading, setIsLoading] = useState(false);\n const [customerPortal, setCustomerPortal] = useState<CustomerPortal | null>();\n\n useEffect(() => {\n const loadCustomerPortal = async () => {\n if (stigg.isCustomerLoaded) {\n try {\n setIsLoading(true);\n const customerPortalData = await stigg.getCustomerPortal({ resourceId, productId });\n setCustomerPortal(customerPortalData);\n } catch (err) {\n logger.error(`Failed to load customer portal ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n void loadCustomerPortal();\n }, [stigg, stigg.isCustomerLoaded, customerPortalUpdatedAt, resourceId, productId]);\n\n return {\n customerPortal,\n isLoading,\n };\n}\n","import merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalLocalization = {\n manageSubscription: string;\n usageTabTitle: string;\n addonsTabTitle: string;\n promotionsTabTitle: string;\n promotionsSubtitle: string;\n contactSupportTitle: string;\n contactSupportLink: string;\n editBilling: string;\n invoicesTitle: string;\n viewInvoiceHistory: string;\n editPaymentDetails: string;\n paywallSectionTitle: string;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function getResolvedCustomerPortalLocalize(\n localizeOverride?: DeepPartial<CustomerPortalLocalization>,\n): CustomerPortalLocalization {\n const customerPortalDefaultLocalization: CustomerPortalLocalization = {\n manageSubscription: 'Manage',\n usageTabTitle: 'Usage',\n addonsTabTitle: 'Add-ons',\n promotionsTabTitle: 'Promotions',\n promotionsSubtitle: 'You were granted access to additional functionality at no additional cost.',\n contactSupportTitle: 'Have questions about your subscription?',\n contactSupportLink: 'Contact support',\n editBilling: 'Edit billing details',\n invoicesTitle: 'Invoices',\n viewInvoiceHistory: 'View invoice history',\n editPaymentDetails: 'Edit',\n paywallSectionTitle: 'Plans',\n cancelScheduledUpdatesButtonTitle: 'Cancel',\n };\n return merge(customerPortalDefaultLocalization, localizeOverride);\n}\n","import { CustomerPortalConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../theme/types';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalTheme = {\n sectionTitleColor: string;\n planNameColor: string;\n backgroundColor: string;\n borderColor: string;\n listItemBackgroundColor: string;\n tabMaxHeight: string;\n iconsColor?: string;\n iconsBackgroundColor?: string;\n};\n\nexport function getResolvedCustomerPortalTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CustomerPortalTheme>,\n remoteConfiguration?: CustomerPortalConfiguration | null,\n) {\n const customerPortalDefaultTheme: CustomerPortalTheme = {\n sectionTitleColor: themeOverride?.sectionTitleColor || globalTheme.palette.text.secondary,\n planNameColor: themeOverride?.planNameColor || globalTheme.palette.text.primary,\n backgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n borderColor: themeOverride?.borderColor || remoteConfiguration?.palette?.borderColor || 'rgba(0, 30, 108, 0.15)',\n listItemBackgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n tabMaxHeight: themeOverride?.tabMaxHeight || '380px',\n\n // add icons background color and apply to scheduled updates and customer support icons\n iconsColor: themeOverride?.iconsColor || remoteConfiguration?.palette?.iconsColor || undefined,\n iconsBackgroundColor: themeOverride?.iconsBackgroundColor,\n };\n\n return customerPortalDefaultTheme;\n}\n","import React, { useContext } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useCustomerPortal } from './hooks/useCustomerPortal';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization, getResolvedCustomerPortalLocalize } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme, getResolvedCustomerPortalTheme } from './customerPortalTheme';\nimport { SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { useStiggContext } from '../..';\nimport { mapCustomerPortalConfiguration } from '../common/mapExternalTheme';\n\nexport interface CustomerPortalContextValue {\n customerPortal?: CustomerPortal | null;\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n isLoading: boolean;\n resourceId?: string;\n}\n\nexport const CustomerPortalContext = React.createContext<CustomerPortalContextValue | null>(null);\nCustomerPortalContext.displayName = 'CustomerPortalContext';\n\nexport const useCustomerPortalContext = (): CustomerPortalContextValue => {\n const ctx = useContext(CustomerPortalContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Customer portal context; You need to wrap your customer portal components in an <CustomerPortalProvider> component.',\n );\n }\n return ctx;\n};\n\nexport function useCheckContextExists<T>(contextType: React.Context<T>) {\n const ctx = useContext(contextType);\n return !!ctx;\n}\n\nexport function CustomerPortalProvider({\n children,\n textOverrides,\n theme,\n resourceId,\n productId,\n}: {\n children: React.ReactNode;\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n resourceId?: string;\n productId?: string;\n}) {\n const { customerPortalUpdatedAt } = useStiggContext();\n const { customerPortal, isLoading } = useCustomerPortal({ resourceId, productId });\n const configuration = customerPortal?.configuration\n ? mapCustomerPortalConfiguration(customerPortal.configuration)\n : undefined;\n const globalTheme = useStiggTheme(configuration);\n const customerPortalTheme = getResolvedCustomerPortalTheme(globalTheme, theme, customerPortal?.configuration);\n const resolvedTextOverrides = getResolvedCustomerPortalLocalize(textOverrides);\n\n return (\n <SdkThemeProvider componentTheme={configuration}>\n <CustomerPortalContext.Provider\n key={customerPortalUpdatedAt?.toString()}\n value={{\n customerPortal,\n isLoading,\n textOverrides: resolvedTextOverrides,\n theme: customerPortalTheme,\n resourceId,\n }}>\n {children}\n </CustomerPortalContext.Provider>\n </SdkThemeProvider>\n );\n}\n","import React from 'react';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Paywall } from './Paywall';\nimport { useLoadPaywallData } from './hooks/useLoadPaywallData';\nimport { ShouldHidePlanFn, OnPlanSelectedCallbackFn, SelectDefaultTierIndexFn } from './types';\nimport { getResolvedPaywallLocalize, PaywallLocalization } from './paywallTextOverrides';\nimport { DeepPartial } from '../../types';\nimport { PaywallLoader } from './PaywallLoader';\nimport { SdkThemeProvider } from '../../theme/Theme';\nimport {\n CustomerPortalContext,\n useCheckContextExists,\n useCustomerPortalContext,\n} from '../customerPortal/CustomerPortalProvider';\n\nexport type PaywallContainerProps = {\n productId?: string;\n resourceId?: string;\n highlightedPlanId?: string;\n showOnlyEligiblePlans?: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n preferredBillingPeriod?: BillingPeriod;\n onBillingPeriodChange?: (billingPeriod: BillingPeriod) => void;\n textOverrides?: DeepPartial<PaywallLocalization>;\n billingCountryCode?: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\n shouldHidePlan,\n selectDefaultTierIndex,\n}: PaywallContainerProps) => {\n const hasCustomerPortalContext = useCheckContextExists(CustomerPortalContext);\n let isCustomerPortalLoading = false;\n if (hasCustomerPortalContext) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { isLoading, resourceId: customerPortalResourceId } = useCustomerPortalContext();\n isCustomerPortalLoading = isLoading;\n resourceId = customerPortalResourceId;\n }\n const {\n plans,\n customer,\n currentSubscription,\n isCustomerOnTrial,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration,\n } = useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n });\n const paywallLocale = getResolvedPaywallLocalize(textOverrides);\n const handlePeriodChange = (billingPeriod: BillingPeriod) => {\n setSelectedBillingPeriod(billingPeriod);\n if (onBillingPeriodChange) {\n onBillingPeriodChange(billingPeriod);\n }\n };\n\n const component =\n !plans || isLoading || isCustomerPortalLoading ? (\n <PaywallLoader />\n ) : (\n <Paywall\n plans={plans}\n customer={customer}\n currentSubscription={currentSubscription}\n selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\n shouldHidePlan={shouldHidePlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n />\n );\n\n // When rendering the paywall in the customer portal context we don't want to apply paywall theme\n if (hasCustomerPortalContext) {\n return component;\n }\n return <SdkThemeProvider componentTheme={configuration}>{component}</SdkThemeProvider>;\n};\n","import styled from '@emotion/styled/macro';\nimport MuiButton from '@mui/material/Button';\n\nexport const StyledButton = styled(MuiButton)`\n border-radius: 10px;\n padding: 8px 16px;\n text-transform: none;\n\n &,\n &:hover {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedRestingBorder};\n }\n`;\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.3333 2.5L17.5 6.66667L6.66667 17.5H2.5V13.3333L13.3333 2.5V2.5Z\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nexport const SectionHeader = styled.div<{ $disableMargin?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ${({ $disableMargin }) =>\n !$disableMargin &&\n `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;\n","import React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { Typography } from '../../common/Typography';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\n\nexport type SectionTitleProps = {\n title: string;\n className: string;\n isLoading?: boolean;\n};\n\nexport function SectionTitle({ title, className, isLoading }: SectionTitleProps) {\n const { theme } = useCustomerPortalContext();\n\n if (isLoading) {\n return <Skeleton width={120} />;\n }\n\n return (\n <Typography className={className} overrideColor={theme.sectionTitleColor} variant=\"h3\" bold>\n {title}\n </Typography>\n );\n}\n","import { CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\n\nexport type OnBuyMoreCallbackFn = (feature: FeatureFragment, entitlement: CustomerPortalEntitlement) => void;\n\nexport type FilterEntitlementsFn = (entitlements: CustomerPortalEntitlement[]) => CustomerPortalEntitlement[];\n\nexport enum CustomerPortalIntentionType {\n MANAGE_SUBSCRIPTION = 'MANAGE_SUBSCRIPTION',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n UPGRADE_TRIAL_PLAN = 'UPGRADE_TRIAL_PLAN',\n}\n\nexport type OnManageSubscriptionFn = ({\n intentionType,\n customerSubscriptions,\n}: {\n intentionType: CustomerPortalIntentionType;\n customerSubscriptions: CustomerPortalSubscription[];\n}) => Promise<void> | void;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../types';\n\ntype SubscriptionsOverviewHeaderProps = {\n onManageSubscription: OnManageClick;\n hideManageButton: boolean;\n textOverrides: CustomerPortalLocalization;\n};\n\nconst StyledEditIcon = styled(EditIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nexport function SubscriptionsOverviewHeader({\n onManageSubscription,\n hideManageButton,\n textOverrides,\n}: SubscriptionsOverviewHeaderProps) {\n return (\n <SectionHeader className=\"stigg-customer-portal-overview-header\" $disableMargin>\n <SectionTitle title=\"Subscription\" className=\"stigg-overview-title\" />\n {!hideManageButton && (\n <StyledButton\n className=\"stigg-manage-subscription-button\"\n variant=\"outlined\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.MANAGE_SUBSCRIPTION })}>\n <StyledEditIcon className=\"stigg-manage-subscription-button-image\" />\n <Typography\n className=\"stigg-manage-subscription-button-text\"\n color=\"primary.main\"\n style={{ marginLeft: '8px' }}\n variant=\"body1\">\n {textOverrides?.manageSubscription}\n </Typography>\n </StyledButton>\n )}\n </SectionHeader>\n );\n}\n","import flatMap from 'lodash/flatMap';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nexport function AddonsList() {\n const { customerPortal } = useCustomerPortalContext();\n const addons = flatMap(customerPortal?.subscriptions, (subscription) => subscription.addons);\n if (isEmpty(addons)) {\n return null;\n }\n\n return (\n <div className=\"stigg-addons-list-layout\">\n {addons.map((addon, index) => (\n <Typography key={addon.addonId} span className=\"stigg-addon-list-item-text\" variant=\"body1\">\n {addon.quantity > 1 && `${addon.quantity} X `}\n {addon.displayName}\n {index === addons.length - 1 ? '' : ', '}\n </Typography>\n ))}\n </div>\n );\n}\n","import { CustomerPortalPromotionalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nconst Row = styled.div<{ $borderColor: string }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 64px;\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 16px 0;\n\n & > *:first-of-type {\n max-width: 60%;\n }\n`;\n\nfunction getPromotionTitle(promotionalEntitlement: CustomerPortalPromotionalEntitlement) {\n const { displayName, usageLimit, hasUnlimitedUsage } = promotionalEntitlement;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${displayName}`;\n }\n if (usageLimit) {\n return `${displayName} x ${promotionalEntitlement.usageLimit?.toLocaleString()}`;\n }\n\n return displayName;\n}\n\nexport function Promotions() {\n const { customerPortal, textOverrides, theme } = useCustomerPortalContext();\n const promotionalEntitlements = customerPortal?.promotionalEntitlements;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Typography color=\"secondary\">{textOverrides.promotionsSubtitle}</Typography>\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Row $borderColor={theme.borderColor}>\n <Typography variant=\"body1\" bold>\n Feature\n </Typography>\n <Typography variant=\"body1\" bold>\n Expiration date\n </Typography>\n </Row>\n {promotionalEntitlements?.map((promotionalEntitlement, index) => (\n <Row key={`${promotionalEntitlement.displayName}-${index}`} $borderColor={theme.borderColor}>\n <Typography variant=\"body1\">{getPromotionTitle(promotionalEntitlement)}</Typography>\n <Typography variant=\"body1\" color=\"disabled\">\n {promotionalEntitlement.endDate\n ? moment.utc(promotionalEntitlement.endDate).format('MMM Do, YYYY')\n : 'None'}\n </Typography>\n </Row>\n ))}\n </div>\n </div>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Tabs from '@mui/material/Tabs';\n\nexport const StyledTabs = styled(Tabs)`\n .MuiTabs-indicator {\n background-color: #001e6c;\n }\n`;\n\nexport const TabsLayout = styled.div`\n width: 100%;\n flex: 1;\n margin-top: 16px;\n`;\n\nexport const TabContent = styled(Box, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $maxHeight: string }>`\n margin-top: 16px;\n max-height: ${({ $maxHeight }) => $maxHeight};\n overflow-y: auto;\n`;\n\nexport const ListBox = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n margin-bottom: 16px;\n row-gap: 16px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n`;\n","import { Theme } from '@emotion/react';\n\nexport type IconColor = 'primary' | 'secondary';\n\nexport const getIconColor = (color: IconColor | string | undefined, theme: Theme) => {\n switch (color) {\n case 'primary':\n return theme.stigg.palette.text.primary;\n case 'secondary':\n return theme.stigg.palette.text.secondary;\n default:\n return color;\n }\n};\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_118930)\">\n<path d=\"M12 6.85712V17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6.85712 12H17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M18 0.857117H5.99997C3.15966 0.857117 0.857117 3.15966 0.857117 5.99997V18C0.857117 20.8404 3.15966 23.1428 5.99997 23.1428H18C20.8404 23.1428 23.1428 20.8404 23.1428 18V5.99997C23.1428 3.15966 20.8404 0.857117 18 0.857117Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_118930\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 27V25C26 22.7909 24.2091 21 22 21H14C11.7909 21 10 22.7909 10 25V27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C15.7909 9 14 10.7909 14 13C14 15.2091 15.7909 17 18 17Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8545\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M27 18.22C27 12.73 22.74 9 18 9C13.31 9 9 12.65 9 18.28C8.4 18.62 8 19.26 8 20V22C8 23.1 8.9 24 10 24H11V17.9C11 14.03 14.13 10.9 18 10.9C21.87 10.9 25 14.03 25 17.9V25H17V27H25C26.1 27 27 26.1 27 25V23.78C27.59 23.47 28 22.86 28 22.14V19.84C28 19.14 27.59 18.53 27 18.22Z\" fill=\"#7586B0\"/>\n<path d=\"M15 20C15.5523 20 16 19.5523 16 19C16 18.4477 15.5523 18 15 18C14.4477 18 14 18.4477 14 19C14 19.5523 14.4477 20 15 20Z\" fill=\"#7586B0\"/>\n<path d=\"M21 20C21.5523 20 22 19.5523 22 19C22 18.4477 21.5523 18 21 18C20.4477 18 20 18.4477 20 19C20 19.5523 20.4477 20 21 20Z\" fill=\"#7586B0\"/>\n<path d=\"M24 17.03C23.52 14.18 21.04 12 18.05 12C15.02 12 11.76 14.51 12.02 18.45C14.49 17.44 16.35 15.24 16.88 12.56C18.19 15.19 20.88 17 24 17.03Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_267_19310\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 10H10C8.89 10 8.01 10.89 8.01 12L8 24C8 25.11 8.89 26 10 26H26C27.11 26 28 25.11 28 24V12C28 10.89 27.11 10 26 10ZM26 24H10V18H26V24ZM26 14H10V12H26V14Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8556\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_120339)\">\n<path d=\"M10.3336 19.2858C15.462 19.2858 19.6193 15.1285 19.6193 10.0001C19.6193 4.87171 15.462 0.714355 10.3336 0.714355C5.20521 0.714355 1.04785 4.87171 1.04785 10.0001C1.04785 15.1285 5.20521 19.2858 10.3336 19.2858Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12.7649 7.46052C12.6813 7.22393 12.5523 7.0088 12.3883 6.8256C12.0395 6.43592 11.5327 6.19067 10.9685 6.19067H9.4942C8.55517 6.19067 7.79395 6.9519 7.79395 7.89093C7.79395 8.68995 8.3503 9.38116 9.13086 9.5519L11.3756 10.0429C12.25 10.2342 12.8733 11.0091 12.8733 11.9043C12.8733 12.9562 12.0205 13.8097 10.9685 13.8097H9.6987C8.86936 13.8097 8.16382 13.2797 7.90233 12.5399\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 6.19065V4.28589\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 15.7144V13.8096\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_120339\">\n<rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.333496)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_116282)\">\n<path d=\"M21.4286 5.32483H2.57146C1.62469 5.32483 0.857178 6.09235 0.857178 7.03911V10.4677C0.857178 11.4145 1.62469 12.182 2.57146 12.182H21.4286C22.3754 12.182 23.1429 11.4145 23.1429 10.4677V7.03911C23.1429 6.09235 22.3754 5.32483 21.4286 5.32483Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M21.4287 12.182V21.6106C21.4287 22.0652 21.248 22.5013 20.9266 22.8227C20.6051 23.1442 20.169 23.3249 19.7144 23.3249H4.28582C3.83116 23.3249 3.39513 23.1442 3.07363 22.8227C2.75215 22.5013 2.57153 22.0652 2.57153 21.6106V12.182\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 5.32483V23.3248\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M17.1429 1.03912L12 5.32484L6.85718 1.03912\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_116282\">\n<rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.182007)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.8333 2.5C6.69168 2.5 3.33334 5.85833 3.33334 10H0.833344L4.07501 13.2417L4.13334 13.3583L7.50001 10H5.00001C5.00001 6.775 7.60834 4.16667 10.8333 4.16667C14.0583 4.16667 16.6667 6.775 16.6667 10C16.6667 13.225 14.0583 15.8333 10.8333 15.8333C9.22501 15.8333 7.76668 15.175 6.71668 14.1167L5.53334 15.3C6.89168 16.6583 8.75834 17.5 10.8333 17.5C14.975 17.5 18.3333 14.1417 18.3333 10C18.3333 5.85833 14.975 2.5 10.8333 2.5ZM10 6.66667V10.8333L13.5667 12.95L14.1667 11.9417L11.25 10.2083V6.66667H10Z\" fill=\"#6678A7\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"url(#paint0_linear_834_118583)\"/>\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9539 7.70028C16.1196 8.22713 15.8268 8.78853 15.3 8.95421C14.4906 9.20875 13.7155 9.57824 12.9999 10.0564C11.2686 11.2132 9.99197 12.9346 9.38754 14.9271C8.78311 16.9196 8.88826 19.0601 9.68509 20.9838C10.4819 22.9075 11.9211 24.4954 13.7574 25.477C15.5938 26.4585 17.7136 26.7729 19.7558 26.3667C21.798 25.9605 23.6362 24.8588 24.9571 23.2492C26.278 21.6396 27 19.6219 27 17.5397C27 16.9874 27.4477 16.5397 28 16.5397C28.5523 16.5397 29 16.9874 29 17.5397C29 17.8969 28.9826 18.2526 28.9483 18.6056C28.9662 18.6949 28.9722 18.7883 28.9645 18.8837L28.9606 18.9309C28.9496 19.0607 28.9143 19.1825 28.8595 19.2924C28.5513 21.2017 27.7432 23.007 26.5031 24.518C24.8886 26.4852 22.642 27.8318 20.146 28.3283C17.65 28.8248 15.059 28.4405 12.8146 27.2408C10.5702 26.0411 8.81122 24.1004 7.83733 21.7492C6.86343 19.398 6.73491 16.7819 7.47366 14.3465C8.21241 11.9112 9.77272 9.80737 11.8887 8.3935C12.7634 7.80905 13.7107 7.35743 14.7 7.04633C15.2269 6.88065 15.7883 7.17343 15.9539 7.70028ZM17.8497 7.95155C17.8964 7.40125 18.3804 6.99302 18.9307 7.03974L18.9779 7.04385C19.528 7.0929 19.9342 7.57861 19.8851 8.12871C19.8361 8.67881 19.3503 9.085 18.8002 9.03595L18.7615 9.03257C18.2112 8.98585 17.8029 8.50186 17.8497 7.95155ZM22.8579 9.19953C23.172 8.74525 23.7949 8.63161 24.2492 8.9457C24.2751 8.96361 24.3009 8.98162 24.3266 8.99974C24.7782 9.31772 24.8865 9.94155 24.5685 10.3931C24.2505 10.8447 23.6267 10.953 23.1751 10.635C23.1541 10.6202 23.1329 10.6054 23.1118 10.5908C22.6575 10.2767 22.5438 9.6538 22.8579 9.19953ZM26.6058 12.8085C27.1045 12.5712 27.7011 12.7831 27.9384 13.2818C27.9519 13.3102 27.9653 13.3387 27.9786 13.3672C28.2116 13.868 27.9946 14.4628 27.4939 14.6958C26.9931 14.9288 26.3983 14.7117 26.1653 14.211L26.1506 14.1796L26.1324 14.1411C25.8951 13.6424 26.1071 13.0458 26.6058 12.8085ZM19 14.0003C19 13.448 18.5523 13.0003 18 13.0003C17.4477 13.0003 17 13.448 17 14.0003V18.0003C17 18.5526 17.4477 19.0003 18 19.0003H22C22.5523 19.0003 23 18.5526 23 18.0003C23 17.448 22.5523 17.0003 22 17.0003H19V14.0003Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_834_118583\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.95394 1.70028C10.1196 2.22713 9.82684 2.78853 9.29999 2.95421C8.49057 3.20875 7.71555 3.57824 6.99987 4.05644C5.26859 5.21324 3.99197 6.93456 3.38754 8.9271C2.78311 10.9196 2.88826 13.0601 3.68509 14.9838C4.48191 16.9075 5.9211 18.4954 7.75743 19.477C9.59377 20.4585 11.7136 20.7729 13.7558 20.3667C15.798 19.9605 17.6362 18.8588 18.9571 17.2492C20.278 15.6396 21 13.6219 21 11.5397C21 10.9874 21.4477 10.5397 22 10.5397C22.5523 10.5397 23 10.9874 23 11.5397C23 11.8969 22.9826 12.2526 22.9483 12.6056C22.9662 12.6949 22.9722 12.7883 22.9645 12.8837L22.9606 12.9309C22.9496 13.0607 22.9143 13.1825 22.8595 13.2924C22.5513 15.2017 21.7432 17.007 20.5031 18.518C18.8886 20.4852 16.642 21.8318 14.146 22.3283C11.65 22.8248 9.05905 22.4405 6.81464 21.2408C4.57023 20.0411 2.81122 18.1004 1.83733 15.7492C0.863434 13.398 0.734911 10.7819 1.47366 8.34653C2.21241 5.91121 3.77272 3.80737 5.88873 2.3935C6.76341 1.80905 7.71072 1.35743 8.70001 1.04633C9.22686 0.880646 9.78826 1.17343 9.95394 1.70028ZM11.8497 1.95155C11.8964 1.40125 12.3804 0.993017 12.9307 1.03974L12.9779 1.04385C13.528 1.0929 13.9342 1.57861 13.8851 2.12871C13.8361 2.67881 13.3503 3.085 12.8002 3.03595L12.7615 3.03257C12.2112 2.98585 11.8029 2.50186 11.8497 1.95155ZM16.8579 3.19953C17.172 2.74525 17.7949 2.63161 18.2492 2.9457C18.2751 2.96361 18.3009 2.98162 18.3266 2.99974C18.7782 3.31772 18.8865 3.94155 18.5685 4.39311C18.2505 4.84467 17.6267 4.95296 17.1751 4.63498C17.1541 4.62016 17.1329 4.60542 17.1118 4.59078C16.6575 4.27669 16.5438 3.6538 16.8579 3.19953ZM20.6058 6.80846C21.1045 6.57117 21.7011 6.78308 21.9384 7.28179C21.9519 7.3102 21.9653 7.33869 21.9786 7.36723C22.2116 7.86796 21.9946 8.46276 21.4939 8.69577C20.9931 8.92877 20.3983 8.71174 20.1653 8.21101L20.1506 8.17957L20.1324 8.14112C19.8951 7.64241 20.1071 7.04576 20.6058 6.80846ZM13 8.00027C13 7.44798 12.5523 7.00027 12 7.00027C11.4477 7.00027 11 7.44798 11 8.00027V12.0003C11 12.5526 11.4477 13.0003 12 13.0003H16C16.5523 13.0003 17 12.5526 17 12.0003C17 11.448 16.5523 11.0003 16 11.0003H13V8.00027Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 12C9 10.8954 9.89543 10 11 10H25C26.1046 10 27 10.8954 27 12V26C27 27.1046 26.1046 28 25 28H11C9.89543 28 9 27.1046 9 26V12Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M22 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 16H27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_45_8861\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"trash-2\">\n<path id=\"Shape\" d=\"M3 6H5H21\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M20 6C20 5.44772 19.5523 5 19 5C18.4477 5 18 5.44772 18 6H20ZM6 6C6 5.44772 5.55228 5 5 5C4.44772 5 4 5.44772 4 6H6ZM7 6C7 6.55228 7.44772 7 8 7C8.55228 7 9 6.55228 9 6H7ZM15 6C15 6.55228 15.4477 7 16 7C16.5523 7 17 6.55228 17 6H15ZM18 6V20H20V6H18ZM18 20C18 20.5523 17.5523 21 17 21V23C18.6569 23 20 21.6569 20 20H18ZM17 21H7V23H17V21ZM7 21C6.44772 21 6 20.5523 6 20H4C4 21.6569 5.34315 23 7 23V21ZM6 20V6H4V20H6ZM9 6V4H7V6H9ZM9 4C9 3.44772 9.44772 3 10 3V1C8.34315 1 7 2.34315 7 4H9ZM10 3H14V1H10V3ZM14 3C14.5523 3 15 3.44772 15 4H17C17 2.34315 15.6569 1 14 1V3ZM15 4V6H17V4H15Z\" fill=\"#F88078\"/>\n<path id=\"Shape_3\" d=\"M10 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_4\" d=\"M14 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M21.1667 4H2.83333C1.82081 4 1 4.89543 1 6V18C1 19.1046 1.82081 20 2.83333 20H21.1667C22.1792 20 23 19.1046 23 18V6C23 4.89543 22.1792 4 21.1667 4Z\" fill=\"#C6C6C7\"/>\n<path opacity=\"0.3\" d=\"M19.75 16.4286H17.5C17.0125 16.4286 16.75 16.2 16.75 15.6667C16.75 15.1334 17.0125 14.9048 17.5 14.9048H19.75C20.2375 14.9048 20.5 15.1334 20.5 15.6667C20.5 16.2 20.2375 16.4286 19.75 16.4286ZM15.25 16.4286H13C12.5125 16.4286 12.25 16.2 12.25 15.6667C12.25 15.1334 12.5125 14.9048 13 14.9048H15.25C15.7375 14.9048 16 15.1334 16 15.6667C16 16.2 15.7375 16.4286 15.25 16.4286ZM10.75 16.4286H8.5C8.0125 16.4286 7.75 16.2 7.75 15.6667C7.75 15.1334 8.0125 14.9048 8.5 14.9048H10.75C11.2375 14.9048 11.5 15.1334 11.5 15.6667C11.5 16.2 11.2375 16.4286 10.75 16.4286ZM6.25 16.4286H4C3.5125 16.4286 3.25 16.2 3.25 15.6667C3.25 15.1334 3.5125 14.9048 4 14.9048H6.25C6.7375 14.9048 7 15.1334 7 15.6667C7 16.2 6.7375 16.4286 6.25 16.4286Z\" fill=\"black\"/>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"10.333\" cy=\"10\" r=\"9\" fill=\"white\" stroke=\"#327EEE\" stroke-width=\"2\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Group 16159\">\n<circle id=\"Ellipse 5\" cx=\"10\" cy=\"10\" r=\"9.25\" fill=\"#327EEE\" stroke=\"#327EEE\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5 10.3636L8.63667 14L12.637 10L14.6372 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Stepper indicators\">\n<circle id=\"Ellipse 5\" cx=\"10.667\" cy=\"10\" r=\"9.25\" fill=\"#B3BCD3\" stroke=\"#B3BCD3\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5.66699 10.3636L9.30366 14L13.304 10L15.3042 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3L7.9425 4.0575L12.1275 8.25H3V9.75H12.1275L7.9425 13.9425L9 15L15 9L9 3Z\" fill=\"white\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.8337 5.34199L14.6587 4.16699L10.0003 8.82533L5.34199 4.16699L4.16699 5.34199L8.82533 10.0003L4.16699 14.6587L5.34199 15.8337L10.0003 11.1753L14.6587 15.8337L15.8337 14.6587L11.1753 10.0003L15.8337 5.34199Z\" fill=\"#327EEE\"/>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"check\">\n<path id=\"Shape\" d=\"M20 7L9 18L4 13\" stroke=\"#F5F6F9\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_1889_12169)\">\n<path d=\"M11.4286 7.42578L8 13.1401\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14.857 13.1412C15.3274 12.0123 15.5118 10.7848 15.3938 9.56751C15.2758 8.35027 14.8592 7.18097 14.1808 6.16341C13.5024 5.14585 12.5833 4.31152 11.5051 3.73446C10.4268 3.1574 9.22281 2.85547 7.99986 2.85547C6.77691 2.85547 5.57288 3.1574 4.49463 3.73446C3.41639 4.31152 2.49729 5.14585 1.81892 6.16341C1.14055 7.18097 0.723889 8.35027 0.605928 9.56751C0.487968 10.7848 0.672354 12.0123 1.14272 13.1412H14.857Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_1889_12169\">\n<rect width=\"16\" height=\"16\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"tag--tags-bookmark-favorite\">\n<path id=\"Vector\" d=\"M1.26995 11.9426L6.05743 16.7301C6.2305 16.903 6.4651 17.0001 6.7097 17.0001C6.95431 17.0001 7.18891 16.903 7.36198 16.7301L16.8631 7.22895C16.9108 7.18332 16.9478 7.12758 16.9712 7.06583C16.9946 7.00408 17.0039 6.93787 16.9985 6.87205L16.2724 2.15839C16.2664 2.04607 16.2192 1.93992 16.1396 1.86038C16.0601 1.78085 15.9539 1.73357 15.8416 1.72764L11.128 1.00152C11.0622 0.996055 10.9959 1.00538 10.9342 1.0288C10.8724 1.05222 10.8167 1.08916 10.7711 1.1369L1.26995 10.638C1.09709 10.8111 1 11.0457 1 11.2903C1 11.5349 1.09709 11.7695 1.26995 11.9426Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Vector_2\" d=\"M12.5548 6.05884C12.3916 6.05884 12.2351 5.99401 12.1197 5.87861C12.0043 5.76321 11.9395 5.60669 11.9395 5.44348C11.9395 5.28028 12.0043 5.12376 12.1197 5.00836C12.2351 4.89296 12.3916 4.82812 12.5548 4.82812C12.718 4.82812 12.8745 4.89296 12.9899 5.00836C13.1053 5.12376 13.1702 5.28028 13.1702 5.44348C13.1702 5.60669 13.1053 5.76321 12.9899 5.87861C12.8745 5.99401 12.718 6.05884 12.5548 6.05884Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\nimport React, { CSSProperties } from 'react';\nimport { css, useTheme } from '@emotion/react';\nimport { getIconColor, IconColor } from './iconColor';\nimport * as customIcons from './customIcons';\n\nexport type Icons = keyof typeof customIcons;\n\nconst IconWrapper = styled.div<{ $pathColor?: string; $rectColor?: string; $strokeColor?: string }>`\n ${({ $pathColor }) =>\n $pathColor &&\n css`\n path {\n fill: ${$pathColor};\n }\n `}\n\n ${({ $rectColor }) =>\n $rectColor &&\n css`\n svg rect {\n fill: ${$rectColor};\n }\n `}\n\n\n ${({ $strokeColor }) =>\n $strokeColor &&\n css`\n g {\n stroke: ${$strokeColor};\n }\n `}\n`;\n\nexport type IconProps = {\n icon: Icons;\n className?: string;\n style?: CSSProperties;\n svgPathColor?: IconColor | string;\n svgRectColor?: IconColor | string;\n svgStrokeColor?: IconColor | string;\n};\n\nexport function Icon({ icon, className, style, svgPathColor, svgRectColor, svgStrokeColor }: IconProps) {\n const IconComponent = (customIcons as any)[icon];\n const theme = useTheme();\n\n return (\n <IconWrapper\n className={className}\n style={style}\n $pathColor={getIconColor(svgPathColor, theme)}\n $rectColor={getIconColor(svgRectColor, theme)}\n $strokeColor={getIconColor(svgStrokeColor, theme)}>\n <IconComponent />\n </IconWrapper>\n );\n}\n","import React, { useState } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport flatMap from 'lodash/flatMap';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport { FontWeight } from 'styled-typography';\nimport { Typography } from '../../../common/Typography';\nimport { AddonsList } from './AddonsList';\nimport { Promotions } from './Promotions';\nimport { CustomerPortalSection } from '../../CustomerPortal';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\nimport { StyledTabs, TabContent, TabsLayout } from './SubscriptionTabs.style';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { Icon, Icons } from '../../../common/Icon';\n\ntype TabPanelProps = {\n children?: React.ReactNode;\n index: number;\n value: number;\n maxHeight: string;\n};\n\nfunction TabPanel(props: TabPanelProps) {\n const { children, value, index, maxHeight, ...other } = props;\n\n return (\n <div role=\"tabpanel\" hidden={value !== index} {...other}>\n {value === index && <TabContent $maxHeight={maxHeight}>{children}</TabContent>}\n </div>\n );\n}\n\nexport type SubscriptionTabsProps = {\n customerPortal: CustomerPortal;\n hiddenSections?: CustomerPortalSection[];\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n};\n\nfunction TabTitle({ isSelected, label, icon }: { isSelected: boolean; label: string; icon: Icons }) {\n const color = isSelected ? 'primary' : 'secondary';\n return (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n <Icon icon={icon} svgStrokeColor={color} />\n <Typography variant=\"h6\" bold={isSelected} fontWeight={FontWeight.Medium} color={color}>\n {label}\n </Typography>\n </div>\n );\n}\n\nexport function SubscriptionTabs({ customerPortal, hiddenSections, textOverrides, theme }: SubscriptionTabsProps) {\n const allAddons = flatMap(customerPortal.subscriptions, (subscription) => subscription.addons);\n const isSectionHidden = (sectionName: CustomerPortalSection) =>\n hiddenSections?.some((section) => section === sectionName);\n const showAddons = allAddons.length > 0 && !isSectionHidden('addons');\n const showPromotions =\n customerPortal.promotionalEntitlements.length > 0 && !isSectionHidden('promotionalEntitlements');\n const [value, setValue] = useState(showAddons ? 1 : 2);\n\n const handleChange = (_: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n const shouldShowTabs = showAddons || showPromotions;\n\n if (!shouldShowTabs) {\n return null;\n }\n\n return (\n <TabsLayout>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <StyledTabs value={value} onChange={handleChange}>\n {showAddons ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={1}\n label={<TabTitle isSelected={value === 1} label={textOverrides.addonsTabTitle} icon=\"Addons\" />}\n />\n ) : null}\n {showPromotions ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={2}\n label={<TabTitle isSelected={value === 2} label={textOverrides.promotionsTabTitle} icon=\"Promotions\" />}\n />\n ) : null}\n </StyledTabs>\n </Box>\n <TabPanel value={value} index={1} maxHeight={theme.tabMaxHeight}>\n <AddonsList />\n </TabPanel>\n <TabPanel value={value} index={2} maxHeight={theme.tabMaxHeight}>\n <Promotions />\n </TabPanel>\n </TabsLayout>\n );\n}\n","export const breakpoints = {\n xs: 320,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n} as const;\n\nexport type Breakpoints = typeof breakpoints;\n\nexport type Breakpoint = keyof Breakpoints;\n\nexport const mqMinWidth = (breakpoint: Breakpoint) => `(min-width: ${breakpoints[breakpoint]}px)`;\n\nexport const mq = Object.keys(breakpoints).reduce(\n (obj, breakpoint) => ({ ...obj, [breakpoint]: `@media ${mqMinWidth(breakpoint as Breakpoint)}` }),\n {} as Record<Breakpoint, string>,\n);\n","import { useMediaQuery as useMediaQueryMui } from '@mui/material';\nimport { Breakpoint, mqMinWidth } from '../common/mediaQuery';\n\nexport function useIsScreenWiderThan(breakpoint: Breakpoint) {\n return useMediaQueryMui(mqMinWidth(breakpoint));\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n return (\n <SkeletonLayout className=\"stigg-subscription-overview-skeleton-layout\">\n <SkeletonLayoutLeft>\n <Skeleton width={120} />\n <Skeleton width={120} />\n </SkeletonLayoutLeft>\n <Skeleton width={isScreenWiderThanMd ? 295 : 260} height={193} />\n </SkeletonLayout>\n );\n}\n","import React from 'react';\nimport { ArrowDown } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n BillingPeriod,\n} from '@stigg/js-client-sdk';\nimport { compact, map } from 'lodash';\nimport { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\n\nexport type SubscriptionScheduledUpdateRowProps = {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n};\n\nfunction SubscriptionScheduledUpdateDowngradeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { targetPackage } = scheduleUpdate;\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Downgrade to the <b>{targetPackage?.displayName}</b> plan\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateBillingPeriodChangeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { scheduleVariables } = scheduleUpdate;\n const { billingPeriod } = scheduleVariables as BillingPeriodChangeVariables;\n const currentBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'annually' : 'monthly';\n const nextBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually';\n\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Change from an {currentBillingPeriod} to a <b>{nextBillingPeriod}</b> billing cycle\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateUnitQuantityChangeRow({\n subscription,\n scheduleUpdate,\n}: SubscriptionScheduledUpdateRowProps & { subscription: CustomerPortalSubscription }) {\n const { scheduleVariables } = scheduleUpdate;\n const { newUnitAmount, featureId } = scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscription.prices, 'feature')).find(({ id }) => id === featureId);\n\n if (!feature) {\n return null;\n }\n\n const { featureUnits, featureUnitsPlural } = feature;\n const newQuantityUnits = newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n return (\n <Grid container alignItems=\"flex-start\" flexWrap=\"nowrap\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Reduce the <b>{featureUnits}</b> quantity to {newUnitAmount} {newQuantityUnits}\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nexport function SubscriptionScheduledUpdateRow({\n scheduleUpdate,\n subscription,\n}: {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n subscription: CustomerPortalSubscription;\n}) {\n switch (scheduleUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n return <SubscriptionScheduledUpdateDowngradeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n return <SubscriptionScheduledUpdateBillingPeriodChangeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n return (\n <SubscriptionScheduledUpdateUnitQuantityChangeRow scheduleUpdate={scheduleUpdate} subscription={subscription} />\n );\n }\n\n default: {\n return null;\n }\n }\n}\n","import React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { useTheme } from '@emotion/react';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport Restore from '../../../../assets/restore.svg';\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { SubscriptionScheduledUpdateRow } from './SubscriptionScheduledUpdateRow';\nimport { getSubscriptionScheduleUpdateTexts } from '../../../utils/getSubscriptionScheduleUpdateTexts';\nimport { StyledButton } from '../../common/StyledButton';\n\nexport type SubscriptionScheduledUpdatesAlertProps = {\n subscription: CustomerPortalSubscription;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n theme: CustomerPortalTheme;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nconst SubscriptionScheduleUpdateAlertContainer = styled(Box)<{ $borderColor: string }>`\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n margin: -64px -64px 64px -64px;\n padding: 24px 32px;\n`;\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 4px;\n`;\n\nconst StyledRestoreIcon = styled(Restore)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n path {\n fill: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nfunction MultipleScheduledUpdates({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n The following updates will take effect in the next billing cycle:\n </Typography>\n </Grid>\n </Grid>\n <Grid>\n {(scheduledUpdates || []).map((scheduleUpdate) => (\n <SubscriptionScheduledUpdateRow\n key={scheduleUpdate.subscriptionScheduleType}\n scheduleUpdate={scheduleUpdate}\n subscription={subscription}\n />\n ))}\n </Grid>\n </>\n );\n}\n\nfunction SingleScheduledUpdate({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n const [scheduledUpdate] = scheduledUpdates || [];\n\n const { line1, line2 } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices: subscription.prices,\n billingPeriodRange: subscription.billingPeriodRange,\n options: {\n postfix: 'at the end of the current billing period', // We can later remove this if unnecessary\n },\n });\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-title\" variant=\"body1\" color=\"primary\">\n {line1}\n </Typography>\n </Grid>\n </Grid>\n {line2 && (\n <Grid>\n <Typography className=\"stigg-scheduled-updates-subtitle\" variant=\"body1\" color=\"secondary\">\n {line2}\n </Typography>\n </Grid>\n )}\n </>\n );\n}\n\nexport function SubscriptionScheduledUpdatesAlert({\n subscription,\n onCancelScheduledUpdates,\n theme,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionScheduledUpdatesAlertProps) {\n const stiggTheme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const { scheduledUpdates } = subscription;\n\n if (!scheduledUpdates || scheduledUpdates.length === 0) {\n return null;\n }\n\n const isSingleScheduledUpdate = scheduledUpdates.length === 1;\n\n return (\n <SubscriptionScheduleUpdateAlertContainer\n $borderColor={theme.borderColor}\n className=\"stigg-scheduled-updates-alert-container\">\n <Grid container alignItems={isSingleScheduledUpdate ? 'center' : 'flex-start'} gap={2}>\n <Grid item display=\"flex\">\n <Icon icon=\"ScheduleBox\" svgPathColor={theme.iconsColor} svgRectColor={theme.iconsBackgroundColor} />\n </Grid>\n\n <Grid item flex={1}>\n {isSingleScheduledUpdate ? (\n <SingleScheduledUpdate subscription={subscription} />\n ) : (\n <MultipleScheduledUpdates subscription={subscription} />\n )}\n </Grid>\n\n {!!onCancelScheduledUpdates && (\n <Grid item>\n <StyledButton\n variant=\"outlined\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onCancelScheduledUpdates(subscription)).finally(() => setIsLoading(false));\n }}>\n {isLoading ? (\n <LoadingIndicator loading size={16} color={stiggTheme.stigg.palette.text.disabled} />\n ) : (\n <StyledRestoreIcon\n style={{ display: 'flex', marginRight: 4 }}\n className=\"stigg-scheduled-updates-cancel-update-button-icon\"\n />\n )}\n <Typography variant=\"body1\" color=\"primary.main\" className=\"stigg-scheduled-updates-cancel-update-button\">\n {cancelScheduledUpdatesButtonTitle}\n </Typography>\n </StyledButton>\n </Grid>\n )}\n </Grid>\n </SubscriptionScheduleUpdateAlertContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SectionContainer = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n\n padding: 16px;\n ${mq.sm} {\n padding: 32px;\n }\n ${mq.md} {\n padding: 48px;\n }\n ${mq.lg} {\n padding: 64px;\n }\n`;\n","import { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Typography } from '../../../common/Typography';\n\nexport type NextEstimatedBillProps = {\n billingPeriod: BillingPeriod;\n rangeEnd: string;\n amount: number;\n currency: Currency;\n};\n\nexport function NextEstimatedBill({ billingPeriod, rangeEnd, amount, currency }: NextEstimatedBillProps) {\n return (\n <>\n <Typography variant=\"h6\">Next estimated bill</Typography>\n <Typography variant=\"h1\">{currencyPriceFormatter({ amount, currency, maximumFractionDigits: 2 })}</Typography>\n <Typography as=\"div\" variant=\"body1\" color=\"secondary\">\n Billed {billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually'} on{' '}\n <Typography variant=\"body1\" span color=\"primary\">\n {moment.utc(rangeEnd).format('MMM Do, YYYY')}\n </Typography>\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n * Additional tax rates may apply\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant=\"h6\" color=\"secondary\">\n No upcoming bill\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\n\nconst ContactCustomerSupportLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: left;\n gap: 8px;\n`;\n\nconst ContactSupportButton = styled(Button)`\n width: fit-content;\n &.MuiButton-root {\n padding: 0;\n &:hover {\n background: none;\n }\n }\n`;\n\ntype ContactCustomerSupportProps = {\n onContactSupport?: () => void;\n label: string;\n linkLabel: string;\n};\n\nexport function ContactCustomerSupport({ onContactSupport, label, linkLabel }: ContactCustomerSupportProps) {\n const contactSupportText = (\n <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>\n );\n return (\n <ContactCustomerSupportLayout className=\"stigg-contact-support-layout\">\n <Typography className=\"stigg-contact-support-label\" color=\"secondary\">\n {label}\n </Typography>\n {onContactSupport ? (\n <ContactSupportButton\n className=\"stigg-contact-support-button\"\n style={{ textTransform: 'none' }}\n variant=\"text\"\n onClick={onContactSupport}>\n {contactSupportText}\n </ContactSupportButton>\n ) : (\n contactSupportText\n )}\n </ContactCustomerSupportLayout>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React, { ReactNode } from 'react';\nimport {\n BillingModel,\n CustomerPortalSubscription,\n PricingType,\n SubscriptionScheduleType,\n SubscriptionStatus,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { NextEstimatedBill } from './NextEstimatedBill';\nimport { NoUpcomingBilling } from './NoUpcomingBilling';\nimport { ContactCustomerSupport } from '../ContactCustomerSupport';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\n\nconst Container = styled.div<{ $borderColor: string }>`\n max-height: 278px;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundSection};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 32px;\n gap: 16px;\n`;\n\nexport type UpcomingBillingProps = {\n subscription: CustomerPortalSubscription;\n theme: CustomerPortalTheme;\n textOverrides: CustomerPortalLocalization;\n onContactSupport?: () => Promise<void> | void;\n};\n\nexport function UpcomingBilling({ subscription, theme, textOverrides, onContactSupport }: UpcomingBillingProps) {\n const { pricingType } = subscription;\n let content: ReactNode;\n const noUsageBasedPrices =\n subscription.prices?.every((price) => price.billingModel !== BillingModel.UsageBased) ?? true;\n const scheduledDowngradeToFree = subscription.scheduledUpdates?.find(\n ({ subscriptionScheduleType, targetPackage }) =>\n subscriptionScheduleType === SubscriptionScheduleType.Downgrade &&\n targetPackage?.pricingType === PricingType.Free,\n );\n\n if (pricingType === PricingType.Free) {\n content = <NoUpcomingBilling description=\"You're on a free plan, so you don’t have any upcoming charges\" />;\n } else if (pricingType === PricingType.Paid) {\n if (scheduledDowngradeToFree && noUsageBasedPrices) {\n content = (\n <NoUpcomingBilling description=\"Your plan will be downgraded to a free plan, so you don’t have any upcoming charges\" />\n );\n } else if (subscription.status === SubscriptionStatus.InTrial) {\n content = (\n <NoUpcomingBilling\n description={`You’re on a free trial of the ${subscription.planName} plan, so you don’t have any upcoming charges`}\n />\n );\n } else {\n const billingPeriod = subscription.prices?.[0]?.billingPeriod;\n const rangeEnd = subscription.billingPeriodRange?.end;\n const total = subscription.totalPrice?.total;\n\n if (billingPeriod && rangeEnd && total) {\n content = (\n <NextEstimatedBill\n billingPeriod={billingPeriod}\n rangeEnd={rangeEnd}\n amount={total.amount}\n currency={total.currency}\n />\n );\n }\n }\n } else if (pricingType === PricingType.Custom) {\n content = (\n <ContactCustomerSupport\n onContactSupport={onContactSupport}\n label={textOverrides.contactSupportTitle}\n linkLabel={textOverrides.contactSupportLink}\n />\n );\n }\n\n return (\n <Container className=\"stigg-subscription-total-price-layout\" $borderColor={theme.borderColor}>\n {content}\n </Container>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.9469 13.5999H11.9344L11.935 10.7756C11.935 10.6288 11.87 10.4819 11.7557 10.3838L8.62061 7.91816L11.755 5.4532C11.8694 5.35507 11.9344 5.22444 11.9344 5.06132L11.935 2.40004H12.9475C13.225 2.40004 13.4375 2.18755 13.4375 1.91004C13.4375 1.63254 13.225 1.42004 12.9475 1.42004L3.05311 1.42067C2.77561 1.42067 2.56311 1.63316 2.56311 1.91067C2.56311 2.18817 2.77561 2.40067 3.05311 2.40067H4.06561L4.06498 5.06131C4.06498 5.20818 4.12998 5.35505 4.24436 5.45318L7.36244 7.91814L4.245 10.3837C4.13062 10.4819 4.06562 10.6125 4.06562 10.7756V13.5999H3.05313C2.77562 13.5999 2.56313 13.8124 2.56313 14.0899C2.56313 14.3674 2.77562 14.5799 3.05313 14.5799H12.9469C13.2244 14.5799 13.4369 14.3674 13.4369 14.0899C13.4369 13.8124 13.2244 13.5999 12.9469 13.5999ZM5.04498 2.39995H10.9551V4.81627L8.00002 7.16747L5.04498 4.81627V2.39995ZM5.04498 11.0206L8.00002 8.66939L10.9551 11.0044V13.5838H5.04498V11.0206Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.05303 1.25404L12.9474 1.25342C13.317 1.25342 13.6041 1.54053 13.6041 1.91008C13.6041 2.27964 13.317 2.56675 12.9474 2.56675H12.1016L12.101 5.06136V5.06136C12.101 5.2747 12.0135 5.45101 11.8635 5.57973L11.8581 5.58436L8.89014 7.9182L11.8642 10.2572C12.0164 10.3878 12.1016 10.5814 12.1016 10.7757L12.101 13.4333H12.9468C13.3164 13.4333 13.6035 13.7204 13.6035 14.09C13.6035 14.4595 13.3164 14.7466 12.9468 14.7466H3.05304C2.68349 14.7466 2.39638 14.4595 2.39638 14.09C2.39638 13.7204 2.68349 13.4333 3.05304 13.4333H3.89887V10.7757C3.89887 10.5623 3.98635 10.386 4.13639 10.2573L4.14144 10.253L7.09365 7.91821L4.13566 5.57982C3.98346 5.44923 3.89823 5.25562 3.89823 5.06135L3.89882 2.56738H3.05303C2.68348 2.56738 2.39636 2.28026 2.39636 1.91071C2.39636 1.54116 2.68348 1.25405 3.05303 1.25404V1.25404ZM12.9474 1.58675L3.05304 1.58738C2.86758 1.58738 2.7297 1.72525 2.7297 1.91071C2.7297 2.09617 2.86757 2.23404 3.05303 2.23404H4.23223L4.23157 5.06135V5.06135C4.23158 5.15983 4.27538 5.25908 4.35053 5.32476L7.63107 7.91815L4.35113 10.5123C4.2739 10.5795 4.23221 10.6639 4.23221 10.7757V13.7666H3.05304C2.86759 13.7666 2.72971 13.9045 2.72971 14.09C2.72971 14.2754 2.86759 14.4133 3.05304 14.4133H12.9468C13.1323 14.4133 13.2701 14.2754 13.2701 14.09C13.2701 13.9045 13.1323 13.7667 12.9468 13.7667H11.7676L11.7683 10.7757V10.7757C11.7683 10.6772 11.7245 10.5781 11.6495 10.5124L8.35092 7.91819L11.6489 5.32461C11.726 5.25743 11.7676 5.17306 11.7676 5.06136L11.7683 2.23342H12.9474C13.1329 2.23342 13.2708 2.09554 13.2708 1.91008C13.2708 1.72463 13.1329 1.58676 12.9474 1.58675V1.58675ZM4.87823 2.23332H11.1216V4.89669L7.99994 7.3805L4.87823 4.89669V2.23332ZM5.21157 2.56666V4.73593L7.99994 6.95452L10.7883 4.73593V2.56666H5.21157ZM7.99958 8.45673L11.1216 10.9237V13.7505H4.87823V10.9403L7.99958 8.45673ZM8.0003 8.88213L5.21157 11.101V13.4172H10.7883V11.0852L8.0003 8.88213Z\" fill=\"white\"/>\n</svg>\n","import React from 'react';\nimport Tooltip, { tooltipClasses, TooltipProps } from '@mui/material/Tooltip';\nimport styled from '@emotion/styled/macro';\n\nexport type InformationTooltipProps = TooltipProps & { $padding?: number; $maxWidth?: number };\n\nexport const InformationTooltip = styled(\n ({ children, className, placement = 'top', ...props }: InformationTooltipProps) => (\n <Tooltip\n arrow\n placement={placement}\n {...props}\n classes={{ popper: className, tooltip: 'stigg-tooltip', arrow: 'stigg-tooltip-arrow' }}>\n <div>{children}</div>\n </Tooltip>\n ),\n)(({ theme, $padding = 8, $maxWidth = 300 }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.stigg.palette.white,\n maxWidth: $maxWidth,\n boxShadow: theme.stigg.shadows.popover,\n padding: $padding,\n borderRadius: theme.stigg.border.radius,\n color: theme.stigg.palette.text.primary,\n },\n [`& .${tooltipClasses.arrow}`]: {\n color: theme.stigg.palette.white,\n },\n}));\n","import React, { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material/Tooltip';\nimport { InformationTooltip } from './InformationTooltip';\nimport { Typography, TypographyProps } from './Typography';\n\nconst StyledText = styled(Typography)<{ $maxLines: number; $wordBreak?: boolean; $display: string; $bold?: boolean }>`\n display: ${({ $display }) => $display};\n -webkit-line-clamp: ${({ $maxLines }) => $maxLines};\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: normal;\n ${({ $wordBreak }) =>\n $wordBreak &&\n css`\n word-break: break-word;\n `}\n\n ${({ $bold }) =>\n $bold &&\n css`\n font-weight: bold;\n `}\n`;\n\nfunction checkTextClamped(element: HTMLSpanElement) {\n return element && (element.clientHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth);\n}\n\nexport const LongText = ({\n leaveDelay,\n children,\n variant,\n color,\n maxLines = 1,\n wordBreak,\n bold,\n tooltipPlacement = 'top',\n className,\n display = '-webkit-box',\n style,\n 'data-testid': dataTestId,\n}: {\n children: ReactNode;\n leaveDelay?: number;\n variant?: TypographyProps['variant'];\n color?: TypographyProps['color'];\n maxLines?: number;\n wordBreak?: boolean;\n bold?: boolean;\n tooltipPlacement?: TooltipProps['placement'];\n className?: string;\n display?: string;\n style?: CSSProperties;\n ['data-testid']?: string;\n}) => {\n const [isTextClamped, setIsTextClamped] = useState(false);\n const ref = useRef<HTMLSpanElement>(null);\n const content = (\n <StyledText\n ref={ref}\n variant={variant}\n color={color}\n $maxLines={maxLines}\n $wordBreak={wordBreak}\n $bold={bold}\n className={className}\n $display={display}\n style={style}\n data-testid={dataTestId}>\n {children}\n </StyledText>\n );\n\n // Trigger recalculate of text clamped since ref is not always exists on first render\n useEffect(() => {\n if (ref?.current) {\n const textClamped = checkTextClamped(ref.current);\n setIsTextClamped(textClamped);\n }\n }, [ref]);\n\n const textClamped = ref?.current && checkTextClamped(ref.current);\n return (\n <span>\n {isTextClamped || textClamped ? (\n <InformationTooltip\n placement={tooltipPlacement}\n leaveDelay={leaveDelay}\n title={<Typography variant=\"body1\">{children}</Typography>}>\n {content}\n </InformationTooltip>\n ) : (\n content\n )}\n </span>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport Link from '@mui/material/Link';\nimport SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { LongText } from '../../../common/LongText';\nimport { OnManageClick } from '../../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../../types';\n\nconst OnTrialBadge = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n background-color: ${({ theme }) => theme.stigg.palette.warning};\n border-radius: 10px;\n padding: 8px 16px;\n margin-top: 16px;\n`;\n\nconst StyledLink = styled(Link)`\n text-decoration-color: white;\n color: white;\n cursor: pointer;\n`;\n\nexport function TrialPanel({\n subscription,\n includePlanName,\n onManageSubscription,\n}: {\n subscription: CustomerPortalSubscription | undefined;\n includePlanName: boolean;\n onManageSubscription: OnManageClick;\n}) {\n if (subscription?.status !== SubscriptionStatus.InTrial) {\n return null;\n }\n\n return (\n <OnTrialBadge className=\"stigg-subscription-trial-badge\">\n <SandClockIcon className=\"stigg-subscription-trial-badge-image\" />\n\n <div style={{ flex: 1, marginRight: 4 }}>\n <LongText variant=\"body1\" className=\"stigg-subscription-trial-badge-text\" color=\"white\">\n {`${subscription.trialRemainingDays} days remaining in trial`}\n {includePlanName && ` of the ${subscription.planName} plan`}\n </LongText>\n </div>\n\n <StyledLink\n className=\"stigg-subscription-trial-upgrade-button\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_TRIAL_PLAN })}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: OnManageClick;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({\n mainSubscription,\n trialSubscription,\n onManageSubscription,\n theme,\n}: SubscriptionViewProps) {\n return (\n <div className=\"stigg-subscription-view-layout\">\n <Typography\n className=\"stigg-subscription-plan-name\"\n variant=\"h1\"\n overrideColor={theme.planNameColor}\n style={{ marginTop: 8 }}>\n {mainSubscription.planName} plan\n </Typography>\n\n <TrialPanel\n subscription={trialSubscription}\n includePlanName={trialSubscription?.planName !== mainSubscription.planName}\n onManageSubscription={onManageSubscription}\n />\n </div>\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\n\nexport const USAGE_PERCENTAGE_WARNING_THRESHOLD = 70;\n\nexport function getUsagePercentage(currentUsage: number, limit: number) {\n return Math.min(Math.floor((currentUsage / limit) * 100), 100);\n}\n\nexport function getUsageProgressStatus(currentUsage: number) {\n let status: 'standard' | 'warning' | 'error';\n\n if (currentUsage < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n status = 'standard';\n } else if (currentUsage < 100) {\n status = 'warning';\n } else {\n status = 'error';\n }\n\n return status;\n}\n\nexport function getResetUsageText(entitlement: CustomerPortalEntitlement) {\n if (!entitlement.resetPeriod || !entitlement.usagePeriodEnd) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.usagePeriodEnd).diff(moment.utc(), unit);\n };\n\n switch (entitlement.resetPeriod) {\n case 'MONTH':\n return `Resets monthly - in ${calculateResetDiff('days')} days`;\n case 'WEEK':\n return `Resets weekly - in ${calculateResetDiff('days')} days`;\n case 'DAY':\n return `Resets daily - in ${calculateResetDiff('hours')} hours`;\n case 'HOUR':\n return `Resets hourly - in ${calculateResetDiff('minutes')} minutes`;\n default:\n return null;\n }\n}\n","import styled from '@emotion/styled/macro';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport Divider from '@mui/material/Divider';\nimport Color from 'color';\nimport { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\n\nexport const StyledLinearProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $progressStatus: 'standard' | 'warning' | 'error';\n}>`\n height: 4px;\n background-color: ${({ theme }) => Color(theme.stigg.palette.primary).alpha(0.4).string()};\n\n span {\n background-color: ${({ $progressStatus, theme }) => {\n switch ($progressStatus) {\n case 'standard':\n return theme.stigg.palette.primary;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.primary;\n }\n }};\n }\n`;\n\nexport const StyledDivider = styled(Divider)`\n border-style: dotted;\n border-bottom-width: 2px;\n border-color: ${({ theme }) => Color(theme.stigg.palette.outlinedRestingBorder).alpha(0.4).string()};\n`;\n\nexport type FeatureUsageProgressBarProps = {\n entitlement: CustomerPortalEntitlement;\n};\n\nexport function FeatureUsageProgressBar({ entitlement }: FeatureUsageProgressBarProps) {\n if (entitlement.hasUnlimitedUsage) {\n return <StyledDivider />;\n }\n\n const usagePercentage = getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!);\n const linearProgressStatus = getUsageProgressStatus(usagePercentage);\n\n return (\n <StyledLinearProgress\n $progressStatus={linearProgressStatus}\n className={`stigg-feature-usage-progress-bar-${linearProgressStatus.toString()}`}\n variant=\"determinate\"\n value={usagePercentage}\n />\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport Button from '@mui/material/Button';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalIntentionType, OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nconst StyledButton = styled(Button)`\n text-transform: none;\n padding: 0;\n white-space: nowrap;\n`;\n\nexport type EntitlementCtaButtonProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({\n entitlement,\n feature,\n onManageSubscription,\n onBuyMore,\n canBuyMore,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: EntitlementCtaButtonProps) {\n if (hasCustomSubscription || entitlement.hasUnlimitedUsage) {\n return null;\n }\n\n if (getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!) < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n return null;\n }\n\n if (canBuyMore) {\n return onBuyMore ? (\n <StyledButton variant=\"text\" onClick={() => onBuyMore(feature, entitlement)}>\n <Typography color=\"primary.main\">Buy more</Typography>\n </StyledButton>\n ) : null;\n }\n\n if (canUpgradeSubscription) {\n return onManageSubscription ? (\n <StyledButton\n variant=\"text\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_PLAN })}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}\n","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n blockSize?: number | null;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n blockSize,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div\n className={`stigg-charge-list-item stigg-charge-list-item-${entitlement.feature!.refId}`}\n style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}>\n <div style={{ display: 'flex', gap: 12 }}>\n <LongText variant=\"body1\" color=\"primary\">\n {feature.displayName}\n </LongText>\n {!hideChargePrice && (\n <LongText variant=\"body1\" color=\"secondary\">\n {currencyPriceFormatter({ amount, currency })} per {blockSize ? `${blockSize} ` : ''}\n {blockSize ? feature.featureUnitsPlural : feature.featureUnits}\n </LongText>\n )}\n </div>\n\n <div style={{ display: 'flex', gap: 12 }}>\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={feature}\n canBuyMore\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n <Typography variant=\"body1\" color=\"primary\" style={{ whiteSpace: 'nowrap' }}>\n {entitlement.hasUnlimitedUsage\n ? entitlement.currentUsage?.toLocaleString()\n : `${entitlement.currentUsage?.toLocaleString()} of ${entitlement.usageLimit?.toLocaleString()}`}\n </Typography>\n </div>\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n </div>\n );\n}\n","import { BillingModel, CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { ChargeItem } from './ChargeItem';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function ChargeList({\n subscription,\n entitlements,\n onBuyMore,\n onManageSubscription,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: ChargesProps) {\n const entitlementByFeature = keyBy(entitlements, 'feature.refId');\n\n const filteredSubscriptionPrices = subscription.prices.filter(\n ({ feature, price }) => !!feature && entitlementByFeature[feature.refId] && !!price,\n );\n\n if (!filteredSubscriptionPrices.length) {\n return null;\n }\n\n return (\n <div className=\"stigg-charge-list\" style={{ display: 'flex', flexDirection: 'column', gap: 16, marginTop: 32 }}>\n {filteredSubscriptionPrices.map(({ feature, price, blockSize, billingModel }) => {\n if (!feature || !price) {\n return null;\n }\n\n const entitlement = entitlementByFeature[feature.refId];\n\n if (!entitlement || !entitlement.feature) {\n return null;\n }\n\n return (\n <ChargeItem\n key={feature.refId}\n entitlement={entitlement}\n feature={entitlement.feature}\n amount={price.amount}\n blockSize={blockSize}\n currency={price.currency}\n hideChargePrice={billingModel === BillingModel.PerUnit}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n );\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SubscriptionOverviewLoader } from './SubscriptionOverviewLoader';\nimport { CustomerPortalSection } from '../CustomerPortal';\nimport { SubscriptionScheduledUpdatesAlert } from './subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { UpcomingBilling } from './upcomingBilling/UpcomingBilling';\nimport { SubscriptionView } from './subscriptionView/SubscriptionView';\nimport { ChargeList } from './charges/ChargeList';\nimport { OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n onContactSupport?: () => void;\n hiddenSections?: CustomerPortalSection[];\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function SubscriptionsOverview({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n hiddenSections,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionsOverviewProps) {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { subscriptions, entitlements, canUpgradeSubscription } = customerPortal || {};\n\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const trialSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.InTrial);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const mainSubscription = activeSubscription || trialSubscription;\n\n return (\n <SectionContainer\n className=\"stigg-customer-portal-subscriptions-overview\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n {!isLoadingData && activeSubscription && activeSubscription.scheduledUpdates && (\n <SubscriptionScheduledUpdatesAlert\n theme={theme}\n subscription={activeSubscription}\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n cancelScheduledUpdatesButtonTitle={cancelScheduledUpdatesButtonTitle}\n />\n )}\n\n {isLoadingData || !mainSubscription ? (\n <SubscriptionOverviewLoader />\n ) : (\n <div\n className=\"stigg-overview-layout\"\n style={{ display: 'flex', alignItems: 'flex-start', gap: 64, flexWrap: 'wrap' }}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <SubscriptionsOverviewHeader\n onManageSubscription={onManageSubscription}\n hideManageButton={hasCustomSubscription}\n textOverrides={textOverrides}\n />\n\n <SubscriptionView\n mainSubscription={mainSubscription}\n trialSubscription={trialSubscription}\n theme={theme}\n onManageSubscription={onManageSubscription}\n />\n\n {activeSubscription && entitlements && (\n <ChargeList\n subscription={activeSubscription}\n entitlements={entitlements}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={!!canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n )}\n\n <SubscriptionTabs\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n customerPortal={customerPortal!}\n hiddenSections={hiddenSections}\n textOverrides={textOverrides}\n theme={theme}\n />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', width: 319, gap: 24 }}>\n <UpcomingBilling\n subscription={mainSubscription}\n theme={theme}\n onContactSupport={onContactSupport}\n textOverrides={textOverrides}\n />\n </div>\n </div>\n )}\n </SectionContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\n\nconst CustomerPortalHeaderLayout = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-end;\n justify-content: flex-end;\n margin-bottom: 24px;\n`;\n\nexport function CustomerPortalHeader({ showWatermark }: { showWatermark?: boolean }) {\n return (\n <CustomerPortalHeaderLayout className=\"stigg-customer-portal-header-layout\">\n <PoweredByStigg source=\"customer_portal\" showWatermark={showWatermark} />\n </CustomerPortalHeaderLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\nimport { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\n\nconst ExternalLinkText = styled(Typography)`\n text-transform: none;\n`;\n\nconst LinkIcon = styled(ExternalLinkIcon)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport type ExternalLinkButtonProps = {\n text: string;\n url: string;\n className: string;\n};\n\nexport function ExternalLinkButton({ text, url, className }: ExternalLinkButtonProps) {\n const onClick = () => {\n window.open(url, '_blank');\n };\n\n return (\n <StyledButton\n className={className}\n variant=\"outlined\"\n startIcon={<LinkIcon size={20} strokeWidth={2.5} />}\n onClick={onClick}>\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\nimport { Typography, TypographyProps } from '../../common/Typography';\n\nexport const InformationGridContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InformationGridRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 16px;\n align-self: stretch;\n flex-wrap: wrap;\n`;\n\nexport type InformationGridProps = {\n title: string;\n rows: Array<{\n classNamePrefix: string;\n label: string;\n value: string;\n labelTypographyProps?: Partial<TypographyProps>;\n valueTypographyProps?: Partial<TypographyProps>;\n }>;\n};\n\nexport function InformationGrid({ title, rows }: InformationGridProps) {\n return (\n <InformationGridContainer>\n <Typography variant=\"h6\" color=\"secondary\" fontWeight={FontWeight.Medium}>\n {title}\n </Typography>\n {rows.map(({ classNamePrefix, label, value, labelTypographyProps, valueTypographyProps }) => (\n <InformationGridRow key={label}>\n <Typography\n className={`${classNamePrefix}-label`}\n variant=\"body1\"\n color=\"secondary\"\n style={{ width: 80 }}\n {...labelTypographyProps}>\n {label}\n </Typography>\n <Typography className={`${classNamePrefix}-text`} variant=\"body1\" color=\"secondary\" {...valueTypographyProps}>\n {value}\n </Typography>\n </InformationGridRow>\n ))}\n </InformationGridContainer>\n );\n}\n","import Skeleton from 'react-loading-skeleton';\nimport React from 'react';\n\nexport function SkeletonButton() {\n return <Skeleton width={220} height={42} />;\n}\n","import React, { ReactElement } from 'react';\nimport Divider from '@mui/material/Divider';\nimport { padStart } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer key=\"information-loading-data-top\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider\n key=\"information-loading-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n <InformationGridContainer key=\"information-loading-data-bottom\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n ],\n );\n } else {\n items.push(\n <InformationGrid\n key=\"information-billing-data-billed-to\"\n title=\"Billed to\"\n rows={[\n {\n classNamePrefix: 'stigg-customer-name',\n label: 'Name',\n value: billingInformation?.name || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.name ? {} : { color: 'disabled' },\n },\n {\n classNamePrefix: 'stigg-customer-email',\n label: 'Email',\n value: billingInformation?.email || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.email ? {} : { color: 'disabled' },\n },\n ]}\n />,\n );\n\n if (\n billingInformation?.defaultPaymentMethodId &&\n billingInformation.defaultPaymentMethodLast4Digits &&\n billingInformation.defaultPaymentExpirationMonth &&\n billingInformation.defaultPaymentExpirationYear\n ) {\n items.unshift(\n <Divider\n key=\"information-billing-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n );\n items.unshift(\n <InformationGrid\n key=\"information-billing-data-payment-method\"\n title=\"Payment method\"\n rows={[\n {\n classNamePrefix: 'stigg-credit-card',\n label: 'Card',\n value: `Ending in ${billingInformation.defaultPaymentMethodLast4Digits}`,\n },\n {\n classNamePrefix: 'stigg-credit-card-expiration',\n label: 'Expires',\n value: `${padStart(billingInformation.defaultPaymentExpirationMonth.toString(), 2, '0')}/${\n billingInformation.defaultPaymentExpirationYear\n }`,\n },\n ]}\n />,\n );\n }\n }\n\n if (\n !isLoadingData &&\n !billingInformation?.name &&\n !billingInformation?.email &&\n !billingInformation?.defaultPaymentMethodId\n ) {\n return null;\n }\n\n const editButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.editPaymentDetails}\n className=\"stigg-edit-payment-details-button\"\n />\n ) : null;\n\n return (\n <SectionContainer\n className=\"stigg-payment-details-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-payment-details-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-payment-details-section-title\"\n title=\"Payment details\"\n />\n {editButton}\n </SectionHeader>\n\n <div style={{ display: 'flex', alignItems: 'stretch', gap: isScreenWiderThanMd ? 64 : 32, flexWrap: 'wrap' }}>\n {items}\n </div>\n </SectionContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { STIGG_WATERMARK_CLASSNAME } from '../../common/PoweredByStigg';\nimport { SectionContainer } from '../common/SectionContainer';\n\nexport const CustomerPortalPaywallLayout = styled(SectionContainer)<{\n $backgroundColor: string;\n $borderColor: string;\n}>`\n position: relative;\n\n .stigg-paywall-layout {\n width: 100%;\n }\n\n .stigg-paywall-plans-layout {\n flex-wrap: nowrap;\n width: 100%;\n overflow-x: auto;\n justify-content: unset;\n padding: 10px 0px 0px 0px;\n }\n\n .stigg-paywall-plans-layout .stigg-plan-offering-container:first-of-type {\n margin-left: auto;\n }\n .stigg-paywall-plans-layout .stigg-plan-offering-container:last-child {\n margin-right: auto;\n }\n\n .${STIGG_WATERMARK_CLASSNAME} {\n display: none;\n }\n`;\n","import React from 'react';\nimport { CustomerPortalTheme } from '../customerPortalTheme';\nimport { CustomerPortalPaywallLayout } from './CustomerPortalPaywall.style';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionHeader } from '../common/SectionHeader';\n\ntype CustomerPortalPaywallProps = {\n paywallComponent?: React.ReactNode;\n theme: CustomerPortalTheme;\n title: string;\n isLoading: boolean;\n};\n\nexport const CustomerPortalPaywall = React.forwardRef<HTMLDivElement, CustomerPortalPaywallProps>(\n ({ paywallComponent, theme, title, isLoading }, ref) => {\n if (!paywallComponent) {\n return null;\n }\n\n return (\n <CustomerPortalPaywallLayout\n className=\"stigg-customer-portal-paywall-section\"\n ref={ref}\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-customer-portal-paywall-header\">\n <SectionTitle isLoading={isLoading} className=\"stigg-customer-portal-paywall-section-title\" title={title} />\n </SectionHeader>\n\n {paywallComponent}\n </CustomerPortalPaywallLayout>\n );\n },\n);\n","import styled from '@emotion/styled/macro';\n\nexport const CustomerPortalLayout = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nexport const CustomerPortalSections = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n row-gap: 24px;\n`;\n","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayNameText(\n featureDisplayName: string,\n featureUnits: string | undefined | null,\n featureUnitsPlural: string | undefined | null,\n) {\n if (!featureUnits && !featureUnitsPlural) {\n return featureDisplayName;\n }\n\n const displayNameLowerCase = lowercase(featureDisplayName);\n if (\n displayNameLowerCase === lowercase(featureUnits || '') ||\n displayNameLowerCase === lowercase(featureUnitsPlural || '')\n ) {\n return featureDisplayName;\n }\n\n return `${featureDisplayName} (${featureUnitsPlural})`;\n}\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n","import styled from '@emotion/styled/macro';\n\nexport const FeatureUsageContainer = styled.div<{ $highlight: boolean; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n row-gap: 16px;\n height: 100%;\n\n ${({ theme, $highlight }) => $highlight && `background-color: ${theme.stigg.palette.backgroundSection}`};\n`;\n","import isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { getResetUsageText, getUsagePercentage } from './FeatureUsage.helper';\nimport { getFeatureDisplayName } from '../../../utils/getFeatureName';\nimport { FeatureUsageContainer } from './FeatureUsage.style';\nimport { FeatureUsageProgressBar } from './FeatureUsageProgressBar';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n hasCustomSubscription: boolean;\n canUpgradeSubscription: boolean;\n};\n\nexport function FeatureUsage({\n entitlement,\n subscriptionPrice,\n onManageSubscription,\n onBuyMore,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: UsageBoxProps) {\n const { theme } = useCustomerPortalContext();\n\n const hasOverageUsage = !entitlement.hasUnlimitedUsage && entitlement.currentUsage! > entitlement.usageLimit!;\n\n if (!entitlement.feature) {\n return null;\n }\n\n return (\n <FeatureUsageContainer $highlight={!!subscriptionPrice} $borderColor={theme.borderColor}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 16 }}>\n <LongText variant=\"body1\">{entitlement.feature && getFeatureDisplayName(entitlement.feature)}</LongText>\n {subscriptionPrice && (\n <InformationTooltip\n title={\n <Typography variant=\"body1\">\n {subscriptionPrice.billingModel === BillingModel.PerUnit\n ? 'Billed for committed usage'\n : 'Billed for actual usage'}\n </Typography>\n }>\n <Icon icon=\"DollarCoin\" svgStrokeColor={theme.iconsColor} />\n </InformationTooltip>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8 }}>\n <LongText\n variant=\"body1\"\n color={hasOverageUsage ? 'error' : 'primary'}\n data-testid={`usage-data-${entitlement.feature?.refId}`}>\n {entitlement.currentUsage?.toLocaleString()}\n {!entitlement.hasUnlimitedUsage &&\n ` / ${entitlement.usageLimit?.toLocaleString()} (${getUsagePercentage(\n entitlement.currentUsage || 0,\n entitlement.usageLimit!,\n )}%)`}\n </LongText>\n\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={entitlement.feature}\n onBuyMore={onBuyMore}\n canBuyMore={!!subscriptionPrice}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n\n {!entitlement.hasUnlimitedUsage &&\n !isUndefined(entitlement.usageLimit) &&\n !isUndefined(entitlement.currentUsage) &&\n entitlement.resetPeriod &&\n entitlement.usagePeriodEnd ? (\n <Typography color=\"secondary\">{getResetUsageText(entitlement)}</Typography>\n ) : null}\n {entitlement.hasUnlimitedUsage && <Typography color=\"secondary\">In current billing period</Typography>}\n </FeatureUsageContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { range } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport React from 'react';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n const isMdScreen = useIsScreenWiderThan('md');\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\" sx={{ flexWrap: 'wrap' }}>\n {range(6).map((item) => (\n <Grid key={item} item xs={isMdScreen ? 4 : 12}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}\n","import { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React, { useState } from 'react';\nimport { compact, keyBy } from 'lodash';\nimport { Minus, Plus } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { FeatureUsage } from './featureUsage/FeatureUsage';\nimport { Footer, CustomerUsageLoader } from './CustomerUsageData.style';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { StyledButton } from '../common/StyledButton';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n filterEntitlements?: FilterEntitlementsFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore, filterEntitlements }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = useState(false);\n const isMdScreen = useIsScreenWiderThan('md');\n\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { entitlements, subscriptions } = customerPortal || {};\n const meteredEntitlements = entitlements?.filter(\n (entitlement) =>\n entitlement.feature?.meterType === MeterType.Fluctuating ||\n entitlement.feature?.meterType === MeterType.Incremental,\n );\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const canUpgradeSubscription = !!customerPortal?.canUpgradeSubscription;\n\n const subscriptionPriceByFeature = keyBy(activeSubscription?.prices, 'feature.refId');\n const entitlementByFeature = keyBy(meteredEntitlements, 'feature.refId');\n\n // sort features by prices first, then other entitlements\n const priceEntitlements = compact(\n activeSubscription?.prices.map(\n (subscriptionPrice) => subscriptionPrice.feature && entitlementByFeature[subscriptionPrice.feature.refId],\n ),\n );\n const otherEntitlements = compact(\n meteredEntitlements?.filter((entitlement) => !subscriptionPriceByFeature[entitlement.feature!.refId]),\n );\n const sortedEntitlements = [...priceEntitlements, ...otherEntitlements];\n\n const filteredEntitlements = filterEntitlements ? filterEntitlements(sortedEntitlements) : sortedEntitlements;\n\n // 4 -> 3 per row, 6 -> 2 per row\n const xs = isMdScreen ? (filteredEntitlements.length > 2 ? 4 : 6) : 12;\n\n const entitlementsToShow = showAll ? filteredEntitlements : filteredEntitlements.slice(0, MAX_BOXES);\n\n const toggleShowAll = () => setShowAll((prevState) => !prevState);\n\n if (!isLoadingData && !meteredEntitlements?.length) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-subscription-usage-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader>\n <SectionTitle\n title={textOverrides.usageTabTitle}\n className=\"stigg-customer-portal-usage-section-title\"\n isLoading={isLoadingData}\n />\n </SectionHeader>\n\n {isLoadingData ? (\n <CustomerUsageLoader />\n ) : (\n <>\n <Grid container spacing={4}>\n {entitlementsToShow.map((entitlement) => (\n <Grid\n className={`stigg-entitlement-usage-${entitlement.feature!.refId}`}\n key={entitlement.feature!.refId}\n item\n xs={xs}>\n <FeatureUsage\n key={entitlement.feature!.refId}\n subscriptionPrice={subscriptionPriceByFeature[entitlement.feature!.refId]}\n entitlement={entitlement}\n onManageSubscription={onManageSubscription}\n onBuyMore={onBuyMore}\n hasCustomSubscription={hasCustomSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n />\n </Grid>\n ))}\n </Grid>\n\n {filteredEntitlements.length > MAX_BOXES && (\n <Footer>\n <StyledButton\n className=\"stigg-usage-toggle-many-button\"\n variant=\"text\"\n startIcon={showAll ? <Minus /> : <Plus />}\n onClick={toggleShowAll}>\n {showAll ? 'Show less' : 'Show more'}\n </StyledButton>\n </Footer>\n )}\n </>\n )}\n </SectionContainer>\n );\n}\n","import React, { useRef } from 'react';\nimport { SubscriptionsOverview } from './subscriptionOverview/SubscriptionsOverview';\nimport { CustomerPortalHeader } from './CustomerPortalHeader';\nimport { PaymentDetailsSection } from './billing/PaymentDetailsSection';\nimport { CustomerPortalPaywall } from './paywall/CustomerPortalPaywall';\nimport { useCustomerPortalContext } from './CustomerPortalProvider';\nimport { CustomerPortalLayout, CustomerPortalSections } from './CustomerPortal.style';\nimport { CustomerPortalProps } from './CustomerPortal';\nimport { InvoicesSection, useStiggContext } from '../..';\nimport { CustomerUsageData } from './usage/CustomerUsageData';\nimport { CustomerPortalIntentionType } from './types';\n\nexport type OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => void;\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n filterEntitlements,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick: OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => {\n if (onManageSubscription) {\n void onManageSubscription({\n intentionType,\n customerSubscriptions: customerPortal?.subscriptions ?? [],\n });\n } else {\n customerPortalSectionRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n const shouldShowUsage = !hiddenSections?.some((section) => section === 'usage');\n const shouldShowPaymentDetails = !hiddenSections?.some(\n (section) => section === 'paymentDetails' || section === 'billingInformation',\n );\n const shouldShowInvoices = !hiddenSections?.some(\n (section) => section === 'invoices' || section === 'billingInformation',\n );\n\n return (\n <CustomerPortalLayout className=\"stigg-customer-portal-layout\">\n <CustomerPortalHeader showWatermark={stigg.isWidgetWatermarkEnabled && !!customerPortal} />\n <CustomerPortalSections className=\"stigg-customer-portal-sections\">\n <SubscriptionsOverview\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageClick}\n onContactSupport={onContactSupport}\n hiddenSections={hiddenSections}\n cancelScheduledUpdatesButtonTitle={textOverrides.cancelScheduledUpdatesButtonTitle}\n />\n {shouldShowUsage && (\n <CustomerUsageData\n onManageSubscription={onManageClick}\n onBuyMore={onBuyMore}\n filterEntitlements={filterEntitlements}\n />\n )}\n <CustomerPortalPaywall\n ref={customerPortalSectionRef}\n paywallComponent={paywallComponent}\n theme={theme}\n title={textOverrides.paywallSectionTitle}\n isLoading={!customerPortal || isLoading}\n />\n {shouldShowPaymentDetails && <PaymentDetailsSection />}\n {shouldShowInvoices && <InvoicesSection />}\n </CustomerPortalSections>\n </CustomerPortalLayout>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn, OnManageSubscriptionFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: OnManageSubscriptionFn;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => Promise<void> | void;\n onContactSupport?: () => Promise<void> | void;\n paywallComponent?: React.ReactNode;\n hiddenSections?: CustomerPortalSection[];\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n filterEntitlements?: FilterEntitlementsFn;\n resourceId?: string;\n productId?: string;\n};\n\nexport function CustomerPortal({ textOverrides, theme, resourceId, productId, ...restProps }: CustomerPortalProps) {\n return (\n <CustomerPortalProvider textOverrides={textOverrides} theme={theme} resourceId={resourceId} productId={productId}>\n <CustomerPortalContainer {...restProps} />\n </CustomerPortalProvider>\n );\n}\n","import React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\n\nexport function InvoicesSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = !customerPortal || isLoading;\n\n const viewInvoiceHistoryButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.viewInvoiceHistory}\n className=\"stigg-view-invoice-history-button\"\n />\n ) : null;\n\n if (!isLoadingData && !customerPortal?.billingPortalUrl) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-invoices-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-invoices-section-title\"\n title={textOverrides.invoicesTitle}\n />\n {viewInvoiceHistoryButton}\n </SectionHeader>\n </SectionContainer>\n );\n}\n","import sortBy from 'lodash/sortBy';\nimport { Addon, BillingPeriod, Currency, SubscriptionAddon } from '@stigg/js-client-sdk';\n\ntype FilterAddonsBaseProps = {\n billingPeriod: BillingPeriod;\n currency: Currency;\n billingCountryCode?: string;\n};\n\nexport const sortAddons = (addons: Addon[]) => {\n return sortBy(addons, 'displayName');\n};\n\nexport const sortSubscriptionAddons = (addons: SubscriptionAddon[]) => {\n return sortBy(addons, 'addon.displayName');\n};\n\nfunction filterAddonPricePointsByBillingPeriod(addon: Addon, billingPeriod: BillingPeriod) {\n return addon.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nfunction mapAddonPricePointsByBillingCountryCode({\n addon,\n currency,\n billingCountryCode,\n}: {\n addon: Addon;\n currency: Currency;\n billingCountryCode?: string;\n}) {\n return {\n ...addon,\n pricePoints: addon.pricePoints.filter(\n (pricePoint) =>\n pricePoint.currency === currency &&\n (billingCountryCode ? pricePoint.billingCountryCode === billingCountryCode : true),\n ),\n };\n}\n\nexport function filterAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: Addon[] } & FilterAddonsBaseProps): Addon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon, billingPeriod))\n ?.map((addon) => mapAddonPricePointsByBillingCountryCode({ addon, currency, billingCountryCode })) || []\n );\n}\n\nexport function filterSubscriptionAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: SubscriptionAddon[] } & FilterAddonsBaseProps): SubscriptionAddon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon.addon, billingPeriod))\n ?.map((addon) => ({\n ...addon,\n addon: mapAddonPricePointsByBillingCountryCode({ addon: addon.addon, currency, billingCountryCode }),\n })) || []\n );\n}\n","import cloneDeep from 'lodash/cloneDeep';\nimport remove from 'lodash/remove';\nimport { Addon, BillingPeriod, Currency, Plan, Subscription, SubscriptionAddon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport {\n filterAddons,\n filterSubscriptionAddons,\n sortAddons,\n sortSubscriptionAddons,\n} from '../steps/addons/addon.utils';\n\nexport type AddonsStepState = {\n addons: SubscriptionAddon[];\n initialAddons?: SubscriptionAddon[];\n availableAddons?: Addon[];\n};\n\ntype GetAddonsStepInitialStateProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n};\n\nexport function getAddonsStepInitialState({\n activeSubscription,\n plan,\n billingPeriod,\n billingCountryCode,\n}: GetAddonsStepInitialStateProps): AddonsStepState {\n let addons: SubscriptionAddon[] = [];\n const currency = plan?.pricePoints?.[0]?.currency || Currency.Usd;\n const availableAddons = sortAddons(\n filterAddons({\n addons: plan?.compatibleAddons,\n billingPeriod,\n billingCountryCode,\n currency,\n }),\n );\n\n const activeSubscriptionAddons = filterSubscriptionAddons({\n addons: activeSubscription?.addons,\n billingPeriod,\n billingCountryCode,\n currency,\n });\n\n if (activeSubscriptionAddons?.length && availableAddons?.length) {\n addons = sortSubscriptionAddons(\n activeSubscriptionAddons.filter((addon) => availableAddons.some((planAddon) => planAddon.id === addon.addon.id)),\n );\n }\n\n return { addons, initialAddons: cloneDeep(addons), availableAddons };\n}\n\nfunction useSetAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addon: Addon, quantity: number) =>\n setState((draft) => {\n const addonToUpdate = draft.addonsStep.addons.find((currentAddon) => currentAddon.addon.id === addon.id);\n\n if (addonToUpdate) {\n addonToUpdate.quantity = quantity;\n } else {\n draft.addonsStep.addons.push({ addon, quantity });\n draft.addonsStep.addons = sortSubscriptionAddons(draft.addonsStep.addons);\n }\n });\n}\n\nfunction useRemoveAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addonId: string) =>\n setState((draft) => {\n remove(draft.addonsStep.addons, (addon) => addon.addon.id === addonId);\n });\n}\n\nfunction useAddonsState() {\n const [{ addonsStep }] = useCheckoutContext();\n return addonsStep;\n}\n\nexport function useAddonsStepModel() {\n const state = useAddonsState();\n\n return {\n ...state,\n setAddon: useSetAddon(),\n removeAddon: useRemoveAddon(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type WidgetState = {\n readOnly?: boolean;\n isLoadingCheckoutData?: boolean;\n isValid?: boolean;\n};\n\nfunction useCheckoutState() {\n const [{ checkout, widgetState, checkoutLocalization }] = useCheckoutContext();\n return { checkoutState: checkout, widgetState, checkoutLocalization };\n}\n\nfunction useSetWidgetReadonly() {\n const [, setState] = useCheckoutContext();\n\n return (readOnly: boolean) =>\n setState((draft) => {\n draft.widgetState.readOnly = readOnly;\n });\n}\n\nfunction useSetIsValid() {\n const [, setState] = useCheckoutContext();\n\n return (isValid: boolean) =>\n setState((draft) => {\n draft.widgetState.isValid = isValid;\n });\n}\n\nexport function useCheckoutModel() {\n const { checkoutState, widgetState, checkoutLocalization } = useCheckoutState();\n\n return {\n checkoutState,\n widgetState,\n checkoutLocalization,\n setWidgetReadOnly: useSetWidgetReadonly(),\n setIsValid: useSetIsValid(),\n };\n}\n","import { GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../StiggProvider';\nimport { MockCheckoutStateCallback } from '../types';\n\ntype UseLoadCheckoutProps = {\n planId: string;\n resourceId?: string;\n billingCountryCode?: string;\n onMockCheckoutState?: MockCheckoutStateCallback;\n};\n\nexport function useLoadCheckout({ planId, resourceId, billingCountryCode, onMockCheckoutState }: UseLoadCheckoutProps) {\n const { stigg } = useStiggContext();\n const [isLoading, setIsLoading] = useState(true);\n const [checkout, setCheckout] = useState<GetCheckoutStateResults | null>();\n\n useEffect(() => {\n const loadCheckout = async () => {\n try {\n const checkout = await stigg.getCheckoutState({ planId, resourceId, billingCountryCode });\n setCheckout(checkout);\n } catch (err) {\n logger.error(`Failed to load checkout ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n if (onMockCheckoutState) {\n setIsLoading(false);\n setCheckout(onMockCheckoutState({ planId, resourceId, billingCountryCode }));\n return;\n }\n\n if (stigg.isCustomerLoaded) {\n setIsLoading(true);\n void loadCheckout();\n }\n }, [stigg, stigg.isCustomerLoaded, resourceId, planId, billingCountryCode, onMockCheckoutState]);\n\n return {\n checkout,\n isLoading,\n };\n}\n","import { Price } from '@stigg/js-client-sdk';\n\nexport const getValidPriceQuantity = (price: Price, quantity: number) => {\n if (price.minUnitQuantity && quantity < price.minUnitQuantity) {\n return price.minUnitQuantity;\n }\n if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\n","import { Plan } from '@stigg/js-client-sdk';\nimport { BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\n\nexport const hasMonthlyPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n\nexport const hasAnnualPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\nexport const hasMultipleBillingPeriods = (plan?: Plan) => hasMonthlyPrices(plan) && hasAnnualPrices(plan);\n","import keyBy from 'lodash/keyBy';\nimport compact from 'lodash/compact';\nimport { BillableFeatureInput, BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillableFeature, BillingModel, Plan, Price, Subscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { getTierByQuantity, hasTierWithUnitPrice } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\nimport { hasAnnualPrices, hasMonthlyPrices } from '../../utils/planPrices';\n\nexport type PlanStepState = {\n billingPeriod: BillingPeriod;\n billableFeatures: BillableFeatureInput[];\n billingCountryCode?: string;\n};\n\ntype GetPlanStepInitialStateProps = {\n preferredBillingPeriod?: BillingPeriod;\n plan?: Plan;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst getBillingPeriod = (billingPeriod: BillingPeriod, hasMonthlyPrices?: boolean, hasAnnualPrices?: boolean) => {\n if (billingPeriod === BillingPeriod.Monthly && hasMonthlyPrices) {\n return billingPeriod;\n }\n if (billingPeriod === BillingPeriod.Annually && hasAnnualPrices) {\n return billingPeriod;\n }\n return null;\n};\n\nconst isInAdvanceCommitmentCharge = ({ pricingModel }: Price) => {\n return pricingModel === BillingModel.PerUnit;\n};\n\nfunction getBillableFeatures(\n preconfiguredBillableFeatures: BillableFeature[],\n planPrices?: Price[],\n activeSubscription?: Subscription | null,\n): BillableFeature[] {\n if (!planPrices) return [];\n\n const preconfBillableFeaturesByFeatureId = keyBy(preconfiguredBillableFeatures, 'featureId');\n\n const quantityByFeatureId = keyBy(\n compact(\n activeSubscription?.prices?.map((charge) => {\n const { feature } = charge;\n if (!feature || !isInAdvanceCommitmentCharge(charge)) {\n return null;\n }\n\n return {\n featureId: feature.featureId,\n quantity: feature.unitQuantity || null,\n };\n }),\n ),\n 'featureId',\n );\n\n return compact(\n planPrices?.map((price) => {\n const featureId = price.feature?.featureId;\n if (!featureId || !isInAdvanceCommitmentCharge(price)) {\n return null;\n }\n\n let quantity;\n const preconfiguredQuantity =\n preconfBillableFeaturesByFeatureId[featureId]?.quantity || quantityByFeatureId[featureId]?.quantity;\n\n quantity = getValidPriceQuantity(price, preconfiguredQuantity || 1);\n\n if (price.isTieredPrice && !hasTierWithUnitPrice(price.tiers)) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n quantity = tier.upTo!;\n }\n\n return {\n featureId,\n quantity,\n };\n }),\n );\n}\n\nfunction resolveBillingPeriod({\n plan,\n activeSubscription,\n preferredBillingPeriod,\n}: {\n plan?: Plan;\n activeSubscription?: Subscription | null;\n preferredBillingPeriod?: BillingPeriod;\n}) {\n const hasMonthlyPlan = hasMonthlyPrices(plan);\n const hasAnnualPlan = hasAnnualPrices(plan);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n const isUpdate = activeSubscription?.plan?.id === plan?.id;\n if (isUpdate) {\n return activeSubscription?.price?.billingPeriod || BillingPeriod.Monthly;\n }\n\n if (activeSubscription?.prices && activeSubscription?.prices.length > 0) {\n const billingPeriod = getBillingPeriod(activeSubscription?.prices[0].billingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPlan ? BillingPeriod.Annually : BillingPeriod.Monthly;\n}\n\nexport function getPlanStepInitialState({\n preferredBillingPeriod,\n plan,\n activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures,\n}: GetPlanStepInitialStateProps): PlanStepState {\n const billingPeriod = resolveBillingPeriod({ plan, activeSubscription, preferredBillingPeriod });\n const planPrices = plan?.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const billableFeatures = getBillableFeatures(preconfiguredBillableFeatures, planPrices, activeSubscription);\n\n return {\n billingPeriod,\n billableFeatures,\n billingCountryCode,\n };\n}\n\nfunction usePlanState() {\n const [{ planStep }] = useCheckoutContext();\n return planStep;\n}\n\nfunction useSetBillableFeature() {\n const [, setState] = useCheckoutContext();\n\n return (featureId: string, quantity: number) =>\n setState((draft) => {\n const billableFeature = draft.planStep.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n\n if (billableFeature) {\n billableFeature.quantity = quantity;\n } else {\n draft.planStep.billableFeatures.push({ featureId, quantity });\n }\n });\n}\n\nfunction useSetBillingPeriod() {\n const [, setState] = useCheckoutContext();\n\n return (billingPeriod: BillingPeriod) =>\n setState((draft) => {\n draft.planStep.billingPeriod = billingPeriod;\n });\n}\n\nexport function usePlanStepModel() {\n const state = usePlanState();\n\n return {\n ...state,\n setBillingPeriod: useSetBillingPeriod(),\n setBillableFeature: useSetBillableFeature(),\n };\n}\n","import { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { Addon, BillableFeature, BillingPeriod, CheckoutStatePlan } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { CheckoutSteps } from '../configurations/steps';\nimport { hasMultipleBillingPeriods } from '../../utils/planPrices';\n\nexport enum CheckoutStepKey {\n PLAN = 'PLAN',\n ADDONS = 'ADDONS',\n PAYMENT = 'PAYMENT',\n}\n\nexport type CheckoutStep = {\n key: CheckoutStepKey;\n label: string;\n};\n\nconst CHECKOUT_STEPS: CheckoutStep[] = [\n { key: CheckoutStepKey.PLAN, label: 'Plan' },\n { key: CheckoutStepKey.ADDONS, label: 'Add-ons' },\n { key: CheckoutStepKey.PAYMENT, label: 'Payment details' },\n];\n\nexport type ProgressBarState = {\n activeStep: number;\n completedSteps: number[];\n steps: CheckoutStep[];\n isDisabled: boolean;\n};\n\nconst INITIAL_STATE: ProgressBarState = {\n activeStep: 0,\n completedSteps: [],\n steps: CHECKOUT_STEPS,\n isDisabled: false,\n};\n\ntype GetProgressBarInitialStateProps = {\n isLoading: boolean;\n skipCheckoutSteps: CheckoutSteps[];\n plan?: CheckoutStatePlan;\n availableAddons?: Addon[];\n availableCharges: BillableFeatureInput[];\n preferredBillingPeriod?: BillingPeriod;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst canSkipPlanStep = (\n plan: CheckoutStatePlan,\n availableCharges: BillableFeatureInput[],\n preconfiguredBillableFeatures: BillableFeature[],\n preferredBillingPeriod?: BillingPeriod,\n) => {\n // if multiple billing periods are available, a preferred billing period must be selected\n if (hasMultipleBillingPeriods(plan) && !preferredBillingPeriod) {\n return false;\n }\n\n const availableChargesIds = availableCharges.map((charge) => charge.featureId);\n const preconfiguredChargesIds = preconfiguredBillableFeatures.map((charge) => charge.featureId);\n\n // if there are available charges, they must be preconfigured\n if (\n availableChargesIds.length !== preconfiguredChargesIds.length ||\n !availableChargesIds.every((charge) => preconfiguredChargesIds.includes(charge))\n ) {\n return false;\n }\n\n return true;\n};\n\nexport function getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps,\n plan,\n availableAddons,\n availableCharges,\n preferredBillingPeriod,\n preconfiguredBillableFeatures,\n}: GetProgressBarInitialStateProps) {\n if (isLoading || !plan) {\n return INITIAL_STATE;\n }\n\n const stepsToFilter: CheckoutStepKey[] = [];\n\n if (\n skipCheckoutSteps.includes('PLAN') &&\n canSkipPlanStep(plan, availableCharges, preconfiguredBillableFeatures, preferredBillingPeriod)\n ) {\n stepsToFilter.push(CheckoutStepKey.PLAN);\n }\n\n if (availableAddons?.length === 0 || skipCheckoutSteps.includes('ADDONS')) {\n stepsToFilter.push(CheckoutStepKey.ADDONS);\n }\n\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => !stepsToFilter.includes(step.key)) };\n}\n\nfunction useProgressBarState() {\n const [{ progressBar }] = useCheckoutContext();\n return progressBar;\n}\n\nfunction useSetActiveStep() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.activeStep = stepNumber;\n });\n}\nfunction useMarkStepAsCompleted() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.completedSteps.push(stepNumber);\n });\n}\n\nfunction isCheckoutComplete(progressBar: ProgressBarState) {\n return progressBar.completedSteps.length >= progressBar.steps.length - 1;\n}\n\nfunction useGoNext() {\n const [, setState] = useCheckoutContext();\n return () =>\n setState(({ progressBar }) => {\n if (progressBar.isDisabled) {\n return;\n }\n\n if (!progressBar.completedSteps.includes(progressBar.activeStep)) {\n progressBar.completedSteps.push(progressBar.activeStep);\n }\n\n if (progressBar.activeStep < progressBar.steps.length - 1) {\n progressBar.activeStep += 1;\n }\n });\n}\n\nfunction useSetIsDisabled() {\n const [, setState] = useCheckoutContext();\n return (isDisabled?: boolean) =>\n setState(({ progressBar }) => {\n progressBar.isDisabled = !!isDisabled;\n });\n}\n\nexport function useProgressBarModel() {\n const progressBarState = useProgressBarState();\n const currentStep = progressBarState.steps[progressBarState.activeStep];\n\n return {\n currentStep,\n progressBarState,\n isLastStep: progressBarState.activeStep === progressBarState.steps.length - 1,\n isCheckoutComplete: isCheckoutComplete(progressBarState),\n setActiveStep: useSetActiveStep(),\n markStepAsCompleted: useMarkStepAsCompleted(),\n goNext: useGoNext(),\n setIsDisabled: useSetIsDisabled(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\nimport { AddonsStepState } from './useAddonsStepModel';\nimport { PromotionCodeState } from './useCouponModel';\nimport { PaymentStepState } from './usePaymentStepModel';\nimport { PlanStepState } from './usePlanStepModel';\n\nexport type SubscriptionState = PlanStepState &\n PromotionCodeState &\n Pick<AddonsStepState, 'addons'> &\n Pick<PaymentStepState, 'billingAddress' | 'taxPercentage'>;\n\nexport function useSubscriptionModel(): SubscriptionState {\n const [{ planStep, addonsStep, promotionCode, paymentStep }] = useCheckoutContext();\n\n return {\n ...planStep,\n addons: addonsStep.addons,\n promotionCode,\n billingAddress: paymentStep.billingAddress,\n taxPercentage: paymentStep.taxPercentage,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { BillingAddress, PreviewSubscription, StiggClient, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { useStiggContext } from '../../StiggProvider';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\n\nfunction mapBillingInformation({\n billingAddress,\n taxPercentage,\n}: {\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n}): Pick<PreviewSubscription, 'billingInformation'> {\n if (!billingAddress && !taxPercentage) {\n return {};\n }\n\n return {\n billingInformation: {\n ...(billingAddress ? { billingAddress } : {}),\n ...(taxPercentage ? { taxPercentage } : {}),\n },\n };\n}\n\ntype UsePreviewSubscriptionProps = {\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport type PreviewSubscriptionProps = {\n customerId?: string;\n planId?: string;\n resourceId?: string;\n stigg: StiggClient;\n} & SubscriptionState &\n UsePreviewSubscriptionProps;\n\nconst previewSubscription = async ({\n stigg,\n customerId,\n planId,\n resourceId,\n promotionCode,\n addons,\n billableFeatures,\n billingCountryCode,\n billingPeriod,\n billingAddress,\n taxPercentage,\n onMockCheckoutPreview,\n}: PreviewSubscriptionProps) => {\n const estimateAddons = addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n let subscriptionPreview: SubscriptionPreviewV2 | null = null;\n let errorMessage: string | null = null;\n\n try {\n if (customerId && planId) {\n const previewSubscriptionProps: PreviewSubscription = {\n customerId,\n planId,\n resourceId,\n billingCountryCode,\n addons: estimateAddons,\n billingPeriod,\n promotionCode,\n billableFeatures: isEmpty(billableFeatures) ? undefined : billableFeatures,\n ...mapBillingInformation({ billingAddress, taxPercentage }),\n };\n\n subscriptionPreview = onMockCheckoutPreview\n ? onMockCheckoutPreview(previewSubscriptionProps)\n : await stigg.previewSubscription(previewSubscriptionProps);\n }\n } catch (error) {\n const [, errorMsg] = (error as any)?.message?.split('Error:') || [];\n\n errorMessage = errorMsg?.trim();\n }\n\n return { subscriptionPreview, errorMessage };\n};\n\nexport const usePreviewSubscriptionAction = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const { stigg } = useStiggContext();\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState, widgetState } = useCheckoutModel();\n const { plan, customer } = checkoutState || {};\n\n const previewSubscriptionAction = useCallback(\n async ({ promotionCode }: { promotionCode?: string | null } = {}) => {\n if (!widgetState.isValid) {\n return { subscriptionPreview: null, errorMessage: null };\n }\n\n return previewSubscription({\n stigg,\n customerId: customer?.id,\n planId: plan?.id,\n resourceId,\n addons: subscription.addons,\n billableFeatures: subscription.billableFeatures,\n billingCountryCode: subscription.billingCountryCode,\n billingPeriod: subscription.billingPeriod,\n billingAddress: subscription.billingAddress,\n taxPercentage: subscription.taxPercentage,\n promotionCode: promotionCode ?? subscription.promotionCode,\n onMockCheckoutPreview,\n });\n },\n [\n stigg,\n customer?.id,\n plan?.id,\n resourceId,\n subscription.addons,\n subscription.billableFeatures,\n subscription.billingCountryCode,\n subscription.billingPeriod,\n subscription.billingAddress,\n subscription.taxPercentage,\n subscription.promotionCode,\n widgetState.isValid,\n onMockCheckoutPreview,\n ],\n );\n\n return { previewSubscriptionAction };\n};\n\nconst SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME = 500;\n\nexport const usePreviewSubscription = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const [subscriptionPreview, setSubscriptionPreview] = useState<SubscriptionPreviewV2 | null>(null);\n const [isFetchingSubscriptionPreview, setIsFetchingSubscriptionPreview] = useState(false);\n\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n useEffect(() => {\n const estimateSubscription = async () => {\n const { subscriptionPreview } = await previewSubscriptionAction();\n if (subscriptionPreview) {\n setSubscriptionPreview(subscriptionPreview);\n }\n\n setIsFetchingSubscriptionPreview(false);\n };\n\n setIsFetchingSubscriptionPreview(true);\n\n const timer = setTimeout(() => {\n setIsFetchingSubscriptionPreview(true);\n void estimateSubscription();\n }, SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [previewSubscriptionAction]);\n\n return { subscriptionPreview, isFetchingSubscriptionPreview };\n};\n","import { BillingAddress, Customer } from '@stigg/js-client-sdk';\n\nimport { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PaymentStepState = {\n useNewPaymentMethod: boolean;\n errorMessage?: string;\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n};\n\ntype GetPaymentStepInitialStateProps = {\n customer?: Customer;\n taxPercentage?: number;\n};\n\nexport function getPaymentStepInitialState({\n customer,\n taxPercentage,\n}: GetPaymentStepInitialStateProps): PaymentStepState {\n return {\n useNewPaymentMethod: !customer?.paymentMethodDetails,\n taxPercentage,\n };\n}\n\nfunction useSetUseNewPaymentMethod() {\n const [, setState] = useCheckoutContext();\n\n return (useNewPaymentMethod: boolean) =>\n setState((draft) => {\n draft.paymentStep.useNewPaymentMethod = useNewPaymentMethod;\n });\n}\n\nfunction useSetErrorMessage() {\n const [, setState] = useCheckoutContext();\n\n return (errorMessage?: string) =>\n setState((draft) => {\n draft.paymentStep.errorMessage = errorMessage;\n });\n}\n\nfunction useSetBillingAddress() {\n const [, setState] = useCheckoutContext();\n\n return (billingAddress?: BillingAddress) =>\n setState((draft) => {\n draft.paymentStep.billingAddress = billingAddress;\n });\n}\n\nfunction usePaymentState() {\n const [{ paymentStep }] = useCheckoutContext();\n return paymentStep;\n}\n\nexport function usePaymentStepModel() {\n const state = usePaymentState();\n\n return {\n ...state,\n setUseNewPaymentMethod: useSetUseNewPaymentMethod(),\n setErrorMessage: useSetErrorMessage(),\n setBillingAddress: useSetBillingAddress(),\n };\n}\n","import {\n BillingPeriod,\n DiscountType,\n Plan,\n SubscriptionPreviewDiscount,\n SubscriptionPreviewTaxDetails,\n DiscountDurationType,\n} from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../../types';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\n\nexport type CheckoutLocalization = {\n changePlan: string;\n billingPeriodsTitle: string;\n addAddonText: string;\n newPaymentMethodText: string;\n newPaymentMethodCardTitle: string;\n newPaymentMethodBillingAddressTitle: string;\n summary: {\n title: string;\n planName: (params: { plan: Plan }) => string;\n addCouponCodeText: string;\n couponCodeTitle: string;\n addonsSectionTitle: string;\n discountsSectionTitle: string;\n onlyPayAsYouGoText: string;\n startsAtText: string;\n proratedTotalDueText: string;\n baseChargeText: string | ((params: { billingPeriod: BillingPeriod }) => string);\n totalText: string;\n totalDueText: string;\n totalBillingPeriodText: (params: { billingPeriod: BillingPeriod }) => string;\n discountText: (params: { discountDetails: SubscriptionPreviewDiscount; currency: string }) => string;\n appliedCreditsTitle: string;\n taxTitle: (params: { taxDetails: SubscriptionPreviewTaxDetails }) => string;\n checkoutSuccessText: string;\n payAsYouGoTooltipText: string;\n changesWillApplyAtEndOfBillingPeriod: string | ((params: { billingPeriodEnd: Date }) => string);\n creditsForUnusedTimeText: (params: { credits: string }) => string;\n };\n checkoutButton: {\n nextText: string;\n noChangesText: string;\n updateText: string;\n downgradeToFreeText: string;\n upgradeText: string;\n };\n downgradeToFree: {\n alertText: (params: { plan: Plan }) => string;\n freePlanHeader: (params: { plan: Plan }) => string;\n freePlanName: (params: { plan: Plan }) => string;\n freePlanPriceText: (params: { plan: Plan }) => string;\n paidPlanHeader: (params: { plan: Plan }) => string;\n paidPlanName: (params: { plan: Plan }) => string;\n paidPlanPriceText: (params: { plan: Plan; billingPeriod?: BillingPeriod }) => string;\n };\n};\n\nexport function getResolvedCheckoutLocalize(\n localizeOverride?: DeepPartial<CheckoutLocalization>,\n): CheckoutLocalization {\n const checkoutDefaultLocalization: CheckoutLocalization = {\n changePlan: 'Change',\n billingPeriodsTitle: 'Billing cycle',\n addAddonText: 'Add',\n newPaymentMethodText: 'New payment method',\n newPaymentMethodBillingAddressTitle: 'Billing address',\n newPaymentMethodCardTitle: 'Payment method',\n summary: {\n title: 'Order summary',\n planName: ({ plan }) => `${plan.displayName} plan`,\n addCouponCodeText: 'Add promotion code',\n couponCodeTitle: 'Promotion code',\n addonsSectionTitle: 'Add-ons',\n discountsSectionTitle: 'Discounts',\n onlyPayAsYouGoText: 'Varies by usage',\n startsAtText: 'Starts at ',\n proratedTotalDueText: 'Prorated charge today',\n baseChargeText: () => 'Base charge',\n totalText: 'Total',\n totalDueText: 'Total due today',\n totalBillingPeriodText: ({ billingPeriod }) => `Billed ${billingPeriod.toLowerCase()}`,\n appliedCreditsTitle: 'Applied credits',\n creditsForUnusedTimeText: ({ credits }) =>\n `Your account will be granted credits worth ${credits} for unused time, which will be automatically applied to future payments.`,\n discountText: ({ discountDetails, currency }) => {\n let discountText = '';\n if (discountDetails.type === DiscountType.Percentage) {\n discountText = `${discountDetails.value}% off`;\n } else {\n discountText = `${currencyPriceFormatter({ amount: discountDetails.value, currency })}`;\n }\n\n let discountTextPostfix = '';\n switch (discountDetails.durationType) {\n case DiscountDurationType.Once: {\n discountTextPostfix = ' once';\n break;\n }\n case DiscountDurationType.Repeating: {\n const prefix = discountDetails.type === DiscountType.Fixed ? ' per month' : '';\n discountTextPostfix = `${prefix} for ${discountDetails.durationInMonths} months`;\n\n break;\n }\n\n case DiscountDurationType.Forever:\n default: {\n discountTextPostfix = '';\n }\n }\n\n return `${discountText}${discountTextPostfix}`;\n },\n taxTitle: ({ taxDetails }) => `Tax (${taxDetails?.percentage}%)`,\n changesWillApplyAtEndOfBillingPeriod: ({ billingPeriodEnd }) =>\n `Your changes will take effect at the end of your current billing cycle on ${moment(billingPeriodEnd).format(\n 'MMMM D, YYYY',\n )}.`,\n checkoutSuccessText: 'Changes applied',\n payAsYouGoTooltipText: 'Billed according to actual usage',\n },\n checkoutButton: {\n nextText: 'Next',\n noChangesText: 'No changes',\n updateText: 'Update subscription',\n downgradeToFreeText: 'Cancel subscription',\n upgradeText: 'Subscribe',\n },\n downgradeToFree: {\n alertText: () => `We’re sorry to see you cancel your paid subscription 😭`,\n freePlanHeader: () => 'New plan',\n freePlanName: ({ plan }) => `${plan.displayName}`,\n freePlanPriceText: () => 'Free',\n paidPlanHeader: () => 'Current plan',\n paidPlanName: ({ plan }) => `${plan.displayName}`,\n paidPlanPriceText: ({ billingPeriod }) =>\n `Paid plan${billingPeriod ? `, billed ${billingPeriod.toLowerCase()}` : ''}`,\n },\n };\n\n return merge(checkoutDefaultLocalization, localizeOverride);\n}\n","import { CheckoutConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../../theme/types';\nimport { DeepPartial } from '../../../types';\n\nexport type CheckoutTheme = {\n primary: string;\n textColor: string;\n backgroundColor: string;\n borderColor: string;\n summaryBackgroundColor: string;\n paymentInputBackgroundColor?: string;\n paymentInputBorderColor?: string;\n paymentInputBorderRadius?: string;\n};\n\nconst defaultCheckoutTheme: CheckoutTheme = {\n primary: 'rgb(50, 126, 238)',\n textColor: 'rgb(0, 30, 108)',\n backgroundColor: 'rgb(255, 255, 255)',\n borderColor: 'rgb(235, 237, 243)',\n summaryBackgroundColor: 'rgb(109, 121, 144)',\n};\n\nexport function getResolvedCheckoutTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CheckoutTheme>,\n // all the remote colors override theme colors, no need to use them here\n _remoteConfiguration?: CheckoutConfiguration | null,\n): CheckoutTheme {\n const { palette: globalPalette } = globalTheme || {};\n\n return {\n primary: themeOverride?.primary || globalPalette?.primary || defaultCheckoutTheme.primary,\n textColor: themeOverride?.textColor || globalPalette?.text.primary || defaultCheckoutTheme.textColor,\n backgroundColor:\n themeOverride?.backgroundColor || globalPalette?.backgroundPaper || defaultCheckoutTheme.backgroundColor,\n borderColor: themeOverride?.borderColor || globalPalette?.outlinedBorder || defaultCheckoutTheme.borderColor,\n summaryBackgroundColor:\n themeOverride?.summaryBackgroundColor ||\n globalPalette?.backgroundHighlight ||\n defaultCheckoutTheme.summaryBackgroundColor,\n paymentInputBackgroundColor: themeOverride?.paymentInputBackgroundColor,\n paymentInputBorderColor: themeOverride?.paymentInputBorderColor,\n paymentInputBorderRadius: themeOverride?.paymentInputBorderRadius,\n };\n}\n","import { produce } from 'immer';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { BillableFeature, BillingPeriod, GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { CustomizedTheme, SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { DeepPartial } from '../../types';\nimport { mapCheckoutConfiguration, mapTypography } from '../common/mapExternalTheme';\nimport {\n AddonsStepState,\n getAddonsStepInitialState,\n getPaymentStepInitialState,\n getPlanStepInitialState,\n getProgressBarInitialState,\n PaymentStepState,\n PlanStepState,\n ProgressBarState,\n useLoadCheckout,\n WidgetState,\n} from './hooks';\nimport { CheckoutLocalization, getResolvedCheckoutLocalize } from './configurations/textOverrides';\nimport { CheckoutTheme, getResolvedCheckoutTheme } from './configurations/theme';\nimport { StiggTheme } from '../../theme/types';\nimport { BillingInformation, MockCheckoutStateCallback } from './types';\nimport { defaultCheckoutTypography } from './configurations/typography';\nimport { CheckoutSteps } from './configurations/steps';\n\nexport interface CheckoutContextState {\n checkout?: GetCheckoutStateResults | null;\n checkoutLocalization: CheckoutLocalization;\n stiggTheme: StiggTheme;\n theme: CheckoutTheme;\n resourceId?: string;\n promotionCode?: string;\n progressBar: ProgressBarState;\n planStep: PlanStepState;\n addonsStep: AddonsStepState;\n paymentStep: PaymentStepState;\n widgetState: WidgetState;\n}\n\nexport const CheckoutContext = React.createContext<\n [CheckoutContextState, (updater: (state: CheckoutContextState) => void) => void] | null\n>(null);\n\nCheckoutContext.displayName = 'CheckoutContext';\n\nexport const useCheckoutContext = () => {\n const ctx = useContext(CheckoutContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Checkout context; You need to wrap your checkout components in an <CheckoutProvider> component.',\n );\n }\n return ctx;\n};\n\nconst CheckoutContextProvider: React.FC<{ children: React.ReactNode; initialState: CheckoutContextState }> = ({\n children,\n initialState,\n}) => {\n const [state, innerSetState] = useState(initialState);\n\n useEffect(() => {\n innerSetState(initialState);\n }, [initialState]);\n\n const setState = useCallback(\n (updater: (state: CheckoutContextState) => void) => innerSetState((old) => produce(old, (draft) => updater(draft))),\n [innerSetState],\n );\n\n const [contextValue, setContextValue] = useMemo(() => [state, setState], [setState, state]);\n\n return <CheckoutContext.Provider value={[contextValue, setContextValue]}>{children}</CheckoutContext.Provider>;\n};\n\nexport type CheckoutProviderProps = {\n textOverrides?: DeepPartial<CheckoutLocalization>;\n theme?: DeepPartial<CheckoutTheme>;\n resourceId?: string;\n planId: string;\n preferredBillingPeriod?: BillingPeriod;\n billingCountryCode?: string;\n billableFeatures?: BillableFeature[];\n billingInformation?: BillingInformation;\n onMockCheckoutState?: MockCheckoutStateCallback;\n skipCheckoutSteps?: CheckoutSteps[];\n};\n\nexport function CheckoutProvider({\n children,\n textOverrides,\n theme,\n preferredBillingPeriod,\n billableFeatures,\n resourceId,\n planId,\n billingCountryCode,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading } = useLoadCheckout({ resourceId, planId, billingCountryCode, onMockCheckoutState });\n const configuration: CustomizedTheme = checkout?.configuration\n ? mapCheckoutConfiguration(checkout.configuration)\n : { typography: mapTypography(defaultCheckoutTypography) };\n const globalTheme: StiggTheme = useStiggTheme(configuration);\n\n const initialState = useMemo(() => {\n const checkoutTheme = getResolvedCheckoutTheme(globalTheme, theme, checkout?.configuration);\n const checkoutLocalization = getResolvedCheckoutLocalize(textOverrides);\n const planStep = getPlanStepInitialState({\n preferredBillingPeriod,\n plan: checkout?.plan,\n activeSubscription: checkout?.activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n const addonsStep = getAddonsStepInitialState({\n plan: checkout?.plan,\n billingPeriod: planStep.billingPeriod,\n activeSubscription: checkout?.activeSubscription,\n });\n const paymentStep = getPaymentStepInitialState({\n customer: checkout?.customer,\n taxPercentage: billingInformation?.taxDetails?.taxPercentage,\n });\n const progressBar = getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps: skipCheckoutSteps ?? [],\n plan: checkout?.plan,\n availableAddons: addonsStep.availableAddons,\n availableCharges: planStep.billableFeatures,\n preferredBillingPeriod,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n\n const initialState: CheckoutContextState = {\n checkout,\n checkoutLocalization,\n stiggTheme: globalTheme,\n theme: checkoutTheme,\n progressBar,\n planStep,\n addonsStep,\n paymentStep,\n resourceId: checkout?.resource?.id,\n widgetState: { readOnly: false, isValid: true, isLoadingCheckoutData: isLoading },\n };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n preferredBillingPeriod,\n billingCountryCode,\n checkout,\n isLoading,\n skipCheckoutSteps,\n billingInformation?.taxDetails?.taxPercentage,\n ]);\n\n return (\n <SdkThemeProvider key={checkout?.plan.id} componentTheme={configuration}>\n <CheckoutContextProvider initialState={initialState}>{children}</CheckoutContextProvider>\n </SdkThemeProvider>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport { mq } from '../common/mediaQuery';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n\n & * {\n box-sizing: border-box;\n }\n\n padding: 16px 16px;\n ${mq.md} {\n padding: 32px;\n width: calc(100% - 64px);\n border-radius: 10px;\n }\n`;\nexport const CheckoutContent = styled(Box)`\n display: flex;\n align-items: flex-start;\n gap: 32px;\n flex-wrap: wrap;\n width: 100%;\n\n flex-direction: column;\n ${mq.md} {\n flex-direction: row;\n }\n`;\n\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\n\n width: 100%;\n ${mq.md} {\n width: auto;\n }\n`;\n","import styled from '@emotion/styled/macro';\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\nimport Button, { buttonClasses } from '@mui/material/Button';\nimport { Icon } from '../../common/Icon';\n\nexport const StyledProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>(({ theme, $disabled }) => ({\n [`&.${linearProgressClasses.root}`]: {\n borderRadius: theme.stigg.border.radius,\n backgroundColor: theme.stigg.palette.outlinedBorder,\n },\n [`& .${linearProgressClasses.bar}`]: {\n backgroundColor: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n },\n}));\n\nexport const StyledStepButton = styled(Button)(() => ({\n [`&.${buttonClasses.root}`]: {\n textTransform: 'none',\n lineHeight: 'inherit',\n justifyContent: 'flex-start',\n padding: '8px 4px',\n },\n}));\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n $shouldFill?: boolean;\n}>(({ theme, $disabled, $shouldFill }) => ({\n circle: {\n stroke: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n fill: $shouldFill ? ($disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary) : undefined,\n },\n}));\n","import React, { useEffect, useRef } from 'react';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport StepIcon from '@mui/material/StepIcon';\nimport { useCheckoutModel, useProgressBarModel } from '../hooks';\nimport { Typography } from '../../common/Typography';\nimport { StyledIcon, StyledProgress, StyledStepButton } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep, currentStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const containerRef = useRef<HTMLElement>();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n const [previousStep, setPreviousStep] = React.useState(currentStep);\n useEffect(() => {\n if (!isScreenWiderThanMd) {\n if (containerRef.current && currentStep !== previousStep) {\n containerRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n setPreviousStep(currentStep);\n }, [currentStep, isScreenWiderThanMd, previousStep, setPreviousStep]);\n\n if (progressBarState.steps.length === 1) {\n return null;\n }\n\n return (\n <Box className=\"stigg-checkout-progress-container\" sx={{ width: '100%', mb: 3 }} ref={containerRef}>\n <StyledProgress variant=\"determinate\" value={progress} $disabled={readOnly} />\n <Grid container display=\"flex\">\n {steps.map(({ key, label }, index) => {\n const isCompleted = completedSteps.includes(index);\n const isDisabled =\n readOnly ||\n (index > activeStep && !isCompleted && !completedSteps.includes(index - 1)) ||\n (activeStep !== index && progressBarState.isDisabled);\n const checkedIcon: Icons = isDisabled ? 'OutlinedCheckedCircleDisabled' : 'OutlinedCheckedCircle';\n\n return (\n <Grid\n key={key}\n item\n display=\"flex\"\n flexDirection=\"row\"\n flex={isScreenWiderThanMd ? 1 : 'auto'}\n justifyContent=\"flex-start\">\n {isLoadingCheckoutData ? (\n <Skeleton width={120} height={20} style={{ marginTop: 8 }} />\n ) : (\n <StyledStepButton onClick={() => setActiveStep(index)} fullWidth disabled={isDisabled}>\n <Grid item display=\"flex\" flexDirection=\"row\" alignItems=\"center\" gap={1}>\n <StepIcon\n icon={\n <StyledIcon\n icon={isCompleted ? checkedIcon : 'OutlinedCircle'}\n $disabled={isDisabled}\n $shouldFill={isCompleted}\n />\n }\n />\n\n <Typography variant=\"h6\" color={isDisabled ? 'primary.main.light' : 'primary.main'}>\n {label}\n </Typography>\n </Grid>\n </StyledStepButton>\n )}\n </Grid>\n );\n })}\n </Grid>\n </Box>\n );\n};\n","import sortBy from 'lodash/sortBy';\nimport { useMemo } from 'react';\n\nimport { BillingModel, Price } from '@stigg/js-client-sdk';\n\nconst CHARGES_BILLING_MODEL_ORDER = [BillingModel.FlatFee, BillingModel.PerUnit, BillingModel.UsageBased];\n\nexport const sortCharges = (charges: Price[]) => {\n return sortBy(charges, [\n (charge) => CHARGES_BILLING_MODEL_ORDER.indexOf(charge.pricingModel),\n (charge) => charge.feature?.displayName,\n ]);\n};\n\nexport const useChargesSort = (charges: Price[]) => {\n return useMemo(() => sortCharges(charges), [charges]);\n};\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PromotionCodeState = {\n promotionCode?: string;\n};\n\nfunction usePromotionCodeState() {\n const [{ promotionCode }] = useCheckoutContext();\n return promotionCode;\n}\n\nfunction useSetPromotionCode() {\n const [, setState] = useCheckoutContext();\n\n return (promotionCode: string) =>\n setState((draft) => {\n draft.promotionCode = promotionCode;\n });\n}\n\nexport function usePromotionCodeModel() {\n const promotionCode = usePromotionCodeState();\n\n return {\n promotionCode,\n setPromotionCode: useSetPromotionCode(),\n };\n}\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"plus\">\n<path id=\"Shape\" d=\"M10 4.16666V15.8333\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M4.16699 10H15.8337\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\n\nimport PlusIcon from '../../../assets/plus-icon.svg';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nconst StyledPlusIcon = styled(PlusIcon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $disabled: boolean }>`\n margin-right: 8px;\n path {\n stroke: ${({ theme, $disabled }) => ($disabled ? theme.stigg.palette.text.disabled : theme.stigg.palette.primary)};\n }\n`;\n\nexport type AddPromotionCodeButtonProps = {\n onAddClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n disabled: boolean;\n};\n\nexport const AddPromotionCodeButton = ({ onAddClick, checkoutLocalization, disabled }: AddPromotionCodeButtonProps) => (\n <Button\n disabled={disabled}\n fullWidth\n className=\"stigg-checkout-summary-add-coupon-code-button\"\n sx={{\n textTransform: 'none',\n justifyContent: 'flex-start',\n color: disabled ? 'text.disabled' : 'primary.main',\n }}\n variant=\"text\"\n size=\"medium\"\n onClick={onAddClick}>\n <StyledPlusIcon $disabled={disabled} className=\"stigg-checkout-summary-add-coupon-code-button-icon\" />\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color={disabled ? 'disabled' : 'primary.main'}\n style={{ lineHeight: '24px' }}\n variant=\"h3\">\n {checkoutLocalization.summary.addCouponCodeText}\n </Typography>\n </Button>\n);\n","import React, { useState } from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\n\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button, InputField } from '../components';\nimport { usePreviewSubscriptionAction } from '../hooks';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCodeButton } from './AddPromotionCodeButton';\nimport { PromotionCodeSectionProps } from './PromotionCodeSection';\n\nconst CouponCodeAddButton = styled(Button)`\n padding: 4px 10px;\n min-width: unset;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n display: flex;\n align-items: center;\n`;\n\nexport const AddPromotionCode = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { setPromotionCode: persistPromotionCode } = usePromotionCodeModel();\n const [showInput, setShowInput] = useState(false);\n const [promotionCode, setPromotionCode] = React.useState('');\n const [isLoading, setIsLoading] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n const handlePromotionCode = async () => {\n setIsLoading(true);\n setErrorMessage('');\n\n const { subscriptionPreview, errorMessage } = await previewSubscriptionAction({ promotionCode });\n\n if (!errorMessage && subscriptionPreview?.immediateInvoice?.discountDetails) {\n persistPromotionCode(promotionCode.toUpperCase());\n setShowInput(false);\n } else if (errorMessage) {\n setErrorMessage(errorMessage);\n }\n setIsLoading(false);\n };\n\n if (!showInput) {\n return (\n <AddPromotionCodeButton\n disabled={disabled}\n onAddClick={() => setShowInput(true)}\n checkoutLocalization={checkoutLocalization}\n />\n );\n }\n\n return (\n <Grid>\n <Typography variant=\"body1\" color={errorMessage ? 'error' : disabled ? 'disabled' : 'primary.main'}>\n {checkoutLocalization.summary.couponCodeTitle}\n </Typography>\n\n <InputField\n disabled={disabled}\n autoFocus\n variant=\"outlined\"\n fullWidth\n error={!!errorMessage}\n value={promotionCode}\n onChange={(e) => {\n setPromotionCode(e.target.value);\n }}\n inputProps={{ maxLength: 20 }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter') {\n void handlePromotionCode();\n e.preventDefault();\n }\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n InputProps={{\n endAdornment: (\n <CouponCodeAddButton\n variant=\"contained\"\n disabled={disabled}\n onClick={() => {\n void handlePromotionCode();\n }}>\n {isLoading ? (\n <CircularProgress size={18} sx={{ color: 'white' }} />\n ) : (\n <Icon style={{ display: 'flex' }} icon=\"ArrowForward\" />\n )}\n </CouponCodeAddButton>\n ),\n }}\n />\n {!!errorMessage && (\n <Typography variant=\"body1\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Grid>\n );\n};\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\n\nconst AppliedCouponContainer = styled(Grid)`\n width: auto;\n display: inline-flex;\n align-items: center;\n flex-direction: row;\n gap: 8px;\n padding: 6px 8px;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n border: 1px solid ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => prop !== 'style' })<{ $shouldFill?: boolean }>`\n display: flex;\n\n g {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n\n path {\n fill: ${({ theme, $shouldFill }) => ($shouldFill ? theme.stigg.palette.primary : undefined)};\n }\n`;\n\nexport type AppliedPromotionCodeProps = {\n promotionCode: string;\n onClearPromotionCode: () => void;\n};\n\nexport const AppliedPromotionCode = ({ promotionCode, onClearPromotionCode }: AppliedPromotionCodeProps) => (\n <AppliedCouponContainer container>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <StyledIcon icon=\"Coupon\" />\n <Typography variant=\"body1\" color=\"primary.main\" lineHeight=\"auto\">\n {promotionCode}\n </Typography>\n </Grid>\n <Grid item>\n <Button variant=\"text\" sx={{ minWidth: 'unset', padding: 0 }} onClick={onClearPromotionCode}>\n <StyledIcon icon=\"Close\" $shouldFill />\n </Button>\n </Grid>\n </AppliedCouponContainer>\n);\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCode } from './AddPromotionCode';\nimport { AppliedPromotionCode } from './AppliedPromotionCode';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { MockCheckoutPreviewCallback } from '../types';\n\nconst PromotionCodeSectionContainer = styled.div`\n margin: 16px 0;\n`;\n\nexport type PromotionCodeSectionProps = {\n disabled: boolean;\n checkoutLocalization: CheckoutLocalization;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport const PromotionCodeSection = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { promotionCode, setPromotionCode } = usePromotionCodeModel();\n\n const onClearPromotionCode = () => {\n setPromotionCode('');\n };\n\n const content = promotionCode ? (\n <AppliedPromotionCode promotionCode={promotionCode} onClearPromotionCode={onClearPromotionCode} />\n ) : (\n <AddPromotionCode\n disabled={disabled}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n );\n\n return <PromotionCodeSectionContainer>{content}</PromotionCodeSectionContainer>;\n};\n","import React from 'react';\nimport { StripeAddressElementChangeEvent } from '@stripe/stripe-js';\nimport Grid from '@mui/material/Grid';\nimport { BillingAddress } from '@stigg/js-client-sdk';\nimport { AddressElement, PaymentElement } from '@stripe/react-stripe-js';\nimport { Typography } from '../../../../common/Typography';\nimport { useCheckoutModel, usePaymentStepModel } from '../../../hooks';\nimport { CheckoutContainerProps } from '../../../CheckoutContainer';\n\nexport function StripePaymentForm({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setBillingAddress } = usePaymentStepModel();\n const { customer, configuration } = checkoutState || {};\n const { readOnly } = widgetState;\n const shouldCollectPhoneNumber = !!(collectPhoneNumber ?? configuration?.content?.collectPhoneNumber);\n\n const handleAddressChange = (args: StripeAddressElementChangeEvent) => {\n if (!args.complete) {\n return;\n }\n\n const { postal_code: postalCode, ...addressFields } = args.value.address;\n const billingAddress: BillingAddress = {\n postalCode,\n ...addressFields,\n };\n\n setWidgetReadOnly(true);\n setBillingAddress(billingAddress);\n\n if (onBillingAddressChange) {\n const callExternalBillingAddressChanged = async () => {\n await onBillingAddressChange({ billingAddress });\n setWidgetReadOnly(false);\n };\n\n void callExternalBillingAddressChanged();\n } else {\n setWidgetReadOnly(false);\n }\n };\n\n return (\n <Grid flexDirection=\"column\" container gap={3} padding=\"16px\" sx={{ pointerEvents: readOnly ? 'none' : undefined }}>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodBillingAddressTitle}</Typography>\n <AddressElement\n onChange={handleAddressChange}\n options={{\n mode: 'billing',\n fields: { phone: shouldCollectPhoneNumber ? 'always' : 'auto' },\n defaultValues: {\n ...(customer?.name && { name: customer.name }),\n },\n }}\n />\n </Grid>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodCardTitle}</Typography>\n <PaymentElement\n onChange={() => {}}\n onReady={() => {}}\n options={{\n readOnly,\n terms: { card: 'never' },\n defaultValues: {\n billingDetails: {\n ...(customer?.name && { name: customer.name }),\n ...(customer?.email && { email: customer.email }),\n },\n },\n }}\n />\n </Grid>\n </Grid>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { BillingVendorIdentifier } from '@stigg/js-client-sdk';\nimport { loadStripe, Stripe } from '@stripe/stripe-js';\n\nimport { useCheckoutModel } from '../../../hooks';\n\nexport function useStripeIntegration() {\n const [stripePromise, setStripePromise] = useState<Promise<Stripe | null> | null>(null);\n const { checkoutState } = useCheckoutModel();\n const { billingIntegration, setupSecret } = checkoutState || {};\n\n useEffect(() => {\n if (billingIntegration) {\n const { billingIdentifier, credentials } = billingIntegration;\n if (billingIdentifier !== BillingVendorIdentifier.Stripe) {\n console.error('Currently only stripe integration is supported');\n return;\n }\n\n const { accountId, publicKey } = credentials;\n setStripePromise(loadStripe(publicKey, { stripeAccount: accountId }));\n }\n }, [billingIntegration]);\n\n return { stripePromise, setupIntentClientSecret: setupSecret };\n}\n","import { ApplySubscription, PreviewSubscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { useSubscriptionModel } from './useSubscriptionModel';\n\nexport function useSubscriptionState(): ApplySubscription | PreviewSubscription | undefined {\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const addons = subscription.addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n\n if (!plan?.id) {\n return undefined;\n }\n\n return {\n resourceId,\n planId: plan.id,\n billingPeriod: subscription.billingPeriod,\n billableFeatures: subscription.billableFeatures,\n addons,\n promotionCode: subscription.promotionCode,\n billingCountryCode: subscription.billingCountryCode,\n };\n}\n","import { ApplySubscriptionResults, PaymentCollection } from '@stigg/js-client-sdk';\nimport { Stripe, StripeElements } from '@stripe/stripe-js';\n\ntype StripeElementsProps = {\n stripe: Stripe | null;\n elements: StripeElements | null;\n};\n\nconst FAILED_PAYMENT_COLLECTION_STATUSES = [PaymentCollection.Failed, PaymentCollection.Processing];\n\nexport async function handleStripeFormValidations({ elements }: Pick<StripeElementsProps, 'elements'>) {\n if (!elements) {\n const errorMessage = 'Stripe elements not initialized';\n console.error(errorMessage);\n return { success: false, errorMessage };\n }\n\n const { error: elementsError } = await elements.submit();\n\n if (elementsError) {\n console.log(elementsError.message);\n return { success: false, errorMessage: elementsError.message || '' };\n }\n\n return { success: true };\n}\n\nexport async function handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n}: {\n applySubscriptionResults: ApplySubscriptionResults;\n stripe: Stripe | null;\n}) {\n const subscription = applySubscriptionResults?.subscription;\n const paymentIntentClientSecret = subscription?.latestInvoice?.paymentSecret;\n const paymentCollection = subscription?.paymentCollection;\n\n if (stripe && paymentIntentClientSecret && paymentCollection === PaymentCollection.ActionRequired) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n } else if (paymentCollection && FAILED_PAYMENT_COLLECTION_STATUSES.includes(paymentCollection)) {\n return { errorMessage: subscription?.latestInvoice?.errorMessage || 'An error occurred - try again later' };\n }\n\n return { subscription };\n}\n\nasync function handleStripeSetup({\n stripe,\n elements,\n clientSecret,\n}: {\n stripe: Stripe;\n elements: StripeElements;\n clientSecret: string;\n}) {\n let newPaymentMethodId: string | undefined;\n let setupErrorMessage: string | undefined;\n\n const { error: setupError } = await stripe.confirmSetup({\n elements,\n confirmParams: { return_url: window.location.href },\n redirect: 'if_required',\n });\n\n if (setupError) {\n if (setupError.type === 'card_error' || setupError.type === 'validation_error') {\n if (setupError.type === 'card_error') {\n // Set some error message\n setupErrorMessage = setupError.message || '';\n }\n } else {\n setupErrorMessage = 'An unexpected error occurred.';\n }\n } else {\n try {\n const { setupIntent } = await stripe.retrieveSetupIntent(clientSecret);\n if (setupIntent?.payment_method) {\n newPaymentMethodId = setupIntent.payment_method as string;\n }\n } catch (e) {\n setupErrorMessage = 'An unexpected error occurred.';\n console.error(e);\n }\n }\n\n return { newPaymentMethodId, setupErrorMessage };\n}\n\nexport async function handleNewPaymentMethod({\n stripe,\n elements,\n setupIntentClientSecret,\n}: {\n stripe: Stripe | null;\n elements: StripeElements | null;\n setupIntentClientSecret?: string;\n}): Promise<{ success: boolean; errorMessage?: string; paymentMethodId?: string }> {\n if (!stripe || !elements || !setupIntentClientSecret) {\n return { success: false };\n }\n\n const stripeFormValidationsResults = await handleStripeFormValidations({ elements });\n if (!stripeFormValidationsResults.success) {\n return { success: false, errorMessage: stripeFormValidationsResults.errorMessage };\n }\n\n const { newPaymentMethodId, setupErrorMessage } = await handleStripeSetup({\n stripe,\n elements,\n clientSecret: setupIntentClientSecret,\n });\n\n if (setupErrorMessage || !newPaymentMethodId) {\n return { success: false, errorMessage: setupErrorMessage };\n }\n\n return { success: true, paymentMethodId: newPaymentMethodId };\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Color from 'color';\nimport React, { useEffect, useRef } from 'react';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/lottie/checkout-success.json';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ANIMATION_DURATION = 5000;\n\nconst CheckoutSuccessContainer = styled(Box)`\n @keyframes blurFade {\n 0% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0).toString()};\n backdrop-filter: blur(0px);\n }\n 100% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n backdrop-filter: blur(6.5px);\n }\n }\n\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 5;\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n animation: blurFade 2s ease-in forwards;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n * rect {\n fill: transparent;\n }\n\n & path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nconst CheckoutSuccessText = styled(Typography)`\n @keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 75% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n align-self: center;\n animation: fadeIn 5s ease-in forwards;\n`;\n\nconst StyledLottie = styled(Lottie)`\n display: flex;\n justify-content: center;\n\n svg {\n width: 350px !important;\n height: auto !important;\n }\n`;\n\nexport function CheckoutSuccess({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) {\n const containerRef = useRef<HTMLDivElement>();\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }\n }, []);\n return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\" ref={containerRef}>\n <StyledLottie animationData={animationData} loop={false} autoplay />\n <CheckoutSuccessText variant=\"h1\" color=\"primary.main\">\n {checkoutLocalization.summary.checkoutSuccessText}\n </CheckoutSuccessText>\n </CheckoutSuccessContainer>\n );\n}\n","import { ApplySubscription, ApplySubscriptionResults } from '@stigg/js-client-sdk';\nimport { useElements, useStripe } from '@stripe/react-stripe-js';\nimport { useStiggContext } from '../../../../..';\nimport { useCheckoutModel } from '../../../hooks';\nimport { usePaymentStepModel } from '../../../hooks/usePaymentStepModel';\nimport { useSubscriptionState } from '../../../hooks/useSubscriptionState';\nimport { CheckoutContainerProps, CheckoutResult } from '../../../CheckoutContainer';\nimport { handleNewPaymentMethod, handleStripeNextAction } from './stripe.utils';\nimport { ANIMATION_DURATION } from '../../../summary/CheckoutSuccess';\n\nconst delay = (ms: number) => new Promise((res) => setTimeout(res, ms));\n\nexport type HandleSubmitResult = { results?: ApplySubscriptionResults; success: boolean; errorMessage?: string };\n\nexport type UseSubmitProps = {\n onSuccess?: () => void;\n isMocked?: boolean;\n} & Pick<CheckoutContainerProps, 'onCheckout' | 'onCheckoutCompleted' | 'disableSuccessAnimation'>;\n\nexport function useSubmit({\n isMocked = false,\n onCheckout,\n onCheckoutCompleted,\n onSuccess,\n disableSuccessAnimation,\n}: UseSubmitProps) {\n const { stigg } = useStiggContext();\n const { useNewPaymentMethod } = usePaymentStepModel();\n const subscriptionState = useSubscriptionState();\n const { checkoutState, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setupSecret: setupIntentClientSecret, customer } = checkoutState || {};\n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async (e: any): Promise<HandleSubmitResult> => {\n e.preventDefault();\n\n if (!subscriptionState) {\n return { success: false, errorMessage: 'Unexpected error, please contact support.' };\n }\n\n let success = true;\n let errorMessage: string | undefined;\n let usedStiggCheckoutAction = false;\n let paymentMethodId: string | undefined;\n\n setWidgetReadOnly(true);\n\n if (!isMocked && useNewPaymentMethod) {\n const paymentMethodResults = await handleNewPaymentMethod({ elements, stripe, setupIntentClientSecret });\n if (!paymentMethodResults.success) {\n errorMessage = paymentMethodResults.errorMessage;\n success = false;\n } else {\n paymentMethodId = paymentMethodResults.paymentMethodId;\n }\n }\n\n const checkoutParams: ApplySubscription = { ...subscriptionState, paymentMethodId };\n\n const checkoutAction = async (params: ApplySubscription): Promise<CheckoutResult> => {\n usedStiggCheckoutAction = true;\n\n try {\n const applySubscriptionResults = await stigg.applySubscription(params);\n\n const nextActionResults = await handleStripeNextAction({ applySubscriptionResults, stripe });\n\n return {\n success: !nextActionResults.errorMessage,\n errorMessage: nextActionResults.errorMessage,\n results: applySubscriptionResults,\n };\n } catch (e) {\n console.error(e);\n errorMessage = (e as any)?.message;\n return { success: false, errorMessage };\n }\n };\n\n let checkoutResults: ApplySubscriptionResults | undefined;\n\n if (success) {\n if (onCheckout) {\n const externalCheckoutResults = await onCheckout({\n customerId: customer!.id,\n checkoutParams,\n checkoutAction,\n });\n if (externalCheckoutResults.errorMessage) {\n errorMessage = externalCheckoutResults.errorMessage;\n }\n\n if (!usedStiggCheckoutAction && externalCheckoutResults.results && externalCheckoutResults.success) {\n const nextActionResults = await handleStripeNextAction({\n applySubscriptionResults: externalCheckoutResults.results,\n stripe,\n });\n\n if (nextActionResults.errorMessage) {\n errorMessage = nextActionResults.errorMessage;\n success = false;\n }\n }\n\n success = success && externalCheckoutResults.success && !errorMessage;\n checkoutResults = externalCheckoutResults.results;\n } else {\n const checkoutActionResults = await checkoutAction(checkoutParams);\n if (!checkoutActionResults.success && checkoutActionResults.errorMessage) {\n errorMessage = checkoutActionResults.errorMessage;\n }\n success = checkoutActionResults.success && !errorMessage;\n checkoutResults = checkoutActionResults.results;\n }\n }\n\n setWidgetReadOnly(false);\n\n if (success && onSuccess) {\n onSuccess();\n\n if (!disableSuccessAnimation) {\n await delay(ANIMATION_DURATION); // Wait for animation to finish\n }\n }\n\n await onCheckoutCompleted({ success, error: errorMessage });\n\n return { results: checkoutResults, success: !errorMessage, errorMessage };\n };\n\n return { handleSubmit, isLoading: !!widgetState?.readOnly };\n}\n","import React, { FC, PropsWithChildren } from 'react';\nimport { Skeleton } from '../../components/Skeletons.style';\n\nexport const WithSkeleton: FC<\n PropsWithChildren<{\n isLoading: boolean;\n width?: number | string;\n height?: number | string;\n }>\n> = ({ isLoading, width = 50, height = 16, children }) => {\n if (isLoading) {\n return <Skeleton width={width} height={height} />;\n }\n\n return <>{children}</>;\n};\n","/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport moment from 'moment';\nimport { BillingModel, BillingPeriod, Plan, Subscription, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { WithSkeleton } from './WithSkeleton';\n\nexport type CheckoutCaptionProps = {\n subscriptionPreview?: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n activeSubscription?: Subscription | null;\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n billingPeriod: BillingPeriod;\n};\n\nconst RemainingCreditsCaption = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n const { immediateInvoice } = subscriptionPreview || {};\n if (!immediateInvoice?.proration?.netAmount?.amount || immediateInvoice?.proration?.netAmount?.amount >= 0) {\n return null;\n }\n\n const positiveAmount = immediateInvoice.proration.netAmount.amount * -1;\n\n const credits = currencyPriceFormatter({\n amount: positiveAmount,\n currency: immediateInvoice.proration.netAmount.currency,\n minimumFractionDigits: 2,\n });\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {checkoutLocalization.summary.creditsForUnusedTimeText({ credits })}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst ScheduledUpdatesCaption = ({\n subscriptionPreview,\n activeSubscription,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n if (!subscriptionPreview?.hasScheduledUpdates || !activeSubscription?.currentBillingPeriodEnd) {\n return null;\n }\n\n const { currentBillingPeriodEnd } = activeSubscription;\n const changesWillApplyText =\n typeof checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod === 'function'\n ? checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod({ billingPeriodEnd: currentBillingPeriodEnd })\n : checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {changesWillApplyText}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst NextBillingCaption = ({\n subscriptionPreview,\n activeSubscription,\n plan,\n isFetchingSubscriptionPreview,\n billingPeriod,\n}: CheckoutCaptionProps) => {\n const { recurringInvoice } = subscriptionPreview || {};\n if (!subscriptionPreview || !recurringInvoice?.total.amount) {\n return null;\n }\n\n const currentBillingPeriodEnd = subscriptionPreview.hasScheduledUpdates\n ? activeSubscription?.currentBillingPeriodEnd\n : subscriptionPreview?.billingPeriodRange.end;\n\n const total = currencyPriceFormatter({\n ...recurringInvoice.total,\n minimumFractionDigits: 2,\n });\n\n const hasUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel === BillingModel.UsageBased);\n const hasNonUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel !== BillingModel.UsageBased);\n\n let text = 'We will bill you ';\n let totalAmountText = `${total} `;\n\n if (hasUnitBasedPricing) {\n if (!hasNonUnitBasedPricing) {\n totalAmountText = 'for';\n } else {\n totalAmountText += '+';\n }\n\n totalAmountText += ' applicable usage-based charges for this subscription ';\n }\n\n let nextBillingDate;\n let billingPeriodText;\n\n switch (billingPeriod) {\n case BillingPeriod.Monthly:\n billingPeriodText = 'month';\n nextBillingDate = `the ${moment(currentBillingPeriodEnd).format('Do')}`;\n break;\n case BillingPeriod.Annually:\n billingPeriodText = 'year';\n nextBillingDate = moment(currentBillingPeriodEnd).format('MMMM Do');\n break;\n default: {\n break;\n }\n }\n\n text += `${totalAmountText}for this subscription every ${billingPeriodText} on ${nextBillingDate}, unless you cancel.`;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <>\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </>\n );\n}\n","import { BillingModel, BillingPeriod, Currency, Price, TiersMode } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { isBulkTiers, isQuantityInFirstTier } from '../../../utils/priceTierUtils';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nexport type GetPriceBreakdownStringProps = {\n totalAmount: number;\n quantity: number;\n tiersMode: Price['tiersMode'];\n tiers: Price['tiers'];\n currency: Currency;\n pricingModel: BillingModel;\n billingPeriod: BillingPeriod;\n blockSize?: number | null;\n priceAmount?: Price['amount'];\n};\n\nexport function formatPricePerUnit({\n quantity,\n totalAmount,\n pricingModel,\n billingPeriod,\n currency,\n blockSize,\n priceAmount,\n}: GetPriceBreakdownStringProps) {\n const isPerUnit = pricingModel === BillingModel.PerUnit;\n const aBlockSize = blockSize || 1;\n const featureUnits =\n quantity && (isPerUnit || quantity > 1) ? `${numberFormatter(quantity)} ${aBlockSize > 1 ? 'for' : 'x'} ` : '';\n const billingPeriodString = billingPeriod === BillingPeriod.Annually ? ' x 12 months' : '';\n\n const unitPrice = (priceAmount || totalAmount / quantity) / (billingPeriod === BillingPeriod.Annually ? 12 : 1);\n const formattedUnitPrice = currencyPriceFormatter({\n amount: unitPrice,\n currency,\n minimumFractionDigits: 2,\n });\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n\n return `${featureUnits}${formattedUnitPrice}${billingPeriodString} ${\n billingPeriodString || featureUnits ? ` = ${formattedTotalPrice}` : ''\n }`;\n}\n\nexport function getPriceBreakdownString(params: GetPriceBreakdownStringProps) {\n const { totalAmount, quantity, tiersMode, tiers, currency } = params;\n if (isBulkTiers(tiers) || (tiersMode === TiersMode.Graduated && !isQuantityInFirstTier(tiers, quantity))) {\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n return `${numberFormatter(quantity)} for ${formattedTotalPrice}`;\n }\n\n return formatPricePerUnit(params);\n}\n","import React from 'react';\nimport isNil from 'lodash/isNil';\nimport { Price, PriceTierFragment } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { calculateTierPriceGraduated } from '../../../utils/priceTierUtils';\nimport { formatPricePerUnit } from './getPriceBreakdownString';\nimport { LineItemContainer, LineItemRow } from './LineItems';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nfunction getLabel(tiers: PriceTierFragment[], index: number): string {\n const { unitPrice, upTo } = tiers[index];\n if (!unitPrice) {\n return '';\n }\n\n if (index === 0) {\n return `First ${upTo}`;\n }\n\n const previousTierUpTo = tiers[index - 1].upTo || 0;\n const startUnit = previousTierUpTo + 1;\n\n return isNil(upTo)\n ? `${numberFormatter(startUnit)} and above`\n : `Next ${numberFormatter(startUnit)} to ${numberFormatter(upTo)}`;\n}\n\nexport type GraduatedPriceBreakdownProps = {\n price: Price;\n unitQuantity: number;\n};\n\nexport function GraduatedPriceBreakdown({ price, unitQuantity }: GraduatedPriceBreakdownProps) {\n const tiers = price.tiers || [];\n\n const { breakdown } = calculateTierPriceGraduated(tiers, unitQuantity);\n\n if (breakdown.length === 1) {\n return null;\n }\n\n return (\n <>\n {breakdown.map(({ unitQuantity, amount }, index) => (\n <LineItemContainer>\n <LineItemRow key={index} style={{ alignItems: 'flex-start' }}>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {getLabel(tiers, index)}\n </Typography>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {formatPricePerUnit({\n quantity: unitQuantity,\n totalAmount: amount,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ))}\n </>\n );\n}\n","import { ChevronRight } from 'react-feather';\nimport styled from 'styled-components';\n\nexport const CollapsableSectionIcon = styled(ChevronRight)<{ $isOpen: boolean; $size?: number }>`\n height: ${({ $size = 24 }) => `${$size}px`};\n width: ${({ $size = 24 }) => `${$size}px`};\n transition: all 0.2s ease-in;\n ${({ $isOpen }) => $isOpen && `transform: rotate(90deg)`}\n`;\n","import React, { ReactNode, useState } from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport {\n BillingModel,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n TiersMode,\n} from '@stigg/js-client-sdk';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\nimport Link from '@mui/material/Link';\nimport { IconButton } from '@mui/material';\nimport Collapse from '@mui/material/Collapse';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { WithSkeleton } from './WithSkeleton';\nimport { Skeleton } from '../../components/Skeletons.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { getPriceBreakdownString } from './getPriceBreakdownString';\nimport { GraduatedPriceBreakdown } from './GraduatedPriceBreakdown';\nimport { CollapsableSectionIcon } from '../../../common/CollapsableSectionIcon';\nimport { calculateTierPrice } from '../../../utils/priceTierUtils';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 16px;\n }\n`;\n\nexport const NestedBreakdownContainer = styled.div`\n margin-top: 16px;\n margin-left: 16px;\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.lg} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst PayAsYouGoPriceTooltip = ({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) => {\n const title = <Typography variant=\"body1\">{checkoutLocalization.summary.payAsYouGoTooltipText}</Typography>;\n return (\n <InformationTooltip placement=\"left\" title={title}>\n <Icon icon=\"PayAsYouGoCharge\" style={{ display: 'flex' }} />\n </InformationTooltip>\n );\n};\n\nexport const BilledPriceLineItem = ({\n checkoutLocalization,\n label,\n quantity,\n price,\n}: {\n checkoutLocalization: CheckoutLocalization;\n label: string;\n quantity: number;\n price: Price;\n}) => {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const [isNestedBreakdownOpen, setIsNestedBreakdownOpen] = useState(false);\n const toggleNestedBreakdown = () => setIsNestedBreakdownOpen((prev) => !prev);\n\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n const totalAmount = price.isTieredPrice\n ? calculateTierPrice(price, quantity)\n : (price.amount || 0) * Math.ceil(quantity / (price.blockSize || 1));\n\n let nestedBreakdown: ReactNode;\n const shouldShowGraduatedPriceBreakdown =\n price.tiersMode === TiersMode.Graduated &&\n !!price.tiers &&\n !isEmpty(price.tiers) &&\n !isNil(price.tiers[0].upTo) &&\n quantity > price.tiers[0].upTo;\n\n if (shouldShowGraduatedPriceBreakdown) {\n nestedBreakdown = <GraduatedPriceBreakdown price={price} unitQuantity={quantity} />;\n }\n\n let title: ReactNode = (\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n );\n\n if (nestedBreakdown) {\n title = (\n <Link onClick={toggleNestedBreakdown} underline=\"none\" style={{ cursor: 'pointer' }}>\n {title}\n </Link>\n );\n }\n\n return (\n <LineItemContainer className=\"stigg-checkout-summary-base-charges-container\">\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item display=\"flex\" gap={0.5} style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {title}\n {nestedBreakdown && (\n <IconButton onClick={toggleNestedBreakdown} sx={{ padding: 0 }}>\n <CollapsableSectionIcon $isOpen={isNestedBreakdownOpen} $size={16} />\n </IconButton>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography\n variant=\"body1\"\n color=\"secondary\"\n style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {getPriceBreakdownString({\n totalAmount,\n quantity,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\n {nestedBreakdown && (\n <Collapse in={isNestedBreakdownOpen}>\n <NestedBreakdownContainer>{nestedBreakdown}</NestedBreakdownContainer>\n </Collapse>\n )}\n </LineItemContainer>\n );\n};\n\nexport const FreeChargeLineItem = ({ label }: { label: string }) => {\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-end' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n Free\n </Typography>\n </Grid>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const DiscountLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice, recurringInvoice } = subscriptionPreview;\n const { discount, discountDetails } = recurringInvoice || {};\n if (!discount || !discountDetails) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.discountText({\n discountDetails,\n currency: immediateInvoice.total.currency,\n })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {isFetchingSubscriptionPreview ? (\n <Skeleton width={50} height={16} />\n ) : (\n currencyPriceFormatter({\n amount: discount.amount,\n currency: discount.currency,\n minimumFractionDigits: 2,\n })\n )}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const AppliedCreditsLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice } = subscriptionPreview || {};\n const { credits } = immediateInvoice || {};\n\n if (!credits || !credits.used || credits.used.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.appliedCreditsTitle}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: -1 * credits.used.amount,\n currency: credits.used.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const TaxLineItem = ({\n tax,\n taxDetails,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n} & Pick<SubscriptionPreviewInvoice, 'tax' | 'taxDetails'>) => {\n if (!taxDetails || !tax || tax?.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.taxTitle({ taxDetails })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: tax?.amount, currency: tax?.currency, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n","import React, { useState } from 'react';\nimport partition from 'lodash/partition';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport { BillingModel } from '@stigg/js-client-sdk';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { Typography } from '../../common/Typography';\nimport { useChargesSort } from '../../hooks/useChargeSort';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\nimport { Button } from '../components';\nimport {\n useCheckoutModel,\n useProgressBarModel,\n usePreviewSubscription,\n useSubscriptionModel,\n usePaymentStepModel,\n} from '../hooks';\nimport { PromotionCodeSection } from '../promotionCode';\nimport { useSubmit } from '../steps/payment/stripe';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { CheckoutCaptions } from './components/CheckoutCaptions';\nimport {\n AppliedCreditsLineItem,\n BilledPriceLineItem,\n DiscountLineItem,\n FreeChargeLineItem,\n LineItemContainer,\n LineItemRow,\n TaxLineItem,\n} from './components/LineItems';\nimport { WithSkeleton } from './components/WithSkeleton';\nimport { Icon } from '../../common/Icon';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutSuccess } from './CheckoutSuccess';\nimport { getFeatureDisplayNameText } from '../../utils/getFeatureName';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SummaryContainer = styled(Box)`\n width: 100%;\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\n\n ${mq.md} {\n border-radius: 10px;\n }\n`;\n\nSummaryCard.defaultProps = {\n elevation: 0,\n};\n\nconst SummaryTitle = styled(Typography)`\n margin-bottom: 16px;\n font-weight: 500;\n`;\n\nconst StyledDivider = styled(Divider)`\n margin: 16px 0;\n`;\n\nconst TotalDueText = styled(Typography)`\n margin-bottom: 8px;\n`;\n\nfunction resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate,\n}: {\n isLastStep?: boolean;\n checkoutHasChanges: boolean;\n isFreeDowngrade: boolean;\n checkoutLocalization: CheckoutLocalization;\n isPlanUpdate?: boolean;\n}) {\n if (!isLastStep) {\n return checkoutLocalization.checkoutButton.nextText;\n }\n\n if (!checkoutHasChanges) {\n return checkoutLocalization.checkoutButton.noChangesText;\n }\n\n if (isPlanUpdate) {\n return checkoutLocalization.checkoutButton.updateText;\n }\n\n if (isFreeDowngrade) {\n return checkoutLocalization.checkoutButton.downgradeToFreeText;\n }\n\n return checkoutLocalization.checkoutButton.upgradeText;\n}\n\nexport const CheckoutSummary = ({\n onCheckout,\n onCheckoutCompleted,\n disablePromotionCode,\n disableSuccessAnimation,\n isFreeDowngrade,\n onMockCheckoutPreview,\n}: CheckoutContainerProps & { isFreeDowngrade: boolean }) => {\n const [isCheckoutCompletedSuccessfully, setIsCheckoutCompletedSuccessfully] = useState(false);\n const { setErrorMessage } = usePaymentStepModel();\n const progressBar = useProgressBarModel();\n const subscription = useSubscriptionModel();\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const planPrices = useChargesSort(\n plan?.pricePoints?.filter((price) => price.billingPeriod === subscription.billingPeriod) || [],\n );\n const [baseCharges, usageCharges] = partition(planPrices, (price) => price.pricingModel === BillingModel.FlatFee);\n const [baseCharge] = baseCharges || [];\n const isLastStep = isFreeDowngrade || (progressBar.isCheckoutComplete && progressBar.isLastStep);\n\n const { subscriptionPreview, isFetchingSubscriptionPreview } = usePreviewSubscription({ onMockCheckoutPreview });\n\n const { handleSubmit, isLoading } = useSubmit({\n isMocked: !!onMockCheckoutPreview, // This is a hack to make the submit button work with mocked data\n disableSuccessAnimation,\n onCheckout,\n onCheckoutCompleted,\n onSuccess: () => {\n setIsCheckoutCompletedSuccessfully(true);\n progressBar.markStepAsCompleted(progressBar.progressBarState.activeStep);\n },\n });\n\n const handleCheckout = async (e: any) => {\n if (isCheckoutCompletedSuccessfully) {\n return;\n }\n\n const { errorMessage } = (await handleSubmit(e)) || {};\n if (errorMessage) {\n setErrorMessage(errorMessage);\n setIsCheckoutCompletedSuccessfully(false);\n } else {\n setErrorMessage(undefined);\n }\n };\n\n const onCheckoutClick = async (e: any): Promise<void> => {\n if (isLoading) {\n return;\n }\n\n if (isLastStep) {\n await handleCheckout(e);\n } else {\n progressBar.goNext();\n }\n };\n\n const { immediateInvoice, recurringInvoice } = subscriptionPreview || {};\n const checkoutHasChanges =\n !!subscriptionPreview && (!!immediateInvoice?.proration || !!subscriptionPreview.hasScheduledUpdates);\n const showPromotionCodeLine = !disablePromotionCode && !isFreeDowngrade;\n const showDiscountLine = !!recurringInvoice?.discountDetails && !isFreeDowngrade;\n const hasDiscounts = showPromotionCodeLine || showDiscountLine;\n\n const hasPayAsYouGoCharges = usageCharges.some((price) => price.pricingModel === BillingModel.UsageBased);\n const onlyPayAsYouGoCharges =\n hasPayAsYouGoCharges &&\n !baseCharge &&\n usageCharges.every((price) => price.pricingModel === BillingModel.UsageBased);\n\n const baseChargeLabel =\n typeof checkoutLocalization.summary.baseChargeText === 'function'\n ? checkoutLocalization.summary.baseChargeText({ billingPeriod: subscription.billingPeriod })\n : checkoutLocalization.summary.baseChargeText;\n\n return (\n <SummaryContainer>\n <SummaryCard>\n <SummaryTitle variant=\"h3\">{checkoutLocalization.summary.title}</SummaryTitle>\n\n <Grid\n className=\"stigg-checkout-summary-plan-title-container\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.planName({ plan: plan! })}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n\n {baseCharge && (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n label={baseChargeLabel}\n quantity={1}\n price={baseCharge}\n />\n )}\n {!baseCharge && isFreeDowngrade ? <FreeChargeLineItem label={baseChargeLabel} /> : null}\n\n <Grid item className=\"stigg-checkout-summary-usage-charges-container\">\n {usageCharges.map((price) => {\n const priceBillableFeature = subscription.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === price.feature?.featureId,\n );\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={price.feature?.featureId}\n label={getFeatureDisplayNameText(\n price.feature?.displayName || '',\n price.feature?.units,\n price.feature?.unitsPlural,\n )}\n quantity={priceBillableFeature?.quantity || 1}\n price={price}\n />\n );\n })}\n </Grid>\n\n {!!subscription.addons?.length && (\n <>\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.addonsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n {subscription.addons.map((addon) => {\n const addonPrice = addon.addon.pricePoints?.find(\n (price) => price.billingPeriod === subscription.billingPeriod,\n );\n\n if (!addonPrice) return null;\n\n const addonQuantity = addon.quantity && addon.quantity > 0 ? addon.quantity : 1;\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={addon?.addon?.id}\n label={addon.addon.displayName}\n quantity={addonQuantity}\n price={addonPrice}\n />\n );\n })}\n </>\n )}\n\n {!hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n {hasDiscounts && (\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.discountsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n )}\n\n {showPromotionCodeLine && (\n <PromotionCodeSection\n disabled={isLoading || isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n\n {showDiscountLine && (\n <DiscountLineItem\n subscriptionPreview={subscriptionPreview!}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n )}\n\n {hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n\n <TaxLineItem\n tax={recurringInvoice?.tax}\n taxDetails={recurringInvoice?.taxDetails}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n {!isFreeDowngrade ? (\n <>\n <LineItemRow style={{ marginTop: 16 }}>\n <Grid display=\"flex\" flexDirection=\"column\" container>\n <Grid item display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h6\">{checkoutLocalization.summary.totalText}</Typography>\n <Typography variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {onlyPayAsYouGoCharges ? checkoutLocalization.summary.onlyPayAsYouGoText : null}\n {!onlyPayAsYouGoCharges && hasPayAsYouGoCharges\n ? checkoutLocalization.summary.startsAtText\n : null}\n {!onlyPayAsYouGoCharges\n ? currencyPriceFormatter({\n amount: 0,\n ...recurringInvoice?.total,\n minimumFractionDigits: 2,\n })\n : null}\n </WithSkeleton>\n </Typography>\n </Grid>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.totalBillingPeriodText({ billingPeriod: subscription.billingPeriod })}\n </Typography>\n </Grid>\n </Grid>\n </LineItemRow>\n <StyledDivider className=\"stigg-checkout-summary-divider\" />\n </>\n ) : null}\n\n {immediateInvoice?.proration?.hasProrations &&\n immediateInvoice?.subTotal &&\n immediateInvoice?.subTotal.amount > 0 ? (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.proratedTotalDueText}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: immediateInvoice?.subTotal?.amount + (immediateInvoice?.tax?.amount || 0),\n currency: immediateInvoice?.subTotal.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ) : null}\n\n <AppliedCreditsLineItem\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n <LineItemContainer>\n <LineItemRow>\n <TotalDueText variant=\"h6\">{checkoutLocalization.summary.totalDueText}</TotalDueText>\n <TotalDueText variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: 0, ...immediateInvoice?.total, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </TotalDueText>\n </LineItemRow>\n </LineItemContainer>\n\n <CheckoutCaptions\n plan={plan}\n activeSubscription={activeSubscription}\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n billingPeriod={subscription.billingPeriod}\n />\n\n <Button\n $success={isCheckoutCompletedSuccessfully}\n $error={isLastStep && isFreeDowngrade}\n disabled={\n isLoading ||\n isFetchingSubscriptionPreview ||\n progressBar.progressBarState.isDisabled ||\n (isLastStep && !checkoutHasChanges)\n }\n className=\"stigg-checkout-summary-cta-button\"\n sx={{ textTransform: 'none', borderRadius: '10px', marginTop: '24px', height: '36px' }}\n variant=\"contained\"\n size=\"medium\"\n onClick={(e: any) => {\n void onCheckoutClick(e);\n }}\n fullWidth>\n <Typography\n className=\"stigg-checkout-summary-cta-button-text\"\n variant=\"h3\"\n color=\"white\"\n style={{ display: 'flex' }}>\n {isCheckoutCompletedSuccessfully ? (\n <Icon icon=\"Check\" style={{ display: 'contents' }} />\n ) : isLoading || isFetchingSubscriptionPreview ? (\n <CircularProgress size={20} sx={{ color: 'white' }} />\n ) : (\n resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate: !!activeSubscription && activeSubscription?.plan.id === plan?.id,\n })\n )}\n </Typography>\n </Button>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n {!disableSuccessAnimation && isCheckoutCompletedSuccessfully && (\n <CheckoutSuccess checkoutLocalization={checkoutLocalization} />\n )}\n </SummaryContainer>\n );\n};\n","import React from 'react';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { SummaryCard, SummaryContainer } from './CheckoutSummary';\nimport { FlexedSkeleton, Skeleton, SkeletonsContainer } from '../components/Skeletons.style';\n\nexport const CheckoutSummarySkeleton = () => {\n return (\n <SummaryContainer>\n <SummaryCard>\n <SkeletonsContainer $flexDirection=\"column\" $gap={24}>\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <SkeletonsContainer $flexDirection=\"column\" $gap={24} marginTop={5}>\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n </SkeletonsContainer>\n\n <FlexedSkeleton flex={1} marginTop={5}>\n <Skeleton height={34} />\n </FlexedSkeleton>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n </SummaryContainer>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\n\nimport { Button } from '../../components';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.md} {\n gap: 0;\n flex-direction: row;\n justify-content: space-between;\n height: 80px;\n align-items: center;\n }\n`;\n\nexport const TrashButton = styled(Button)`\n min-width: unset;\n width: 41px;\n height: 41px;\n padding: 0;\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport Grid from '@mui/material/Grid';\nimport { Addon, BillingPeriod, SubscriptionAddon } from '@stigg/js-client-sdk';\n\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Button, InputField } from '../../components';\nimport { useAddonsStepModel } from '../../hooks/useAddonsStepModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { AddonListItemContainer, CheckoutAddonsContainer, TrashButton } from './CheckoutAddonsStep.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { useCheckoutModel, useProgressBarModel } from '../../hooks';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\ntype UseAddonsStepModel = ReturnType<typeof useAddonsStepModel>;\n\ntype AddonListItemProps = {\n addon: Addon;\n addonState?: SubscriptionAddon;\n initialAddonState?: SubscriptionAddon;\n billingPeriod: BillingPeriod;\n setAddon: UseAddonsStepModel['setAddon'];\n removeAddon: UseAddonsStepModel['removeAddon'];\n checkoutLocalization: CheckoutLocalization;\n onAddonsValidationChange: (params: { addonId: string; isValid: boolean }) => void;\n isValid: boolean;\n};\n\nfunction AddonListItem({\n addon,\n billingPeriod,\n addonState,\n initialAddonState,\n setAddon,\n removeAddon,\n checkoutLocalization,\n onAddonsValidationChange,\n isValid,\n}: AddonListItemProps) {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const addonPrice = addon.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const isAdded = !!addonState;\n const hasChanges =\n (!!addonState && !!initialAddonState && addonState.quantity !== initialAddonState.quantity) ||\n (!!initialAddonState && !addonState);\n\n const handleQuantityChange = (quantity: number | null) => {\n if (!quantity || quantity <= 0) {\n onAddonsValidationChange({ addonId: addon.id, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setAddon(addon, quantity ?? null);\n return;\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n setAddon(addon, quantity);\n };\n\n const handleUndo = () => {\n if (initialAddonState) {\n setAddon(addon, initialAddonState.quantity);\n } else {\n removeAddon(addon.id);\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n };\n\n return (\n <AddonListItemContainer container>\n <Grid item>\n <Typography variant=\"h6\" lineHeight=\"24px\">\n {addon.displayName}\n </Typography>\n {!!addonPrice && (\n <Typography variant=\"body1\" lineHeight=\"20px\" color=\"secondary\">\n {`${currencyPriceFormatter({\n amount: addonPrice.amount!,\n currency: addonPrice.currency,\n minimumFractionDigits: 2,\n })}/${billingPeriod === BillingPeriod.Annually ? 'year' : 'month'}`}\n </Typography>\n )}\n </Grid>\n <Grid item sx={{ gap: '16px' }} container={!isScreenWiderThanLg}>\n {hasChanges && (\n <Button variant=\"text\" size=\"small\" sx={{ padding: '8px', minWidth: 'unset' }} onClick={handleUndo}>\n <Typography color=\"primary.main\" variant=\"body1\">\n Undo\n </Typography>\n </Button>\n )}\n {isAdded && (\n <>\n <InputField\n id={`${addon.id}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n sx={isScreenWiderThanLg ? { marginX: 2, width: 120 } : { flex: 1 }}\n value={addonState?.quantity ?? ''}\n error={!isValid}\n helperText={!isValid ? 'Minimum 1' : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n onChange={(event) => handleQuantityChange(event?.target?.value ? Number(event?.target?.value) : null)}\n />\n <TrashButton\n color=\"error\"\n onClick={() => {\n removeAddon(addon.id);\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n }}>\n <Icon icon=\"Trash\" style={{ display: 'flex' }} />\n </TrashButton>\n </>\n )}\n {!isAdded && (\n <Button sx={{ paddingX: '22px', paddingY: '8px' }} onClick={() => handleQuantityChange(1)}>\n <Typography color=\"primary.main\" variant=\"body1\">\n {checkoutLocalization.addAddonText}\n </Typography>\n </Button>\n )}\n </Grid>\n </AddonListItemContainer>\n );\n}\n\nexport function CheckoutAddonsStep() {\n const { checkoutLocalization, setIsValid } = useCheckoutModel();\n const { billingPeriod } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { initialAddons, addons, availableAddons, setAddon, removeAddon } = useAddonsStepModel();\n const [addonsValidation, setAddonsValidation] = useState(\n availableAddons?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.id] = true;\n return acc;\n }, {}) || {},\n );\n\n useEffect(() => {\n const isDisabled = Object.values(addonsValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [addonsValidation, setIsDisabled, setIsValid]);\n\n return (\n <CheckoutAddonsContainer container>\n {availableAddons?.map((addon) => {\n const addonState = addons.find((x) => x.addon.id === addon.id);\n const initialAddonState = initialAddons?.find((x) => x.addon.id === addon.id);\n const isValid = addonsValidation[addon.id];\n\n return (\n <AddonListItem\n key={addon.id}\n addon={addon}\n billingPeriod={billingPeriod}\n addonState={addonState}\n initialAddonState={initialAddonState}\n setAddon={setAddon}\n removeAddon={removeAddon}\n checkoutLocalization={checkoutLocalization}\n onAddonsValidationChange={({ addonId, isValid }: { addonId: string; isValid: boolean }) =>\n setAddonsValidation({ ...addonsValidation, [addonId]: isValid })\n }\n isValid={isValid}\n />\n );\n })}\n </CheckoutAddonsContainer>\n );\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport Grid from '@mui/material/Grid';\n\nexport const PaymentMethodContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>`\n padding: 8px;\n border-radius: 10px;\n border: 1px solid ${({ theme }) => theme.stigg.palette.outlinedBorder};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nexport const NewPaymentMethodContainer = styled(PaymentMethodContainer)<{ $hideBorders?: boolean }>`\n flex-direction: column;\n align-items: unset;\n ${({ $hideBorders }) =>\n $hideBorders &&\n css`\n border: none;\n padding: 0;\n `}\n`;\n\nexport const PaymentMethodLayoutContainer = styled(Grid)`\n display: flex;\n align-items: center;\n flex: 1;\n gap: 12px;\n`;\n\nexport const PaymentMethodTextContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n","import React from 'react';\n\nimport Collapse from '@mui/material/Collapse';\nimport Grid from '@mui/material/Grid';\nimport Radio from '@mui/material/Radio';\nimport { Customer } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport {\n NewPaymentMethodContainer,\n PaymentMethodContainer,\n PaymentMethodLayoutContainer,\n PaymentMethodTextContainer,\n} from './PaymentMethods.style';\nimport { StripePaymentForm } from './stripe';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nexport type PaymentMethodLayoutProps = {\n checked: boolean;\n text: React.ReactNode;\n subtitle?: React.ReactNode;\n readOnly?: boolean;\n};\n\nexport type PaymentMethodProps = Pick<Customer, 'paymentMethodDetails'> &\n Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & { onSelect: () => void };\n\nexport type NewPaymentMethodProps = Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & {\n onSelect: () => void;\n checkoutLocalization: CheckoutLocalization;\n hasExistingPaymentMethod: boolean;\n} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <PaymentMethodTextContainer container>\n <Grid item>{text}</Grid>\n {subtitle && <Grid item>{subtitle}</Grid>}\n </PaymentMethodTextContainer>\n </PaymentMethodLayoutContainer>\n );\n}\n\nexport function ExistingPaymentMethod({ checked, paymentMethodDetails, readOnly, onSelect }: PaymentMethodProps) {\n if (!paymentMethodDetails) {\n return null;\n }\n const { last4Digits, expirationMonth, expirationYear } = paymentMethodDetails;\n\n return (\n <PaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{`Card ending in ${last4Digits}`}</Typography>}\n subtitle={\n !!expirationMonth &&\n !!expirationYear && (\n <Typography variant=\"body1\">{`Expires ${expirationMonth\n .toString()\n .padStart(2, '0')}/${expirationYear}`}</Typography>\n )\n }\n />\n </PaymentMethodContainer>\n );\n}\n\nexport function NewPaymentMethod({\n hasExistingPaymentMethod,\n checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item $hideBorders={!hasExistingPaymentMethod} onClick={onSelect} $disabled={readOnly}>\n {hasExistingPaymentMethod && (\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\n />\n )}\n <Collapse in={checked}>\n <StripePaymentForm onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n </Collapse>\n </NewPaymentMethodContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Grid from '@mui/material/Grid';\nimport { useCheckoutModel, usePaymentStepModel } from '../../hooks';\nimport { ExistingPaymentMethod, NewPaymentMethod } from './PaymentMethods';\nimport { Typography } from '../../../common/Typography';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nconst PaymentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nexport function PaymentStep({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState } = useCheckoutModel();\n const { customer } = checkoutState || {};\n const { errorMessage, useNewPaymentMethod, setUseNewPaymentMethod } = usePaymentStepModel();\n const { readOnly } = widgetState;\n\n const handleOnSelect = (openNewPaymentMethod: boolean) => {\n if (readOnly) {\n return;\n }\n\n setUseNewPaymentMethod(openNewPaymentMethod);\n };\n\n return (\n <PaymentContainer container>\n {!!errorMessage && (\n <Alert severity=\"error\" sx={{ alignItems: 'center' }}>\n <Typography overrideColor=\"inherit\">{errorMessage}</Typography>\n </Alert>\n )}\n <ExistingPaymentMethod\n readOnly={readOnly}\n checked={!useNewPaymentMethod}\n paymentMethodDetails={customer?.paymentMethodDetails}\n onSelect={() => handleOnSelect(false)}\n />\n <NewPaymentMethod\n hasExistingPaymentMethod={!!customer?.paymentMethodDetails}\n readOnly={readOnly}\n checked={useNewPaymentMethod}\n checkoutLocalization={checkoutLocalization}\n onSelect={() => handleOnSelect(true)}\n onBillingAddressChange={onBillingAddressChange}\n collectPhoneNumber={collectPhoneNumber}\n />\n </PaymentContainer>\n );\n}\n","import React from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ChangePlanButton = ({\n onClick,\n checkoutLocalization,\n size,\n}: {\n onClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n size: ButtonProps['size'];\n}) => {\n return (\n <Button\n className=\"stigg-checkout-change-plan-button\"\n sx={{ textTransform: 'none' }}\n variant=\"text\"\n size={size}\n onClick={onClick}>\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color=\"primary.main\"\n variant=\"h3\"\n style={{ lineHeight: '24px' }}>\n {checkoutLocalization.changePlan}\n </Typography>\n </Button>\n );\n};\n","import React from 'react';\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nimport { Typography } from '../../common/Typography';\nimport { useCheckoutModel } from '../hooks/useCheckoutModel';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from '../components/ChangePlanButton';\n\ntype PlanHeaderProps = {\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport function PlanHeader({ allowChangePlan = false, onChangePlan }: PlanHeaderProps) {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n\n return (\n <>\n <Box sx={{ marginBottom: '16px' }}>\n <Typography variant=\"body1\" color=\"disabled\" style={{ opacity: 0.6, marginBottom: '8px' }}>\n Selected plan\n </Typography>\n\n <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>\n <Typography variant=\"h1\">{plan?.displayName}</Typography>\n\n {allowChangePlan && onChangePlan && (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: plan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"medium\"\n />\n )}\n </Box>\n </Box>\n <Divider className=\"stigg-checkout-plan-header-divider\" />\n </>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function formatBillingPeriod(billingPeriod: BillingPeriod) {\n switch (billingPeriod) {\n case BillingPeriod.Annually:\n return 'Annual';\n case BillingPeriod.Monthly:\n return 'Monthly';\n default:\n return '';\n }\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Chip from '@mui/material/Chip';\nimport Color from 'color';\n\nexport const BillingPeriodPickerContainer = styled(Box)`\n margin: 16px 0;\n`;\n\nexport const BillingPeriodButton = styled.button<{\n $isActive?: boolean;\n $disabled?: boolean;\n $isOnlyBillingPeriod?: boolean;\n}>`\n cursor: ${({ $disabled, $isOnlyBillingPeriod }) =>\n $disabled ? 'default' : $isOnlyBillingPeriod ? 'default' : 'pointer'};\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 2px 8px;\n border-radius: 10px;\n border: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n let borderColor = theme.stigg.palette.outlinedBorder;\n if ($isOnlyBillingPeriod) {\n borderColor = 'transparent';\n } else if ($isActive) {\n borderColor = theme.stigg.palette.outlinedRestingBorder;\n }\n return `1px solid ${borderColor}`;\n }};\n background: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n if ($isOnlyBillingPeriod) {\n return 'transparent';\n }\n if ($isActive) {\n return Color(theme.stigg.palette.primary).alpha(0.15).toString();\n }\n return 'transparent';\n }};\n text-transform: none;\n text-align: start;\n height: 36px;\n\n &.MuiButton-root {\n padding: 0 16px 0 8px;\n &:hover {\n background: none;\n }\n }\n`;\n\nexport const BillingPeriodOptions = styled(Box)`\n display: flex;\n gap: 16px;\n margin-top: 16px;\n`;\n\nexport const BillingPeriodPrice = styled.div`\n display: flex;\n align-items: baseline;\n gap: 8px;\n`;\n\nexport const DiscountChip = styled(Chip)`\n & .MuiChip-label {\n font-size: 12px;\n }\n`;\n","import { partition } from 'lodash';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\n\nimport Box from '@mui/material/Box';\nimport Radio from '@mui/material/Radio';\nimport { BillingPeriod, Plan } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { formatBillingPeriod } from '../../formatting';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { BillingPeriodButton, BillingPeriodOptions, BillingPeriodPickerContainer } from './BillingPeriodPicker.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\n\nconst BillingPeriodOption = ({\n billingPeriod,\n isOnlyBillingPeriod,\n}: {\n billingPeriod: BillingPeriod;\n isOnlyBillingPeriod: boolean;\n}) => {\n const { billingPeriod: selectedBillingPeriod, setBillingPeriod } = usePlanStepModel();\n const isActive = selectedBillingPeriod === billingPeriod;\n\n return (\n <BillingPeriodButton\n onClick={() => setBillingPeriod(billingPeriod)}\n $isActive={isActive}\n $isOnlyBillingPeriod={isOnlyBillingPeriod}>\n <Radio\n checked={isActive}\n onChange={() => setBillingPeriod(billingPeriod)}\n value={billingPeriod}\n disabled={isOnlyBillingPeriod}\n inputProps={{ 'aria-label': formatBillingPeriod(billingPeriod) }}\n sx={{ padding: 0, marginRight: '8px' }}\n />\n\n <Box>\n <Typography variant=\"h3\" color=\"primary\">\n {formatBillingPeriod(billingPeriod)}\n </Typography>\n </Box>\n </BillingPeriodButton>\n );\n};\n\ntype BillingPeriodPickerProps = {\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n};\n\nexport function BillingPeriodPicker({ plan, checkoutLocalization }: BillingPeriodPickerProps) {\n const [monthlyPrices, annualPrices] = partition(\n plan?.pricePoints,\n (price) => price.billingPeriod === BillingPeriod.Monthly,\n );\n\n const hasBothBillingPeriods = !!monthlyPrices?.length && !!annualPrices?.length;\n if (!hasBothBillingPeriods) {\n return null;\n }\n\n return (\n <BillingPeriodPickerContainer>\n <Typography variant=\"h6\" color=\"primary\" fontWeight={FontWeight.Medium}>\n {checkoutLocalization.billingPeriodsTitle}\n </Typography>\n\n <BillingPeriodOptions>\n {!!monthlyPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Monthly}\n billingPeriod={BillingPeriod.Monthly}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n {!!annualPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Annually}\n billingPeriod={BillingPeriod.Annually}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n </BillingPeriodOptions>\n </BillingPeriodPickerContainer>\n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillingModel, BillingPeriod, Plan, Price } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { useChargesSort } from '../../../hooks/useChargeSort';\nimport { calculateUnitQuantityText } from '../../../paywall/utils/calculateUnitQuantityText';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { InputField } from '../../components';\nimport { useCheckoutModel, usePlanStepModel, useProgressBarModel } from '../../hooks';\nimport { TiersSelectContainer } from '../../../common/TiersSelectContainer';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { mq } from '../../../common/mediaQuery';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\nexport type UsePlanStepModel = ReturnType<typeof usePlanStepModel>;\n\ntype CheckoutChargeListProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n};\n\nconst StyledPlanCharge = styled.div`\n display: flex;\n min-height: 60px;\n margin-top: 16px;\n flex-direction: column;\n\n ${mq.md} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst getValidationText = (charge: Price, quantity?: number) => {\n const { minUnitQuantity, maxUnitQuantity } = charge;\n if (!quantity || quantity < (minUnitQuantity || 1)) {\n return `Minimum ${minUnitQuantity || 1}`;\n }\n\n if (maxUnitQuantity && quantity > maxUnitQuantity) {\n return `Maximum ${maxUnitQuantity}`;\n }\n\n return '';\n};\n\nexport function PlanCharge({\n charge,\n isValid,\n setBillableFeature,\n billableFeature,\n onValidationChange,\n}: {\n charge: Price;\n isValid: boolean;\n billableFeature?: BillableFeatureInput;\n setBillableFeature: UsePlanStepModel['setBillableFeature'];\n onValidationChange: ({ featureId, isValid }: { featureId: string; isValid: boolean }) => void;\n}) {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const featureId = charge.feature?.featureId;\n const isBaseCharge = !featureId;\n const isPayAsYouGo = charge.pricingModel === BillingModel.UsageBased;\n const displayName = isBaseCharge\n ? 'Base charge'\n : getFeatureDisplayNameText(charge.feature?.displayName || '', charge.feature?.units, charge.feature?.unitsPlural);\n const hasQuantityRestrictions = !!(charge?.minUnitQuantity || charge?.maxUnitQuantity);\n\n const handleQuantityChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isBaseCharge || !featureId) return;\n\n const { minUnitQuantity, maxUnitQuantity } = charge;\n const value = event?.target?.value ? Number(event?.target?.value) : null;\n if (\n !value ||\n value <= 0 ||\n (minUnitQuantity && value < minUnitQuantity) ||\n (maxUnitQuantity && value > maxUnitQuantity)\n ) {\n onValidationChange({ featureId, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setBillableFeature(featureId, value ?? null);\n return;\n }\n\n onValidationChange({ featureId, isValid: true });\n const quantity = getValidPriceQuantity(charge, value);\n setBillableFeature(featureId, quantity);\n };\n\n let chargeRow;\n\n if (isBaseCharge || isPayAsYouGo) {\n const formattedAmount = currencyPriceFormatter({\n amount: charge.amount!,\n currency: charge.currency,\n locale: 'en-us',\n minimumFractionDigits: 2,\n });\n\n chargeRow = `${formattedAmount}`;\n if (isPayAsYouGo) {\n chargeRow += ' / unit';\n }\n } else if (charge.isTieredPrice && charge.tiersMode && featureId) {\n const quantity = billableFeature?.quantity || 1;\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n tiersMode={charge.tiersMode}\n value={quantity}\n handleChange={(quantity: number) => {\n setBillableFeature(featureId, quantity);\n }}\n width={120}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: isScreenWiderThanMd ? 120 : '100%' }}\n id={`${featureId}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n />\n );\n }\n\n return (\n <StyledPlanCharge>\n <Box display=\"flex\" flexDirection=\"column\">\n <Typography variant=\"h6\" color=\"primary\" lineHeight=\"24px\">\n {displayName}\n </Typography>\n {hasQuantityRestrictions && (\n <Typography variant=\"body1\" color=\"secondary\" lineHeight=\"20px\">\n {calculateUnitQuantityText(charge.minUnitQuantity, charge.maxUnitQuantity, charge.feature?.unitsPlural)}\n </Typography>\n )}\n </Box>\n\n <Typography variant=\"h6\" color=\"primary\">\n {chargeRow}\n </Typography>\n </StyledPlanCharge>\n );\n}\n\nexport function CheckoutChargeList({ plan, billingPeriod }: CheckoutChargeListProps) {\n const { billableFeatures, setBillableFeature } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { setIsValid } = useCheckoutModel();\n const planCharges = useChargesSort(plan?.pricePoints?.filter((p) => p.billingPeriod === billingPeriod) || []);\n const [chargesValidation, setChargesValidation] = useState(\n planCharges?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.feature?.featureId || 'base-charge'] = true;\n return acc;\n }, {}),\n );\n\n useEffect(() => {\n const isDisabled = Object.values(chargesValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [chargesValidation, setIsDisabled, setIsValid]);\n\n return (\n <>\n {planCharges?.map((charge) => {\n const billableFeature = billableFeatures.find((x) => x.featureId === charge.feature?.featureId);\n return (\n <PlanCharge\n key={charge.feature?.featureId || 'base-charge'}\n charge={charge}\n setBillableFeature={setBillableFeature}\n billableFeature={billableFeature}\n isValid={chargesValidation[charge.feature?.featureId || 'base-charge']}\n onValidationChange={({ featureId, isValid }: { featureId: string; isValid: boolean }) =>\n setChargesValidation((prev) => ({ ...prev, [featureId]: isValid }))\n }\n />\n );\n })}\n </>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\n\nexport const CheckoutPlanContainer = styled(Box)`\n width: 100%;\n`;\n","import React from 'react';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nimport { useCheckoutModel } from '../../hooks/useCheckoutModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { PlanHeader } from '../../planHeader';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { CheckoutChargeList } from './CheckoutChargeList';\nimport { CheckoutPlanContainer } from './CheckoutPlanStep.style';\n\nexport const CheckoutPlanStep = ({ onChangePlan }: Pick<CheckoutContainerProps, 'onChangePlan'>) => {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const { billingPeriod } = usePlanStepModel();\n\n return (\n <>\n <PlanHeader allowChangePlan onChangePlan={onChangePlan} />\n <CheckoutPlanContainer>\n <BillingPeriodPicker plan={plan} checkoutLocalization={checkoutLocalization} />\n <CheckoutChargeList plan={plan} billingPeriod={billingPeriod} />\n </CheckoutPlanContainer>\n </>\n );\n};\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"arrow-right\">\n<path id=\"Shape\" d=\"M2.66699 8H13.3337\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M9.33301 4L13.333 8L9.33301 12\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nimport ArrowRightIcon from '../../../assets/arrow-right.svg';\n\nexport const StyledArrowRightIcon = styled(ArrowRightIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Alert from '@mui/material/Alert';\nimport { CheckoutStatePlan, Subscription } from '@stigg/js-client-sdk';\nimport { StyledArrowRightIcon } from './StyledArrow';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from './ChangePlanButton';\n\nconst DowngradeToFreePlansContainer = styled(Box)`\n display: flex;\n`;\n\nconst DowngradeToFreeAlert = styled(Alert)`\n margin-bottom: 16px;\n`;\n\nexport const DowngradeToFreePlanBox = styled(Box)`\n padding: 16px;\n border-radius: 10px;\n width: 100%;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nexport const DowngradeToFreeContent = ({\n headerText,\n planName,\n priceText,\n}: {\n headerText: string;\n planName: string;\n priceText: string;\n}) => {\n return (\n <DowngradeToFreePlanBox className=\"stigg-checkout-downgrade-to-free-container\">\n <Typography\n className=\"stigg-checkout-downgrade-to-free-text-header\"\n style={{ opacity: 0.8 }}\n variant=\"caption\"\n color=\"disabled\">\n {headerText}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-plan-name\" bold variant=\"h3\" color=\"primary\">\n {planName}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-price-text\" color=\"secondary\">\n {priceText}\n </Typography>\n </DowngradeToFreePlanBox>\n );\n};\n\ntype DowngradeToFreePlanProps = {\n checkoutLocalization: CheckoutLocalization;\n activeSubscription: Subscription;\n freePlan: CheckoutStatePlan;\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport const DowngradeToFreePlan = ({\n checkoutLocalization,\n activeSubscription,\n freePlan,\n allowChangePlan = false,\n onChangePlan,\n}: DowngradeToFreePlanProps) => {\n let alertAction;\n if (allowChangePlan && onChangePlan) {\n alertAction = (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: freePlan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"small\"\n />\n );\n }\n\n const paidBillingPeriod =\n activeSubscription.prices.length > 0 ? activeSubscription.prices[0].billingPeriod : undefined;\n\n return (\n <>\n <DowngradeToFreeAlert action={alertAction} className=\"stigg-checkout-downgrade-to-free-alert\" severity=\"info\">\n <Typography span color=\"secondary\">\n {checkoutLocalization.downgradeToFree.alertText({ plan: activeSubscription.plan })}\n </Typography>\n </DowngradeToFreeAlert>\n\n <DowngradeToFreePlansContainer className=\"stigg-checkout-downgrade-to-free-plans-container\">\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.paidPlanHeader({ plan: activeSubscription.plan })}\n planName={checkoutLocalization.downgradeToFree.paidPlanName({ plan: activeSubscription.plan })}\n priceText={checkoutLocalization.downgradeToFree.paidPlanPriceText({\n plan: activeSubscription.plan,\n billingPeriod: paidBillingPeriod,\n })}\n />\n\n <StyledArrowRightIcon\n className=\"stigg-checkout-downgrade-to-free-arrow\"\n style={{ margin: 'auto 16px', minWidth: '16px' }}\n />\n\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.freePlanHeader({ plan: freePlan })}\n planName={checkoutLocalization.downgradeToFree.freePlanName({ plan: freePlan })}\n priceText={checkoutLocalization.downgradeToFree.freePlanPriceText({ plan: freePlan })}\n />\n </DowngradeToFreePlansContainer>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Elements } from '@stripe/react-stripe-js';\nimport {\n PricingType,\n BillingAddress,\n ApplySubscription,\n CheckoutStatePlan,\n ApplySubscriptionResults,\n} from '@stigg/js-client-sdk';\nimport { CheckoutContent, CheckoutLayout, CheckoutPanel } from './CheckoutContainer.style';\nimport { CheckoutProgressBar } from './progressBar/CheckoutProgressBar';\nimport { CheckoutSummary, CheckoutSummarySkeleton } from './summary';\nimport { CheckoutStep, CheckoutStepKey, useCheckoutModel, useProgressBarModel } from './hooks';\nimport { CheckoutAddonsStep } from './steps/addons';\nimport { PaymentStep } from './steps/payment';\nimport { useStripeIntegration } from './steps/payment/stripe';\nimport { CheckoutPlanStep } from './steps/plan';\nimport { useCheckoutContext } from './CheckoutProvider';\nimport { ContentLoadingSkeleton } from './components';\nimport { DowngradeToFreePlan } from './components/DowngradeToFreeContainer';\nimport { MockCheckoutPreviewCallback } from './types';\n\ntype StepProps = {\n content: React.ReactNode;\n};\n\ntype StripeClientSecret = { clientSecret: string };\ntype StripeManualMode = { mode: 'setup' | 'payment' | 'subscription'; currency: string };\n\nconst getStepProps = (\n currentStep: CheckoutStep,\n {\n onBillingAddressChange,\n onChangePlan,\n collectPhoneNumber,\n }: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'onChangePlan' | 'collectPhoneNumber'>,\n): StepProps => {\n switch (currentStep.key) {\n case CheckoutStepKey.PLAN:\n return { content: <CheckoutPlanStep onChangePlan={onChangePlan} /> };\n case CheckoutStepKey.ADDONS:\n return { content: <CheckoutAddonsStep /> };\n case CheckoutStepKey.PAYMENT:\n return {\n content: (\n <PaymentStep onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n ),\n };\n default:\n return { content: null };\n }\n};\n\nexport type CheckoutResult = { success: boolean; errorMessage?: string; results?: ApplySubscriptionResults };\n\nexport type OnCheckoutParams = {\n customerId: string;\n checkoutParams: ApplySubscription;\n checkoutAction: (params: ApplySubscription) => Promise<CheckoutResult>;\n};\n\nexport type OnCheckoutCompletedParams = { success: boolean; error?: string };\n\nexport type CheckoutContainerProps = {\n onCheckout?: (params: OnCheckoutParams) => Promise<CheckoutResult>;\n onCheckoutCompleted: (params: OnCheckoutCompletedParams) => Promise<void>;\n onChangePlan?: (params: { currentPlan: CheckoutStatePlan | undefined }) => void;\n onBillingAddressChange?: (params: { billingAddress: BillingAddress }) => Promise<void>;\n disablePromotionCode?: boolean;\n disableSuccessAnimation?: boolean;\n collectPhoneNumber?: boolean;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport function CheckoutContainer({\n onCheckout,\n onCheckoutCompleted,\n onChangePlan,\n onBillingAddressChange,\n collectPhoneNumber,\n disablePromotionCode,\n disableSuccessAnimation,\n onMockCheckoutPreview,\n}: CheckoutContainerProps) {\n const { stripePromise, setupIntentClientSecret } = useStripeIntegration();\n const [{ stiggTheme, widgetState, theme }] = useCheckoutContext();\n const { currentStep } = useProgressBarModel();\n\n const { isLoadingCheckoutData } = widgetState;\n\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const isFreeDowngrade =\n !!plan &&\n plan.pricingType === PricingType.Free &&\n !!activeSubscription &&\n activeSubscription.pricingType !== PricingType.Free;\n\n const { content } = getStepProps(currentStep, { onBillingAddressChange, onChangePlan, collectPhoneNumber });\n\n const checkoutContent = (\n <>\n {isFreeDowngrade ? (\n <DowngradeToFreePlan\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n freePlan={plan!}\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n activeSubscription={activeSubscription!}\n allowChangePlan\n checkoutLocalization={checkoutLocalization}\n onChangePlan={onChangePlan}\n />\n ) : (\n <>{content}</>\n )}\n </>\n );\n\n const stripeElementsMode: StripeClientSecret | StripeManualMode = useMemo(\n () => (setupIntentClientSecret ? { clientSecret: setupIntentClientSecret } : { mode: 'setup', currency: 'usd' }),\n [setupIntentClientSecret],\n );\n\n return (\n <Elements\n key={setupIntentClientSecret}\n stripe={stripePromise}\n options={{\n ...stripeElementsMode,\n appearance: {\n theme: 'stripe',\n variables: {\n colorText: stiggTheme.palette.text.primary,\n colorPrimaryText: stiggTheme.palette.text.primary,\n colorTextPlaceholder: stiggTheme.palette.text.disabled,\n fontFamily: stiggTheme.typography.fontFamily,\n colorBackground: theme?.paymentInputBackgroundColor,\n borderRadius: theme?.paymentInputBorderRadius,\n },\n rules: theme?.paymentInputBorderColor\n ? {\n '.Input': {\n borderColor: theme?.paymentInputBorderColor,\n },\n }\n : undefined,\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n </CheckoutContent>\n </CheckoutLayout>\n </Elements>\n );\n}\n","import React from 'react';\nimport { CheckoutProvider, CheckoutProviderProps } from './CheckoutProvider';\nimport { CheckoutContainer, CheckoutContainerProps } from './CheckoutContainer';\nimport { CheckoutMockProps } from './types';\n\nexport type CheckoutProps = CheckoutProviderProps & CheckoutContainerProps & CheckoutMockProps;\n\nexport const Checkout = ({\n textOverrides,\n theme,\n resourceId,\n planId,\n preferredBillingPeriod,\n billingCountryCode,\n billableFeatures,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n ...containerProps\n}: CheckoutProps) => {\n return (\n <CheckoutProvider\n textOverrides={textOverrides}\n theme={theme}\n resourceId={resourceId}\n planId={planId}\n preferredBillingPeriod={preferredBillingPeriod}\n billingCountryCode={billingCountryCode}\n billableFeatures={billableFeatures}\n billingInformation={billingInformation}\n onMockCheckoutState={onMockCheckoutState}\n skipCheckoutSteps={skipCheckoutSteps}>\n <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../StiggProvider';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paramName, window.location.search]);\n}\n\nexport enum ProvisionStatus {\n IN_PROGRESS = 'IN_PROGRESS',\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n}\n\nexport const useWaitForCheckoutCompleted = ({\n onProvisionStart,\n onProvisionSucceeded,\n onProvisionFailed,\n}: {\n onProvisionStart?: () => void;\n onProvisionSucceeded?: (subscription?: Subscription | null) => void;\n onProvisionFailed?: (err?: any) => void;\n} = {}) => {\n const { stigg } = useStiggContext();\n const [provisionStatus, setProvisionStatus] = useState(ProvisionStatus.IN_PROGRESS);\n const [isAwaitingCheckout, setIsAwaitingCheckout] = useState(false);\n const checkoutCompleted = useQueryParams('checkoutCompleted') as string;\n\n useEffect(() => {\n const waitForCheckoutToComplete = async () => {\n if (!checkoutCompleted || checkoutCompleted.toLowerCase() === 'false' || isAwaitingCheckout) {\n return;\n }\n\n setIsAwaitingCheckout(true);\n if (onProvisionStart) {\n onProvisionStart();\n }\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n if (onProvisionSucceeded) {\n onProvisionSucceeded(subscription);\n }\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n if (onProvisionFailed) {\n onProvisionFailed(err);\n }\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n void waitForCheckoutToComplete();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n"],"names":["_extends","React.createElement","calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","formatNumber","usageLimit","toLocaleString","maximumFractionDigits","getColor","theme","$color","stigg","palette","primary","primaryLight","warning","error","text","StyledText","Text","$span","getLevel","variant","mapFontWeight","fontWeight","StyledFontWeight","Bold","Normal","getFontWeight","typography","h1","h2","h3","body","caption","Typography","forwardRef","props","ref","children","span","style","color","overrideColor","bold","as","rest","useTheme","level","levelClassName","className","React","EntitlementName","EntitlementRowContainer","EntitlementIconContainer","fontSize","EntitlementCheckIcon","CheckUrl","disabled","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","Year","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","unitBasedEntitlement","resetPeriodSuffix","featureUnits","units","displayName","EntitlementRow","displayNameOverride","restProps","PlanEntitlementsContainer","getTitle","plan","paywallLocale","hasFeatures","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","key","visibleEntitlements","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","length","id","SubscribeIntentionType","flexLayoutMapper","horizontalAlignment","left","center","right","getResolvedTheme","customizedTheme","primaryColor","Color","textColor","successColor","errorColor","baseTheme","hex","primaryDark","darken","alpha","toString","backgroundPaper","backgroundHighlight","backgroundSection","backgroundButton","outlinedBorder","outlinedRestingBorder","outlinedHoverBackground","lightness","switchBorder","lighten","switchFill","switchHandle","errorDark","success","successDark","white","secondary","tertiary","layout","planMinWidth","planMaxWidth","planMargin","planPadding","ctaAlignment","headerAlignment","descriptionAlignment","descriptionMinHeight","switchBottomSpacing","shadows","light","popover","border","radius","fontFamily","customCss","merge","formatDate","date","moment","utc","format","getSubscriptionScheduleUpdateTexts","scheduledUpdate","subscriptionPrices","billingPeriodRange","options","withDate","postfix","subscriptionScheduleType","SubscriptionScheduleType","Downgrade","shouldShowDate","isNil","end","scheduledExecutionTime","isSame","line1","targetPackage","line2","BillingPeriod","variables","scheduleVariables","toLocaleLowerCase","UnitAmount","compact","find","featureId","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","getAmount","amount","selectedBillingPeriod","shouldShowMonthlyPriceAmount","Annually","calculateTierPriceVolume","currentTier","perUnitQuantity","unitPrice","flatPrice","calculateTierPriceGraduated","remainingQuantity","prevUpTo","currentTierIndex","breakdown","push","unitsInTier","consumed","Math","min","total","sum","calculateTierPrice","tiersMode","TiersMode","Volume","Graduated","hasTierWithUnitPrice","some","isBulkTiers","every","isQuantityInFirstTier","getTiersPerUnitQuantities","currentSubscription","selectDefaultTierIndex","planTierPrices","isTieredPrice","selectedDefaultTierIndex","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","result","PriceTierComparison","compareSelectedTierToCurrentTier","perUnitQuantityByFeature","Equal","currentTierPrice","oldQuantity","newQuantity","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","css","ButtonText","ScheduledUpdateText","CancelScheduledUpdateButton","TrialDaysLeft","ButtonLayout","PlanOfferingButton","isNextPlan","customer","isCustomerOnTrial","onPlanSelected","withTrialLeftRow","useState","isLoading","setIsLoading","planCTAButton","currentPlan","custom","downgrade","startTrial","upgrade","startNew","switchToBillingPeriod","cancelScheduledUpdate","resolvedDowngrade","isFunction","resolvedUpgrade","buttonProps","isLowerThanCurrentPlan","intentionType","DOWNGRADE_PLAN","UPGRADE_TRIAL_TO_PAID","UPGRADE_PLAN","isCustomPrice","pricingType","PricingType","Custom","scheduledUpdateText","isTriable","isCurrentCustomerPlan","START_TRIAL","isSameBillingPeriod","currentCustomerPlanBillingPeriod","Free","planComparison","CHANGE_UNIT_QUANTITY","CHANGE_BILLING_PERIOD","REQUEST_CUSTOM_PLAN_ACCESS","CANCEL_SCHEDULED_UPDATES","isDisabled","onClick","Promise","resolve","loading","size","height","trialDaysLeft","_path","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","currencyDisplay","replace","numberFormatter","number","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","formattedUnits","blockSize","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","StyledButton","MuiButton","shouldForwardProp","prop","startsWith","$success","$error","Button","InputField","styled","TextField","borderRadius","fieldset","borderColor","padding","SkeletonsContainer","Grid","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","flex","Skeleton","ReactSkeleton","ContentContainer","ContentLoadingSkeleton","container","item","width","Divider","sx","marginY","marginTop","ON_WHEEL_BLUR","e","target","blur","VolumePerUnitInput","value","handleChange","type","onWheel","fullWidth","minHeight","InputProps","endAdornment","InputAdornment","position","onChange","event","Number","TierSelect","Select","TierInput","OutlinedInput","VolumeBulkSelect","componentId","input","MenuProps","MenuListProps","disablePadding","PaperProps","MenuItem","lineHeight","TiersSelectLayout","TiersSelectContainer","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setPerUnitQuantityByFeature","planPrice","undefined","handlePerUnitQuantityChange","prevState","startingAtCaption","PlanOfferingButtonHeight","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","PlanHeader","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","isCustomerInCustomPlan","additionalChargesMayApply","showCTAButton","planBadge","highlightChip","onPlanButtonClick","perUnitBillableFeatures","Object","keys","classNames","description","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","round","getPlanBillingPeriodAmount","calculatePaywallDiscountRate","plans","reduce","maxDiscount","monthlyAmount","annuallyAmount","max","STIGG_WATERMARK_CLASSNAME","PoweredByStiggThemedSvg","PoweredByStiggSvg","StyledPoweredByStigg","$alignSelf","PoweredByStigg","source","showWatermark","align","onWatermarkClick","sourceDomain","window","location","hostname","open","cursor","hasPricePoints","hasPricePointsForPlans","getPlansToDisplay","shouldHidePlan","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","billableFeatures","subscription","useMemo","values","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","cacheTtlMs","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","clientName","CLIENT_NAME","clientVersion","CLIENT_VERSION","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","useEffect","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","useContext","Error","computeBillingPeriods","activeSubscriptions","preferredBillingPeriod","billingPeriods","flatMap","x","counts","countBy","uniq","defaultBillingPeriod","activeSubscription","status","SubscriptionStatus","Active","calculateTrialDaysLeft","trialEndDate","diff","defaultCheckoutTypography","FontWeight","addCssUnits","defaultValue","JSFontWeight","mapTypography","defaultTypography","fontFamilyUrl","mapAlignment","alignment","Alignment","Left","Center","Right","mapCustomerPortalConfiguration","configuration","paywallBackgroundColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","planId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","pxToRem","bodyFontFamily","headingFontFamily","fontSizes","createMuiPalette","main","SdkThemeProvider","componentTheme","muiPalette","materialTheme","createTheme","MuiThemeProvider","THEME_ID","ThemeProvider","StyledThemeProvider","useCustomerPortal","customerPortal","setCustomerPortal","loadCustomerPortal","getCustomerPortal","customerPortalData","getResolvedCustomerPortalLocalize","customerPortalDefaultLocalization","manageSubscription","usageTabTitle","addonsTabTitle","promotionsTabTitle","promotionsSubtitle","contactSupportTitle","contactSupportLink","editBilling","invoicesTitle","viewInvoiceHistory","editPaymentDetails","paywallSectionTitle","cancelScheduledUpdatesButtonTitle","getResolvedCustomerPortalTheme","globalTheme","themeOverride","remoteConfiguration","customerPortalDefaultTheme","sectionTitleColor","planNameColor","listItemBackgroundColor","tabMaxHeight","iconsBackgroundColor","CustomerPortalContext","useCustomerPortalContext","useCheckContextExists","contextType","CustomerPortalProvider","textOverrides","customerPortalTheme","resolvedTextOverrides","onBillingPeriodChange","hasCustomerPortalContext","isCustomerPortalLoading","customerPortalResourceId","handlePeriodChange","component","SectionHeader","$disableMargin","SectionTitle","CustomerPortalIntentionType","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","MANAGE_SUBSCRIPTION","marginLeft","AddonsList","addons","subscriptions","isEmpty","addon","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","getIconColor","_rect","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","_","newValue","shouldShowTabs","borderBottom","Tab","textTransform","breakpoints","xs","sm","md","lg","xl","xxl","mqMinWidth","breakpoint","mq","obj","useIsScreenWiderThan","useMediaQueryMui","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","isScreenWiderThanMd","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","ArrowDown","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","marginRight","SectionContainer","$backgroundColor","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","billingModel","scheduledDowngradeToFree","planName","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","$display","$maxLines","$wordBreak","$bold","checkTextClamped","element","clientHeight","scrollHeight","offsetWidth","scrollWidth","LongText","leaveDelay","maxLines","wordBreak","tooltipPlacement","dataTestId","isTextClamped","setIsTextClamped","textClamped","OnTrialBadge","StyledLink","Link","TrialPanel","includePlanName","SandClockIcon","trialRemainingDays","UPGRADE_TRIAL_PLAN","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","floor","getUsageProgressStatus","getResetUsageText","usagePeriodEnd","calculateResetDiff","StyledLinearProgress","LinearProgress","string","$progressStatus","StyledDivider","FeatureUsageProgressBar","usagePercentage","linearProgressStatus","EntitlementCtaButton","onBuyMore","canBuyMore","canUpgradeSubscription","hasCustomSubscription","ChargeItem","hideChargePrice","whiteSpace","ChargeList","entitlementByFeature","keyBy","filteredSubscriptionPrices","SubscriptionsOverview","isLoadingData","CustomerPortalHeaderLayout","CustomerPortalHeader","ExternalLinkText","LinkIcon","ExternalLinkIcon","ExternalLinkButton","url","startIcon","strokeWidth","InformationGridContainer","InformationGridRow","InformationGrid","rows","classNamePrefix","labelTypographyProps","valueTypographyProps","SkeletonButton","PaymentDetailsSection","billingInformation","items","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","CustomerPortalPaywall","paywallComponent","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","getFeatureDisplayName","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","Footer","CustomerUsageLoader","isMdScreen","spacing","range","MAX_BOXES","CustomerUsageData","filterEntitlements","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","filteredEntitlements","entitlementsToShow","slice","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","customerSubscriptions","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterAddons","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","compatibleAddons","activeSubscriptionAddons","planAddon","initialAddons","cloneDeep","useSetAddon","useCheckoutContext","setState","draft","addonToUpdate","addonsStep","currentAddon","useRemoveAddon","remove","useAddonsState","useAddonsStepModel","state","setAddon","removeAddon","useCheckoutState","checkout","widgetState","checkoutLocalization","checkoutState","useSetWidgetReadonly","readOnly","useSetIsValid","isValid","useCheckoutModel","setWidgetReadOnly","setIsValid","useLoadCheckout","onMockCheckoutState","setCheckout","loadCheckout","getCheckoutState","getValidPriceQuantity","hasMonthlyPrices","hasAnnualPrices","hasMultipleBillingPeriods","getBillingPeriod","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","hasMonthlyPlan","hasAnnualPlan","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","billableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","canSkipPlanStep","availableCharges","availableChargesIds","preconfiguredChargesIds","getProgressBarInitialState","skipCheckoutSteps","stepsToFilter","step","useProgressBarState","progressBar","useSetActiveStep","stepNumber","useMarkStepAsCompleted","isCheckoutComplete","useGoNext","useSetIsDisabled","useProgressBarModel","progressBarState","currentStep","isLastStep","setActiveStep","markStepAsCompleted","goNext","setIsDisabled","useSubscriptionModel","promotionCode","paymentStep","billingAddress","taxPercentage","mapBillingInformation","previewSubscription","onMockCheckoutPreview","estimateAddons","subscriptionPreview","errorMessage","previewSubscriptionProps","split","errorMsg","trim","usePreviewSubscriptionAction","previewSubscriptionAction","SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME","usePreviewSubscription","setSubscriptionPreview","isFetchingSubscriptionPreview","setIsFetchingSubscriptionPreview","estimateSubscription","timer","setTimeout","clearTimeout","getPaymentStepInitialState","useNewPaymentMethod","paymentMethodDetails","useSetUseNewPaymentMethod","useSetErrorMessage","useSetBillingAddress","usePaymentState","usePaymentStepModel","setUseNewPaymentMethod","setErrorMessage","setBillingAddress","getResolvedCheckoutLocalize","checkoutDefaultLocalization","changePlan","billingPeriodsTitle","addAddonText","newPaymentMethodText","newPaymentMethodBillingAddressTitle","newPaymentMethodCardTitle","summary","addCouponCodeText","couponCodeTitle","addonsSectionTitle","discountsSectionTitle","onlyPayAsYouGoText","startsAtText","proratedTotalDueText","baseChargeText","totalText","totalDueText","totalBillingPeriodText","appliedCreditsTitle","creditsForUnusedTimeText","credits","discountText","discountDetails","DiscountType","Percentage","discountTextPostfix","durationType","DiscountDurationType","Once","Repeating","prefix","Fixed","durationInMonths","Forever","taxTitle","taxDetails","percentage","changesWillApplyAtEndOfBillingPeriod","billingPeriodEnd","checkoutSuccessText","payAsYouGoTooltipText","checkoutButton","nextText","noChangesText","updateText","downgradeToFreeText","upgradeText","downgradeToFree","alertText","freePlanHeader","freePlanName","freePlanPriceText","paidPlanHeader","paidPlanName","paidPlanPriceText","defaultCheckoutTheme","getResolvedCheckoutTheme","_remoteConfiguration","globalPalette","paymentInputBackgroundColor","paymentInputBorderColor","paymentInputBorderRadius","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","CheckoutProgressBar","containerRef","progress","previousStep","setPreviousStep","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","inputProps","maxLength","onKeyDown","preventDefault","CircularProgress","AppliedCouponContainer","AppliedPromotionCode","onClearPromotionCode","minWidth","PromotionCodeSectionContainer","PromotionCodeSection","StripePaymentForm","onBillingAddressChange","collectPhoneNumber","shouldCollectPhoneNumber","handleAddressChange","args","complete","address","postalCode","postal_code","addressFields","callExternalBillingAddressChanged","pointerEvents","AddressElement","mode","fields","phone","defaultValues","PaymentElement","onReady","terms","card","billingDetails","useStripeIntegration","stripePromise","setStripePromise","billingIntegration","setupSecret","billingIdentifier","credentials","BillingVendorIdentifier","Stripe","accountId","publicKey","loadStripe","stripeAccount","setupIntentClientSecret","useSubscriptionState","FAILED_PAYMENT_COLLECTION_STATUSES","PaymentCollection","Failed","Processing","handleStripeFormValidations","elements","submit","elementsError","handleStripeNextAction","applySubscriptionResults","stripe","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","ActionRequired","handleNextAction","clientSecret","NextActionError","handleStripeSetup","confirmSetup","confirmParams","return_url","href","redirect","setupError","setupErrorMessage","retrieveSetupIntent","setupIntent","payment_method","newPaymentMethodId","handleNewPaymentMethod","stripeFormValidationsResults","paymentMethodId","ANIMATION_DURATION","CheckoutSuccessContainer","CheckoutSuccessText","StyledLottie","Lottie","CheckoutSuccess","block","inline","animationData","loop","autoplay","delay","ms","res","useSubmit","isMocked","onCheckout","onCheckoutCompleted","onSuccess","disableSuccessAnimation","subscriptionState","useStripe","useElements","handleSubmit","usedStiggCheckoutAction","paymentMethodResults","checkoutParams","checkoutAction","applySubscription","nextActionResults","results","externalCheckoutResults","checkoutResults","checkoutActionResults","WithSkeleton","RemainingCreditsCaption","proration","netAmount","positiveAmount","ScheduledUpdatesCaption","hasScheduledUpdates","currentBillingPeriodEnd","changesWillApplyText","NextBillingCaption","recurringInvoice","hasUnitBasedPricing","hasNonUnitBasedPricing","totalAmountText","nextBillingDate","billingPeriodText","CheckoutCaptions","formatPricePerUnit","totalAmount","isPerUnit","aBlockSize","billingPeriodString","formattedUnitPrice","formattedTotalPrice","getPriceBreakdownString","getLabel","previousTierUpTo","startUnit","GraduatedPriceBreakdown","LineItemContainer","LineItemRow","CollapsableSectionIcon","ChevronRight","$size","$isOpen","NestedBreakdownContainer","PayAsYouGoPriceTooltip","BilledPriceLineItem","isScreenWiderThanLg","isNestedBreakdownOpen","setIsNestedBreakdownOpen","toggleNestedBreakdown","prev","isPayAsYouGo","ceil","nestedBreakdown","shouldShowGraduatedPriceBreakdown","underline","IconButton","Collapse","FreeChargeLineItem","DiscountLineItem","AppliedCreditsLineItem","used","TaxLineItem","tax","SummaryContainer","SummaryCard","Paper","defaultProps","elevation","SummaryTitle","TotalDueText","resolveCheckoutButtonText","checkoutHasChanges","isFreeDowngrade","isPlanUpdate","CheckoutSummary","disablePromotionCode","isCheckoutCompletedSuccessfully","setIsCheckoutCompletedSuccessfully","partition","baseCharges","usageCharges","baseCharge","handleCheckout","onCheckoutClick","showPromotionCodeLine","showDiscountLine","hasDiscounts","hasPayAsYouGoCharges","onlyPayAsYouGoCharges","baseChargeLabel","paddingRight","margin","priceBillableFeature","addonPrice","addonQuantity","hasProrations","subTotal","CheckoutSummarySkeleton","CheckoutAddonsContainer","AddonListItemContainer","TrashButton","AddonListItem","addonState","initialAddonState","onAddonsValidationChange","isAdded","hasChanges","handleQuantityChange","handleUndo","marginX","helperText","FormHelperTextProps","paddingX","paddingY","CheckoutAddonsStep","acc","curr","addonsValidation","setAddonsValidation","PaymentMethodContainer","NewPaymentMethodContainer","$hideBorders","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","hasExistingPaymentMethod","PaymentContainer","PaymentStep","handleOnSelect","openNewPaymentMethod","Alert","severity","ChangePlanButton","allowChangePlan","onChangePlan","opacity","formatBillingPeriod","BillingPeriodPickerContainer","BillingPeriodButton","$isOnlyBillingPeriod","$isActive","BillingPeriodOptions","BillingPeriodOption","isOnlyBillingPeriod","isActive","monthlyPrices","annualPrices","hasBothBillingPeriods","StyledPlanCharge","div","getValidationText","PlanCharge","onValidationChange","isBaseCharge","hasQuantityRestrictions","chargeRow","formattedAmount","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","colorBackground","rules","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"react-sdk.cjs.development.js","sources":["../src/assets/check-stigg.svg","../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/utils/formatNumber.ts","../src/components/common/Typography.tsx","../src/components/paywall/EntitlementRow.tsx","../src/components/paywall/PlanEntitlements.tsx","../src/components/paywall/types.ts","../src/theme/getResolvedTheme.ts","../src/components/utils/getSubscriptionScheduleUpdateTexts.tsx","../src/components/utils/priceTierUtils.ts","../src/components/paywall/PlanOfferingButton.tsx","../src/assets/mini-schedule.svg","../src/components/utils/currencyUtils.ts","../src/components/utils/numberUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/Skeletons.style.ts","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../src/components/utils/onWheelBlur.ts","../src/components/common/VolumePerUnitInput.tsx","../src/components/common/VolumeBulkSelect.tsx","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.tsx","../src/components/paywall/PlanOffering.tsx","../src/components/paywall/BillingPeriodPicker.tsx","../src/components/utils/calculateDiscountRate.ts","../src/assets/powered-by-stigg.svg","../src/components/common/PoweredByStigg.tsx","../src/components/paywall/utils/hasPricePoints.ts","../src/components/paywall/utils/getPlansToDisplay.ts","../src/components/paywall/Paywall.tsx","../node_modules/regenerator-runtime/runtime.js","../src/services/logger.ts","../src/components/paywall/utils/computeDefaultBillingPeriod.ts","../src/components/paywall/utils/calculateTrialDaysLeft.ts","../src/components/checkout/configurations/typography.ts","../src/components/common/mapExternalTheme.ts","../src/components/paywall/utils/mapPaywallData.ts","../src/components/StiggProvider.tsx","../src/hooks/useStiggContext.ts","../src/components/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../src/components/paywall/PaywallLoader.tsx","../src/theme/Fonts.tsx","../src/theme/Theme.tsx","../src/components/customerPortal/hooks/useCustomerPortal.ts","../src/components/customerPortal/customerPortalTextOverrides.ts","../src/components/customerPortal/customerPortalTheme.ts","../src/components/customerPortal/CustomerPortalProvider.tsx","../src/components/paywall/PaywallContainer.tsx","../src/components/customerPortal/common/StyledButton.tsx","../src/assets/edit-icon.svg","../src/components/customerPortal/common/SectionHeader.ts","../src/components/customerPortal/common/SectionTitle.tsx","../src/components/customerPortal/types.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx","../src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx","../src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx","../src/components/common/iconColor.ts","../src/assets/addons.svg","../src/assets/billing-info-customer.svg","../src/assets/contact-support.svg","../src/assets/credit-card.svg","../src/assets/dollar-coin.svg","../src/assets/promotions.svg","../src/assets/restore.svg","../src/assets/schedule-box.svg","../src/assets/schedule.svg","../src/assets/subscription-renews-icon.svg","../src/assets/trash.svg","../src/assets/payment-method.svg","../src/assets/outlined-circle.svg","../src/assets/outlined-checked-circle.svg","../src/assets/outlined-checked-circle-disabled.svg","../src/assets/arrow-forward.svg","../src/assets/close.svg","../src/assets/check.svg","../src/assets/pay-as-you-go-charge.svg","../src/assets/coupon.svg","../src/components/common/Icon.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../src/components/common/mediaQuery.ts","../src/components/hooks/useIsScreenWiderThan.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx","../src/components/customerPortal/common/SectionContainer.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx","../src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx","../src/assets/sand-clock.svg","../src/components/common/InformationTooltip.tsx","../src/components/common/LongText.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx","../src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx","../src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx","../src/components/customerPortal/CustomerPortalHeader.tsx","../src/components/customerPortal/common/ExternalLinkButton.tsx","../src/components/customerPortal/billing/InformationGrid.tsx","../src/components/customerPortal/common/SkeletonButton.tsx","../src/components/customerPortal/billing/PaymentDetailsSection.tsx","../src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts","../src/components/customerPortal/paywall/CustomerPortalPaywall.tsx","../src/components/customerPortal/CustomerPortal.style.ts","../src/components/utils/getFeatureName.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx","../src/components/customerPortal/usage/CustomerUsageData.style.tsx","../src/components/customerPortal/usage/CustomerUsageData.tsx","../src/components/customerPortal/CustomerPortalContainer.tsx","../src/components/customerPortal/CustomerPortal.tsx","../src/components/customerPortal/billing/InvoicesSection.tsx","../src/components/checkout/steps/addons/addon.utils.ts","../src/components/checkout/hooks/useAddonsStepModel.ts","../src/components/checkout/hooks/useCheckoutModel.ts","../src/components/checkout/hooks/useLoadCheckout.ts","../src/components/utils/priceUtils.ts","../src/components/utils/planPrices.ts","../src/components/checkout/hooks/usePlanStepModel.ts","../src/components/checkout/hooks/useProgressBarModel.ts","../src/components/checkout/hooks/useSubscriptionModel.ts","../src/components/checkout/hooks/usePreviewSubscription.ts","../src/components/checkout/hooks/usePaymentStepModel.ts","../src/components/checkout/configurations/textOverrides.ts","../src/components/checkout/configurations/theme.ts","../src/components/checkout/CheckoutProvider.tsx","../src/components/checkout/CheckoutContainer.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/hooks/useCouponModel.ts","../src/assets/plus-icon.svg","../src/components/checkout/promotionCode/AddPromotionCodeButton.tsx","../src/components/checkout/promotionCode/AddPromotionCode.tsx","../src/components/checkout/promotionCode/AppliedPromotionCode.tsx","../src/components/checkout/promotionCode/PromotionCodeSection.tsx","../src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx","../src/components/checkout/steps/payment/stripe/useStripeIntegration.ts","../src/components/checkout/hooks/useSubscriptionState.ts","../src/components/checkout/steps/payment/stripe/stripe.utils.ts","../src/components/checkout/summary/CheckoutSuccess.tsx","../src/components/checkout/steps/payment/stripe/useSubmit.ts","../src/components/checkout/summary/components/WithSkeleton.tsx","../src/components/checkout/summary/components/CheckoutCaptions.tsx","../src/components/checkout/summary/components/getPriceBreakdownString.ts","../src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx","../src/components/common/CollapsableSectionIcon.tsx","../src/components/checkout/summary/components/LineItems.tsx","../src/components/checkout/summary/CheckoutSummary.tsx","../src/components/checkout/summary/CheckoutSummarySkeleton.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.tsx","../src/components/checkout/steps/payment/PaymentMethods.style.ts","../src/components/checkout/steps/payment/PaymentMethods.tsx","../src/components/checkout/steps/payment/PaymentStep.tsx","../src/components/checkout/components/ChangePlanButton.tsx","../src/components/checkout/planHeader/PlanHeader.tsx","../src/components/checkout/formatting.ts","../src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx","../src/components/checkout/steps/plan/BillingPeriodPicker.tsx","../src/components/checkout/steps/plan/CheckoutChargeList.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.tsx","../src/assets/arrow-right.svg","../src/components/checkout/components/StyledArrow.tsx","../src/components/checkout/components/DowngradeToFreeContainer.tsx","../src/components/checkout/CheckoutContainer.tsx","../src/components/checkout/Checkout.tsx","../src/components/hooks/useWaitForCheckoutCompleted.ts","../src/hooks/useBooleanEntitlement.ts","../src/hooks/useNumericEntitlement.ts","../src/hooks/useMeteredEntitlement.ts","../src/hooks/useFetch.ts","../src/hooks/useActiveSubscriptions.ts","../src/hooks/usePaywall.ts","../src/hooks/useCustomerPortal.ts","../src/components/BooleanEntitlementGuard.tsx","../src/components/MeteredEntitlementGuard.tsx"],"sourcesContent":["<svg width=\"15\" height=\"11\" viewBox=\"0 0 15 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.59 7.9899L2.125 4.5249C1.73524 4.13514 1.10365 4.13402 0.712509 4.52241V4.52241C0.319409 4.91274 0.318286 5.54819 0.710005 5.9399L5.59 10.8199L14.2948 2.11513C14.6843 1.72565 14.6843 1.09417 14.2948 0.704691V0.704691C13.9055 0.315381 13.2743 0.315184 12.8848 0.70425L5.59 7.9899Z\" fill=\"#B2BBD3\"/>\n</svg>\n","export function calculateUnitQuantityText(\n minUnitQuantity?: number | null,\n maxUnitQuantity?: number | null,\n unitsPlural?: string | null,\n) {\n const unitsText = unitsPlural ? ` ${unitsPlural}` : '';\n\n // copy for only maxunit\n if ((!minUnitQuantity || minUnitQuantity === 1) && maxUnitQuantity) {\n return `Up to ${maxUnitQuantity}${unitsText}`;\n }\n\n // both limits\n if (minUnitQuantity && minUnitQuantity > 1 && maxUnitQuantity) {\n return `${minUnitQuantity}-${maxUnitQuantity}${unitsText}`;\n }\n\n if (minUnitQuantity && minUnitQuantity > 1) {\n return `Minimum ${minUnitQuantity}${unitsText}`;\n }\n\n return '';\n}\n","export function formatNumber(usageLimit: number | null | undefined) {\n return usageLimit?.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\n}\n","import React, { CSSProperties, forwardRef } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { FontWeight as StyledFontWeight, Text, TypeProps } from 'styled-typography';\nimport { Theme, useTheme } from '@emotion/react';\nimport { FontWeight } from '../../theme/types';\n\ntype Colors =\n | 'primary'\n | 'primary.main'\n | 'primary.main.light'\n | 'secondary'\n | 'tertiary'\n | 'disabled'\n | 'white'\n | 'warning'\n | 'error';\n\nexport type TypographyProps = {\n children: React.ReactNode;\n variant?: 'h1' | 'h3' | 'h6' | 'body1' | 'caption';\n style?: CSSProperties | undefined;\n color?: Colors;\n // This is being used when passing color from the theming which\n // can be any color and not from the closed list of colors above\n overrideColor?: string;\n className?: string;\n bold?: boolean;\n span?: boolean;\n as?: 'div' | 'p' | 'span';\n} & Omit<TypeProps, 'color' | 'level'>;\n\nfunction getColor(theme: Theme, $color: Colors) {\n switch ($color) {\n case 'white':\n return 'white';\n case 'primary.main':\n return theme.stigg.palette.primary;\n case 'primary.main.light':\n return theme.stigg.palette.primaryLight;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.text[$color];\n }\n}\n\nconst StyledText = styled(Text)<{ $span?: boolean }>`\n margin: 0;\n ${({ $span }) => $span && `display: inline`};\n`;\n\nfunction getLevel(variant: TypographyProps['variant']) {\n switch (variant) {\n case 'h1':\n return 1;\n case 'h3':\n return 2;\n case 'h6':\n return 3;\n case 'body1':\n return 4;\n case 'caption':\n return 5;\n default:\n return 3;\n }\n}\n\nfunction mapFontWeight(fontWeight: FontWeight) {\n switch (fontWeight) {\n case 'bold':\n return StyledFontWeight.Bold;\n case 'normal':\n return StyledFontWeight.Normal;\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nfunction getFontWeight(theme: Theme, variant: TypographyProps['variant']) {\n const { typography } = theme.stigg;\n switch (variant) {\n case 'h1':\n return mapFontWeight(typography.h1.fontWeight);\n case 'h3':\n return mapFontWeight(typography.h2.fontWeight);\n case 'h6':\n return mapFontWeight(typography.h3.fontWeight);\n case 'body1':\n return mapFontWeight(typography.body.fontWeight);\n case 'caption':\n return mapFontWeight(typography.caption.fontWeight);\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nexport const Typography = forwardRef((props: TypographyProps, ref) => {\n const {\n children,\n span,\n style,\n fontWeight,\n variant = 'body1',\n color = 'primary',\n overrideColor,\n bold,\n as = 'p',\n ...rest\n } = props;\n const theme = useTheme();\n const level = getLevel(variant);\n const levelClassName = `typography-level-${level}`;\n const className = props.className ? `${props.className} ${levelClassName}` : levelClassName;\n\n return (\n <StyledText\n as={as}\n ref={ref}\n {...rest}\n className={className}\n style={style}\n level={level}\n color={overrideColor || getColor(theme, color)}\n fontWeight={fontWeight ?? (bold ? StyledFontWeight.Bold : getFontWeight(theme, variant))}\n $span={span}>\n {children}\n </StyledText>\n );\n});\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport CheckUrl from '../../assets/check-stigg.svg';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { formatNumber } from '../utils/formatNumber';\nimport { Typography } from '../common/Typography';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: baseline;\n`;\n\nconst EntitlementIconContainer = styled.div`\n display: flex;\n align-items: center;\n margin-right: 16px;\n height: ${({ theme }) => theme.stigg.typography.h3.fontSize};\n flex-shrink: 0;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n flex-shrink: 0;\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.disabled};\n }\n`;\n\ntype EntitlementRowProps = {\n hasUnlimitedUsage?: boolean | null;\n isCustom?: boolean | null;\n usageLimit?: number | null;\n minUnitQuantity?: number | null;\n maxUnitQuantity?: number | null;\n resetPeriod?: EntitlementResetPeriod | null;\n displayNameOverride?: string | null;\n feature?: {\n units?: string | null | undefined;\n unitsPlural?: string | null | undefined;\n unitQuantity?: number | null;\n displayName: string;\n } | null;\n};\n\nfunction getResetPeriodText(resetPeriod?: EntitlementResetPeriod) {\n if (!resetPeriod) {\n return '';\n }\n\n switch (resetPeriod) {\n case EntitlementResetPeriod.Day: {\n return 'per day';\n }\n case EntitlementResetPeriod.Hour: {\n return 'per hour';\n }\n case EntitlementResetPeriod.Week: {\n return 'per week';\n }\n case EntitlementResetPeriod.Month: {\n return 'per month';\n }\n case EntitlementResetPeriod.Year: {\n return 'per year';\n }\n default: {\n return '';\n }\n }\n}\n\nfunction getEntitlementDisplay({\n hasUnlimitedUsage,\n feature,\n resetPeriod,\n usageLimit,\n minUnitQuantity,\n maxUnitQuantity,\n isCustom,\n}: EntitlementRowProps) {\n const unitBasedEntitlement = minUnitQuantity || maxUnitQuantity;\n const resetPeriodSuffix = `${resetPeriod && usageLimit ? `${getResetPeriodText(resetPeriod)}` : ''}`;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${feature?.unitsPlural}`;\n }\n\n if (isCustom) {\n return `Custom ${feature?.unitsPlural}`;\n }\n\n if (usageLimit) {\n const featureUnits = usageLimit === 1 ? feature?.units : feature?.unitsPlural;\n return `${formatNumber(usageLimit)} ${featureUnits} ${resetPeriodSuffix}`;\n }\n\n if (unitBasedEntitlement) {\n return calculateUnitQuantityText(minUnitQuantity, maxUnitQuantity, feature?.unitsPlural);\n }\n\n return feature?.displayName;\n}\n\nexport function EntitlementRow(props: EntitlementRowProps) {\n const { displayNameOverride, ...restProps } = props;\n const displayName = getEntitlementDisplay(restProps);\n\n return (\n <EntitlementRowContainer className=\"stigg-entitlement-row-container\">\n <EntitlementIconContainer>\n <EntitlementCheckIcon className=\"stigg-entitlement-row-icon\" />\n </EntitlementIconContainer>\n <EntitlementName className=\"stigg-entitlement-name\" variant=\"h6\" color=\"secondary\">\n {displayNameOverride || displayName}\n </EntitlementName>\n </EntitlementRowContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, WidgetType } from '@stigg/js-client-sdk';\nimport { EntitlementRow } from './EntitlementRow';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Typography } from '../common/Typography';\n\nconst PlanEntitlementsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nfunction getTitle(plan: PaywallPlan, paywallLocale: PaywallLocalization, hasFeatures: boolean) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = hasFeatures ? `${plan.displayName} includes` : '';\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}${hasFeatures ? ', plus:' : ''}`;\n }\n\n return title;\n}\n\nexport function PlanEntitlements({\n plan,\n billingPeriod,\n paywallLocale,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n}) {\n const prices = plan.pricePoints?.filter((price) => price.billingPeriod === billingPeriod) || [];\n const unitBasedEntitlements = prices\n .filter((price) => (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity)\n .map((price) => {\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\n\n const visibleEntitlements = plan.entitlements.filter(\n (entitlement) => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall),\n );\n\n const hasFeatures = unitBasedEntitlements.length > 0 || visibleEntitlements.length > 0;\n\n return (\n <PlanEntitlementsContainer className=\"stigg-plan-entitlements-container\">\n <Typography className=\"stigg-plan-entitlements-title\" color=\"secondary\" variant=\"h6\" bold>\n {getTitle(plan, paywallLocale, hasFeatures)}\n </Typography>\n {unitBasedEntitlements}\n {visibleEntitlements.map((entitlement) => (\n <EntitlementRow\n key={entitlement.feature?.id}\n displayNameOverride={entitlement.displayNameOverride}\n feature={entitlement.feature}\n resetPeriod={entitlement.resetPeriod}\n hasUnlimitedUsage={entitlement.hasUnlimitedUsage}\n usageLimit={entitlement.usageLimit}\n isCustom={entitlement.isCustom}\n />\n ))}\n </PlanEntitlementsContainer>\n );\n}\n","import {\n BillingPeriod,\n Customer,\n Plan,\n Subscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n PaywallCurrency,\n PaywallCalculatedPricePoint,\n BillableFeature,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\n\nexport type PaywallData = {\n plans: PaywallPlan[] | null;\n customer: Customer | null;\n currentSubscription: Subscription | null;\n isCustomerOnTrial: boolean;\n isLoading: boolean;\n selectedBillingPeriod: BillingPeriod;\n setSelectedBillingPeriod: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n locale: string;\n configuration?: CustomizedTheme;\n};\n\nexport enum SubscribeIntentionType {\n START_TRIAL = 'START_TRIAL',\n UPGRADE_TRIAL_TO_PAID = 'UPGRADE_TRIAL_TO_PAID',\n REQUEST_CUSTOM_PLAN_ACCESS = 'REQUEST_CUSTOM_PLAN_ACCESS',\n CHANGE_BILLING_PERIOD = 'CHANGE_BILLING_PERIOD',\n CHANGE_UNIT_QUANTITY = 'CHANGE_UNIT_QUANTITY',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n DOWNGRADE_PLAN = 'DOWNGRADE_PLAN',\n CANCEL_SCHEDULED_UPDATES = 'CANCEL_SCHEDULED_UPDATES',\n}\n\nexport type PaywallPlan = Plan & {\n isLowerThanCurrentPlan?: boolean;\n isTriable: boolean;\n isCurrentCustomerPlan: boolean;\n currentCustomerPlanBillingPeriod?: BillingPeriod;\n trialDaysLeft?: number;\n isNextPlan?: (billingPeriod: BillingPeriod) => boolean;\n scheduledUpdate?: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n paywallCurrency?: PaywallCurrency;\n paywallCalculatedPricePoints?: PaywallCalculatedPricePoint[];\n};\n\nexport type OnPlanSelectedCallbackFn = ({\n plan,\n customer,\n subscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n}: {\n plan: Plan;\n customer: Customer | null;\n subscription: Subscription | null;\n intentionType: SubscribeIntentionType;\n selectedBillingPeriod: BillingPeriod;\n billableFeatures?: BillableFeature[];\n}) => void | Promise<void>;\n\nexport type ShouldHidePlanFn = ({ plan }: { plan: PaywallPlan }) => boolean | Promise<boolean>;\n\nexport type SelectDefaultTierIndexFn = ({ plan }: { plan: PaywallPlan }) => number;\n","import Color from 'color';\nimport merge from 'lodash/merge';\nimport { HorizontalAlignment, StiggTheme } from './types';\nimport { CustomizedTheme } from './Theme';\n\nexport const flexLayoutMapper = (horizontalAlignment: HorizontalAlignment) => {\n return {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n }[horizontalAlignment];\n};\n\nexport const getResolvedTheme = (customizedTheme?: CustomizedTheme): StiggTheme => {\n const primaryColor = Color(customizedTheme?.palette?.primary || '#327EEE');\n const textColor = Color(customizedTheme?.palette?.text?.primary || '#001E6C');\n const successColor = Color('#4CAF50');\n const errorColor = Color('#f44336');\n\n const baseTheme: StiggTheme = {\n palette: {\n primary: primaryColor.hex(),\n primaryDark: primaryColor.darken(0.3).hex(),\n primaryLight: primaryColor.alpha(0.5).toString(),\n backgroundPaper: '#FFFFFF',\n backgroundHighlight: '#F5F6F9',\n backgroundSection: primaryColor.alpha(0.1).toString(),\n backgroundButton: primaryColor.alpha(0.08).toString(),\n outlinedBorder: '#C4CBDD',\n outlinedRestingBorder: primaryColor.alpha(0.5).toString(),\n outlinedHoverBackground: primaryColor.lightness(95).hex(),\n switchBorder: primaryColor.lighten(0.1).hex(),\n switchFill: primaryColor.lighten(0.5).hex(),\n switchHandle: primaryColor.hex(),\n warning: '#ed6c02',\n error: errorColor.hex(),\n errorDark: errorColor.darken(0.3).hex(),\n success: successColor.hex(),\n successDark: successColor.darken(0.3).hex(),\n white: '#FFFFFF',\n text: {\n primary: textColor.hex(),\n secondary: textColor.alpha(0.75).toString(),\n tertiary: textColor.alpha(0.5).toString(),\n disabled: textColor.alpha(0.35).toString(),\n },\n },\n layout: {\n planMinWidth: '330px',\n planMaxWidth: '330px',\n planMargin: '20px',\n planPadding: '40px',\n ctaAlignment: 'left',\n headerAlignment: 'left',\n descriptionAlignment: 'left',\n descriptionMinHeight: '80px',\n switchBottomSpacing: '40px',\n },\n shadows: {\n light: '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12)',\n popover:\n '0px 4px 5px -2px rgba(0, 30, 108, 0.2), 0px 7px 10px 1px rgba(0, 30, 108, 0.14), 0px 2px 16px 1px rgba(0, 30, 108, 0.12)',\n },\n border: {\n radius: '10px',\n },\n typography: {\n fontFamily: 'custom-font, DM Sans, sans-serif',\n h1: {\n fontSize: '32px',\n fontWeight: 'bold',\n },\n h2: {\n fontSize: '24px',\n fontWeight: 'normal',\n },\n h3: {\n fontSize: '16px',\n fontWeight: 'normal',\n },\n body: {\n fontSize: '14px',\n fontWeight: 'normal',\n },\n caption: {\n fontSize: '12px',\n fontWeight: 'normal',\n },\n },\n customCss: '',\n };\n\n return merge(baseTheme, customizedTheme);\n};\n","import React from 'react';\nimport moment from 'moment';\nimport isNil from 'lodash/isNil';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\n\nconst formatDate = (date: string) => moment.utc(date).format('MMMM Do, yyyy');\n\ntype GetSubscriptionScheduleUpdateTextsProps = {\n scheduledUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment | undefined;\n subscriptionPrices?: CustomerPortalSubscriptionPriceFragment[];\n billingPeriodRange?: CustomerPortalSubscription['billingPeriodRange'];\n options?: { withDate?: boolean; postfix?: string };\n};\n\nexport function getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices,\n billingPeriodRange,\n options = {},\n}: GetSubscriptionScheduleUpdateTextsProps) {\n if (!scheduledUpdate) {\n return {};\n }\n const { withDate, postfix = '' } = options;\n\n switch (scheduledUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n let shouldShowDate = withDate;\n if (isNil(shouldShowDate) && billingPeriodRange?.end) {\n shouldShowDate = !moment(scheduledUpdate.scheduledExecutionTime).isSame(billingPeriodRange?.end, 'day');\n }\n\n const line1 = (\n <>\n Your subscription will be downgraded to the <b>{scheduledUpdate.targetPackage?.displayName} plan</b>{' '}\n {shouldShowDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n const line2 = `Until then you still have access to your current plan.`;\n\n return { line1, line2 };\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n const variables = scheduledUpdate.scheduleVariables as BillingPeriodChangeVariables;\n const line1 = (\n <>\n Your billing cycle will change to <b>{variables.billingPeriod?.toLocaleLowerCase()}</b>{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n return { line1 };\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n const variables = scheduledUpdate.scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscriptionPrices, 'feature')).find(({ id }) => id === variables.featureId);\n const { featureUnits, featureUnitsPlural } = feature || {};\n const unitsText = variables.newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n const line1 = (\n <>\n Your subscription will be updated to <b>{variables.newUnitAmount}</b> {unitsText}{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n const line2 = `Until then you still have access to your current ${featureUnits} count.`;\n\n return { line1, line2 };\n }\n\n default: {\n return {};\n }\n }\n}\n","import { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { sum } from 'lodash';\nimport { PaywallPlan } from '../paywall';\nimport { SelectDefaultTierIndexFn } from '../paywall/types';\n\nexport function getPriceFeatureUnit(price: Price) {\n if (!price.feature) {\n return '';\n }\n\n return (price.feature.unitQuantity !== 1 ? price.feature.unitsPlural : price.feature.units) || '';\n}\n\nexport function getTierByQuantity(tiers: PriceTierFragment[], quantity: number): PriceTierFragment {\n const ascendingTiers = [...tiers];\n // Sort tiers by upTo value, ascending, if upTo is not set,\n // put it at the end as it represent the last infinity tier\n ascendingTiers.sort((a, b) => (!a.upTo ? 1 : !b.upTo ? -1 : a.upTo - b.upTo));\n\n for (const tier of ascendingTiers) {\n if (tier.upTo && quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nfunction getAmount(amount: number, selectedBillingPeriod?: BillingPeriod, shouldShowMonthlyPriceAmount?: boolean) {\n return selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? amount / 12 : amount;\n}\n\nfunction calculateTierPriceVolume(\n currentTier: PriceTierFragment,\n perUnitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n let amount = 0;\n\n if (currentTier.unitPrice) {\n const unitPrice = getAmount(currentTier.unitPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n amount += unitPrice * perUnitQuantity;\n }\n\n if (currentTier.flatPrice) {\n amount += getAmount(currentTier.flatPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n\n return amount;\n}\n\nexport function calculateTierPriceGraduated(\n tiers: PriceTierFragment[],\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): { total: number; breakdown: Array<{ unitQuantity: number; amount: number }> } {\n let remainingQuantity = unitQuantity;\n let prevUpTo = 0;\n let currentTierIndex = 0;\n\n const breakdown: Array<{ unitQuantity: number; amount: number }> = [];\n\n while (remainingQuantity > 0 && currentTierIndex < tiers.length) {\n const tier = tiers[currentTierIndex];\n const { upTo } = tier;\n\n if (isNil(upTo)) {\n breakdown.push({\n unitQuantity: remainingQuantity,\n amount: calculateTierPriceVolume(tier, remainingQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity = 0;\n } else {\n const unitsInTier = upTo - prevUpTo;\n const consumed = Math.min(remainingQuantity, unitsInTier);\n breakdown.push({\n unitQuantity: consumed,\n amount: calculateTierPriceVolume(tier, consumed, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity -= consumed;\n prevUpTo = upTo;\n }\n\n currentTierIndex += 1;\n }\n\n const total = sum(breakdown.map(({ amount }) => amount));\n\n return {\n breakdown,\n total,\n };\n}\n\nexport function calculateTierPrice(\n price: Pick<Price, 'tiers' | 'tiersMode'>,\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n if (!price.tiers) {\n return 0;\n }\n\n switch (price.tiersMode) {\n case TiersMode.Volume: {\n const currentTier = getTierByQuantity(price.tiers, unitQuantity);\n return calculateTierPriceVolume(currentTier, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n case TiersMode.Graduated: {\n return calculateTierPriceGraduated(price.tiers, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount)\n .total;\n }\n default:\n return 0;\n }\n}\n\nexport function hasTierWithUnitPrice(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.some(({ unitPrice, upTo }) => unitPrice && !isNil(upTo));\n}\n\nexport function isBulkTiers(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.every(({ unitPrice, upTo }) => !unitPrice || isNil(upTo));\n}\n\nexport function isQuantityInFirstTier(tiers: PriceTierFragment[] | null | undefined, quantity: number) {\n return tiers?.[0].upTo && quantity <= tiers[0].upTo;\n}\n\nexport function getTiersPerUnitQuantities(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n currentSubscription: Subscription | null,\n selectDefaultTierIndex?: SelectDefaultTierIndexFn,\n): Record<string, number> {\n const planTierPrices = plan.pricePoints.filter(\n (price) => price.billingPeriod === billingPeriod && price.isTieredPrice,\n );\n\n if (planTierPrices.length === 1) {\n const [price] = planTierPrices;\n const { featureId } = price.feature!;\n const selectedDefaultTierIndex = selectDefaultTierIndex ? selectDefaultTierIndex({ plan }) : 0;\n const currentTier = price.tiers![selectedDefaultTierIndex];\n let quantity = hasTierWithUnitPrice(price.tiers) ? 1 : currentTier.upTo || 1;\n\n if (currentSubscription && currentSubscription.plan.id === plan.id) {\n const tieredPrice = currentSubscription.prices.find(\n (subscriptionPrice) =>\n subscriptionPrice.pricingModel === BillingModel.PerUnit &&\n subscriptionPrice.tiersMode &&\n subscriptionPrice.feature?.featureId === featureId,\n );\n\n if (tieredPrice) {\n quantity = tieredPrice.feature!.unitQuantity || 1;\n }\n }\n\n const result: Record<string, number> = {};\n result[featureId] = quantity;\n\n return result;\n }\n\n return {};\n}\n\nexport enum PriceTierComparison {\n Lower = -1,\n Equal = 0,\n Higher = 1,\n}\n\nexport function compareSelectedTierToCurrentTier(\n perUnitQuantityByFeature: Record<string, number>,\n currentSubscription: Subscription | null,\n): PriceTierComparison {\n if (!currentSubscription) {\n return PriceTierComparison.Equal;\n }\n\n const currentTierPrice = currentSubscription.prices.find(\n (price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode,\n );\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity: oldQuantity } = currentTierPrice.feature!;\n\n if (isNil(oldQuantity)) {\n return PriceTierComparison.Equal;\n }\n\n const newQuantity = perUnitQuantityByFeature[featureId];\n\n if (newQuantity < oldQuantity) {\n return PriceTierComparison.Lower;\n }\n if (newQuantity > oldQuantity) {\n return PriceTierComparison.Higher;\n }\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport { isFunction } from 'lodash';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport styled from '@emotion/styled/macro';\nimport { css, useTheme } from '@emotion/react';\nimport { PaywallPlan, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport { getSubscriptionScheduleUpdateTexts } from '../utils/getSubscriptionScheduleUpdateTexts';\nimport { compareSelectedTierToCurrentTier, PriceTierComparison } from '../utils/priceTierUtils';\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 10px;\n`;\n\nconst OfferingButton = styled.button<{ $disabled?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'default' : 'pointer')};\n padding: 8px 12px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundButton};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedRestingBorder}`};\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 42px;\n min-width: 120px;\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n `}\n\n &:hover {\n background-color: ${({ theme, $disabled }) =>\n $disabled ? theme.stigg.palette.backgroundButton : theme.stigg.palette.outlinedHoverBackground};\n }\n`;\n\nconst ButtonText = styled(Typography)`\n margin: 0;\n font-size: 15px;\n`;\n\nconst ScheduledUpdateText = styled(Typography)`\n min-height: 87px;\n`;\n\nconst CancelScheduledUpdateButton = styled.button<{ $disabled?: boolean }>`\n background: none;\n border: none;\n padding: 0;\n color: ${({ theme }) => theme.stigg.palette.text.secondary};\n\n text-decoration: underline;\n cursor: pointer;\n`;\n\nconst TrialDaysLeft = styled(Typography)`\n margin-top: 8px;\n margin-bottom: 17px;\n min-height: 20px;\n`;\n\nconst ButtonLayout = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 4px;\n align-self: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.ctaAlignment)};\n width: 100%;\n`;\n\ntype PlanOfferingButtonProps = {\n isNextPlan?: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n withTrialLeftRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n withTrialLeftRow,\n currentSubscription,\n perUnitQuantityByFeature,\n}: PlanOfferingButtonProps) {\n const theme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const {\n currentPlan,\n custom,\n downgrade,\n startTrial,\n upgrade,\n startNew,\n switchToBillingPeriod,\n cancelScheduledUpdate,\n } = paywallLocale.planCTAButton;\n const resolvedDowngrade = isFunction(downgrade) ? downgrade(plan) : downgrade;\n const resolvedUpgrade = isFunction(upgrade) ? upgrade(plan) : upgrade;\n\n const buttonProps: {\n title: string;\n disabled: boolean;\n intentionType: SubscribeIntentionType;\n } = {\n title: customer ? (plan.isLowerThanCurrentPlan ? resolvedDowngrade : resolvedUpgrade) : startNew,\n disabled: false,\n intentionType: plan.isLowerThanCurrentPlan\n ? SubscribeIntentionType.DOWNGRADE_PLAN\n : isCustomerOnTrial\n ? SubscribeIntentionType.UPGRADE_TRIAL_TO_PAID\n : SubscribeIntentionType.UPGRADE_PLAN,\n };\n const isCustomPrice = plan.pricingType === PricingType.Custom;\n\n const { line1: scheduledUpdateText } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate: plan.scheduledUpdate,\n options: { withDate: true },\n });\n\n if (plan.isTriable && !plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n buttonProps.title = startTrial(plan);\n buttonProps.intentionType = SubscribeIntentionType.START_TRIAL;\n } else if (plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n const isSameBillingPeriod = billingPeriod === plan.currentCustomerPlanBillingPeriod;\n\n if (\n isSameBillingPeriod ||\n (plan.pricingType && [PricingType.Free, PricingType.Custom].includes(plan.pricingType))\n ) {\n const planComparison = compareSelectedTierToCurrentTier(perUnitQuantityByFeature, currentSubscription);\n switch (planComparison) {\n case PriceTierComparison.Lower:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedDowngrade;\n break;\n case PriceTierComparison.Higher:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedUpgrade;\n break;\n\n default:\n buttonProps.title = currentPlan;\n buttonProps.disabled = true;\n break;\n }\n } else {\n buttonProps.title = switchToBillingPeriod(billingPeriod);\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_BILLING_PERIOD;\n }\n } else if (isCustomPrice) {\n buttonProps.title = typeof custom === 'function' ? custom({ plan, selectedBillingPeriod: billingPeriod }) : custom;\n buttonProps.intentionType = SubscribeIntentionType.REQUEST_CUSTOM_PLAN_ACCESS;\n }\n\n if (isNextPlan && plan.scheduledUpdate) {\n buttonProps.disabled = false;\n buttonProps.title = cancelScheduledUpdate;\n buttonProps.intentionType = SubscribeIntentionType.CANCEL_SCHEDULED_UPDATES;\n }\n\n const isDisabled = isLoading || buttonProps.disabled;\n return (\n <>\n <ButtonLayout className=\"stigg-paywall-plan-button-layout\">\n {isNextPlan && scheduledUpdateText ? (\n <ScheduledUpdateText color=\"secondary\" variant=\"body1\" className=\"stigg-paywall-schedule-update-text\">\n {scheduledUpdateText}{' '}\n <CancelScheduledUpdateButton\n color=\"secondary\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n {buttonProps.title}\n </CancelScheduledUpdateButton>\n </ScheduledUpdateText>\n ) : (\n <>\n <OfferingButton\n className=\"stigg-paywall-plan-button\"\n data-testid={`paywall-card-cta-${plan.displayName}`}\n disabled={isDisabled}\n $disabled={isDisabled}\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n <ButtonText className=\"stigg-paywall-plan-button-text\" variant=\"h6\" color=\"primary.main\">\n {buttonProps.title}\n </ButtonText>\n {isLoading && <LoadingIndicator color={theme.stigg.palette.text.disabled} loading size={16} />}\n </OfferingButton>\n\n {!withTrialLeftRow ? (\n <div style={{ height: '20px' }} />\n ) : (\n <TrialDaysLeft className=\"stigg-trial-days-left-text\" variant=\"h6\" color=\"secondary\">\n {plan.isCurrentCustomerPlan && plan.trialDaysLeft && (\n <>\n <b>{plan.trialDaysLeft} days</b> left on your free trial\n </>\n )}\n </TrialDaysLeft>\n )}\n </>\n )}\n </ButtonLayout>\n </>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.95392 1.03353C7.1196 1.56038 6.82682 2.12178 6.29997 2.28746C5.79034 2.44773 5.30237 2.68036 4.85175 2.98146C3.76168 3.70982 2.95789 4.79361 2.57732 6.04817C2.19675 7.30273 2.26296 8.65044 2.76466 9.86166C3.26637 11.0729 4.17252 12.0727 5.32873 12.6907C6.48494 13.3087 7.81967 13.5067 9.10549 13.2509C10.3913 12.9951 11.5487 12.3014 12.3804 11.288C13.2121 10.2746 13.6666 9.00413 13.6666 7.69312C13.6666 7.14083 14.1144 6.69312 14.6666 6.69312C15.2189 6.69312 15.6666 7.14083 15.6666 7.69312C15.6666 7.92228 15.6564 8.15052 15.6361 8.37721C15.6465 8.44937 15.6492 8.52379 15.6432 8.59952L15.6392 8.64883C15.6298 8.75932 15.6028 8.86407 15.5612 8.96057C15.3409 10.2743 14.7807 11.5158 13.9264 12.5568C12.8012 13.9279 11.2353 14.8664 9.49568 15.2125C7.75603 15.5585 5.95022 15.2906 4.38594 14.4545C2.82166 13.6184 1.59568 12.2657 0.916905 10.627C0.238131 8.98832 0.148554 7.16495 0.663439 5.4676C1.17832 3.77025 2.26581 2.30394 3.74061 1.31852C4.35023 0.911179 5.01049 0.596408 5.69999 0.379577C6.22684 0.213898 6.78824 0.506683 6.95392 1.03353ZM7.56761 1.27284C7.61434 0.722538 8.09832 0.314306 8.64863 0.361031L8.69791 0.365373C9.24791 0.415584 9.65307 0.902149 9.60286 1.45215C9.55265 2.00214 9.06608 2.4073 8.51608 2.35709L8.47942 2.35386C7.92912 2.30714 7.52089 1.82315 7.56761 1.27284ZM12.4186 2.90891C12.8384 2.55014 13.4697 2.59967 13.8284 3.01954C13.8498 3.04454 13.871 3.06967 13.892 3.09494C14.2454 3.51937 14.1878 4.14991 13.7634 4.50329C13.339 4.85667 12.7084 4.79906 12.355 4.37463C12.3395 4.35592 12.3238 4.33731 12.3079 4.31879C11.9492 3.89892 11.9987 3.26769 12.4186 2.90891ZM8.99998 5.33352C8.99998 4.78124 8.55226 4.33352 7.99998 4.33352C7.44769 4.33352 6.99998 4.78124 6.99998 5.33352V8.00019C6.99998 8.55247 7.44769 9.00019 7.99998 9.00019H10.6666C11.2189 9.00019 11.6666 8.55247 11.6666 8.00019C11.6666 7.4479 11.2189 7.00019 10.6666 7.00019H8.99998V5.33352Z\" fill=\"#7586B0\"/>\n</svg>\n","import { Currency } from '@stigg/js-client-sdk';\nimport getSymbolFromCurrency from 'currency-symbol-map';\n\nexport const currencyPriceFormatter = ({\n amount,\n currency = Currency.Usd,\n locale,\n maximumFractionDigits = 5,\n minimumFractionDigits = 0,\n}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) => {\n const currencyString = currency.toString();\n const currencySymbol = getSymbolFromCurrency(currencyString);\n let formattedPrice = new Intl.NumberFormat(locale, {\n maximumFractionDigits,\n minimumFractionDigits,\n style: 'currency',\n currency: currencyString,\n ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n }).format(amount || 0);\n\n if (currencySymbol) {\n formattedPrice = formattedPrice.replace(currencyString, currencySymbol);\n }\n\n // remove space between currency symbol and price\n formattedPrice = formattedPrice.replace(/\\s/g, '');\n\n return formattedPrice;\n};\n","export function numberFormatter(number: number, { locale }: { locale?: string } = {}) {\n return new Intl.NumberFormat(locale).format(number);\n}\n","import { BillingModel, BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\nimport { numberFormatter } from './numberUtils';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n paywallLocale: PaywallLocalization;\n perUnitQuantityByFeature?: Record<string, number>;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n paywallLocale,\n perUnitQuantityByFeature,\n}: GetPaidPriceTextParams): PlanPriceText {\n const { amount, currency } = paywallCalculatedPrice || planPrices[0];\n const priceAmount = amount || 0;\n\n const isSinglePrice = planPrices.length === 1;\n let priceNumber =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? priceAmount / 12 : priceAmount;\n\n let tiers;\n let tierUnits;\n const pricePeriod = paywallLocale.price.pricePeriod(\n shouldShowMonthlyPriceAmount ? BillingPeriod.Monthly : BillingPeriod.Annually,\n );\n let unit = pricePeriod;\n\n for (const price of planPrices) {\n if (price.isTieredPrice && price.tiers) {\n const quantity = perUnitQuantityByFeature?.[price.feature!.featureId] || 1;\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n\n priceNumber += calculateTierPrice(price, quantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const formattedUnits =\n price.blockSize && price.blockSize > 1\n ? `for ${numberFormatter(price.blockSize)} ${price.feature?.unitsPlural || price.feature?.units || ''}`\n : `per ${price.feature?.units || ''}`;\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = `${formattedUnits} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `${formattedUnits}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({ amount: priceNumber, currency, locale }),\n unit,\n tiers,\n tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { getPaidPriceText } from './getPaidPriceText';\nimport { PaywallPlan, PaywallLocalization } from '../paywall';\n\nexport type PlanPriceText = {\n price: string;\n unit?: string;\n tiers?: PriceTierFragment[] | null | undefined;\n tierUnits?: string;\n};\n\nexport function getPlanPrice(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n paywallLocale: PaywallLocalization,\n locale: string,\n shouldShowMonthlyPriceAmount: boolean,\n perUnitQuantityByFeature?: Record<string, number>,\n): PlanPriceText {\n switch (plan.pricingType) {\n case PricingType.Free:\n if (typeof paywallLocale.price.free === 'function') {\n return paywallLocale.price.free(plan.paywallCurrency);\n }\n\n return paywallLocale.price.free;\n case PricingType.Custom:\n return {\n price:\n typeof paywallLocale.price.custom === 'function'\n ? paywallLocale.price.custom({ plan, selectedBillingPeriod: billingPeriod })\n : paywallLocale.price.custom,\n };\n case PricingType.Paid: {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n\n if (!planPrices?.length && !paywallCalculatedPrice) {\n return {\n price: paywallLocale.price.priceNotSet,\n };\n }\n\n const paidParams = {\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod: billingPeriod,\n perUnitQuantityByFeature: perUnitQuantityByFeature || {},\n };\n\n return paywallLocale.price.paid\n ? paywallLocale.price.paid({ ...paidParams, plan })\n : getPaidPriceText({ ...paidParams, locale, shouldShowMonthlyPriceAmount, paywallLocale });\n }\n default:\n return {\n price: '',\n };\n }\n}\n","import React from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport MuiButton, { ButtonProps } from '@mui/material/Button';\n\nexport type StyledButtonProps = { $success?: boolean; $error?: boolean };\n\nconst StyledButton = styled(MuiButton, { shouldForwardProp: (prop) => !prop.startsWith('$') })<StyledButtonProps>`\n border-radius: 10px;\n text-transform: none;\n\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.success;\n }\n if ($error) {\n return theme.stigg.palette.error;\n }\n return '';\n }};\n\n &:hover {\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.successDark;\n }\n if ($error) {\n return theme.stigg.palette.errorDark;\n }\n return '';\n }};\n }\n`;\n\nexport const Button = ({ variant = 'outlined', ...props }: ButtonProps & StyledButtonProps) => {\n return <StyledButton variant={variant} {...props} />;\n};\n","import styled from '@emotion/styled';\nimport { OutlinedInputProps } from '@mui/material/OutlinedInput';\nimport TextField from '@mui/material/TextField';\n\nexport const InputField = styled(TextField)<OutlinedInputProps>(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n height: '42px',\n borderRadius: theme.stigg.border.radius,\n fieldset: {\n borderColor: theme.stigg.palette.outlinedBorder,\n },\n '&:not(.Mui-focused):hover fieldset': {\n borderColor: theme.stigg.palette.outlinedRestingBorder,\n },\n },\n '& .MuiInputBase-input': {\n padding: '8px 12px',\n borderRadius: theme.stigg.border.radius,\n fontFamily: theme.stigg.typography.fontFamily,\n color: theme.stigg.palette.text.primary,\n ...theme.stigg.typography.body,\n },\n '& .Mui-error': {\n fontFamily: theme.stigg.typography.fontFamily,\n },\n}));\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport ReactSkeleton from 'react-loading-skeleton';\n\nexport const SkeletonsContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $gap: number;\n $flexDirection?: 'row' | 'column';\n}>`\n display: flex;\n flex-direction: ${({ $flexDirection }) => $flexDirection || 'row'};\n gap: ${({ $gap }) => $gap}px;\n`;\n\nexport const FlexedSkeletonContainer = styled(SkeletonsContainer)`\n span {\n display: flex;\n flex: 1;\n }\n`;\n\nexport const FlexedSkeleton = styled(Grid)<{ flex: number }>`\n span {\n display: flex;\n flex: ${({ flex }) => flex};\n }\n`;\n\nexport const Skeleton = styled(ReactSkeleton)`\n border-radius: 4px;\n`;\n","import React from 'react';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport styled from '@emotion/styled/macro';\nimport { FlexedSkeleton, FlexedSkeletonContainer, Skeleton, SkeletonsContainer } from './Skeletons.style';\n\nconst ContentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n\nexport function ContentLoadingSkeleton() {\n return (\n <ContentContainer container>\n <SkeletonsContainer item $gap={48}>\n <Skeleton width={120} height={20} />\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <Divider className=\"stigg-checkout-plan-header-divider\" sx={{ marginY: 2 }} />\n\n <ContentContainer item>\n <Skeleton width={120} height={20} />\n\n <FlexedSkeletonContainer $gap={16} marginTop={3}>\n <Skeleton height={20} />\n <Skeleton height={20} />\n </FlexedSkeletonContainer>\n\n <SkeletonsContainer $gap={130} marginTop={3}>\n <FlexedSkeleton flex={1}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n\n <FlexedSkeleton flex={3}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n </SkeletonsContainer>\n </ContentContainer>\n </ContentContainer>\n );\n}\n","import React from 'react';\n\nexport const ON_WHEEL_BLUR = (e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur();\n","import InputAdornment from '@mui/material/InputAdornment';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { InputField } from '../checkout/components';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { ON_WHEEL_BLUR } from '../utils/onWheelBlur';\n\nexport function VolumePerUnitInput({\n width,\n tierUnits,\n value,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'width' | 'tierUnits' | 'value'> & {\n handleChange: (quantity: number) => void;\n}) {\n return (\n <InputField\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n fullWidth\n sx={{ minHeight: '46px', width }}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Typography variant=\"body1\" color=\"primary\">\n {tierUnits}\n </Typography>\n </InputAdornment>\n ),\n }}\n value={value}\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n />\n );\n}\n","import { PriceTierFragment } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport { map } from 'lodash';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { formatNumber } from '../utils/formatNumber';\n\nconst TierSelect = styled(Select)`\n border-radius: 10px;\n min-height: 42px;\n min-width: 120px;\n\n &:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n }\n`;\n\nconst TierInput = styled(OutlinedInput)`\n & .MuiInputBase-input {\n padding: 10px 12px;\n }\n\n &.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.primary} !important;\n }\n`;\n\nexport function VolumeBulkSelect({\n value,\n componentId,\n tierUnits,\n tiers,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'value' | 'componentId' | 'tiers' | 'tierUnits'> & {\n handleChange: (quantity: number) => void;\n}) {\n if (!tiers) {\n return null;\n }\n\n return (\n <TierSelect\n value={value.toString()}\n fullWidth\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n id={componentId}\n input={<TierInput />}\n MenuProps={{\n MenuListProps: { disablePadding: true },\n PaperProps: {\n sx: { marginTop: '4px', borderRadius: '10px' },\n },\n }}>\n {map(tiers, (tier: PriceTierFragment) => (\n <MenuItem className=\"stigg-price-tier-menu-item-text\" key={tier.upTo} value={tier.upTo?.toString()}>\n <Typography variant=\"body1\" color=\"primary\" style={{ lineHeight: 'unset' }}>\n {formatNumber(tier.upTo)} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n );\n}\n","import { PriceTierFragment, TiersMode } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { hasTierWithUnitPrice } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\nimport { VolumePerUnitInput } from './VolumePerUnitInput';\nimport { VolumeBulkSelect } from './VolumeBulkSelect';\n\nexport type TiersSelectContainerProps = {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n tiersMode?: TiersMode | null;\n handleChange: (quantity: number) => void;\n value: number;\n width?: number;\n};\n\nconst TiersSelectLayout = styled(Typography)`\n min-height: 46px;\n`;\n\nexport function TiersSelectContainer(props: TiersSelectContainerProps) {\n const { tiers } = props;\n\n return (\n <TiersSelectLayout as=\"div\" className=\"stigg-price-tier-select\">\n {hasTierWithUnitPrice(tiers) ? <VolumePerUnitInput {...props} /> : <VolumeBulkSelect {...props} />}\n </TiersSelectLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { Typography } from '../common/Typography';\nimport { TiersSelectContainer } from '../common/TiersSelectContainer';\n\nconst EMPTY_CHAR = '';\n\nconst PlanPriceContainer = styled(Typography)`\n word-break: break-word;\n width: 100%;\n`;\n\nconst UnitSpan = styled(Typography)`\n white-space: nowrap;\n`;\n\nconst PriceSpan = styled(Typography)`\n white-space: normal;\n min-height: 39px;\n`;\n\ntype PriceBillingPeriodProps = {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n paywallLocale: PaywallLocalization;\n};\n\nfunction PriceBillingPeriod({\n plan,\n billingPeriod,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n paywallLocale,\n}: PriceBillingPeriodProps) {\n const hasPrice = plan.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n\n let content = EMPTY_CHAR;\n if (hasPrice && hasMonthlyPrice && hasAnnuallyPrice) {\n content = paywallLocale.price.billingPeriod?.(billingPeriod) || `, billed ${billingPeriod.toLowerCase()}`;\n }\n\n return (\n <Typography span className=\"stigg-price-billing-period-text\" variant=\"h6\" color=\"secondary\">\n {content}\n </Typography>\n );\n}\n\nexport const PlanPrice = ({\n showStartingAt,\n withUnitPriceRow,\n withStartingAtRow,\n withTiersRow,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n perUnitQuantityByFeature,\n setPerUnitQuantityByFeature,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n setPerUnitQuantityByFeature: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n locale: string;\n}) => {\n const { price, unit, tiers, tierUnits } = getPlanPrice(\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n perUnitQuantityByFeature,\n );\n\n // We currently only support prices with one tier - so we select the first one\n const tieredPrice = plan.pricePoints.find((planPrice) => {\n return planPrice.billingPeriod === billingPeriod && planPrice.isTieredPrice;\n });\n const featureId = tieredPrice ? tieredPrice.feature!.featureId : undefined;\n const perUnitQuantity = perUnitQuantityByFeature[featureId || ''] ?? 1;\n\n const handlePerUnitQuantityChange = (quantity: number) => {\n if (!featureId) {\n return;\n }\n\n setPerUnitQuantityByFeature((prevState) => ({\n ...prevState,\n [featureId]: quantity,\n }));\n };\n\n return (\n <PlanPriceContainer as=\"div\" className=\"stigg-price-text\">\n <>\n {withStartingAtRow && (\n <Typography\n style={{ minHeight: '20px' }}\n className=\"stigg-starting-at-text\"\n variant=\"body1\"\n color=\"secondary\">\n {showStartingAt ? paywallLocale.price.startingAtCaption : EMPTY_CHAR}\n </Typography>\n )}\n\n <PriceSpan className=\"stigg-price-point\" variant=\"h1\">\n {price}\n </PriceSpan>\n\n {withUnitPriceRow && (\n <Typography as=\"div\" className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan className=\"stigg-price-unit-text\" span variant=\"h6\" color=\"secondary\">\n {unit}\n </UnitSpan>\n\n <PriceBillingPeriod\n plan={plan}\n billingPeriod={billingPeriod}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n paywallLocale={paywallLocale}\n />\n </Typography>\n )}\n\n {withTiersRow ? (\n <TiersSelectContainer\n componentId={`${plan.id}_${featureId}_tier`}\n tiers={tiers}\n tierUnits={tierUnits}\n tiersMode={tieredPrice?.tiersMode}\n handleChange={handlePerUnitQuantityChange}\n value={perUnitQuantity}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useState } from 'react';\nimport { BillableFeature, BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport Grid from '@mui/material/Grid';\nimport { PlanEntitlements } from './PlanEntitlements';\nimport { PlanOfferingButton } from './PlanOfferingButton';\nimport { PaywallPlan, SelectDefaultTierIndexFn, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport MiniSchedule from '../../assets/mini-schedule.svg';\nimport { PlanPrice } from './PlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PlanOfferingButtonHeight = '66px';\n\nconst PlanOfferingContainer = styled.div<{ $isHighlighted: boolean; $isCurrentPlan: boolean }>`\n position: relative;\n background-color: ${({ theme, $isCurrentPlan }) =>\n $isCurrentPlan ? theme.stigg.palette.backgroundHighlight : theme.stigg.palette.backgroundPaper};\n border: ${({ theme, $isHighlighted }) =>\n $isHighlighted ? `3px solid ${theme.stigg.palette.primary}` : `1px solid ${theme.stigg.palette.outlinedBorder}`};\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n display: flex;\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n position: relative;\n`;\n\nconst PlanHeader = styled(Typography)`\n padding-bottom: 8px;\n`;\n\nconst Divider = styled.div`\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n margin-bottom: 40px;\n`;\n\nconst PlanDescription = styled(Typography)`\n text-align: ${({ theme }) => theme.stigg.layout.descriptionAlignment};\n min-height: ${({ theme }) => theme.stigg.layout.descriptionMinHeight};\n`;\n\nconst HighlightBadge = styled.div`\n background-color: ${({ theme }) => theme.stigg.palette.primary};\n border-radius: 40px;\n position: absolute;\n top: -12px;\n`;\n\nconst HighlightText = styled(Typography)`\n margin: 0;\n padding: 2px 8px;\n`;\n\nconst HeaderWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.headerAlignment)};\n`;\n\ntype PlanOfferingProps = {\n withUnitPriceRow: boolean;\n withTiersRow: boolean;\n withTrialLeftRow: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n isHighlighted: boolean;\n shouldShowDescriptionSection: boolean;\n hasAnnuallyPrice: boolean;\n hasMonthlyPrice: boolean;\n isCustomerOnTrial: boolean;\n onPlanSelected: (intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => void | Promise<void>;\n paywallLocale: PaywallLocalization;\n locale: string;\n withStartingAtRow: boolean;\n isCustomerInCustomPlan: boolean;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nconst NextPlanTagContainer = styled.div`\n position: absolute;\n top: 0;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n border-radius: 0px 0px 10px 10px;\n padding: 3px 12px;\n`;\n\nconst StyledMiniSchedule = styled(MiniSchedule)<{ $iconsColor?: string }>`\n display: flex;\n height: 100%;\n margin-right: 4px;\n\n path {\n fill: ${({ theme }) => theme.stigg.palette.text.primary};\n }\n`;\n\nfunction UpcomingChangeTag({ text = 'Next', iconsColor }: { text?: string; iconsColor?: string }) {\n return (\n <NextPlanTagContainer>\n <Grid display=\"flex\" alignItems=\"center\" gap={1}>\n <StyledMiniSchedule $iconsColor={iconsColor} />\n <Typography color=\"primary\" variant=\"body1\">\n {text}\n </Typography>\n </Grid>\n </NextPlanTagContainer>\n );\n}\n\nexport function PlanOffering({\n withUnitPriceRow,\n withTiersRow,\n withTrialLeftRow,\n customer,\n plan,\n billingPeriod,\n isHighlighted,\n currentSubscription,\n shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\n isCustomerInCustomPlan,\n selectDefaultTierIndex,\n}: PlanOfferingProps) {\n const isNextPlan = plan.isNextPlan && plan.isNextPlan(billingPeriod);\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n const showStartingAt = planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n const showCTAButton = !isCustomerInCustomPlan || plan.pricingType === PricingType.Custom;\n\n let planBadge = null;\n if (isNextPlan) {\n planBadge = <UpcomingChangeTag text=\"Next plan\" />;\n } else if (isHighlighted && paywallLocale.highlightChip) {\n planBadge = (\n <HighlightBadge className=\"stigg-highlight-badge\">\n <HighlightText className=\"stigg-highlight-badge-text\" color=\"white\" bold>\n {paywallLocale.highlightChip}\n </HighlightText>\n </HighlightBadge>\n );\n }\n\n const [perUnitQuantityByFeature, setPerUnitQuantityByFeature] = useState<Record<string, number>>(\n getTiersPerUnitQuantities(plan, billingPeriod, currentSubscription, selectDefaultTierIndex),\n );\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const perUnitBillableFeatures: BillableFeature[] = Object.keys(perUnitQuantityByFeature).map((featureId) => ({\n featureId,\n quantity: perUnitQuantityByFeature[featureId],\n }));\n\n return onPlanSelected(intentionType, perUnitBillableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames(`stigg-${plan.id}`, 'stigg-plan-offering-container', {\n 'stigg-current-plan': plan.isCurrentCustomerPlan,\n })}\n $isHighlighted={isHighlighted}\n $isCurrentPlan={plan.isCurrentCustomerPlan}>\n {planBadge}\n\n <HeaderWrapper className=\"stigg-header-wrapper\">\n <PlanHeader className=\"stigg-plan-header\" variant=\"h3\">\n {plan.displayName}\n </PlanHeader>\n\n {shouldShowDescriptionSection && (\n <PlanDescription className=\"stigg-plan-description\" variant=\"h6\" color=\"secondary\">\n {plan.description}\n </PlanDescription>\n )}\n\n <PlanPrice\n showStartingAt={showStartingAt}\n withUnitPriceRow={withUnitPriceRow}\n withStartingAtRow={withStartingAtRow}\n withTiersRow={withTiersRow}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n setPerUnitQuantityByFeature={setPerUnitQuantityByFeature}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n\n {showCTAButton ? (\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n withTrialLeftRow={withTrialLeftRow}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n ) : (\n <div style={{ height: PlanOfferingButtonHeight }} />\n )}\n\n <Divider className=\"stigg-plan-header-divider\" />\n </HeaderWrapper>\n\n <PlanEntitlements plan={plan} billingPeriod={billingPeriod} paywallLocale={paywallLocale} />\n </PlanOfferingContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Switch from 'react-switch';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Typography } from '../common/Typography';\n\nconst PickerContainer = styled.div`\n height: 40px;\n padding: 0 20px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n border-radius: 10px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PeriodText = styled(Typography)`\n margin: 0 8px;\n`;\n\nconst StyledSwitch = styled(Switch)`\n & .react-switch-bg {\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.switchBorder}`};\n background: ${({ theme }) => theme.stigg.palette.switchFill} !important;\n }\n\n & .react-switch-handle {\n box-shadow: ${({ theme }) => theme.stigg.shadows.light};\n background: ${({ theme }) => theme.stigg.palette.switchHandle} !important;\n top: 0.5px !important;\n }\n`;\n\nfunction DiscountRate({ discount, disabled }: { discount: number; disabled: boolean }) {\n return (\n <Typography variant=\"h6\" color={disabled ? 'disabled' : 'primary'} className=\"stigg-discount-rate-text\">\n {discount}% off\n </Typography>\n );\n}\n\nexport function BillingPeriodPicker({\n discountRate,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n}: {\n discountRate: number;\n selectedBillingPeriod: BillingPeriod;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n}) {\n if (availableBillingPeriods.length <= 1) {\n return null;\n }\n\n const isMonthlyBillingPeriod = selectedBillingPeriod === BillingPeriod.Monthly;\n\n return (\n <PickerContainer className=\"stigg-period-picker-container\">\n <PeriodText\n variant=\"h6\"\n className=\"stigg-monthly-period-text\"\n color={isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Monthly\n </PeriodText>\n <StyledSwitch\n className=\"stigg-period-switch\"\n uncheckedIcon={false}\n checkedIcon={false}\n height={16}\n width={33}\n onChange={(isAnnuallySelected) =>\n onBillingPeriodChanged(isAnnuallySelected ? BillingPeriod.Annually : BillingPeriod.Monthly)\n }\n checked={!isMonthlyBillingPeriod}\n borderRadius={10}\n handleDiameter={19}\n />\n <PeriodText\n variant=\"h6\"\n className=\"stigg-annual-period-text\"\n color={!isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Annual\n </PeriodText>\n {discountRate !== 0 && <DiscountRate discount={discountRate} disabled={isMonthlyBillingPeriod} />}\n </PickerContainer>\n );\n}\n","import { BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { PaywallPlan } from '../paywall';\nimport { calculateTierPrice } from './priceTierUtils';\n\nexport function calculateDiscountRate(monthlyPrice?: number | null, annuallyPrice?: number | null) {\n if (!isNil(monthlyPrice) && !isNil(annuallyPrice)) {\n const annuallyPerMonthPrice = annuallyPrice / 12;\n return Math.round(((monthlyPrice - annuallyPerMonthPrice) / monthlyPrice) * 100);\n }\n\n return null;\n}\n\nfunction getPlanBillingPeriodAmount(plan: PaywallPlan, billingPeriod: BillingPeriod) {\n let pricePoint: PaywallCalculatedPricePoint | Price | undefined;\n\n pricePoint = plan.paywallCalculatedPricePoints?.find((price) => price.billingPeriod === billingPeriod);\n\n if (!pricePoint) {\n pricePoint = plan.pricePoints.find((price) => price.billingPeriod === billingPeriod);\n }\n\n if (!pricePoint?.amount) {\n const tieredPrice = plan.pricePoints.find((price) => {\n return price.isTieredPrice && price.billingPeriod === billingPeriod;\n });\n\n if (tieredPrice) {\n return calculateTierPrice(tieredPrice, 1);\n }\n }\n\n return pricePoint?.amount;\n}\n\nexport function calculatePaywallDiscountRate(plans: PaywallPlan[]) {\n return plans.reduce((maxDiscount, plan) => {\n const monthlyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Monthly);\n const annuallyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Annually);\n\n const discountRate = calculateDiscountRate(monthlyAmount, annuallyAmount);\n if (discountRate) {\n maxDiscount = Math.max(maxDiscount, discountRate);\n }\n\n return maxDiscount;\n }, 0);\n}\n","<svg width=\"135\" height=\"16\" viewBox=\"0 0 135 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0.0987549 3.43016V12.9878H1.15589V9.52681H3.96527C5.94922 9.52681 7.28874 8.25245 7.28874 6.47848C7.28874 4.70452 5.94922 3.43016 3.96527 3.43016H0.0987549ZM1.15589 8.55656V4.40765H4.04492C5.33376 4.40765 6.18816 5.26205 6.18816 6.47848C6.18816 7.69492 5.33376 8.55656 4.04492 8.55656H1.15589Z\" fill=\"#001E6C\"/>\n<path d=\"M11.7787 13.1616C13.9075 13.1616 15.6525 11.5397 15.6525 9.38199C15.6525 7.21703 13.9365 5.62408 11.8077 5.62408C9.64999 5.62408 7.93395 7.24599 7.93395 9.41095C7.93395 11.5687 9.62103 13.1616 11.7787 13.1616ZM11.7932 12.2276C10.2365 12.2276 9.02005 11.0256 9.02005 9.39647C9.02005 7.76732 10.2365 6.56537 11.7932 6.56537C13.321 6.56537 14.5664 7.76732 14.5664 9.39647C14.5664 11.0256 13.321 12.2276 11.7932 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M19.9054 12.9878L21.4766 6.94189H21.5056L23.0623 12.9878H24.4018L26.5958 5.8051H25.4155L23.7936 11.909H23.7647L22.2152 5.8051H20.7815L19.232 11.909H19.203L17.5522 5.8051H16.3575L18.5659 12.9878H19.9054Z\" fill=\"#001E6C\"/>\n<path d=\"M34.9835 9.42544C34.9835 7.30392 33.4051 5.62408 31.1532 5.62408C29.0534 5.62408 27.3084 7.18083 27.3084 9.41095C27.3084 11.5542 28.9086 13.1616 31.1822 13.1616C32.7679 13.1616 34.0567 12.3941 34.6794 11.1922L33.7816 10.707C33.3688 11.6049 32.3696 12.2348 31.1966 12.2348C29.5241 12.2348 28.5031 10.9894 28.4017 9.7223H34.969C34.9835 9.59197 34.9835 9.54129 34.9835 9.42544ZM31.1387 6.55089C32.5434 6.55089 33.6657 7.49942 33.854 8.80998H28.4307C28.6552 7.5501 29.7558 6.55089 31.1387 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M39.5922 5.68201C38.564 5.68201 37.8182 6.20334 37.4924 6.93464L37.391 5.8051H36.486V12.9878H37.5431V8.5638C37.5431 7.44873 38.1585 6.77535 39.3171 6.77535H39.9977V5.68201H39.5922Z\" fill=\"#001E6C\"/>\n<path d=\"M48.2486 9.42544C48.2486 7.30392 46.6702 5.62408 44.4183 5.62408C42.3185 5.62408 40.5735 7.18083 40.5735 9.41095C40.5735 11.5542 42.1737 13.1616 44.4473 13.1616C46.033 13.1616 47.3218 12.3941 47.9445 11.1922L47.0467 10.707C46.634 11.6049 45.6348 12.2348 44.4618 12.2348C42.7892 12.2348 41.7682 10.9894 41.6669 9.7223H48.2342C48.2486 9.59197 48.2486 9.54129 48.2486 9.42544ZM44.4039 6.55089C45.8085 6.55089 46.9308 7.49942 47.1191 8.80998H41.6958C41.9203 7.5501 43.0209 6.55089 44.4039 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M55.846 7.02877C55.2161 6.13817 54.2024 5.63132 53.0149 5.63132C50.9224 5.63132 49.2425 7.21703 49.2425 9.39647C49.2425 11.5759 50.8934 13.1616 52.986 13.1616C54.1807 13.1616 55.2161 12.6403 55.8533 11.7425L55.9981 12.9878H56.9032V2.56128L55.846 2.67713V7.02877ZM53.0294 12.2276C51.5306 12.2276 50.3286 11.0401 50.3286 9.39647C50.3286 7.75284 51.5306 6.56537 53.0294 6.56537C54.5789 6.56537 55.846 7.76732 55.846 9.39647C55.846 11.0256 54.5789 12.2276 53.0294 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M65.7314 5.63132C64.5367 5.63132 63.5085 6.14541 62.8713 7.04325V2.56128L61.8142 2.67713V12.9878H62.7192L62.8641 11.7497C63.494 12.6475 64.5077 13.1616 65.7024 13.1616C67.795 13.1616 69.4748 11.5759 69.4748 9.39647C69.4748 7.21703 67.8239 5.63132 65.7314 5.63132ZM65.6879 12.2276C64.1384 12.2276 62.8713 11.0256 62.8713 9.39647C62.8713 7.76732 64.1384 6.56537 65.6879 6.56537C67.1867 6.56537 68.3887 7.75284 68.3887 9.39647C68.3887 11.0401 67.1867 12.2276 65.6879 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M76.2187 5.8051V9.9178C76.2187 11.3297 75.3136 12.1841 74.0465 12.1841C72.7866 12.1841 72.077 11.4456 72.077 10.1133V5.8051H71.0199V10.2726C71.0199 11.9669 72.1349 13.0965 73.7641 13.0965C74.843 13.0965 75.6901 12.6765 76.2187 11.9814V12.8937C76.2187 14.1608 75.2629 15.0804 73.8727 15.0804C72.7504 15.0804 71.8236 14.4794 71.5847 13.4295L70.6579 13.9074C71.0995 15.16 72.3087 16 73.8582 16C75.8132 16 77.2758 14.5953 77.2758 12.7923V5.8051H76.2187Z\" fill=\"#001E6C\"/>\n<path d=\"M108.672 10.4867C108.672 11.9077 107.411 12.7873 105.491 12.7873C104.464 12.7873 103.634 12.6028 102.84 12.2091C102.914 11.76 102.982 11.2187 103 10.5913C103.738 11.0219 104.575 11.231 105.381 11.231C106.34 11.231 106.839 11.0096 106.839 10.5421C106.857 10.0807 106.5 9.87155 105.067 9.59473C103.406 9.26255 102.668 8.57359 102.668 7.35559C102.668 5.97767 103.929 5.0857 105.848 5.0857C106.697 5.0857 107.54 5.24564 108.186 5.52246L107.866 7.06647C107.226 6.7712 106.537 6.63587 105.848 6.63587C104.95 6.63587 104.507 6.85733 104.507 7.29408C104.507 7.67547 104.815 7.83541 106.217 8.12453C108.007 8.50592 108.678 9.19488 108.678 10.4744L108.672 10.4867ZM112.879 11.0957C112.16 11.0957 111.581 10.7143 111.581 9.70546V6.88808H113.408L113.747 5.25794H111.581V2.93884C111.157 3.06187 110.517 3.2095 109.681 3.28332L109.662 10.0315C109.662 11.8708 110.763 12.7996 112.412 12.7996C112.787 12.7996 113.113 12.7627 113.39 12.6951L113.753 10.9665C113.525 11.0465 113.236 11.1018 112.879 11.1018V11.0957ZM114.965 12.6889H116.884V5.25794H114.965V12.6889ZM115.93 2.21912C115.309 2.21297 114.829 2.66817 114.823 3.27102C114.823 3.89232 115.278 4.35983 115.894 4.36598C116.515 4.36598 116.976 3.92923 116.989 3.32638C117.001 2.70508 116.546 2.23142 115.937 2.21912H115.93ZM126.056 5.25794V11.5263C126.056 13.8946 124.456 15.5247 121.756 15.5247C120.784 15.5247 119.714 15.3094 118.994 14.8973C119.492 14.3867 119.831 13.9438 120.046 13.6239C120.532 13.79 121.042 13.8762 121.565 13.8762C123.275 13.8762 124.143 12.9288 124.143 11.7354V11.4955C123.534 12.1968 122.654 12.6336 121.602 12.6336C119.584 12.6336 118.065 11.1326 118.065 8.90577C118.065 6.67893 119.726 5.098 121.756 5.098C122.808 5.098 123.724 5.4794 124.333 6.19912L124.395 5.25179H126.062L126.056 5.25794ZM124.155 8.90577C124.155 7.72468 123.294 6.82657 122.107 6.82657C120.919 6.82657 120.046 7.72468 120.046 8.90577C120.046 10.0868 120.907 10.9542 122.107 10.9542C123.306 10.9542 124.155 10.0561 124.155 8.90577ZM134.994 5.25794V11.5263C134.994 13.8946 133.394 15.5247 130.694 15.5247C129.722 15.5247 128.652 15.3094 127.932 14.8973C128.43 14.3867 128.769 13.9438 128.984 13.6239C129.47 13.79 129.98 13.8762 130.503 13.8762C132.213 13.8762 133.081 12.9288 133.081 11.7354V11.4955C132.472 12.1968 131.592 12.6336 130.54 12.6336C128.523 12.6336 127.003 11.1326 127.003 8.90577C127.003 6.67893 128.664 5.098 130.694 5.098C131.746 5.098 132.662 5.4794 133.271 6.19912L133.333 5.25179H135L134.994 5.25794ZM133.093 8.90577C133.093 7.72468 132.232 6.82657 131.045 6.82657C129.857 6.82657 128.984 7.72468 128.984 8.90577C128.984 10.0868 129.845 10.9542 131.045 10.9542C132.244 10.9542 133.093 10.0561 133.093 8.90577Z\" fill=\"#001E6C\"/>\n<path d=\"M95.7092 14.9825C95.6354 15.0194 94.2267 15.6407 91.7353 15.5238C90.4374 15.4623 89.3117 15.2224 88.512 15.0009L92.8241 9.99361C93.5931 10.1905 94.5835 10.375 95.7092 10.4304C98.2005 10.5534 99.6092 9.92594 99.683 9.88903L95.7092 14.9886V14.9825ZM89.2686 5.36155C88.5612 2.96863 88.838 1.45537 88.8564 1.3754L84.8457 6.44421C84.8334 6.52418 84.5566 8.03744 85.2578 10.4304C85.6269 11.673 86.1252 12.7126 86.5312 13.4384L90.3759 8.0682C90.0068 7.36693 89.5885 6.44421 89.2686 5.3677V5.36155ZM99.2647 5.89058C98.6988 3.97132 97.813 2.55033 97.4501 2.009L93.8822 6.55494L94.5527 9.77216C94.9526 9.82752 95.3462 9.86443 95.7461 9.88903C95.9491 9.89518 96.1521 9.90134 96.3489 9.90134C98.2805 9.90134 99.357 9.44613 99.4739 9.39076L99.7507 9.26773C99.7753 8.60338 99.7322 7.42844 99.2709 5.88443L99.2647 5.89058ZM97.0256 1.68297C96.4166 1.45537 94.8295 0.932493 92.8303 0.83407C91.2248 0.754101 90.0744 0.987856 89.4347 1.1724L89.3793 1.46767C89.367 1.52919 89.121 2.96248 89.7792 5.20777C89.8899 5.58916 90.0252 5.9644 90.1729 6.33964L93.4577 6.22891L97.0318 1.68912L97.0256 1.68297Z\" fill=\"#001E6C\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\n\nexport const STIGG_WATERMARK_CLASSNAME = 'stigg-watermark';\n\nexport type PoweredByStiggSources = 'paywall' | 'customer_portal' | 'checkout';\n\nconst PoweredByStiggThemedSvg = styled(PoweredByStiggSvg)`\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n\ntype PoweredByStiggProps = {\n source: PoweredByStiggSources;\n showWatermark?: boolean;\n style?: React.CSSProperties;\n align?: 'center' | 'end';\n};\n\nconst StyledPoweredByStigg = styled.div<{ $alignSelf?: string }>`\n align-self: ${({ $alignSelf }) => $alignSelf || 'unset'};\n\n @media (max-width: 1040px) {\n align-self: center;\n }\n`;\n\nexport function PoweredByStigg({ source, showWatermark, align, style = {} }: PoweredByStiggProps) {\n if (!showWatermark) {\n return null;\n }\n\n const onWatermarkClick = () => {\n const sourceDomain = window.location.hostname.replace('www.', '');\n window.open(\n `https://www.stigg.io/?utm_source=${sourceDomain}&utm_medium=referral&utm_campaign=${source}`,\n '_blank',\n );\n };\n\n return (\n <StyledPoweredByStigg\n $alignSelf={align}\n className={STIGG_WATERMARK_CLASSNAME}\n style={{ cursor: 'pointer', ...style }}\n onClick={onWatermarkClick}>\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some((plan) => hasPricePoints(plan, billingPeriod));\n}\n","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { ShouldHidePlanFn, PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(\n plans: PaywallPlan[],\n selectedBillingPeriod: BillingPeriod,\n shouldHidePlan?: ShouldHidePlanFn,\n): PaywallPlan[] {\n return plans\n .filter((plan) => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod))\n .filter((plan) => !shouldHidePlan || !shouldHidePlan({ plan }));\n}\n","import { BillableFeature, BillingPeriod, Customer, Plan, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PlanOffering } from './PlanOffering';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { calculatePaywallDiscountRate } from '../utils/calculateDiscountRate';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n PaywallPlan,\n SubscribeIntentionType,\n SelectDefaultTierIndexFn,\n} from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\nimport { useStiggContext } from '../..';\nimport { hasPricePointsForPlans } from './utils/hasPricePoints';\nimport { getPlansToDisplay } from './utils/getPlansToDisplay';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PaywallPlansContainer = styled.div`\n color: ${({ theme }) => theme.stigg.palette.text.primary};\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: wrap;\n padding: 10px 0;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n`;\n\nconst PaywallContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nconst PaywallLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\ntype PaywallProps = {\n plans: PaywallPlan[];\n customer: Customer | null;\n currentSubscription: Subscription | null;\n selectedBillingPeriod: BillingPeriod;\n highlightedPlanId?: string;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n isCustomerOnTrial: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n paywallLocale: PaywallLocalization;\n locale: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nexport const Paywall = ({\n plans,\n customer,\n currentSubscription,\n highlightedPlanId,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n shouldHidePlan,\n selectDefaultTierIndex,\n}: PaywallProps) => {\n const { stigg } = useStiggContext();\n const discountRate = calculatePaywallDiscountRate(plans);\n const shouldShowDescriptionSection = plans.some((plan) => !!plan.description);\n const hasMonthlyPrice = hasPricePointsForPlans(plans, BillingPeriod.Monthly);\n const hasAnnuallyPrice = hasPricePointsForPlans(plans, BillingPeriod.Annually);\n const plansToShow = getPlansToDisplay(plans, selectedBillingPeriod, shouldHidePlan);\n\n const handleOnSubscribe = useCallback(\n (plan: Plan, intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => {\n return onPlanSelected({\n plan,\n customer,\n subscription: currentSubscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n });\n },\n [customer, selectedBillingPeriod, currentSubscription, onPlanSelected],\n );\n\n const isCustomerInCustomPlan = !!currentSubscription && currentSubscription.plan.pricingType === PricingType.Custom;\n\n const withStartingAtRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod,\n );\n return planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n }),\n [selectedBillingPeriod, plansToShow],\n );\n\n const withUnitPriceRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n return !!getPlanPrice(plan, selectedBillingPeriod, paywallLocale, locale, hasMonthlyPrice).unit;\n }),\n [selectedBillingPeriod, hasMonthlyPrice, locale, paywallLocale, plansToShow],\n );\n\n const withTiersRow = useMemo(() => {\n return (\n !isCustomerInCustomPlan &&\n plansToShow.some((plan) => {\n const tiers = getTiersPerUnitQuantities(plan, selectedBillingPeriod, currentSubscription);\n return Object.values(tiers).length > 0;\n })\n );\n }, [selectedBillingPeriod, currentSubscription, isCustomerInCustomPlan, plansToShow]);\n\n const withTrialLeftRow = plansToShow.some((plan) => {\n return plan.isCurrentCustomerPlan && plan.trialDaysLeft;\n });\n\n return (\n <PaywallContainer className=\"stigg-paywall-container\">\n <PaywallLayout className=\"stigg-paywall-layout\">\n <BillingPeriodPicker\n onBillingPeriodChanged={onBillingPeriodChanged}\n selectedBillingPeriod={selectedBillingPeriod}\n availableBillingPeriods={availableBillingPeriods}\n discountRate={discountRate}\n />\n\n <PaywallPlansContainer className=\"stigg-paywall-plans-layout\">\n {plansToShow.map((plan) => (\n <PlanOffering\n withUnitPriceRow={withUnitPriceRow}\n withTiersRow={withTiersRow}\n withTrialLeftRow={withTrialLeftRow}\n key={plan.id}\n shouldShowDescriptionSection={shouldShowDescriptionSection}\n hasMonthlyPrice={hasMonthlyPrice}\n hasAnnuallyPrice={hasAnnuallyPrice}\n plan={plan}\n withStartingAtRow={withStartingAtRow}\n currentSubscription={currentSubscription}\n billingPeriod={selectedBillingPeriod}\n isHighlighted={plan.id === highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={(intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) =>\n handleOnSubscribe(plan, intentionType, billableFeatures)\n }\n paywallLocale={paywallLocale}\n locale={locale}\n customer={customer}\n isCustomerInCustomPlan={isCustomerInCustomPlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n />\n ))}\n </PaywallPlansContainer>\n <PoweredByStigg\n source=\"paywall\"\n align=\"end\"\n style={{ marginTop: 16 }}\n showWatermark={stigg.isWidgetWatermarkEnabled}\n />\n </PaywallLayout>\n </PaywallContainer>\n );\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export interface Logger {\n log: (message: string, object?: Record<string, string>) => void;\n debug: (message: string, object?: Record<string, string>) => void;\n error: (message: string, error?: Error, ...params: Record<string, string>[]) => void;\n}\n\nexport class LoggerService implements Logger {\n error(message: string, error?: Error, ...params: Record<string, string>[]): void {\n console.error(message, error || {}, params);\n }\n\n log(message: string, object?: Record<string, string>): void {\n console.log(message, object || {});\n }\n\n debug(message: string, object?: Record<string, string> | undefined): void {\n console.debug(message, object || {});\n }\n}\n\n// Export a singleton logger service, in the future we might allow to user to configure external logger\nexport default new LoggerService();\n","import { BillingPeriod, Plan, Subscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { countBy, uniq } from 'lodash';\n\nexport function computeBillingPeriods(\n plans: Plan[],\n activeSubscriptions?: Subscription[] | null,\n preferredBillingPeriod?: BillingPeriod,\n): { defaultBillingPeriod: BillingPeriod; availableBillingPeriods: BillingPeriod[] } {\n const billingPeriods = plans.flatMap((x) => x.pricePoints).map((x) => x.billingPeriod);\n const counts = countBy(billingPeriods);\n\n const availableBillingPeriods = uniq(billingPeriods);\n let defaultBillingPeriod: BillingPeriod | undefined;\n\n if (preferredBillingPeriod && availableBillingPeriods.includes(preferredBillingPeriod)) {\n defaultBillingPeriod = preferredBillingPeriod;\n } else if (activeSubscriptions) {\n const activeSubscription = activeSubscriptions.find((x) => x.status === SubscriptionStatus.Active);\n\n if (activeSubscription && activeSubscription.prices.length > 0) {\n defaultBillingPeriod = activeSubscription?.prices[0].billingPeriod;\n }\n }\n\n if (!defaultBillingPeriod) {\n defaultBillingPeriod =\n (counts[BillingPeriod.Monthly] || 0) > (counts[BillingPeriod.Annually] || 0)\n ? BillingPeriod.Monthly\n : BillingPeriod.Annually;\n }\n\n return { defaultBillingPeriod, availableBillingPeriods };\n}\n","import moment from 'moment';\n\nexport function calculateTrialDaysLeft(trialEndDate: Date) {\n return moment.utc(trialEndDate).diff(moment.utc(), 'days', false) + 1;\n}\n","import { FontWeight, TypographyConfiguration } from '@stigg/js-client-sdk';\n\nexport const defaultCheckoutTypography: TypographyConfiguration = {\n h1: {\n fontSize: 24,\n fontWeight: FontWeight.Bold,\n },\n h2: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n h3: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n body: {\n fontSize: 14,\n fontWeight: FontWeight.Normal,\n },\n};\n","import {\n Alignment,\n CheckoutConfiguration,\n CustomerPortalConfiguration,\n FontWeight as JSFontWeight,\n PaywallConfiguration,\n TypographyConfiguration,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\nimport { HorizontalAlignment, FontWeight } from '../../theme/types';\nimport { defaultCheckoutTypography } from '../checkout/configurations/typography';\n\nfunction addCssUnits(value?: number | null, unit = 'px') {\n if (!value) {\n return undefined;\n }\n return `${value}${unit}`;\n}\n\nfunction mapFontWeight(defaultValue: FontWeight, fontWeight?: JSFontWeight | null): FontWeight {\n if (!fontWeight) {\n return defaultValue;\n }\n\n switch (fontWeight) {\n case JSFontWeight.Normal:\n return 'normal';\n case JSFontWeight.Bold:\n return 'bold';\n default:\n return 'normal';\n }\n}\n\nexport function mapTypography(\n typography?: TypographyConfiguration | null,\n defaultTypography?: TypographyConfiguration | null,\n): CustomizedTheme['typography'] {\n return {\n fontFamilyUrl: typography?.fontFamily || undefined,\n h1: {\n fontSize: addCssUnits(typography?.h1?.fontSize || defaultTypography?.h1?.fontSize),\n fontWeight: mapFontWeight('bold', typography?.h1?.fontWeight || defaultTypography?.h1?.fontWeight),\n },\n h2: {\n fontSize: addCssUnits(typography?.h2?.fontSize || defaultTypography?.h2?.fontSize),\n fontWeight: mapFontWeight('normal', defaultTypography?.h2?.fontWeight),\n },\n h3: {\n fontSize: addCssUnits(typography?.h3?.fontSize || defaultTypography?.h3?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.h3?.fontWeight || defaultTypography?.h3?.fontWeight),\n },\n body: {\n fontSize: addCssUnits(typography?.body?.fontSize || defaultTypography?.body?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.body?.fontWeight || defaultTypography?.body?.fontWeight),\n },\n };\n}\n\nfunction mapAlignment(alignment?: Alignment | null): HorizontalAlignment | undefined {\n if (!alignment) {\n return undefined;\n }\n\n switch (alignment) {\n case Alignment.Left:\n return 'left';\n case Alignment.Center:\n return 'center';\n case Alignment.Right:\n return 'right';\n default: {\n return undefined;\n }\n }\n}\n\nexport function mapCustomerPortalConfiguration(configuration: CustomerPortalConfiguration): CustomizedTheme {\n const { palette, customCss, typography } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.paywallBackgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n customCss: customCss || undefined,\n };\n}\n\nexport function mapPaywallConfiguration(paywallConfiguration: PaywallConfiguration): CustomizedTheme {\n const { palette, layout, customCss, typography } = paywallConfiguration;\n return {\n customCss: customCss || undefined,\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n layout: {\n ctaAlignment: mapAlignment(layout?.alignment),\n headerAlignment: mapAlignment(layout?.alignment),\n descriptionAlignment: mapAlignment(layout?.alignment),\n planMaxWidth: addCssUnits(layout?.planWidth),\n planMinWidth: addCssUnits(layout?.planWidth),\n planMargin: addCssUnits(layout?.planMargin),\n planPadding: addCssUnits(layout?.planPadding),\n },\n };\n}\n\nexport function mapCheckoutConfiguration(configuration: CheckoutConfiguration): CustomizedTheme {\n const { palette, typography, customCss } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n backgroundHighlight: palette?.summaryBackgroundColor || undefined,\n },\n typography: mapTypography(typography, defaultCheckoutTypography),\n customCss: customCss || undefined,\n };\n}\n","import {\n BillingPeriod,\n SubscriptionStatus,\n Paywall,\n Plan,\n Subscription,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport sortBy from 'lodash/sortBy';\nimport { PaywallPlan } from '../types';\nimport { calculateTrialDaysLeft } from './calculateTrialDaysLeft';\nimport { BillingPeriodChangeVariables, DeepPartial, DowngradeChangeVariables } from '../../../types';\nimport { StiggTheme } from '../../../theme/types';\nimport { mapPaywallConfiguration } from '../../common/mapExternalTheme';\n\nfunction getCustomerSubscriptionDetails(activeSubscriptions?: Subscription[] | null) {\n let isCustomerOnTrial = true;\n let currentSubscription: Subscription | null =\n activeSubscriptions?.find((s) => s.status === SubscriptionStatus.InTrial) || null;\n let currentPlan = currentSubscription?.plan;\n const trialDaysLeft = currentSubscription?.trialEndDate\n ? calculateTrialDaysLeft(currentSubscription.trialEndDate)\n : undefined;\n if (!currentPlan) {\n isCustomerOnTrial = false;\n currentSubscription = activeSubscriptions?.find((s) => s.status === SubscriptionStatus.Active) || null;\n currentPlan = currentSubscription?.plan;\n }\n\n return {\n currentSubscription,\n currentPlan,\n isCustomerOnTrial,\n trialDaysLeft,\n };\n}\n\ntype PaywallData = {\n currentPlan?: Plan;\n currentSubscription: Subscription | null;\n isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(paywall: Paywall | null, showOnlyEligiblePlans?: boolean): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } =\n getCustomerSubscriptionDetails(activeSubscriptions);\n\n const scheduledUpdates = currentSubscription?.scheduledUpdates || [];\n const currentCustomerPlanBillingPeriod = currentSubscription?.price?.billingPeriod;\n const downgradeSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.Downgrade,\n );\n const billingChangedSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.BillingPeriod,\n );\n\n let paywallPlans: PaywallPlan[] = sortBy(plans, (plan) => plan.order).map((plan) => {\n const eligibleForProductTrial = customer?.eligibleForTrial?.find(\n (productTrial) => productTrial.productId === plan.product.id,\n );\n const isCurrentCustomerPlan = plan.id === currentPlan?.id;\n\n const isNextPlan = (currentBillingPeriod: BillingPeriod) => {\n const downgradeVariables = downgradeSchedule?.scheduleVariables as DowngradeChangeVariables;\n const billingChangedVariables = billingChangedSchedule?.scheduleVariables as BillingPeriodChangeVariables;\n const isPlanHasBillingPeriodPrice = plan.pricePoints.some(\n (price) => price.billingPeriod === currentBillingPeriod,\n );\n\n return downgradeSchedule\n ? downgradeSchedule.targetPackage?.refId === plan.id &&\n (!isPlanHasBillingPeriodPrice || downgradeVariables.billingPeriod === currentBillingPeriod)\n : billingChangedSchedule && isCurrentCustomerPlan\n ? billingChangedVariables.billingPeriod === currentBillingPeriod\n : false;\n };\n\n return {\n ...plan,\n paywallCalculatedPricePoints: paywallCalculatedPricePoints?.filter((pricePoint) => pricePoint.planId === plan.id),\n isTriable: !isNil(plan.defaultTrialConfig) && (!eligibleForProductTrial || eligibleForProductTrial.eligible),\n isCurrentCustomerPlan,\n currentCustomerPlanBillingPeriod,\n isUpcomingPlan: false,\n trialDaysLeft,\n isNextPlan,\n paywallCurrency: currency,\n scheduledUpdate: downgradeSchedule || billingChangedSchedule,\n };\n });\n if (plans && currentPlan) {\n const currentPlanOrder = currentPlan && plans?.find((x) => x.id === currentPlan?.id)?.order;\n if (!isNil(currentPlanOrder)) {\n paywallPlans = paywallPlans.map<PaywallPlan>((plan) => ({\n ...plan,\n isLowerThanCurrentPlan: currentPlanOrder > plan.order,\n }));\n if (showOnlyEligiblePlans) {\n paywallPlans = paywallPlans.filter((plan) => plan.order >= currentPlanOrder);\n }\n }\n }\n const paywallConfiguration = configuration ? mapPaywallConfiguration(configuration) : undefined;\n\n return {\n currentPlan,\n currentSubscription,\n isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import React, { useEffect, useState, PropsWithChildren, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { ClientConfiguration, EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\nimport { name as CLIENT_NAME, version as CLIENT_VERSION } from '../../package.json';\n\nexport interface StiggContextValue {\n stigg: StiggJs.StiggClient;\n isInitialized: boolean;\n locale: string;\n updatedAt?: Date;\n customerPortalUpdatedAt?: Date;\n refreshData: () => Promise<void>;\n theme?: CustomizedTheme;\n}\n\nexport const StiggContext = React.createContext<StiggContextValue | null>(null);\nStiggContext.displayName = 'StiggContext';\n\nexport type StiggProviderProps = {\n apiKey: string;\n baseUri?: string;\n baseEdgeUri?: string;\n enableEdge?: boolean;\n entitlementsFallback?: EntitlementsFallback;\n customerId?: string;\n customerToken?: string;\n resourceId?: string;\n theme?: CustomizedTheme;\n locale?: string;\n offline?: boolean;\n cacheTtlMs?: number;\n /** @deprecated not longer in use */\n useEntitlementPolling?: boolean;\n /** @deprecated not longer in use */\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\n clientName?: string;\n clientVersion?: string;\n};\n\nconst DEFAULT_LOCALE = 'en-US';\n\nexport const StiggProvider: React.FC<PropsWithChildren<StiggProviderProps>> = ({\n apiKey,\n baseUri,\n baseEdgeUri,\n enableEdge,\n customerId,\n customerToken,\n resourceId,\n theme,\n locale,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n offline,\n clientName = CLIENT_NAME,\n clientVersion = CLIENT_VERSION,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams: ClientConfiguration = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n clientName,\n clientVersion,\n offline,\n };\n const [ctx, setContext] = useState<StiggContextValue>(() => ({\n stigg:\n stiggClient ??\n Stigg.initialize({\n ...initializeParams,\n lazyLoad: true,\n }),\n locale: locale || DEFAULT_LOCALE,\n isInitialized: false,\n theme,\n refreshData: async () => {\n setContext((ctx) => ({ ...ctx, customerPortalUpdatedAt: new Date() }));\n await ctx.stigg.refresh();\n },\n }));\n\n useEffect(() => {\n let isMounted = true;\n\n const safeSetContext = (setContextFunc: React.SetStateAction<StiggContextValue>) => {\n if (isMounted) {\n setContext(setContextFunc);\n }\n };\n\n const onEntitlementsUpdated = () => safeSetContext((ctx) => ({ ...ctx, updatedAt: new Date() }));\n\n const setStiggInstance = (stigg: StiggJs.StiggClient) =>\n safeSetContext((ctx) => {\n if (ctx.stigg) {\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n }\n stigg.addListener('entitlementsUpdated', onEntitlementsUpdated);\n\n return {\n ...ctx,\n stigg,\n isInitialized: true,\n updatedAt: new Date(),\n };\n });\n\n const loadStiggClient = async () => {\n let stiggClient = ctx.stigg;\n if (apiKey !== currentApiKey.current) {\n logger.log('Updating stigg client', { apiKey });\n currentApiKey.current = apiKey;\n stiggClient = Stigg.initialize({\n ...initializeParams,\n });\n safeSetContext((ctx) => ({ ...ctx, isInitialized: false, updatedAt: new Date() }));\n }\n await stiggClient.waitForInitialization();\n setStiggInstance(stiggClient);\n };\n\n void loadStiggClient();\n\n return () => {\n isMounted = false;\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n ctx.stigg.clearCustomer();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiKey]);\n\n useEffect(() => {\n const stiggClient = ctx.stigg;\n if (customerId) {\n void stiggClient.setCustomerId(customerId, customerToken, resourceId);\n } else {\n stiggClient.clearCustomer();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [customerId, customerToken, resourceId]);\n\n useEffect(() => {\n setContext((ctx) => ({ ...ctx, theme }));\n }, [theme]);\n\n return (\n <StiggContext.Provider value={ctx}>\n <SkeletonTheme baseColor=\"#F5F6F9\" highlightColor=\"#e5e6ea\">\n {children}\n </SkeletonTheme>\n </StiggContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { StiggContext, StiggContextValue } from '../components/StiggProvider';\n\nexport function useStiggContext(options?: { optional?: false }): StiggContextValue;\nexport function useStiggContext(options: { optional: true }): StiggContextValue | null;\nexport function useStiggContext(options?: { optional?: boolean }): StiggContextValue | null {\n const { optional } = options || {};\n const ctx = useContext(StiggContext);\n if (!ctx && !optional) {\n throw new Error('Could not find Stigg context; You need to wrap your app in an <StiggProvider> component.');\n }\n return ctx;\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n}: UseLoadPaywallDataProps): PaywallData {\n const { stigg, locale } = useStiggContext();\n const [selectedBillingPeriod, setSelectedBillingPeriod] = useState(BillingPeriod.Annually);\n const [availableBillingPeriods, setAvailableBillingPeriods] = useState<BillingPeriod[]>([]);\n const [paywall, setPaywall] = useState<Paywall | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const loadPaywall = async () => {\n try {\n setIsLoading(true);\n\n await stigg.waitForInitialization();\n const paywallResult = await stigg.getPaywall({\n productId,\n resourceId,\n billingCountryCode,\n });\n const { availableBillingPeriods, defaultBillingPeriod } = computeBillingPeriods(\n paywallResult.plans,\n paywallResult.activeSubscriptions,\n preferredBillingPeriod,\n );\n\n setPaywall(paywallResult);\n setAvailableBillingPeriods(availableBillingPeriods);\n setSelectedBillingPeriod(defaultBillingPeriod);\n } catch (err) {\n logger.error(`Failed to load paywall ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n void loadPaywall();\n }, [stigg, productId, stigg.isCustomerLoaded, billingCountryCode, resourceId, preferredBillingPeriod]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans);\n\n return {\n customer: paywall?.customer || null,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration: paywallData.paywallConfiguration,\n ...paywallData,\n };\n}\n","import {\n BillingPeriod,\n PaywallCalculatedPricePoint,\n PaywallCurrency,\n Plan,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\nimport { PlanPriceText } from '../utils/getPlanPrice';\nimport { PaywallPlan } from './types';\n\nexport { PlanPriceText } from '../utils/getPlanPrice';\n\nexport type CurrentPlanParams = {\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n};\n\nexport type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n currentPlan: string;\n startNew: string;\n switchToBillingPeriod: (billingPeriod: BillingPeriod) => string;\n cancelScheduledUpdate: string;\n };\n price: {\n startingAtCaption: string;\n billingPeriod?: (billingPeriod: BillingPeriod) => string;\n pricePeriod: (billingPeriod: BillingPeriod) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n priceNotSet: string;\n free: PlanPriceText | ((currency?: PaywallCurrency) => PlanPriceText);\n paid?: (priceData: {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n selectedTier?: PriceTierFragment;\n }) => PlanPriceText;\n };\n};\n\nexport function getResolvedPaywallLocalize(localizeOverride?: DeepPartial<PaywallLocalization>) {\n const paywallDefaultLocalization: PaywallLocalization = {\n highlightChip: 'Recommended',\n planCTAButton: {\n upgrade: 'Upgrade',\n downgrade: 'Downgrade',\n startTrial: (plan: PaywallPlan) => `Start ${plan.defaultTrialConfig?.duration} day trial`,\n custom: 'Contact us',\n currentPlan: 'Current plan',\n startNew: 'Get started',\n switchToBillingPeriod: (billingPeriod) => {\n return billingPeriod === BillingPeriod.Monthly ? 'Switch to monthly billing' : 'Switch to annual billing';\n },\n cancelScheduledUpdate: 'Cancel',\n },\n price: {\n startingAtCaption: 'Starts at',\n pricePeriod: (billingPeriod: BillingPeriod) => (billingPeriod === BillingPeriod.Monthly ? '/ month' : '/ year'),\n free: (currency) => ({\n price: `${currency?.symbol}0`,\n }),\n custom: 'Custom',\n priceNotSet: 'Price not set',\n },\n };\n return merge(paywallDefaultLocalization, localizeOverride);\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Skeleton from 'react-loading-skeleton';\nimport CheckUrl from '../../assets/check-stigg.svg';\n\nconst SkeletonContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n margin-right: 16px;\n`;\n\nconst PlanOfferingSkeleton = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n min-height: 450px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nconst PlansContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst EntitlementContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 12px;\n`;\n\nconst FooterSkeletonLoader = styled.div`\n margin-top: auto;\n`;\n\nconst BillingPeriodLoader = styled.div`\n width: 150px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n padding: 12px 12px;\n border-radius: 10px;\n background-color: white;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nfunction PlanOfferingLoader() {\n return (\n <PlanOfferingSkeleton>\n <Skeleton width={120} borderRadius={4} />\n <Skeleton circle width={40} height={40} />\n <Skeleton style={{ marginBottom: 33 }} width={120} borderRadius={4} />\n\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n\n <FooterSkeletonLoader>\n <Skeleton height={50} borderRadius={4} />\n </FooterSkeletonLoader>\n </PlanOfferingSkeleton>\n );\n}\n\nexport function PaywallLoader() {\n return (\n <SkeletonContainer className=\"stigg-skeleton-loader-container\">\n <BillingPeriodLoader className=\"stigg-skeleton-loader-billing-period\">\n <Skeleton borderRadius={4} />\n </BillingPeriodLoader>\n\n <PlansContainer className=\"stigg-skeleton-loader-plans-container\">\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n </PlansContainer>\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { Global, css } from '@emotion/react';\n\nexport const Fonts = ({ externalFontUrl }: { externalFontUrl?: string }) => {\n return (\n <Global\n styles={css`\n ${externalFontUrl &&\n `\n @font-face {\n font-family: 'custom-font';\n font-style: normal;\n font-weight: normal;\n src: local('custom-font'), url(${externalFontUrl}) format('woff');\n }\n `}\n\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZ2IHTWEBlwu8Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZOIHTWEBlw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n `}\n />\n );\n};\n","import { merge } from 'lodash';\nimport React, { PropsWithChildren } from 'react';\nimport { ThemeProvider as StyledThemeProvider } from 'styled-components';\nimport { TypographyProps } from 'styled-typography';\nimport { css, ThemeProvider } from '@emotion/react';\nimport styled from '@emotion/styled/macro';\nimport { createTheme, ThemeProvider as MuiThemeProvider, THEME_ID } from '@mui/material/styles';\n\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\nimport { useStiggContext } from '../hooks/useStiggContext';\n\nexport type CustomizedTheme = DeepPartial<StiggTheme>;\n\nconst CustomCssGlobal = styled.div<{ customCss?: string }>`\n ${({ customCss }) =>\n customCss &&\n css`\n ${customCss}\n `}\n`;\n\ntype SdkThemeProviderProps = {\n componentTheme?: CustomizedTheme;\n};\n\n/*\n This merge the theme from 3 places:\n 1. External theme that we got from the user in StiggProvider\n 2. Remote theme from api\n 3. Default theme\n*/\nexport function useStiggTheme(remoteThemeOverride?: CustomizedTheme): StiggTheme {\n const { theme: externalTheme } = useStiggContext();\n const mergedTheme = merge(remoteThemeOverride, externalTheme);\n const resolvedTheme = getResolvedTheme(mergedTheme);\n\n return resolvedTheme;\n}\n\nfunction createTypographyTheme(theme: StiggTheme): Partial<TypographyProps> {\n const { typography } = theme;\n const htmlFontSize = 16;\n const coef = Number(typography.body.fontSize.replace('px', '')) / 14;\n\n return {\n // Hack to fix theming issues\n // @ts-ignore\n pxToRem: (size) => `${(size / htmlFontSize) * coef}rem`,\n bodyFontFamily: typography.fontFamily,\n headingFontFamily: typography.fontFamily,\n fontSizes: [\n typography.h1.fontSize,\n typography.h2.fontSize,\n typography.h3.fontSize,\n typography.body.fontSize,\n '12px',\n '10px',\n ],\n };\n}\n\nconst createMuiPalette = (theme: StiggTheme) => {\n return {\n primary: {\n main: theme.palette.primary,\n },\n };\n};\n\nexport const SdkThemeProvider: React.FC<PropsWithChildren<SdkThemeProviderProps>> = ({ children, componentTheme }) => {\n const theme = useStiggTheme(componentTheme);\n const muiPalette = createMuiPalette(theme);\n const materialTheme = createTheme({ palette: muiPalette, stigg: theme });\n\n return (\n // We are using styled-components theme here only because we are using styled-typography\n // which depends on styled-components for the typography theming\n <MuiThemeProvider theme={{ [THEME_ID]: materialTheme }}>\n <ThemeProvider theme={{ stigg: theme }}>\n <CustomCssGlobal customCss={theme.customCss}>\n <Fonts externalFontUrl={theme.typography.fontFamilyUrl} />\n <StyledThemeProvider theme={{ typography: createTypographyTheme(theme) }}>{children}</StyledThemeProvider>\n </CustomCssGlobal>\n </ThemeProvider>\n </MuiThemeProvider>\n );\n};\n","import { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseCustomerPortalProps = {\n resourceId?: string;\n productId?: string;\n};\n\nexport function useCustomerPortal({ resourceId, productId }: UseCustomerPortalProps) {\n const { stigg, customerPortalUpdatedAt } = useStiggContext();\n const [isLoading, setIsLoading] = useState(false);\n const [customerPortal, setCustomerPortal] = useState<CustomerPortal | null>();\n\n useEffect(() => {\n const loadCustomerPortal = async () => {\n if (stigg.isCustomerLoaded) {\n try {\n setIsLoading(true);\n const customerPortalData = await stigg.getCustomerPortal({ resourceId, productId });\n setCustomerPortal(customerPortalData);\n } catch (err) {\n logger.error(`Failed to load customer portal ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n void loadCustomerPortal();\n }, [stigg, stigg.isCustomerLoaded, customerPortalUpdatedAt, resourceId, productId]);\n\n return {\n customerPortal,\n isLoading,\n };\n}\n","import merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalLocalization = {\n manageSubscription: string;\n usageTabTitle: string;\n addonsTabTitle: string;\n promotionsTabTitle: string;\n promotionsSubtitle: string;\n contactSupportTitle: string;\n contactSupportLink: string;\n editBilling: string;\n invoicesTitle: string;\n viewInvoiceHistory: string;\n editPaymentDetails: string;\n paywallSectionTitle: string;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function getResolvedCustomerPortalLocalize(\n localizeOverride?: DeepPartial<CustomerPortalLocalization>,\n): CustomerPortalLocalization {\n const customerPortalDefaultLocalization: CustomerPortalLocalization = {\n manageSubscription: 'Manage',\n usageTabTitle: 'Usage',\n addonsTabTitle: 'Add-ons',\n promotionsTabTitle: 'Promotions',\n promotionsSubtitle: 'You were granted access to additional functionality at no additional cost.',\n contactSupportTitle: 'Have questions about your subscription?',\n contactSupportLink: 'Contact support',\n editBilling: 'Edit billing details',\n invoicesTitle: 'Invoices',\n viewInvoiceHistory: 'View invoice history',\n editPaymentDetails: 'Edit',\n paywallSectionTitle: 'Plans',\n cancelScheduledUpdatesButtonTitle: 'Cancel',\n };\n return merge(customerPortalDefaultLocalization, localizeOverride);\n}\n","import { CustomerPortalConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../theme/types';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalTheme = {\n sectionTitleColor: string;\n planNameColor: string;\n backgroundColor: string;\n borderColor: string;\n listItemBackgroundColor: string;\n tabMaxHeight: string;\n iconsColor?: string;\n iconsBackgroundColor?: string;\n};\n\nexport function getResolvedCustomerPortalTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CustomerPortalTheme>,\n remoteConfiguration?: CustomerPortalConfiguration | null,\n) {\n const customerPortalDefaultTheme: CustomerPortalTheme = {\n sectionTitleColor: themeOverride?.sectionTitleColor || globalTheme.palette.text.secondary,\n planNameColor: themeOverride?.planNameColor || globalTheme.palette.text.primary,\n backgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n borderColor: themeOverride?.borderColor || remoteConfiguration?.palette?.borderColor || 'rgba(0, 30, 108, 0.15)',\n listItemBackgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n tabMaxHeight: themeOverride?.tabMaxHeight || '380px',\n\n // add icons background color and apply to scheduled updates and customer support icons\n iconsColor: themeOverride?.iconsColor || remoteConfiguration?.palette?.iconsColor || undefined,\n iconsBackgroundColor: themeOverride?.iconsBackgroundColor,\n };\n\n return customerPortalDefaultTheme;\n}\n","import React, { useContext } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useCustomerPortal } from './hooks/useCustomerPortal';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization, getResolvedCustomerPortalLocalize } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme, getResolvedCustomerPortalTheme } from './customerPortalTheme';\nimport { SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { useStiggContext } from '../..';\nimport { mapCustomerPortalConfiguration } from '../common/mapExternalTheme';\n\nexport interface CustomerPortalContextValue {\n customerPortal?: CustomerPortal | null;\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n isLoading: boolean;\n resourceId?: string;\n}\n\nexport const CustomerPortalContext = React.createContext<CustomerPortalContextValue | null>(null);\nCustomerPortalContext.displayName = 'CustomerPortalContext';\n\nexport const useCustomerPortalContext = (): CustomerPortalContextValue => {\n const ctx = useContext(CustomerPortalContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Customer portal context; You need to wrap your customer portal components in an <CustomerPortalProvider> component.',\n );\n }\n return ctx;\n};\n\nexport function useCheckContextExists<T>(contextType: React.Context<T>) {\n const ctx = useContext(contextType);\n return !!ctx;\n}\n\nexport function CustomerPortalProvider({\n children,\n textOverrides,\n theme,\n resourceId,\n productId,\n}: {\n children: React.ReactNode;\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n resourceId?: string;\n productId?: string;\n}) {\n const { customerPortalUpdatedAt } = useStiggContext();\n const { customerPortal, isLoading } = useCustomerPortal({ resourceId, productId });\n const configuration = customerPortal?.configuration\n ? mapCustomerPortalConfiguration(customerPortal.configuration)\n : undefined;\n const globalTheme = useStiggTheme(configuration);\n const customerPortalTheme = getResolvedCustomerPortalTheme(globalTheme, theme, customerPortal?.configuration);\n const resolvedTextOverrides = getResolvedCustomerPortalLocalize(textOverrides);\n\n return (\n <SdkThemeProvider componentTheme={configuration}>\n <CustomerPortalContext.Provider\n key={customerPortalUpdatedAt?.toString()}\n value={{\n customerPortal,\n isLoading,\n textOverrides: resolvedTextOverrides,\n theme: customerPortalTheme,\n resourceId,\n }}>\n {children}\n </CustomerPortalContext.Provider>\n </SdkThemeProvider>\n );\n}\n","import React from 'react';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Paywall } from './Paywall';\nimport { useLoadPaywallData } from './hooks/useLoadPaywallData';\nimport { ShouldHidePlanFn, OnPlanSelectedCallbackFn, SelectDefaultTierIndexFn } from './types';\nimport { getResolvedPaywallLocalize, PaywallLocalization } from './paywallTextOverrides';\nimport { DeepPartial } from '../../types';\nimport { PaywallLoader } from './PaywallLoader';\nimport { SdkThemeProvider } from '../../theme/Theme';\nimport {\n CustomerPortalContext,\n useCheckContextExists,\n useCustomerPortalContext,\n} from '../customerPortal/CustomerPortalProvider';\n\nexport type PaywallContainerProps = {\n productId?: string;\n resourceId?: string;\n highlightedPlanId?: string;\n showOnlyEligiblePlans?: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n preferredBillingPeriod?: BillingPeriod;\n onBillingPeriodChange?: (billingPeriod: BillingPeriod) => void;\n textOverrides?: DeepPartial<PaywallLocalization>;\n billingCountryCode?: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\n shouldHidePlan,\n selectDefaultTierIndex,\n}: PaywallContainerProps) => {\n const hasCustomerPortalContext = useCheckContextExists(CustomerPortalContext);\n let isCustomerPortalLoading = false;\n if (hasCustomerPortalContext) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { isLoading, resourceId: customerPortalResourceId } = useCustomerPortalContext();\n isCustomerPortalLoading = isLoading;\n resourceId = customerPortalResourceId;\n }\n const {\n plans,\n customer,\n currentSubscription,\n isCustomerOnTrial,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration,\n } = useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n });\n const paywallLocale = getResolvedPaywallLocalize(textOverrides);\n const handlePeriodChange = (billingPeriod: BillingPeriod) => {\n setSelectedBillingPeriod(billingPeriod);\n if (onBillingPeriodChange) {\n onBillingPeriodChange(billingPeriod);\n }\n };\n\n const component =\n !plans || isLoading || isCustomerPortalLoading ? (\n <PaywallLoader />\n ) : (\n <Paywall\n plans={plans}\n customer={customer}\n currentSubscription={currentSubscription}\n selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\n shouldHidePlan={shouldHidePlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n />\n );\n\n // When rendering the paywall in the customer portal context we don't want to apply paywall theme\n if (hasCustomerPortalContext) {\n return component;\n }\n return <SdkThemeProvider componentTheme={configuration}>{component}</SdkThemeProvider>;\n};\n","import styled from '@emotion/styled/macro';\nimport MuiButton from '@mui/material/Button';\n\nexport const StyledButton = styled(MuiButton)`\n border-radius: 10px;\n padding: 8px 16px;\n text-transform: none;\n\n &,\n &:hover {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedRestingBorder};\n }\n`;\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.3333 2.5L17.5 6.66667L6.66667 17.5H2.5V13.3333L13.3333 2.5V2.5Z\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nexport const SectionHeader = styled.div<{ $disableMargin?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ${({ $disableMargin }) =>\n !$disableMargin &&\n `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;\n","import React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { Typography } from '../../common/Typography';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\n\nexport type SectionTitleProps = {\n title: string;\n className: string;\n isLoading?: boolean;\n};\n\nexport function SectionTitle({ title, className, isLoading }: SectionTitleProps) {\n const { theme } = useCustomerPortalContext();\n\n if (isLoading) {\n return <Skeleton width={120} />;\n }\n\n return (\n <Typography className={className} overrideColor={theme.sectionTitleColor} variant=\"h3\" bold>\n {title}\n </Typography>\n );\n}\n","import { CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\n\nexport type OnBuyMoreCallbackFn = (feature: FeatureFragment, entitlement: CustomerPortalEntitlement) => void;\n\nexport type FilterEntitlementsFn = (entitlements: CustomerPortalEntitlement[]) => CustomerPortalEntitlement[];\n\nexport enum CustomerPortalIntentionType {\n MANAGE_SUBSCRIPTION = 'MANAGE_SUBSCRIPTION',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n UPGRADE_TRIAL_PLAN = 'UPGRADE_TRIAL_PLAN',\n}\n\nexport type OnManageSubscriptionFn = ({\n intentionType,\n customerSubscriptions,\n}: {\n intentionType: CustomerPortalIntentionType;\n customerSubscriptions: CustomerPortalSubscription[];\n}) => Promise<void> | void;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../types';\n\ntype SubscriptionsOverviewHeaderProps = {\n onManageSubscription: OnManageClick;\n hideManageButton: boolean;\n textOverrides: CustomerPortalLocalization;\n};\n\nconst StyledEditIcon = styled(EditIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nexport function SubscriptionsOverviewHeader({\n onManageSubscription,\n hideManageButton,\n textOverrides,\n}: SubscriptionsOverviewHeaderProps) {\n return (\n <SectionHeader className=\"stigg-customer-portal-overview-header\" $disableMargin>\n <SectionTitle title=\"Subscription\" className=\"stigg-overview-title\" />\n {!hideManageButton && (\n <StyledButton\n className=\"stigg-manage-subscription-button\"\n variant=\"outlined\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.MANAGE_SUBSCRIPTION })}>\n <StyledEditIcon className=\"stigg-manage-subscription-button-image\" />\n <Typography\n className=\"stigg-manage-subscription-button-text\"\n color=\"primary.main\"\n style={{ marginLeft: '8px' }}\n variant=\"body1\">\n {textOverrides?.manageSubscription}\n </Typography>\n </StyledButton>\n )}\n </SectionHeader>\n );\n}\n","import flatMap from 'lodash/flatMap';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nexport function AddonsList() {\n const { customerPortal } = useCustomerPortalContext();\n const addons = flatMap(customerPortal?.subscriptions, (subscription) => subscription.addons);\n if (isEmpty(addons)) {\n return null;\n }\n\n return (\n <div className=\"stigg-addons-list-layout\">\n {addons.map((addon, index) => (\n <Typography key={addon.addonId} span className=\"stigg-addon-list-item-text\" variant=\"body1\">\n {addon.quantity > 1 && `${addon.quantity} X `}\n {addon.displayName}\n {index === addons.length - 1 ? '' : ', '}\n </Typography>\n ))}\n </div>\n );\n}\n","import { CustomerPortalPromotionalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nconst Row = styled.div<{ $borderColor: string }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 64px;\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 16px 0;\n\n & > *:first-of-type {\n max-width: 60%;\n }\n`;\n\nfunction getPromotionTitle(promotionalEntitlement: CustomerPortalPromotionalEntitlement) {\n const { displayName, usageLimit, hasUnlimitedUsage } = promotionalEntitlement;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${displayName}`;\n }\n if (usageLimit) {\n return `${displayName} x ${promotionalEntitlement.usageLimit?.toLocaleString()}`;\n }\n\n return displayName;\n}\n\nexport function Promotions() {\n const { customerPortal, textOverrides, theme } = useCustomerPortalContext();\n const promotionalEntitlements = customerPortal?.promotionalEntitlements;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Typography color=\"secondary\">{textOverrides.promotionsSubtitle}</Typography>\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Row $borderColor={theme.borderColor}>\n <Typography variant=\"body1\" bold>\n Feature\n </Typography>\n <Typography variant=\"body1\" bold>\n Expiration date\n </Typography>\n </Row>\n {promotionalEntitlements?.map((promotionalEntitlement, index) => (\n <Row key={`${promotionalEntitlement.displayName}-${index}`} $borderColor={theme.borderColor}>\n <Typography variant=\"body1\">{getPromotionTitle(promotionalEntitlement)}</Typography>\n <Typography variant=\"body1\" color=\"disabled\">\n {promotionalEntitlement.endDate\n ? moment.utc(promotionalEntitlement.endDate).format('MMM Do, YYYY')\n : 'None'}\n </Typography>\n </Row>\n ))}\n </div>\n </div>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Tabs from '@mui/material/Tabs';\n\nexport const StyledTabs = styled(Tabs)`\n .MuiTabs-indicator {\n background-color: #001e6c;\n }\n`;\n\nexport const TabsLayout = styled.div`\n width: 100%;\n flex: 1;\n margin-top: 16px;\n`;\n\nexport const TabContent = styled(Box, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $maxHeight: string }>`\n margin-top: 16px;\n max-height: ${({ $maxHeight }) => $maxHeight};\n overflow-y: auto;\n`;\n\nexport const ListBox = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n margin-bottom: 16px;\n row-gap: 16px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n`;\n","import { Theme } from '@emotion/react';\n\nexport type IconColor = 'primary' | 'secondary';\n\nexport const getIconColor = (color: IconColor | string | undefined, theme: Theme) => {\n switch (color) {\n case 'primary':\n return theme.stigg.palette.text.primary;\n case 'secondary':\n return theme.stigg.palette.text.secondary;\n default:\n return color;\n }\n};\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_118930)\">\n<path d=\"M12 6.85712V17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6.85712 12H17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M18 0.857117H5.99997C3.15966 0.857117 0.857117 3.15966 0.857117 5.99997V18C0.857117 20.8404 3.15966 23.1428 5.99997 23.1428H18C20.8404 23.1428 23.1428 20.8404 23.1428 18V5.99997C23.1428 3.15966 20.8404 0.857117 18 0.857117Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_118930\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 27V25C26 22.7909 24.2091 21 22 21H14C11.7909 21 10 22.7909 10 25V27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C15.7909 9 14 10.7909 14 13C14 15.2091 15.7909 17 18 17Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8545\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M27 18.22C27 12.73 22.74 9 18 9C13.31 9 9 12.65 9 18.28C8.4 18.62 8 19.26 8 20V22C8 23.1 8.9 24 10 24H11V17.9C11 14.03 14.13 10.9 18 10.9C21.87 10.9 25 14.03 25 17.9V25H17V27H25C26.1 27 27 26.1 27 25V23.78C27.59 23.47 28 22.86 28 22.14V19.84C28 19.14 27.59 18.53 27 18.22Z\" fill=\"#7586B0\"/>\n<path d=\"M15 20C15.5523 20 16 19.5523 16 19C16 18.4477 15.5523 18 15 18C14.4477 18 14 18.4477 14 19C14 19.5523 14.4477 20 15 20Z\" fill=\"#7586B0\"/>\n<path d=\"M21 20C21.5523 20 22 19.5523 22 19C22 18.4477 21.5523 18 21 18C20.4477 18 20 18.4477 20 19C20 19.5523 20.4477 20 21 20Z\" fill=\"#7586B0\"/>\n<path d=\"M24 17.03C23.52 14.18 21.04 12 18.05 12C15.02 12 11.76 14.51 12.02 18.45C14.49 17.44 16.35 15.24 16.88 12.56C18.19 15.19 20.88 17 24 17.03Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_267_19310\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 10H10C8.89 10 8.01 10.89 8.01 12L8 24C8 25.11 8.89 26 10 26H26C27.11 26 28 25.11 28 24V12C28 10.89 27.11 10 26 10ZM26 24H10V18H26V24ZM26 14H10V12H26V14Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8556\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_120339)\">\n<path d=\"M10.3336 19.2858C15.462 19.2858 19.6193 15.1285 19.6193 10.0001C19.6193 4.87171 15.462 0.714355 10.3336 0.714355C5.20521 0.714355 1.04785 4.87171 1.04785 10.0001C1.04785 15.1285 5.20521 19.2858 10.3336 19.2858Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12.7649 7.46052C12.6813 7.22393 12.5523 7.0088 12.3883 6.8256C12.0395 6.43592 11.5327 6.19067 10.9685 6.19067H9.4942C8.55517 6.19067 7.79395 6.9519 7.79395 7.89093C7.79395 8.68995 8.3503 9.38116 9.13086 9.5519L11.3756 10.0429C12.25 10.2342 12.8733 11.0091 12.8733 11.9043C12.8733 12.9562 12.0205 13.8097 10.9685 13.8097H9.6987C8.86936 13.8097 8.16382 13.2797 7.90233 12.5399\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 6.19065V4.28589\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 15.7144V13.8096\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_120339\">\n<rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.333496)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_116282)\">\n<path d=\"M21.4286 5.32483H2.57146C1.62469 5.32483 0.857178 6.09235 0.857178 7.03911V10.4677C0.857178 11.4145 1.62469 12.182 2.57146 12.182H21.4286C22.3754 12.182 23.1429 11.4145 23.1429 10.4677V7.03911C23.1429 6.09235 22.3754 5.32483 21.4286 5.32483Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M21.4287 12.182V21.6106C21.4287 22.0652 21.248 22.5013 20.9266 22.8227C20.6051 23.1442 20.169 23.3249 19.7144 23.3249H4.28582C3.83116 23.3249 3.39513 23.1442 3.07363 22.8227C2.75215 22.5013 2.57153 22.0652 2.57153 21.6106V12.182\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 5.32483V23.3248\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M17.1429 1.03912L12 5.32484L6.85718 1.03912\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_116282\">\n<rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.182007)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.8333 2.5C6.69168 2.5 3.33334 5.85833 3.33334 10H0.833344L4.07501 13.2417L4.13334 13.3583L7.50001 10H5.00001C5.00001 6.775 7.60834 4.16667 10.8333 4.16667C14.0583 4.16667 16.6667 6.775 16.6667 10C16.6667 13.225 14.0583 15.8333 10.8333 15.8333C9.22501 15.8333 7.76668 15.175 6.71668 14.1167L5.53334 15.3C6.89168 16.6583 8.75834 17.5 10.8333 17.5C14.975 17.5 18.3333 14.1417 18.3333 10C18.3333 5.85833 14.975 2.5 10.8333 2.5ZM10 6.66667V10.8333L13.5667 12.95L14.1667 11.9417L11.25 10.2083V6.66667H10Z\" fill=\"#6678A7\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"url(#paint0_linear_834_118583)\"/>\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9539 7.70028C16.1196 8.22713 15.8268 8.78853 15.3 8.95421C14.4906 9.20875 13.7155 9.57824 12.9999 10.0564C11.2686 11.2132 9.99197 12.9346 9.38754 14.9271C8.78311 16.9196 8.88826 19.0601 9.68509 20.9838C10.4819 22.9075 11.9211 24.4954 13.7574 25.477C15.5938 26.4585 17.7136 26.7729 19.7558 26.3667C21.798 25.9605 23.6362 24.8588 24.9571 23.2492C26.278 21.6396 27 19.6219 27 17.5397C27 16.9874 27.4477 16.5397 28 16.5397C28.5523 16.5397 29 16.9874 29 17.5397C29 17.8969 28.9826 18.2526 28.9483 18.6056C28.9662 18.6949 28.9722 18.7883 28.9645 18.8837L28.9606 18.9309C28.9496 19.0607 28.9143 19.1825 28.8595 19.2924C28.5513 21.2017 27.7432 23.007 26.5031 24.518C24.8886 26.4852 22.642 27.8318 20.146 28.3283C17.65 28.8248 15.059 28.4405 12.8146 27.2408C10.5702 26.0411 8.81122 24.1004 7.83733 21.7492C6.86343 19.398 6.73491 16.7819 7.47366 14.3465C8.21241 11.9112 9.77272 9.80737 11.8887 8.3935C12.7634 7.80905 13.7107 7.35743 14.7 7.04633C15.2269 6.88065 15.7883 7.17343 15.9539 7.70028ZM17.8497 7.95155C17.8964 7.40125 18.3804 6.99302 18.9307 7.03974L18.9779 7.04385C19.528 7.0929 19.9342 7.57861 19.8851 8.12871C19.8361 8.67881 19.3503 9.085 18.8002 9.03595L18.7615 9.03257C18.2112 8.98585 17.8029 8.50186 17.8497 7.95155ZM22.8579 9.19953C23.172 8.74525 23.7949 8.63161 24.2492 8.9457C24.2751 8.96361 24.3009 8.98162 24.3266 8.99974C24.7782 9.31772 24.8865 9.94155 24.5685 10.3931C24.2505 10.8447 23.6267 10.953 23.1751 10.635C23.1541 10.6202 23.1329 10.6054 23.1118 10.5908C22.6575 10.2767 22.5438 9.6538 22.8579 9.19953ZM26.6058 12.8085C27.1045 12.5712 27.7011 12.7831 27.9384 13.2818C27.9519 13.3102 27.9653 13.3387 27.9786 13.3672C28.2116 13.868 27.9946 14.4628 27.4939 14.6958C26.9931 14.9288 26.3983 14.7117 26.1653 14.211L26.1506 14.1796L26.1324 14.1411C25.8951 13.6424 26.1071 13.0458 26.6058 12.8085ZM19 14.0003C19 13.448 18.5523 13.0003 18 13.0003C17.4477 13.0003 17 13.448 17 14.0003V18.0003C17 18.5526 17.4477 19.0003 18 19.0003H22C22.5523 19.0003 23 18.5526 23 18.0003C23 17.448 22.5523 17.0003 22 17.0003H19V14.0003Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_834_118583\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.95394 1.70028C10.1196 2.22713 9.82684 2.78853 9.29999 2.95421C8.49057 3.20875 7.71555 3.57824 6.99987 4.05644C5.26859 5.21324 3.99197 6.93456 3.38754 8.9271C2.78311 10.9196 2.88826 13.0601 3.68509 14.9838C4.48191 16.9075 5.9211 18.4954 7.75743 19.477C9.59377 20.4585 11.7136 20.7729 13.7558 20.3667C15.798 19.9605 17.6362 18.8588 18.9571 17.2492C20.278 15.6396 21 13.6219 21 11.5397C21 10.9874 21.4477 10.5397 22 10.5397C22.5523 10.5397 23 10.9874 23 11.5397C23 11.8969 22.9826 12.2526 22.9483 12.6056C22.9662 12.6949 22.9722 12.7883 22.9645 12.8837L22.9606 12.9309C22.9496 13.0607 22.9143 13.1825 22.8595 13.2924C22.5513 15.2017 21.7432 17.007 20.5031 18.518C18.8886 20.4852 16.642 21.8318 14.146 22.3283C11.65 22.8248 9.05905 22.4405 6.81464 21.2408C4.57023 20.0411 2.81122 18.1004 1.83733 15.7492C0.863434 13.398 0.734911 10.7819 1.47366 8.34653C2.21241 5.91121 3.77272 3.80737 5.88873 2.3935C6.76341 1.80905 7.71072 1.35743 8.70001 1.04633C9.22686 0.880646 9.78826 1.17343 9.95394 1.70028ZM11.8497 1.95155C11.8964 1.40125 12.3804 0.993017 12.9307 1.03974L12.9779 1.04385C13.528 1.0929 13.9342 1.57861 13.8851 2.12871C13.8361 2.67881 13.3503 3.085 12.8002 3.03595L12.7615 3.03257C12.2112 2.98585 11.8029 2.50186 11.8497 1.95155ZM16.8579 3.19953C17.172 2.74525 17.7949 2.63161 18.2492 2.9457C18.2751 2.96361 18.3009 2.98162 18.3266 2.99974C18.7782 3.31772 18.8865 3.94155 18.5685 4.39311C18.2505 4.84467 17.6267 4.95296 17.1751 4.63498C17.1541 4.62016 17.1329 4.60542 17.1118 4.59078C16.6575 4.27669 16.5438 3.6538 16.8579 3.19953ZM20.6058 6.80846C21.1045 6.57117 21.7011 6.78308 21.9384 7.28179C21.9519 7.3102 21.9653 7.33869 21.9786 7.36723C22.2116 7.86796 21.9946 8.46276 21.4939 8.69577C20.9931 8.92877 20.3983 8.71174 20.1653 8.21101L20.1506 8.17957L20.1324 8.14112C19.8951 7.64241 20.1071 7.04576 20.6058 6.80846ZM13 8.00027C13 7.44798 12.5523 7.00027 12 7.00027C11.4477 7.00027 11 7.44798 11 8.00027V12.0003C11 12.5526 11.4477 13.0003 12 13.0003H16C16.5523 13.0003 17 12.5526 17 12.0003C17 11.448 16.5523 11.0003 16 11.0003H13V8.00027Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 12C9 10.8954 9.89543 10 11 10H25C26.1046 10 27 10.8954 27 12V26C27 27.1046 26.1046 28 25 28H11C9.89543 28 9 27.1046 9 26V12Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M22 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 16H27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_45_8861\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"trash-2\">\n<path id=\"Shape\" d=\"M3 6H5H21\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M20 6C20 5.44772 19.5523 5 19 5C18.4477 5 18 5.44772 18 6H20ZM6 6C6 5.44772 5.55228 5 5 5C4.44772 5 4 5.44772 4 6H6ZM7 6C7 6.55228 7.44772 7 8 7C8.55228 7 9 6.55228 9 6H7ZM15 6C15 6.55228 15.4477 7 16 7C16.5523 7 17 6.55228 17 6H15ZM18 6V20H20V6H18ZM18 20C18 20.5523 17.5523 21 17 21V23C18.6569 23 20 21.6569 20 20H18ZM17 21H7V23H17V21ZM7 21C6.44772 21 6 20.5523 6 20H4C4 21.6569 5.34315 23 7 23V21ZM6 20V6H4V20H6ZM9 6V4H7V6H9ZM9 4C9 3.44772 9.44772 3 10 3V1C8.34315 1 7 2.34315 7 4H9ZM10 3H14V1H10V3ZM14 3C14.5523 3 15 3.44772 15 4H17C17 2.34315 15.6569 1 14 1V3ZM15 4V6H17V4H15Z\" fill=\"#F88078\"/>\n<path id=\"Shape_3\" d=\"M10 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_4\" d=\"M14 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M21.1667 4H2.83333C1.82081 4 1 4.89543 1 6V18C1 19.1046 1.82081 20 2.83333 20H21.1667C22.1792 20 23 19.1046 23 18V6C23 4.89543 22.1792 4 21.1667 4Z\" fill=\"#C6C6C7\"/>\n<path opacity=\"0.3\" d=\"M19.75 16.4286H17.5C17.0125 16.4286 16.75 16.2 16.75 15.6667C16.75 15.1334 17.0125 14.9048 17.5 14.9048H19.75C20.2375 14.9048 20.5 15.1334 20.5 15.6667C20.5 16.2 20.2375 16.4286 19.75 16.4286ZM15.25 16.4286H13C12.5125 16.4286 12.25 16.2 12.25 15.6667C12.25 15.1334 12.5125 14.9048 13 14.9048H15.25C15.7375 14.9048 16 15.1334 16 15.6667C16 16.2 15.7375 16.4286 15.25 16.4286ZM10.75 16.4286H8.5C8.0125 16.4286 7.75 16.2 7.75 15.6667C7.75 15.1334 8.0125 14.9048 8.5 14.9048H10.75C11.2375 14.9048 11.5 15.1334 11.5 15.6667C11.5 16.2 11.2375 16.4286 10.75 16.4286ZM6.25 16.4286H4C3.5125 16.4286 3.25 16.2 3.25 15.6667C3.25 15.1334 3.5125 14.9048 4 14.9048H6.25C6.7375 14.9048 7 15.1334 7 15.6667C7 16.2 6.7375 16.4286 6.25 16.4286Z\" fill=\"black\"/>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"10.333\" cy=\"10\" r=\"9\" fill=\"white\" stroke=\"#327EEE\" stroke-width=\"2\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Group 16159\">\n<circle id=\"Ellipse 5\" cx=\"10\" cy=\"10\" r=\"9.25\" fill=\"#327EEE\" stroke=\"#327EEE\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5 10.3636L8.63667 14L12.637 10L14.6372 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Stepper indicators\">\n<circle id=\"Ellipse 5\" cx=\"10.667\" cy=\"10\" r=\"9.25\" fill=\"#B3BCD3\" stroke=\"#B3BCD3\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5.66699 10.3636L9.30366 14L13.304 10L15.3042 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3L7.9425 4.0575L12.1275 8.25H3V9.75H12.1275L7.9425 13.9425L9 15L15 9L9 3Z\" fill=\"white\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.8337 5.34199L14.6587 4.16699L10.0003 8.82533L5.34199 4.16699L4.16699 5.34199L8.82533 10.0003L4.16699 14.6587L5.34199 15.8337L10.0003 11.1753L14.6587 15.8337L15.8337 14.6587L11.1753 10.0003L15.8337 5.34199Z\" fill=\"#327EEE\"/>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"check\">\n<path id=\"Shape\" d=\"M20 7L9 18L4 13\" stroke=\"#F5F6F9\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_1889_12169)\">\n<path d=\"M11.4286 7.42578L8 13.1401\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14.857 13.1412C15.3274 12.0123 15.5118 10.7848 15.3938 9.56751C15.2758 8.35027 14.8592 7.18097 14.1808 6.16341C13.5024 5.14585 12.5833 4.31152 11.5051 3.73446C10.4268 3.1574 9.22281 2.85547 7.99986 2.85547C6.77691 2.85547 5.57288 3.1574 4.49463 3.73446C3.41639 4.31152 2.49729 5.14585 1.81892 6.16341C1.14055 7.18097 0.723889 8.35027 0.605928 9.56751C0.487968 10.7848 0.672354 12.0123 1.14272 13.1412H14.857Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_1889_12169\">\n<rect width=\"16\" height=\"16\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"tag--tags-bookmark-favorite\">\n<path id=\"Vector\" d=\"M1.26995 11.9426L6.05743 16.7301C6.2305 16.903 6.4651 17.0001 6.7097 17.0001C6.95431 17.0001 7.18891 16.903 7.36198 16.7301L16.8631 7.22895C16.9108 7.18332 16.9478 7.12758 16.9712 7.06583C16.9946 7.00408 17.0039 6.93787 16.9985 6.87205L16.2724 2.15839C16.2664 2.04607 16.2192 1.93992 16.1396 1.86038C16.0601 1.78085 15.9539 1.73357 15.8416 1.72764L11.128 1.00152C11.0622 0.996055 10.9959 1.00538 10.9342 1.0288C10.8724 1.05222 10.8167 1.08916 10.7711 1.1369L1.26995 10.638C1.09709 10.8111 1 11.0457 1 11.2903C1 11.5349 1.09709 11.7695 1.26995 11.9426Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Vector_2\" d=\"M12.5548 6.05884C12.3916 6.05884 12.2351 5.99401 12.1197 5.87861C12.0043 5.76321 11.9395 5.60669 11.9395 5.44348C11.9395 5.28028 12.0043 5.12376 12.1197 5.00836C12.2351 4.89296 12.3916 4.82812 12.5548 4.82812C12.718 4.82812 12.8745 4.89296 12.9899 5.00836C13.1053 5.12376 13.1702 5.28028 13.1702 5.44348C13.1702 5.60669 13.1053 5.76321 12.9899 5.87861C12.8745 5.99401 12.718 6.05884 12.5548 6.05884Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\nimport React, { CSSProperties } from 'react';\nimport { css, useTheme } from '@emotion/react';\nimport { getIconColor, IconColor } from './iconColor';\nimport * as customIcons from './customIcons';\n\nexport type Icons = keyof typeof customIcons;\n\nconst IconWrapper = styled.div<{ $pathColor?: string; $rectColor?: string; $strokeColor?: string }>`\n ${({ $pathColor }) =>\n $pathColor &&\n css`\n path {\n fill: ${$pathColor};\n }\n `}\n\n ${({ $rectColor }) =>\n $rectColor &&\n css`\n svg rect {\n fill: ${$rectColor};\n }\n `}\n\n\n ${({ $strokeColor }) =>\n $strokeColor &&\n css`\n g {\n stroke: ${$strokeColor};\n }\n `}\n`;\n\nexport type IconProps = {\n icon: Icons;\n className?: string;\n style?: CSSProperties;\n svgPathColor?: IconColor | string;\n svgRectColor?: IconColor | string;\n svgStrokeColor?: IconColor | string;\n};\n\nexport function Icon({ icon, className, style, svgPathColor, svgRectColor, svgStrokeColor }: IconProps) {\n const IconComponent = (customIcons as any)[icon];\n const theme = useTheme();\n\n return (\n <IconWrapper\n className={className}\n style={style}\n $pathColor={getIconColor(svgPathColor, theme)}\n $rectColor={getIconColor(svgRectColor, theme)}\n $strokeColor={getIconColor(svgStrokeColor, theme)}>\n <IconComponent />\n </IconWrapper>\n );\n}\n","import React, { useState } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport flatMap from 'lodash/flatMap';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport { FontWeight } from 'styled-typography';\nimport { Typography } from '../../../common/Typography';\nimport { AddonsList } from './AddonsList';\nimport { Promotions } from './Promotions';\nimport { CustomerPortalSection } from '../../CustomerPortal';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\nimport { StyledTabs, TabContent, TabsLayout } from './SubscriptionTabs.style';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { Icon, Icons } from '../../../common/Icon';\n\ntype TabPanelProps = {\n children?: React.ReactNode;\n index: number;\n value: number;\n maxHeight: string;\n};\n\nfunction TabPanel(props: TabPanelProps) {\n const { children, value, index, maxHeight, ...other } = props;\n\n return (\n <div role=\"tabpanel\" hidden={value !== index} {...other}>\n {value === index && <TabContent $maxHeight={maxHeight}>{children}</TabContent>}\n </div>\n );\n}\n\nexport type SubscriptionTabsProps = {\n customerPortal: CustomerPortal;\n hiddenSections?: CustomerPortalSection[];\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n};\n\nfunction TabTitle({ isSelected, label, icon }: { isSelected: boolean; label: string; icon: Icons }) {\n const color = isSelected ? 'primary' : 'secondary';\n return (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n <Icon icon={icon} svgStrokeColor={color} />\n <Typography variant=\"h6\" bold={isSelected} fontWeight={FontWeight.Medium} color={color}>\n {label}\n </Typography>\n </div>\n );\n}\n\nexport function SubscriptionTabs({ customerPortal, hiddenSections, textOverrides, theme }: SubscriptionTabsProps) {\n const allAddons = flatMap(customerPortal.subscriptions, (subscription) => subscription.addons);\n const isSectionHidden = (sectionName: CustomerPortalSection) =>\n hiddenSections?.some((section) => section === sectionName);\n const showAddons = allAddons.length > 0 && !isSectionHidden('addons');\n const showPromotions =\n customerPortal.promotionalEntitlements.length > 0 && !isSectionHidden('promotionalEntitlements');\n const [value, setValue] = useState(showAddons ? 1 : 2);\n\n const handleChange = (_: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n const shouldShowTabs = showAddons || showPromotions;\n\n if (!shouldShowTabs) {\n return null;\n }\n\n return (\n <TabsLayout>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <StyledTabs value={value} onChange={handleChange}>\n {showAddons ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={1}\n label={<TabTitle isSelected={value === 1} label={textOverrides.addonsTabTitle} icon=\"Addons\" />}\n />\n ) : null}\n {showPromotions ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={2}\n label={<TabTitle isSelected={value === 2} label={textOverrides.promotionsTabTitle} icon=\"Promotions\" />}\n />\n ) : null}\n </StyledTabs>\n </Box>\n <TabPanel value={value} index={1} maxHeight={theme.tabMaxHeight}>\n <AddonsList />\n </TabPanel>\n <TabPanel value={value} index={2} maxHeight={theme.tabMaxHeight}>\n <Promotions />\n </TabPanel>\n </TabsLayout>\n );\n}\n","export const breakpoints = {\n xs: 320,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n} as const;\n\nexport type Breakpoints = typeof breakpoints;\n\nexport type Breakpoint = keyof Breakpoints;\n\nexport const mqMinWidth = (breakpoint: Breakpoint) => `(min-width: ${breakpoints[breakpoint]}px)`;\n\nexport const mq = Object.keys(breakpoints).reduce(\n (obj, breakpoint) => ({ ...obj, [breakpoint]: `@media ${mqMinWidth(breakpoint as Breakpoint)}` }),\n {} as Record<Breakpoint, string>,\n);\n","import { useMediaQuery as useMediaQueryMui } from '@mui/material';\nimport { Breakpoint, mqMinWidth } from '../common/mediaQuery';\n\nexport function useIsScreenWiderThan(breakpoint: Breakpoint) {\n return useMediaQueryMui(mqMinWidth(breakpoint));\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n return (\n <SkeletonLayout className=\"stigg-subscription-overview-skeleton-layout\">\n <SkeletonLayoutLeft>\n <Skeleton width={120} />\n <Skeleton width={120} />\n </SkeletonLayoutLeft>\n <Skeleton width={isScreenWiderThanMd ? 295 : 260} height={193} />\n </SkeletonLayout>\n );\n}\n","import React from 'react';\nimport { ArrowDown } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n BillingPeriod,\n} from '@stigg/js-client-sdk';\nimport { compact, map } from 'lodash';\nimport { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\n\nexport type SubscriptionScheduledUpdateRowProps = {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n};\n\nfunction SubscriptionScheduledUpdateDowngradeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { targetPackage } = scheduleUpdate;\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Downgrade to the <b>{targetPackage?.displayName}</b> plan\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateBillingPeriodChangeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { scheduleVariables } = scheduleUpdate;\n const { billingPeriod } = scheduleVariables as BillingPeriodChangeVariables;\n const currentBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'annually' : 'monthly';\n const nextBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually';\n\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Change from an {currentBillingPeriod} to a <b>{nextBillingPeriod}</b> billing cycle\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateUnitQuantityChangeRow({\n subscription,\n scheduleUpdate,\n}: SubscriptionScheduledUpdateRowProps & { subscription: CustomerPortalSubscription }) {\n const { scheduleVariables } = scheduleUpdate;\n const { newUnitAmount, featureId } = scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscription.prices, 'feature')).find(({ id }) => id === featureId);\n\n if (!feature) {\n return null;\n }\n\n const { featureUnits, featureUnitsPlural } = feature;\n const newQuantityUnits = newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n return (\n <Grid container alignItems=\"flex-start\" flexWrap=\"nowrap\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Reduce the <b>{featureUnits}</b> quantity to {newUnitAmount} {newQuantityUnits}\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nexport function SubscriptionScheduledUpdateRow({\n scheduleUpdate,\n subscription,\n}: {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n subscription: CustomerPortalSubscription;\n}) {\n switch (scheduleUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n return <SubscriptionScheduledUpdateDowngradeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n return <SubscriptionScheduledUpdateBillingPeriodChangeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n return (\n <SubscriptionScheduledUpdateUnitQuantityChangeRow scheduleUpdate={scheduleUpdate} subscription={subscription} />\n );\n }\n\n default: {\n return null;\n }\n }\n}\n","import React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { useTheme } from '@emotion/react';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport Restore from '../../../../assets/restore.svg';\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { SubscriptionScheduledUpdateRow } from './SubscriptionScheduledUpdateRow';\nimport { getSubscriptionScheduleUpdateTexts } from '../../../utils/getSubscriptionScheduleUpdateTexts';\nimport { StyledButton } from '../../common/StyledButton';\n\nexport type SubscriptionScheduledUpdatesAlertProps = {\n subscription: CustomerPortalSubscription;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n theme: CustomerPortalTheme;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nconst SubscriptionScheduleUpdateAlertContainer = styled(Box)<{ $borderColor: string }>`\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n margin: -64px -64px 64px -64px;\n padding: 24px 32px;\n`;\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 4px;\n`;\n\nconst StyledRestoreIcon = styled(Restore)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n path {\n fill: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nfunction MultipleScheduledUpdates({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n The following updates will take effect in the next billing cycle:\n </Typography>\n </Grid>\n </Grid>\n <Grid>\n {(scheduledUpdates || []).map((scheduleUpdate) => (\n <SubscriptionScheduledUpdateRow\n key={scheduleUpdate.subscriptionScheduleType}\n scheduleUpdate={scheduleUpdate}\n subscription={subscription}\n />\n ))}\n </Grid>\n </>\n );\n}\n\nfunction SingleScheduledUpdate({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n const [scheduledUpdate] = scheduledUpdates || [];\n\n const { line1, line2 } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices: subscription.prices,\n billingPeriodRange: subscription.billingPeriodRange,\n options: {\n postfix: 'at the end of the current billing period', // We can later remove this if unnecessary\n },\n });\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-title\" variant=\"body1\" color=\"primary\">\n {line1}\n </Typography>\n </Grid>\n </Grid>\n {line2 && (\n <Grid>\n <Typography className=\"stigg-scheduled-updates-subtitle\" variant=\"body1\" color=\"secondary\">\n {line2}\n </Typography>\n </Grid>\n )}\n </>\n );\n}\n\nexport function SubscriptionScheduledUpdatesAlert({\n subscription,\n onCancelScheduledUpdates,\n theme,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionScheduledUpdatesAlertProps) {\n const stiggTheme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const { scheduledUpdates } = subscription;\n\n if (!scheduledUpdates || scheduledUpdates.length === 0) {\n return null;\n }\n\n const isSingleScheduledUpdate = scheduledUpdates.length === 1;\n\n return (\n <SubscriptionScheduleUpdateAlertContainer\n $borderColor={theme.borderColor}\n className=\"stigg-scheduled-updates-alert-container\">\n <Grid container alignItems={isSingleScheduledUpdate ? 'center' : 'flex-start'} gap={2}>\n <Grid item display=\"flex\">\n <Icon icon=\"ScheduleBox\" svgPathColor={theme.iconsColor} svgRectColor={theme.iconsBackgroundColor} />\n </Grid>\n\n <Grid item flex={1}>\n {isSingleScheduledUpdate ? (\n <SingleScheduledUpdate subscription={subscription} />\n ) : (\n <MultipleScheduledUpdates subscription={subscription} />\n )}\n </Grid>\n\n {!!onCancelScheduledUpdates && (\n <Grid item>\n <StyledButton\n variant=\"outlined\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onCancelScheduledUpdates(subscription)).finally(() => setIsLoading(false));\n }}>\n {isLoading ? (\n <LoadingIndicator loading size={16} color={stiggTheme.stigg.palette.text.disabled} />\n ) : (\n <StyledRestoreIcon\n style={{ display: 'flex', marginRight: 4 }}\n className=\"stigg-scheduled-updates-cancel-update-button-icon\"\n />\n )}\n <Typography variant=\"body1\" color=\"primary.main\" className=\"stigg-scheduled-updates-cancel-update-button\">\n {cancelScheduledUpdatesButtonTitle}\n </Typography>\n </StyledButton>\n </Grid>\n )}\n </Grid>\n </SubscriptionScheduleUpdateAlertContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SectionContainer = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n\n padding: 16px;\n ${mq.sm} {\n padding: 32px;\n }\n ${mq.md} {\n padding: 48px;\n }\n ${mq.lg} {\n padding: 64px;\n }\n`;\n","import { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Typography } from '../../../common/Typography';\n\nexport type NextEstimatedBillProps = {\n billingPeriod: BillingPeriod;\n rangeEnd: string;\n amount: number;\n currency: Currency;\n};\n\nexport function NextEstimatedBill({ billingPeriod, rangeEnd, amount, currency }: NextEstimatedBillProps) {\n return (\n <>\n <Typography variant=\"h6\">Next estimated bill</Typography>\n <Typography variant=\"h1\">{currencyPriceFormatter({ amount, currency, maximumFractionDigits: 2 })}</Typography>\n <Typography as=\"div\" variant=\"body1\" color=\"secondary\">\n Billed {billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually'} on{' '}\n <Typography variant=\"body1\" span color=\"primary\">\n {moment.utc(rangeEnd).format('MMM Do, YYYY')}\n </Typography>\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n * Additional tax rates may apply\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant=\"h6\" color=\"secondary\">\n No upcoming bill\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\n\nconst ContactCustomerSupportLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: left;\n gap: 8px;\n`;\n\nconst ContactSupportButton = styled(Button)`\n width: fit-content;\n &.MuiButton-root {\n padding: 0;\n &:hover {\n background: none;\n }\n }\n`;\n\ntype ContactCustomerSupportProps = {\n onContactSupport?: () => void;\n label: string;\n linkLabel: string;\n};\n\nexport function ContactCustomerSupport({ onContactSupport, label, linkLabel }: ContactCustomerSupportProps) {\n const contactSupportText = (\n <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>\n );\n return (\n <ContactCustomerSupportLayout className=\"stigg-contact-support-layout\">\n <Typography className=\"stigg-contact-support-label\" color=\"secondary\">\n {label}\n </Typography>\n {onContactSupport ? (\n <ContactSupportButton\n className=\"stigg-contact-support-button\"\n style={{ textTransform: 'none' }}\n variant=\"text\"\n onClick={onContactSupport}>\n {contactSupportText}\n </ContactSupportButton>\n ) : (\n contactSupportText\n )}\n </ContactCustomerSupportLayout>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React, { ReactNode } from 'react';\nimport {\n BillingModel,\n CustomerPortalSubscription,\n PricingType,\n SubscriptionScheduleType,\n SubscriptionStatus,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { NextEstimatedBill } from './NextEstimatedBill';\nimport { NoUpcomingBilling } from './NoUpcomingBilling';\nimport { ContactCustomerSupport } from '../ContactCustomerSupport';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\n\nconst Container = styled.div<{ $borderColor: string }>`\n max-height: 278px;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundSection};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 32px;\n gap: 16px;\n`;\n\nexport type UpcomingBillingProps = {\n subscription: CustomerPortalSubscription;\n theme: CustomerPortalTheme;\n textOverrides: CustomerPortalLocalization;\n onContactSupport?: () => Promise<void> | void;\n};\n\nexport function UpcomingBilling({ subscription, theme, textOverrides, onContactSupport }: UpcomingBillingProps) {\n const { pricingType } = subscription;\n let content: ReactNode;\n const noUsageBasedPrices =\n subscription.prices?.every((price) => price.billingModel !== BillingModel.UsageBased) ?? true;\n const scheduledDowngradeToFree = subscription.scheduledUpdates?.find(\n ({ subscriptionScheduleType, targetPackage }) =>\n subscriptionScheduleType === SubscriptionScheduleType.Downgrade &&\n targetPackage?.pricingType === PricingType.Free,\n );\n\n if (pricingType === PricingType.Free) {\n content = <NoUpcomingBilling description=\"You're on a free plan, so you don’t have any upcoming charges\" />;\n } else if (pricingType === PricingType.Paid) {\n if (scheduledDowngradeToFree && noUsageBasedPrices) {\n content = (\n <NoUpcomingBilling description=\"Your plan will be downgraded to a free plan, so you don’t have any upcoming charges\" />\n );\n } else if (subscription.status === SubscriptionStatus.InTrial) {\n content = (\n <NoUpcomingBilling\n description={`You’re on a free trial of the ${subscription.planName} plan, so you don’t have any upcoming charges`}\n />\n );\n } else {\n const billingPeriod = subscription.prices?.[0]?.billingPeriod;\n const rangeEnd = subscription.billingPeriodRange?.end;\n const total = subscription.totalPrice?.total;\n\n if (billingPeriod && rangeEnd && total) {\n content = (\n <NextEstimatedBill\n billingPeriod={billingPeriod}\n rangeEnd={rangeEnd}\n amount={total.amount}\n currency={total.currency}\n />\n );\n }\n }\n } else if (pricingType === PricingType.Custom) {\n content = (\n <ContactCustomerSupport\n onContactSupport={onContactSupport}\n label={textOverrides.contactSupportTitle}\n linkLabel={textOverrides.contactSupportLink}\n />\n );\n }\n\n return (\n <Container className=\"stigg-subscription-total-price-layout\" $borderColor={theme.borderColor}>\n {content}\n </Container>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.9469 13.5999H11.9344L11.935 10.7756C11.935 10.6288 11.87 10.4819 11.7557 10.3838L8.62061 7.91816L11.755 5.4532C11.8694 5.35507 11.9344 5.22444 11.9344 5.06132L11.935 2.40004H12.9475C13.225 2.40004 13.4375 2.18755 13.4375 1.91004C13.4375 1.63254 13.225 1.42004 12.9475 1.42004L3.05311 1.42067C2.77561 1.42067 2.56311 1.63316 2.56311 1.91067C2.56311 2.18817 2.77561 2.40067 3.05311 2.40067H4.06561L4.06498 5.06131C4.06498 5.20818 4.12998 5.35505 4.24436 5.45318L7.36244 7.91814L4.245 10.3837C4.13062 10.4819 4.06562 10.6125 4.06562 10.7756V13.5999H3.05313C2.77562 13.5999 2.56313 13.8124 2.56313 14.0899C2.56313 14.3674 2.77562 14.5799 3.05313 14.5799H12.9469C13.2244 14.5799 13.4369 14.3674 13.4369 14.0899C13.4369 13.8124 13.2244 13.5999 12.9469 13.5999ZM5.04498 2.39995H10.9551V4.81627L8.00002 7.16747L5.04498 4.81627V2.39995ZM5.04498 11.0206L8.00002 8.66939L10.9551 11.0044V13.5838H5.04498V11.0206Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.05303 1.25404L12.9474 1.25342C13.317 1.25342 13.6041 1.54053 13.6041 1.91008C13.6041 2.27964 13.317 2.56675 12.9474 2.56675H12.1016L12.101 5.06136V5.06136C12.101 5.2747 12.0135 5.45101 11.8635 5.57973L11.8581 5.58436L8.89014 7.9182L11.8642 10.2572C12.0164 10.3878 12.1016 10.5814 12.1016 10.7757L12.101 13.4333H12.9468C13.3164 13.4333 13.6035 13.7204 13.6035 14.09C13.6035 14.4595 13.3164 14.7466 12.9468 14.7466H3.05304C2.68349 14.7466 2.39638 14.4595 2.39638 14.09C2.39638 13.7204 2.68349 13.4333 3.05304 13.4333H3.89887V10.7757C3.89887 10.5623 3.98635 10.386 4.13639 10.2573L4.14144 10.253L7.09365 7.91821L4.13566 5.57982C3.98346 5.44923 3.89823 5.25562 3.89823 5.06135L3.89882 2.56738H3.05303C2.68348 2.56738 2.39636 2.28026 2.39636 1.91071C2.39636 1.54116 2.68348 1.25405 3.05303 1.25404V1.25404ZM12.9474 1.58675L3.05304 1.58738C2.86758 1.58738 2.7297 1.72525 2.7297 1.91071C2.7297 2.09617 2.86757 2.23404 3.05303 2.23404H4.23223L4.23157 5.06135V5.06135C4.23158 5.15983 4.27538 5.25908 4.35053 5.32476L7.63107 7.91815L4.35113 10.5123C4.2739 10.5795 4.23221 10.6639 4.23221 10.7757V13.7666H3.05304C2.86759 13.7666 2.72971 13.9045 2.72971 14.09C2.72971 14.2754 2.86759 14.4133 3.05304 14.4133H12.9468C13.1323 14.4133 13.2701 14.2754 13.2701 14.09C13.2701 13.9045 13.1323 13.7667 12.9468 13.7667H11.7676L11.7683 10.7757V10.7757C11.7683 10.6772 11.7245 10.5781 11.6495 10.5124L8.35092 7.91819L11.6489 5.32461C11.726 5.25743 11.7676 5.17306 11.7676 5.06136L11.7683 2.23342H12.9474C13.1329 2.23342 13.2708 2.09554 13.2708 1.91008C13.2708 1.72463 13.1329 1.58676 12.9474 1.58675V1.58675ZM4.87823 2.23332H11.1216V4.89669L7.99994 7.3805L4.87823 4.89669V2.23332ZM5.21157 2.56666V4.73593L7.99994 6.95452L10.7883 4.73593V2.56666H5.21157ZM7.99958 8.45673L11.1216 10.9237V13.7505H4.87823V10.9403L7.99958 8.45673ZM8.0003 8.88213L5.21157 11.101V13.4172H10.7883V11.0852L8.0003 8.88213Z\" fill=\"white\"/>\n</svg>\n","import React from 'react';\nimport Tooltip, { tooltipClasses, TooltipProps } from '@mui/material/Tooltip';\nimport styled from '@emotion/styled/macro';\n\nexport type InformationTooltipProps = TooltipProps & { $padding?: number; $maxWidth?: number };\n\nexport const InformationTooltip = styled(\n ({ children, className, placement = 'top', ...props }: InformationTooltipProps) => (\n <Tooltip\n arrow\n placement={placement}\n {...props}\n classes={{ popper: className, tooltip: 'stigg-tooltip', arrow: 'stigg-tooltip-arrow' }}>\n <div>{children}</div>\n </Tooltip>\n ),\n)(({ theme, $padding = 8, $maxWidth = 300 }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.stigg.palette.white,\n maxWidth: $maxWidth,\n boxShadow: theme.stigg.shadows.popover,\n padding: $padding,\n borderRadius: theme.stigg.border.radius,\n color: theme.stigg.palette.text.primary,\n },\n [`& .${tooltipClasses.arrow}`]: {\n color: theme.stigg.palette.white,\n },\n}));\n","import React, { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material/Tooltip';\nimport { InformationTooltip } from './InformationTooltip';\nimport { Typography, TypographyProps } from './Typography';\n\nconst StyledText = styled(Typography)<{ $maxLines: number; $wordBreak?: boolean; $display: string; $bold?: boolean }>`\n display: ${({ $display }) => $display};\n -webkit-line-clamp: ${({ $maxLines }) => $maxLines};\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: normal;\n ${({ $wordBreak }) =>\n $wordBreak &&\n css`\n word-break: break-word;\n `}\n\n ${({ $bold }) =>\n $bold &&\n css`\n font-weight: bold;\n `}\n`;\n\nfunction checkTextClamped(element: HTMLSpanElement) {\n return element && (element.clientHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth);\n}\n\nexport const LongText = ({\n leaveDelay,\n children,\n variant,\n color,\n maxLines = 1,\n wordBreak,\n bold,\n tooltipPlacement = 'top',\n className,\n display = '-webkit-box',\n style,\n 'data-testid': dataTestId,\n}: {\n children: ReactNode;\n leaveDelay?: number;\n variant?: TypographyProps['variant'];\n color?: TypographyProps['color'];\n maxLines?: number;\n wordBreak?: boolean;\n bold?: boolean;\n tooltipPlacement?: TooltipProps['placement'];\n className?: string;\n display?: string;\n style?: CSSProperties;\n ['data-testid']?: string;\n}) => {\n const [isTextClamped, setIsTextClamped] = useState(false);\n const ref = useRef<HTMLSpanElement>(null);\n const content = (\n <StyledText\n ref={ref}\n variant={variant}\n color={color}\n $maxLines={maxLines}\n $wordBreak={wordBreak}\n $bold={bold}\n className={className}\n $display={display}\n style={style}\n data-testid={dataTestId}>\n {children}\n </StyledText>\n );\n\n // Trigger recalculate of text clamped since ref is not always exists on first render\n useEffect(() => {\n if (ref?.current) {\n const textClamped = checkTextClamped(ref.current);\n setIsTextClamped(textClamped);\n }\n }, [ref]);\n\n const textClamped = ref?.current && checkTextClamped(ref.current);\n return (\n <span>\n {isTextClamped || textClamped ? (\n <InformationTooltip\n placement={tooltipPlacement}\n leaveDelay={leaveDelay}\n title={<Typography variant=\"body1\">{children}</Typography>}>\n {content}\n </InformationTooltip>\n ) : (\n content\n )}\n </span>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport Link from '@mui/material/Link';\nimport SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { LongText } from '../../../common/LongText';\nimport { OnManageClick } from '../../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../../types';\n\nconst OnTrialBadge = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n background-color: ${({ theme }) => theme.stigg.palette.warning};\n border-radius: 10px;\n padding: 8px 16px;\n margin-top: 16px;\n`;\n\nconst StyledLink = styled(Link)`\n text-decoration-color: white;\n color: white;\n cursor: pointer;\n`;\n\nexport function TrialPanel({\n subscription,\n includePlanName,\n onManageSubscription,\n}: {\n subscription: CustomerPortalSubscription | undefined;\n includePlanName: boolean;\n onManageSubscription: OnManageClick;\n}) {\n if (subscription?.status !== SubscriptionStatus.InTrial) {\n return null;\n }\n\n return (\n <OnTrialBadge className=\"stigg-subscription-trial-badge\">\n <SandClockIcon className=\"stigg-subscription-trial-badge-image\" />\n\n <div style={{ flex: 1, marginRight: 4 }}>\n <LongText variant=\"body1\" className=\"stigg-subscription-trial-badge-text\" color=\"white\">\n {`${subscription.trialRemainingDays} days remaining in trial`}\n {includePlanName && ` of the ${subscription.planName} plan`}\n </LongText>\n </div>\n\n <StyledLink\n className=\"stigg-subscription-trial-upgrade-button\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_TRIAL_PLAN })}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: OnManageClick;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({\n mainSubscription,\n trialSubscription,\n onManageSubscription,\n theme,\n}: SubscriptionViewProps) {\n return (\n <div className=\"stigg-subscription-view-layout\">\n <Typography\n className=\"stigg-subscription-plan-name\"\n variant=\"h1\"\n overrideColor={theme.planNameColor}\n style={{ marginTop: 8 }}>\n {mainSubscription.planName} plan\n </Typography>\n\n <TrialPanel\n subscription={trialSubscription}\n includePlanName={trialSubscription?.planName !== mainSubscription.planName}\n onManageSubscription={onManageSubscription}\n />\n </div>\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\n\nexport const USAGE_PERCENTAGE_WARNING_THRESHOLD = 70;\n\nexport function getUsagePercentage(currentUsage: number, limit: number) {\n return Math.min(Math.floor((currentUsage / limit) * 100), 100);\n}\n\nexport function getUsageProgressStatus(currentUsage: number) {\n let status: 'standard' | 'warning' | 'error';\n\n if (currentUsage < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n status = 'standard';\n } else if (currentUsage < 100) {\n status = 'warning';\n } else {\n status = 'error';\n }\n\n return status;\n}\n\nexport function getResetUsageText(entitlement: CustomerPortalEntitlement) {\n if (!entitlement.resetPeriod || !entitlement.usagePeriodEnd) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.usagePeriodEnd).diff(moment.utc(), unit);\n };\n\n switch (entitlement.resetPeriod) {\n case 'MONTH':\n return `Resets monthly - in ${calculateResetDiff('days')} days`;\n case 'WEEK':\n return `Resets weekly - in ${calculateResetDiff('days')} days`;\n case 'DAY':\n return `Resets daily - in ${calculateResetDiff('hours')} hours`;\n case 'HOUR':\n return `Resets hourly - in ${calculateResetDiff('minutes')} minutes`;\n default:\n return null;\n }\n}\n","import styled from '@emotion/styled/macro';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport Divider from '@mui/material/Divider';\nimport Color from 'color';\nimport { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\n\nexport const StyledLinearProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $progressStatus: 'standard' | 'warning' | 'error';\n}>`\n height: 4px;\n background-color: ${({ theme }) => Color(theme.stigg.palette.primary).alpha(0.4).string()};\n\n span {\n background-color: ${({ $progressStatus, theme }) => {\n switch ($progressStatus) {\n case 'standard':\n return theme.stigg.palette.primary;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.primary;\n }\n }};\n }\n`;\n\nexport const StyledDivider = styled(Divider)`\n border-style: dotted;\n border-bottom-width: 2px;\n border-color: ${({ theme }) => Color(theme.stigg.palette.outlinedRestingBorder).alpha(0.4).string()};\n`;\n\nexport type FeatureUsageProgressBarProps = {\n entitlement: CustomerPortalEntitlement;\n};\n\nexport function FeatureUsageProgressBar({ entitlement }: FeatureUsageProgressBarProps) {\n if (entitlement.hasUnlimitedUsage) {\n return <StyledDivider />;\n }\n\n const usagePercentage = getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!);\n const linearProgressStatus = getUsageProgressStatus(usagePercentage);\n\n return (\n <StyledLinearProgress\n $progressStatus={linearProgressStatus}\n className={`stigg-feature-usage-progress-bar-${linearProgressStatus.toString()}`}\n variant=\"determinate\"\n value={usagePercentage}\n />\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport Button from '@mui/material/Button';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalIntentionType, OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nconst StyledButton = styled(Button)`\n text-transform: none;\n padding: 0;\n white-space: nowrap;\n`;\n\nexport type EntitlementCtaButtonProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({\n entitlement,\n feature,\n onManageSubscription,\n onBuyMore,\n canBuyMore,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: EntitlementCtaButtonProps) {\n if (hasCustomSubscription || entitlement.hasUnlimitedUsage) {\n return null;\n }\n\n if (getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!) < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n return null;\n }\n\n if (canBuyMore) {\n return onBuyMore ? (\n <StyledButton variant=\"text\" onClick={() => onBuyMore(feature, entitlement)}>\n <Typography color=\"primary.main\">Buy more</Typography>\n </StyledButton>\n ) : null;\n }\n\n if (canUpgradeSubscription) {\n return onManageSubscription ? (\n <StyledButton\n variant=\"text\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_PLAN })}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}\n","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n blockSize?: number | null;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n blockSize,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div\n className={`stigg-charge-list-item stigg-charge-list-item-${entitlement.feature!.refId}`}\n style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}>\n <div style={{ display: 'flex', gap: 12 }}>\n <LongText variant=\"body1\" color=\"primary\">\n {feature.displayName}\n </LongText>\n {!hideChargePrice && (\n <LongText variant=\"body1\" color=\"secondary\">\n {currencyPriceFormatter({ amount, currency })} per {blockSize ? `${blockSize} ` : ''}\n {blockSize ? feature.featureUnitsPlural : feature.featureUnits}\n </LongText>\n )}\n </div>\n\n <div style={{ display: 'flex', gap: 12 }}>\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={feature}\n canBuyMore\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n <Typography variant=\"body1\" color=\"primary\" style={{ whiteSpace: 'nowrap' }}>\n {entitlement.hasUnlimitedUsage\n ? entitlement.currentUsage?.toLocaleString()\n : `${entitlement.currentUsage?.toLocaleString()} of ${entitlement.usageLimit?.toLocaleString()}`}\n </Typography>\n </div>\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n </div>\n );\n}\n","import { BillingModel, CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { ChargeItem } from './ChargeItem';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function ChargeList({\n subscription,\n entitlements,\n onBuyMore,\n onManageSubscription,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: ChargesProps) {\n const entitlementByFeature = keyBy(entitlements, 'feature.refId');\n\n const filteredSubscriptionPrices = subscription.prices.filter(\n ({ feature, price }) => !!feature && entitlementByFeature[feature.refId] && !!price,\n );\n\n if (!filteredSubscriptionPrices.length) {\n return null;\n }\n\n return (\n <div className=\"stigg-charge-list\" style={{ display: 'flex', flexDirection: 'column', gap: 16, marginTop: 32 }}>\n {filteredSubscriptionPrices.map(({ feature, price, blockSize, billingModel }) => {\n if (!feature || !price) {\n return null;\n }\n\n const entitlement = entitlementByFeature[feature.refId];\n\n if (!entitlement || !entitlement.feature) {\n return null;\n }\n\n return (\n <ChargeItem\n key={feature.refId}\n entitlement={entitlement}\n feature={entitlement.feature}\n amount={price.amount}\n blockSize={blockSize}\n currency={price.currency}\n hideChargePrice={billingModel === BillingModel.PerUnit}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n );\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SubscriptionOverviewLoader } from './SubscriptionOverviewLoader';\nimport { CustomerPortalSection } from '../CustomerPortal';\nimport { SubscriptionScheduledUpdatesAlert } from './subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { UpcomingBilling } from './upcomingBilling/UpcomingBilling';\nimport { SubscriptionView } from './subscriptionView/SubscriptionView';\nimport { ChargeList } from './charges/ChargeList';\nimport { OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n onContactSupport?: () => void;\n hiddenSections?: CustomerPortalSection[];\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function SubscriptionsOverview({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n hiddenSections,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionsOverviewProps) {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { subscriptions, entitlements, canUpgradeSubscription } = customerPortal || {};\n\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const trialSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.InTrial);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const mainSubscription = activeSubscription || trialSubscription;\n\n return (\n <SectionContainer\n className=\"stigg-customer-portal-subscriptions-overview\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n {!isLoadingData && activeSubscription && activeSubscription.scheduledUpdates && (\n <SubscriptionScheduledUpdatesAlert\n theme={theme}\n subscription={activeSubscription}\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n cancelScheduledUpdatesButtonTitle={cancelScheduledUpdatesButtonTitle}\n />\n )}\n\n {isLoadingData || !mainSubscription ? (\n <SubscriptionOverviewLoader />\n ) : (\n <div\n className=\"stigg-overview-layout\"\n style={{ display: 'flex', alignItems: 'flex-start', gap: 64, flexWrap: 'wrap' }}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <SubscriptionsOverviewHeader\n onManageSubscription={onManageSubscription}\n hideManageButton={hasCustomSubscription}\n textOverrides={textOverrides}\n />\n\n <SubscriptionView\n mainSubscription={mainSubscription}\n trialSubscription={trialSubscription}\n theme={theme}\n onManageSubscription={onManageSubscription}\n />\n\n {activeSubscription && entitlements && (\n <ChargeList\n subscription={activeSubscription}\n entitlements={entitlements}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={!!canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n )}\n\n <SubscriptionTabs\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n customerPortal={customerPortal!}\n hiddenSections={hiddenSections}\n textOverrides={textOverrides}\n theme={theme}\n />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', width: 319, gap: 24 }}>\n <UpcomingBilling\n subscription={mainSubscription}\n theme={theme}\n onContactSupport={onContactSupport}\n textOverrides={textOverrides}\n />\n </div>\n </div>\n )}\n </SectionContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\n\nconst CustomerPortalHeaderLayout = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-end;\n justify-content: flex-end;\n margin-bottom: 24px;\n`;\n\nexport function CustomerPortalHeader({ showWatermark }: { showWatermark?: boolean }) {\n return (\n <CustomerPortalHeaderLayout className=\"stigg-customer-portal-header-layout\">\n <PoweredByStigg source=\"customer_portal\" showWatermark={showWatermark} />\n </CustomerPortalHeaderLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\nimport { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\n\nconst ExternalLinkText = styled(Typography)`\n text-transform: none;\n`;\n\nconst LinkIcon = styled(ExternalLinkIcon)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport type ExternalLinkButtonProps = {\n text: string;\n url: string;\n className: string;\n};\n\nexport function ExternalLinkButton({ text, url, className }: ExternalLinkButtonProps) {\n const onClick = () => {\n window.open(url, '_blank');\n };\n\n return (\n <StyledButton\n className={className}\n variant=\"outlined\"\n startIcon={<LinkIcon size={20} strokeWidth={2.5} />}\n onClick={onClick}>\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\nimport { Typography, TypographyProps } from '../../common/Typography';\n\nexport const InformationGridContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InformationGridRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 16px;\n align-self: stretch;\n flex-wrap: wrap;\n`;\n\nexport type InformationGridProps = {\n title: string;\n rows: Array<{\n classNamePrefix: string;\n label: string;\n value: string;\n labelTypographyProps?: Partial<TypographyProps>;\n valueTypographyProps?: Partial<TypographyProps>;\n }>;\n};\n\nexport function InformationGrid({ title, rows }: InformationGridProps) {\n return (\n <InformationGridContainer>\n <Typography variant=\"h6\" color=\"secondary\" fontWeight={FontWeight.Medium}>\n {title}\n </Typography>\n {rows.map(({ classNamePrefix, label, value, labelTypographyProps, valueTypographyProps }) => (\n <InformationGridRow key={label}>\n <Typography\n className={`${classNamePrefix}-label`}\n variant=\"body1\"\n color=\"secondary\"\n style={{ width: 80 }}\n {...labelTypographyProps}>\n {label}\n </Typography>\n <Typography className={`${classNamePrefix}-text`} variant=\"body1\" color=\"secondary\" {...valueTypographyProps}>\n {value}\n </Typography>\n </InformationGridRow>\n ))}\n </InformationGridContainer>\n );\n}\n","import Skeleton from 'react-loading-skeleton';\nimport React from 'react';\n\nexport function SkeletonButton() {\n return <Skeleton width={220} height={42} />;\n}\n","import React, { ReactElement } from 'react';\nimport Divider from '@mui/material/Divider';\nimport { padStart } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer key=\"information-loading-data-top\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider\n key=\"information-loading-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n <InformationGridContainer key=\"information-loading-data-bottom\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n ],\n );\n } else {\n items.push(\n <InformationGrid\n key=\"information-billing-data-billed-to\"\n title=\"Billed to\"\n rows={[\n {\n classNamePrefix: 'stigg-customer-name',\n label: 'Name',\n value: billingInformation?.name || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.name ? {} : { color: 'disabled' },\n },\n {\n classNamePrefix: 'stigg-customer-email',\n label: 'Email',\n value: billingInformation?.email || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.email ? {} : { color: 'disabled' },\n },\n ]}\n />,\n );\n\n if (\n billingInformation?.defaultPaymentMethodId &&\n billingInformation.defaultPaymentMethodLast4Digits &&\n billingInformation.defaultPaymentExpirationMonth &&\n billingInformation.defaultPaymentExpirationYear\n ) {\n items.unshift(\n <Divider\n key=\"information-billing-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n );\n items.unshift(\n <InformationGrid\n key=\"information-billing-data-payment-method\"\n title=\"Payment method\"\n rows={[\n {\n classNamePrefix: 'stigg-credit-card',\n label: 'Card',\n value: `Ending in ${billingInformation.defaultPaymentMethodLast4Digits}`,\n },\n {\n classNamePrefix: 'stigg-credit-card-expiration',\n label: 'Expires',\n value: `${padStart(billingInformation.defaultPaymentExpirationMonth.toString(), 2, '0')}/${\n billingInformation.defaultPaymentExpirationYear\n }`,\n },\n ]}\n />,\n );\n }\n }\n\n if (\n !isLoadingData &&\n !billingInformation?.name &&\n !billingInformation?.email &&\n !billingInformation?.defaultPaymentMethodId\n ) {\n return null;\n }\n\n const editButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.editPaymentDetails}\n className=\"stigg-edit-payment-details-button\"\n />\n ) : null;\n\n return (\n <SectionContainer\n className=\"stigg-payment-details-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-payment-details-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-payment-details-section-title\"\n title=\"Payment details\"\n />\n {editButton}\n </SectionHeader>\n\n <div style={{ display: 'flex', alignItems: 'stretch', gap: isScreenWiderThanMd ? 64 : 32, flexWrap: 'wrap' }}>\n {items}\n </div>\n </SectionContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { STIGG_WATERMARK_CLASSNAME } from '../../common/PoweredByStigg';\nimport { SectionContainer } from '../common/SectionContainer';\n\nexport const CustomerPortalPaywallLayout = styled(SectionContainer)<{\n $backgroundColor: string;\n $borderColor: string;\n}>`\n position: relative;\n\n .stigg-paywall-layout {\n width: 100%;\n }\n\n .stigg-paywall-plans-layout {\n flex-wrap: nowrap;\n width: 100%;\n overflow-x: auto;\n justify-content: unset;\n padding: 10px 0px 0px 0px;\n }\n\n .stigg-paywall-plans-layout .stigg-plan-offering-container:first-of-type {\n margin-left: auto;\n }\n .stigg-paywall-plans-layout .stigg-plan-offering-container:last-child {\n margin-right: auto;\n }\n\n .${STIGG_WATERMARK_CLASSNAME} {\n display: none;\n }\n`;\n","import React from 'react';\nimport { CustomerPortalTheme } from '../customerPortalTheme';\nimport { CustomerPortalPaywallLayout } from './CustomerPortalPaywall.style';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionHeader } from '../common/SectionHeader';\n\ntype CustomerPortalPaywallProps = {\n paywallComponent?: React.ReactNode;\n theme: CustomerPortalTheme;\n title: string;\n isLoading: boolean;\n};\n\nexport const CustomerPortalPaywall = React.forwardRef<HTMLDivElement, CustomerPortalPaywallProps>(\n ({ paywallComponent, theme, title, isLoading }, ref) => {\n if (!paywallComponent) {\n return null;\n }\n\n return (\n <CustomerPortalPaywallLayout\n className=\"stigg-customer-portal-paywall-section\"\n ref={ref}\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-customer-portal-paywall-header\">\n <SectionTitle isLoading={isLoading} className=\"stigg-customer-portal-paywall-section-title\" title={title} />\n </SectionHeader>\n\n {paywallComponent}\n </CustomerPortalPaywallLayout>\n );\n },\n);\n","import styled from '@emotion/styled/macro';\n\nexport const CustomerPortalLayout = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nexport const CustomerPortalSections = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n row-gap: 24px;\n`;\n","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayNameText(\n featureDisplayName: string,\n featureUnits: string | undefined | null,\n featureUnitsPlural: string | undefined | null,\n) {\n if (!featureUnits && !featureUnitsPlural) {\n return featureDisplayName;\n }\n\n const displayNameLowerCase = lowercase(featureDisplayName);\n if (\n displayNameLowerCase === lowercase(featureUnits || '') ||\n displayNameLowerCase === lowercase(featureUnitsPlural || '')\n ) {\n return featureDisplayName;\n }\n\n return `${featureDisplayName} (${featureUnitsPlural})`;\n}\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n","import styled from '@emotion/styled/macro';\n\nexport const FeatureUsageContainer = styled.div<{ $highlight: boolean; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n row-gap: 16px;\n height: 100%;\n\n ${({ theme, $highlight }) => $highlight && `background-color: ${theme.stigg.palette.backgroundSection}`};\n`;\n","import isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { getResetUsageText, getUsagePercentage } from './FeatureUsage.helper';\nimport { getFeatureDisplayName } from '../../../utils/getFeatureName';\nimport { FeatureUsageContainer } from './FeatureUsage.style';\nimport { FeatureUsageProgressBar } from './FeatureUsageProgressBar';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n hasCustomSubscription: boolean;\n canUpgradeSubscription: boolean;\n};\n\nexport function FeatureUsage({\n entitlement,\n subscriptionPrice,\n onManageSubscription,\n onBuyMore,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: UsageBoxProps) {\n const { theme } = useCustomerPortalContext();\n\n const hasOverageUsage = !entitlement.hasUnlimitedUsage && entitlement.currentUsage! > entitlement.usageLimit!;\n\n if (!entitlement.feature) {\n return null;\n }\n\n return (\n <FeatureUsageContainer $highlight={!!subscriptionPrice} $borderColor={theme.borderColor}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 16 }}>\n <LongText variant=\"body1\">{entitlement.feature && getFeatureDisplayName(entitlement.feature)}</LongText>\n {subscriptionPrice && (\n <InformationTooltip\n title={\n <Typography variant=\"body1\">\n {subscriptionPrice.billingModel === BillingModel.PerUnit\n ? 'Billed for committed usage'\n : 'Billed for actual usage'}\n </Typography>\n }>\n <Icon icon=\"DollarCoin\" svgStrokeColor={theme.iconsColor} />\n </InformationTooltip>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8 }}>\n <LongText\n variant=\"body1\"\n color={hasOverageUsage ? 'error' : 'primary'}\n data-testid={`usage-data-${entitlement.feature?.refId}`}>\n {entitlement.currentUsage?.toLocaleString()}\n {!entitlement.hasUnlimitedUsage &&\n ` / ${entitlement.usageLimit?.toLocaleString()} (${getUsagePercentage(\n entitlement.currentUsage || 0,\n entitlement.usageLimit!,\n )}%)`}\n </LongText>\n\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={entitlement.feature}\n onBuyMore={onBuyMore}\n canBuyMore={!!subscriptionPrice}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n\n {!entitlement.hasUnlimitedUsage &&\n !isUndefined(entitlement.usageLimit) &&\n !isUndefined(entitlement.currentUsage) &&\n entitlement.resetPeriod &&\n entitlement.usagePeriodEnd ? (\n <Typography color=\"secondary\">{getResetUsageText(entitlement)}</Typography>\n ) : null}\n {entitlement.hasUnlimitedUsage && <Typography color=\"secondary\">In current billing period</Typography>}\n </FeatureUsageContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { range } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport React from 'react';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n const isMdScreen = useIsScreenWiderThan('md');\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\" sx={{ flexWrap: 'wrap' }}>\n {range(6).map((item) => (\n <Grid key={item} item xs={isMdScreen ? 4 : 12}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}\n","import { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React, { useState } from 'react';\nimport { compact, keyBy } from 'lodash';\nimport { Minus, Plus } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { FeatureUsage } from './featureUsage/FeatureUsage';\nimport { Footer, CustomerUsageLoader } from './CustomerUsageData.style';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { StyledButton } from '../common/StyledButton';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n filterEntitlements?: FilterEntitlementsFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore, filterEntitlements }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = useState(false);\n const isMdScreen = useIsScreenWiderThan('md');\n\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { entitlements, subscriptions } = customerPortal || {};\n const meteredEntitlements = entitlements?.filter(\n (entitlement) =>\n entitlement.feature?.meterType === MeterType.Fluctuating ||\n entitlement.feature?.meterType === MeterType.Incremental,\n );\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const canUpgradeSubscription = !!customerPortal?.canUpgradeSubscription;\n\n const subscriptionPriceByFeature = keyBy(activeSubscription?.prices, 'feature.refId');\n const entitlementByFeature = keyBy(meteredEntitlements, 'feature.refId');\n\n // sort features by prices first, then other entitlements\n const priceEntitlements = compact(\n activeSubscription?.prices.map(\n (subscriptionPrice) => subscriptionPrice.feature && entitlementByFeature[subscriptionPrice.feature.refId],\n ),\n );\n const otherEntitlements = compact(\n meteredEntitlements?.filter((entitlement) => !subscriptionPriceByFeature[entitlement.feature!.refId]),\n );\n const sortedEntitlements = [...priceEntitlements, ...otherEntitlements];\n\n const filteredEntitlements = filterEntitlements ? filterEntitlements(sortedEntitlements) : sortedEntitlements;\n\n // 4 -> 3 per row, 6 -> 2 per row\n const xs = isMdScreen ? (filteredEntitlements.length > 2 ? 4 : 6) : 12;\n\n const entitlementsToShow = showAll ? filteredEntitlements : filteredEntitlements.slice(0, MAX_BOXES);\n\n const toggleShowAll = () => setShowAll((prevState) => !prevState);\n\n if (!isLoadingData && !meteredEntitlements?.length) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-subscription-usage-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader>\n <SectionTitle\n title={textOverrides.usageTabTitle}\n className=\"stigg-customer-portal-usage-section-title\"\n isLoading={isLoadingData}\n />\n </SectionHeader>\n\n {isLoadingData ? (\n <CustomerUsageLoader />\n ) : (\n <>\n <Grid container spacing={4}>\n {entitlementsToShow.map((entitlement) => (\n <Grid\n className={`stigg-entitlement-usage-${entitlement.feature!.refId}`}\n key={entitlement.feature!.refId}\n item\n xs={xs}>\n <FeatureUsage\n key={entitlement.feature!.refId}\n subscriptionPrice={subscriptionPriceByFeature[entitlement.feature!.refId]}\n entitlement={entitlement}\n onManageSubscription={onManageSubscription}\n onBuyMore={onBuyMore}\n hasCustomSubscription={hasCustomSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n />\n </Grid>\n ))}\n </Grid>\n\n {filteredEntitlements.length > MAX_BOXES && (\n <Footer>\n <StyledButton\n className=\"stigg-usage-toggle-many-button\"\n variant=\"text\"\n startIcon={showAll ? <Minus /> : <Plus />}\n onClick={toggleShowAll}>\n {showAll ? 'Show less' : 'Show more'}\n </StyledButton>\n </Footer>\n )}\n </>\n )}\n </SectionContainer>\n );\n}\n","import React, { useRef } from 'react';\nimport { SubscriptionsOverview } from './subscriptionOverview/SubscriptionsOverview';\nimport { CustomerPortalHeader } from './CustomerPortalHeader';\nimport { PaymentDetailsSection } from './billing/PaymentDetailsSection';\nimport { CustomerPortalPaywall } from './paywall/CustomerPortalPaywall';\nimport { useCustomerPortalContext } from './CustomerPortalProvider';\nimport { CustomerPortalLayout, CustomerPortalSections } from './CustomerPortal.style';\nimport { CustomerPortalProps } from './CustomerPortal';\nimport { InvoicesSection, useStiggContext } from '../..';\nimport { CustomerUsageData } from './usage/CustomerUsageData';\nimport { CustomerPortalIntentionType } from './types';\n\nexport type OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => void;\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n filterEntitlements,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick: OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => {\n if (onManageSubscription) {\n void onManageSubscription({\n intentionType,\n customerSubscriptions: customerPortal?.subscriptions ?? [],\n });\n } else {\n customerPortalSectionRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n const shouldShowUsage = !hiddenSections?.some((section) => section === 'usage');\n const shouldShowPaymentDetails = !hiddenSections?.some(\n (section) => section === 'paymentDetails' || section === 'billingInformation',\n );\n const shouldShowInvoices = !hiddenSections?.some(\n (section) => section === 'invoices' || section === 'billingInformation',\n );\n\n return (\n <CustomerPortalLayout className=\"stigg-customer-portal-layout\">\n <CustomerPortalHeader showWatermark={stigg.isWidgetWatermarkEnabled && !!customerPortal} />\n <CustomerPortalSections className=\"stigg-customer-portal-sections\">\n <SubscriptionsOverview\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageClick}\n onContactSupport={onContactSupport}\n hiddenSections={hiddenSections}\n cancelScheduledUpdatesButtonTitle={textOverrides.cancelScheduledUpdatesButtonTitle}\n />\n {shouldShowUsage && (\n <CustomerUsageData\n onManageSubscription={onManageClick}\n onBuyMore={onBuyMore}\n filterEntitlements={filterEntitlements}\n />\n )}\n <CustomerPortalPaywall\n ref={customerPortalSectionRef}\n paywallComponent={paywallComponent}\n theme={theme}\n title={textOverrides.paywallSectionTitle}\n isLoading={!customerPortal || isLoading}\n />\n {shouldShowPaymentDetails && <PaymentDetailsSection />}\n {shouldShowInvoices && <InvoicesSection />}\n </CustomerPortalSections>\n </CustomerPortalLayout>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn, OnManageSubscriptionFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: OnManageSubscriptionFn;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => Promise<void> | void;\n onContactSupport?: () => Promise<void> | void;\n paywallComponent?: React.ReactNode;\n hiddenSections?: CustomerPortalSection[];\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n filterEntitlements?: FilterEntitlementsFn;\n resourceId?: string;\n productId?: string;\n};\n\nexport function CustomerPortal({ textOverrides, theme, resourceId, productId, ...restProps }: CustomerPortalProps) {\n return (\n <CustomerPortalProvider textOverrides={textOverrides} theme={theme} resourceId={resourceId} productId={productId}>\n <CustomerPortalContainer {...restProps} />\n </CustomerPortalProvider>\n );\n}\n","import React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\n\nexport function InvoicesSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = !customerPortal || isLoading;\n\n const viewInvoiceHistoryButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.viewInvoiceHistory}\n className=\"stigg-view-invoice-history-button\"\n />\n ) : null;\n\n if (!isLoadingData && !customerPortal?.billingPortalUrl) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-invoices-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-invoices-section-title\"\n title={textOverrides.invoicesTitle}\n />\n {viewInvoiceHistoryButton}\n </SectionHeader>\n </SectionContainer>\n );\n}\n","import sortBy from 'lodash/sortBy';\nimport { Addon, BillingPeriod, Currency, SubscriptionAddon } from '@stigg/js-client-sdk';\n\ntype FilterAddonsBaseProps = {\n billingPeriod: BillingPeriod;\n currency: Currency;\n billingCountryCode?: string;\n};\n\nexport const sortAddons = (addons: Addon[]) => {\n return sortBy(addons, 'displayName');\n};\n\nexport const sortSubscriptionAddons = (addons: SubscriptionAddon[]) => {\n return sortBy(addons, 'addon.displayName');\n};\n\nfunction filterAddonPricePointsByBillingPeriod(addon: Addon, billingPeriod: BillingPeriod) {\n return addon.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nfunction mapAddonPricePointsByBillingCountryCode({\n addon,\n currency,\n billingCountryCode,\n}: {\n addon: Addon;\n currency: Currency;\n billingCountryCode?: string;\n}) {\n return {\n ...addon,\n pricePoints: addon.pricePoints.filter(\n (pricePoint) =>\n pricePoint.currency === currency &&\n (billingCountryCode ? pricePoint.billingCountryCode === billingCountryCode : true),\n ),\n };\n}\n\nexport function filterAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: Addon[] } & FilterAddonsBaseProps): Addon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon, billingPeriod))\n ?.map((addon) => mapAddonPricePointsByBillingCountryCode({ addon, currency, billingCountryCode })) || []\n );\n}\n\nexport function filterSubscriptionAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: SubscriptionAddon[] } & FilterAddonsBaseProps): SubscriptionAddon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon.addon, billingPeriod))\n ?.map((addon) => ({\n ...addon,\n addon: mapAddonPricePointsByBillingCountryCode({ addon: addon.addon, currency, billingCountryCode }),\n })) || []\n );\n}\n","import cloneDeep from 'lodash/cloneDeep';\nimport remove from 'lodash/remove';\nimport { Addon, BillingPeriod, Currency, Plan, Subscription, SubscriptionAddon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport {\n filterAddons,\n filterSubscriptionAddons,\n sortAddons,\n sortSubscriptionAddons,\n} from '../steps/addons/addon.utils';\n\nexport type AddonsStepState = {\n addons: SubscriptionAddon[];\n initialAddons?: SubscriptionAddon[];\n availableAddons?: Addon[];\n};\n\ntype GetAddonsStepInitialStateProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n};\n\nexport function getAddonsStepInitialState({\n activeSubscription,\n plan,\n billingPeriod,\n billingCountryCode,\n}: GetAddonsStepInitialStateProps): AddonsStepState {\n let addons: SubscriptionAddon[] = [];\n const currency = plan?.pricePoints?.[0]?.currency || Currency.Usd;\n const availableAddons = sortAddons(\n filterAddons({\n addons: plan?.compatibleAddons,\n billingPeriod,\n billingCountryCode,\n currency,\n }),\n );\n\n const activeSubscriptionAddons = filterSubscriptionAddons({\n addons: activeSubscription?.addons,\n billingPeriod,\n billingCountryCode,\n currency,\n });\n\n if (activeSubscriptionAddons?.length && availableAddons?.length) {\n addons = sortSubscriptionAddons(\n activeSubscriptionAddons.filter((addon) => availableAddons.some((planAddon) => planAddon.id === addon.addon.id)),\n );\n }\n\n return { addons, initialAddons: cloneDeep(addons), availableAddons };\n}\n\nfunction useSetAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addon: Addon, quantity: number) =>\n setState((draft) => {\n const addonToUpdate = draft.addonsStep.addons.find((currentAddon) => currentAddon.addon.id === addon.id);\n\n if (addonToUpdate) {\n addonToUpdate.quantity = quantity;\n } else {\n draft.addonsStep.addons.push({ addon, quantity });\n draft.addonsStep.addons = sortSubscriptionAddons(draft.addonsStep.addons);\n }\n });\n}\n\nfunction useRemoveAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addonId: string) =>\n setState((draft) => {\n remove(draft.addonsStep.addons, (addon) => addon.addon.id === addonId);\n });\n}\n\nfunction useAddonsState() {\n const [{ addonsStep }] = useCheckoutContext();\n return addonsStep;\n}\n\nexport function useAddonsStepModel() {\n const state = useAddonsState();\n\n return {\n ...state,\n setAddon: useSetAddon(),\n removeAddon: useRemoveAddon(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type WidgetState = {\n readOnly?: boolean;\n isLoadingCheckoutData?: boolean;\n isValid?: boolean;\n};\n\nfunction useCheckoutState() {\n const [{ checkout, widgetState, checkoutLocalization }] = useCheckoutContext();\n return { checkoutState: checkout, widgetState, checkoutLocalization };\n}\n\nfunction useSetWidgetReadonly() {\n const [, setState] = useCheckoutContext();\n\n return (readOnly: boolean) =>\n setState((draft) => {\n draft.widgetState.readOnly = readOnly;\n });\n}\n\nfunction useSetIsValid() {\n const [, setState] = useCheckoutContext();\n\n return (isValid: boolean) =>\n setState((draft) => {\n draft.widgetState.isValid = isValid;\n });\n}\n\nexport function useCheckoutModel() {\n const { checkoutState, widgetState, checkoutLocalization } = useCheckoutState();\n\n return {\n checkoutState,\n widgetState,\n checkoutLocalization,\n setWidgetReadOnly: useSetWidgetReadonly(),\n setIsValid: useSetIsValid(),\n };\n}\n","import { GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { MockCheckoutStateCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadCheckoutProps = {\n planId: string;\n resourceId?: string;\n billingCountryCode?: string;\n onMockCheckoutState?: MockCheckoutStateCallback;\n};\n\nexport function useLoadCheckout({ planId, resourceId, billingCountryCode, onMockCheckoutState }: UseLoadCheckoutProps) {\n const { stigg } = useStiggContext();\n const [isLoading, setIsLoading] = useState(true);\n const [checkout, setCheckout] = useState<GetCheckoutStateResults | null>();\n\n useEffect(() => {\n const loadCheckout = async () => {\n try {\n const checkout = await stigg.getCheckoutState({ planId, resourceId, billingCountryCode });\n setCheckout(checkout);\n } catch (err) {\n logger.error(`Failed to load checkout ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n if (onMockCheckoutState) {\n setIsLoading(false);\n setCheckout(onMockCheckoutState({ planId, resourceId, billingCountryCode }));\n return;\n }\n\n if (stigg.isCustomerLoaded) {\n setIsLoading(true);\n void loadCheckout();\n }\n }, [stigg, stigg.isCustomerLoaded, resourceId, planId, billingCountryCode, onMockCheckoutState]);\n\n return {\n checkout,\n isLoading,\n };\n}\n","import { Price } from '@stigg/js-client-sdk';\n\nexport const getValidPriceQuantity = (price: Price, quantity: number) => {\n if (price.minUnitQuantity && quantity < price.minUnitQuantity) {\n return price.minUnitQuantity;\n }\n if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\n","import { Plan } from '@stigg/js-client-sdk';\nimport { BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\n\nexport const hasMonthlyPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n\nexport const hasAnnualPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\nexport const hasMultipleBillingPeriods = (plan?: Plan) => hasMonthlyPrices(plan) && hasAnnualPrices(plan);\n","import keyBy from 'lodash/keyBy';\nimport compact from 'lodash/compact';\nimport { BillableFeatureInput, BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillableFeature, BillingModel, Plan, Price, Subscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { getTierByQuantity, hasTierWithUnitPrice } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\nimport { hasAnnualPrices, hasMonthlyPrices } from '../../utils/planPrices';\n\nexport type PlanStepState = {\n billingPeriod: BillingPeriod;\n billableFeatures: BillableFeatureInput[];\n billingCountryCode?: string;\n};\n\ntype GetPlanStepInitialStateProps = {\n preferredBillingPeriod?: BillingPeriod;\n plan?: Plan;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst getBillingPeriod = (billingPeriod: BillingPeriod, hasMonthlyPrices?: boolean, hasAnnualPrices?: boolean) => {\n if (billingPeriod === BillingPeriod.Monthly && hasMonthlyPrices) {\n return billingPeriod;\n }\n if (billingPeriod === BillingPeriod.Annually && hasAnnualPrices) {\n return billingPeriod;\n }\n return null;\n};\n\nconst isInAdvanceCommitmentCharge = ({ pricingModel }: Price) => {\n return pricingModel === BillingModel.PerUnit;\n};\n\nfunction getBillableFeatures(\n preconfiguredBillableFeatures: BillableFeature[],\n planPrices?: Price[],\n activeSubscription?: Subscription | null,\n): BillableFeature[] {\n if (!planPrices) return [];\n\n const preconfBillableFeaturesByFeatureId = keyBy(preconfiguredBillableFeatures, 'featureId');\n\n const quantityByFeatureId = keyBy(\n compact(\n activeSubscription?.prices?.map((charge) => {\n const { feature } = charge;\n if (!feature || !isInAdvanceCommitmentCharge(charge)) {\n return null;\n }\n\n return {\n featureId: feature.featureId,\n quantity: feature.unitQuantity || null,\n };\n }),\n ),\n 'featureId',\n );\n\n return compact(\n planPrices?.map((price) => {\n const featureId = price.feature?.featureId;\n if (!featureId || !isInAdvanceCommitmentCharge(price)) {\n return null;\n }\n\n let quantity;\n const preconfiguredQuantity =\n preconfBillableFeaturesByFeatureId[featureId]?.quantity || quantityByFeatureId[featureId]?.quantity;\n\n quantity = getValidPriceQuantity(price, preconfiguredQuantity || 1);\n\n if (price.isTieredPrice && !hasTierWithUnitPrice(price.tiers)) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n quantity = tier.upTo!;\n }\n\n return {\n featureId,\n quantity,\n };\n }),\n );\n}\n\nfunction resolveBillingPeriod({\n plan,\n activeSubscription,\n preferredBillingPeriod,\n}: {\n plan?: Plan;\n activeSubscription?: Subscription | null;\n preferredBillingPeriod?: BillingPeriod;\n}) {\n const hasMonthlyPlan = hasMonthlyPrices(plan);\n const hasAnnualPlan = hasAnnualPrices(plan);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n const isUpdate = activeSubscription?.plan?.id === plan?.id;\n if (isUpdate) {\n return activeSubscription?.price?.billingPeriod || BillingPeriod.Monthly;\n }\n\n if (activeSubscription?.prices && activeSubscription?.prices.length > 0) {\n const billingPeriod = getBillingPeriod(activeSubscription?.prices[0].billingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPlan ? BillingPeriod.Annually : BillingPeriod.Monthly;\n}\n\nexport function getPlanStepInitialState({\n preferredBillingPeriod,\n plan,\n activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures,\n}: GetPlanStepInitialStateProps): PlanStepState {\n const billingPeriod = resolveBillingPeriod({ plan, activeSubscription, preferredBillingPeriod });\n const planPrices = plan?.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const billableFeatures = getBillableFeatures(preconfiguredBillableFeatures, planPrices, activeSubscription);\n\n return {\n billingPeriod,\n billableFeatures,\n billingCountryCode,\n };\n}\n\nfunction usePlanState() {\n const [{ planStep }] = useCheckoutContext();\n return planStep;\n}\n\nfunction useSetBillableFeature() {\n const [, setState] = useCheckoutContext();\n\n return (featureId: string, quantity: number) =>\n setState((draft) => {\n const billableFeature = draft.planStep.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n\n if (billableFeature) {\n billableFeature.quantity = quantity;\n } else {\n draft.planStep.billableFeatures.push({ featureId, quantity });\n }\n });\n}\n\nfunction useSetBillingPeriod() {\n const [, setState] = useCheckoutContext();\n\n return (billingPeriod: BillingPeriod) =>\n setState((draft) => {\n draft.planStep.billingPeriod = billingPeriod;\n });\n}\n\nexport function usePlanStepModel() {\n const state = usePlanState();\n\n return {\n ...state,\n setBillingPeriod: useSetBillingPeriod(),\n setBillableFeature: useSetBillableFeature(),\n };\n}\n","import { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { Addon, BillableFeature, BillingPeriod, CheckoutStatePlan } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { CheckoutSteps } from '../configurations/steps';\nimport { hasMultipleBillingPeriods } from '../../utils/planPrices';\n\nexport enum CheckoutStepKey {\n PLAN = 'PLAN',\n ADDONS = 'ADDONS',\n PAYMENT = 'PAYMENT',\n}\n\nexport type CheckoutStep = {\n key: CheckoutStepKey;\n label: string;\n};\n\nconst CHECKOUT_STEPS: CheckoutStep[] = [\n { key: CheckoutStepKey.PLAN, label: 'Plan' },\n { key: CheckoutStepKey.ADDONS, label: 'Add-ons' },\n { key: CheckoutStepKey.PAYMENT, label: 'Payment details' },\n];\n\nexport type ProgressBarState = {\n activeStep: number;\n completedSteps: number[];\n steps: CheckoutStep[];\n isDisabled: boolean;\n};\n\nconst INITIAL_STATE: ProgressBarState = {\n activeStep: 0,\n completedSteps: [],\n steps: CHECKOUT_STEPS,\n isDisabled: false,\n};\n\ntype GetProgressBarInitialStateProps = {\n isLoading: boolean;\n skipCheckoutSteps: CheckoutSteps[];\n plan?: CheckoutStatePlan;\n availableAddons?: Addon[];\n availableCharges: BillableFeatureInput[];\n preferredBillingPeriod?: BillingPeriod;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst canSkipPlanStep = (\n plan: CheckoutStatePlan,\n availableCharges: BillableFeatureInput[],\n preconfiguredBillableFeatures: BillableFeature[],\n preferredBillingPeriod?: BillingPeriod,\n) => {\n // if multiple billing periods are available, a preferred billing period must be selected\n if (hasMultipleBillingPeriods(plan) && !preferredBillingPeriod) {\n return false;\n }\n\n const availableChargesIds = availableCharges.map((charge) => charge.featureId);\n const preconfiguredChargesIds = preconfiguredBillableFeatures.map((charge) => charge.featureId);\n\n // if there are available charges, they must be preconfigured\n if (\n availableChargesIds.length !== preconfiguredChargesIds.length ||\n !availableChargesIds.every((charge) => preconfiguredChargesIds.includes(charge))\n ) {\n return false;\n }\n\n return true;\n};\n\nexport function getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps,\n plan,\n availableAddons,\n availableCharges,\n preferredBillingPeriod,\n preconfiguredBillableFeatures,\n}: GetProgressBarInitialStateProps) {\n if (isLoading || !plan) {\n return INITIAL_STATE;\n }\n\n const stepsToFilter: CheckoutStepKey[] = [];\n\n if (\n skipCheckoutSteps.includes('PLAN') &&\n canSkipPlanStep(plan, availableCharges, preconfiguredBillableFeatures, preferredBillingPeriod)\n ) {\n stepsToFilter.push(CheckoutStepKey.PLAN);\n }\n\n if (availableAddons?.length === 0 || skipCheckoutSteps.includes('ADDONS')) {\n stepsToFilter.push(CheckoutStepKey.ADDONS);\n }\n\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => !stepsToFilter.includes(step.key)) };\n}\n\nfunction useProgressBarState() {\n const [{ progressBar }] = useCheckoutContext();\n return progressBar;\n}\n\nfunction useSetActiveStep() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.activeStep = stepNumber;\n });\n}\nfunction useMarkStepAsCompleted() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.completedSteps.push(stepNumber);\n });\n}\n\nfunction isCheckoutComplete(progressBar: ProgressBarState) {\n return progressBar.completedSteps.length >= progressBar.steps.length - 1;\n}\n\nfunction useGoNext() {\n const [, setState] = useCheckoutContext();\n return () =>\n setState(({ progressBar }) => {\n if (progressBar.isDisabled) {\n return;\n }\n\n if (!progressBar.completedSteps.includes(progressBar.activeStep)) {\n progressBar.completedSteps.push(progressBar.activeStep);\n }\n\n if (progressBar.activeStep < progressBar.steps.length - 1) {\n progressBar.activeStep += 1;\n }\n });\n}\n\nfunction useSetIsDisabled() {\n const [, setState] = useCheckoutContext();\n return (isDisabled?: boolean) =>\n setState(({ progressBar }) => {\n progressBar.isDisabled = !!isDisabled;\n });\n}\n\nexport function useProgressBarModel() {\n const progressBarState = useProgressBarState();\n const currentStep = progressBarState.steps[progressBarState.activeStep];\n\n return {\n currentStep,\n progressBarState,\n isLastStep: progressBarState.activeStep === progressBarState.steps.length - 1,\n isCheckoutComplete: isCheckoutComplete(progressBarState),\n setActiveStep: useSetActiveStep(),\n markStepAsCompleted: useMarkStepAsCompleted(),\n goNext: useGoNext(),\n setIsDisabled: useSetIsDisabled(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\nimport { AddonsStepState } from './useAddonsStepModel';\nimport { PromotionCodeState } from './useCouponModel';\nimport { PaymentStepState } from './usePaymentStepModel';\nimport { PlanStepState } from './usePlanStepModel';\n\nexport type SubscriptionState = PlanStepState &\n PromotionCodeState &\n Pick<AddonsStepState, 'addons'> &\n Pick<PaymentStepState, 'billingAddress' | 'taxPercentage'>;\n\nexport function useSubscriptionModel(): SubscriptionState {\n const [{ planStep, addonsStep, promotionCode, paymentStep }] = useCheckoutContext();\n\n return {\n ...planStep,\n addons: addonsStep.addons,\n promotionCode,\n billingAddress: paymentStep.billingAddress,\n taxPercentage: paymentStep.taxPercentage,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { BillingAddress, PreviewSubscription, StiggClient, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\nfunction mapBillingInformation({\n billingAddress,\n taxPercentage,\n}: {\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n}): Pick<PreviewSubscription, 'billingInformation'> {\n if (!billingAddress && !taxPercentage) {\n return {};\n }\n\n return {\n billingInformation: {\n ...(billingAddress ? { billingAddress } : {}),\n ...(taxPercentage ? { taxPercentage } : {}),\n },\n };\n}\n\ntype UsePreviewSubscriptionProps = {\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport type PreviewSubscriptionProps = {\n customerId?: string;\n planId?: string;\n resourceId?: string;\n stigg: StiggClient;\n} & SubscriptionState &\n UsePreviewSubscriptionProps;\n\nconst previewSubscription = async ({\n stigg,\n customerId,\n planId,\n resourceId,\n promotionCode,\n addons,\n billableFeatures,\n billingCountryCode,\n billingPeriod,\n billingAddress,\n taxPercentage,\n onMockCheckoutPreview,\n}: PreviewSubscriptionProps) => {\n const estimateAddons = addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n let subscriptionPreview: SubscriptionPreviewV2 | null = null;\n let errorMessage: string | null = null;\n\n try {\n if (customerId && planId) {\n const previewSubscriptionProps: PreviewSubscription = {\n customerId,\n planId,\n resourceId,\n billingCountryCode,\n addons: estimateAddons,\n billingPeriod,\n promotionCode,\n billableFeatures: isEmpty(billableFeatures) ? undefined : billableFeatures,\n ...mapBillingInformation({ billingAddress, taxPercentage }),\n };\n\n subscriptionPreview = onMockCheckoutPreview\n ? onMockCheckoutPreview(previewSubscriptionProps)\n : await stigg.previewSubscription(previewSubscriptionProps);\n }\n } catch (error) {\n const [, errorMsg] = (error as any)?.message?.split('Error:') || [];\n\n errorMessage = errorMsg?.trim();\n }\n\n return { subscriptionPreview, errorMessage };\n};\n\nexport const usePreviewSubscriptionAction = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const { stigg } = useStiggContext();\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState, widgetState } = useCheckoutModel();\n const { plan, customer } = checkoutState || {};\n\n const previewSubscriptionAction = useCallback(\n async ({ promotionCode }: { promotionCode?: string | null } = {}) => {\n if (!widgetState.isValid) {\n return { subscriptionPreview: null, errorMessage: null };\n }\n\n return previewSubscription({\n stigg,\n customerId: customer?.id,\n planId: plan?.id,\n resourceId,\n addons: subscription.addons,\n billableFeatures: subscription.billableFeatures,\n billingCountryCode: subscription.billingCountryCode,\n billingPeriod: subscription.billingPeriod,\n billingAddress: subscription.billingAddress,\n taxPercentage: subscription.taxPercentage,\n promotionCode: promotionCode ?? subscription.promotionCode,\n onMockCheckoutPreview,\n });\n },\n [\n stigg,\n customer?.id,\n plan?.id,\n resourceId,\n subscription.addons,\n subscription.billableFeatures,\n subscription.billingCountryCode,\n subscription.billingPeriod,\n subscription.billingAddress,\n subscription.taxPercentage,\n subscription.promotionCode,\n widgetState.isValid,\n onMockCheckoutPreview,\n ],\n );\n\n return { previewSubscriptionAction };\n};\n\nconst SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME = 500;\n\nexport const usePreviewSubscription = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const [subscriptionPreview, setSubscriptionPreview] = useState<SubscriptionPreviewV2 | null>(null);\n const [isFetchingSubscriptionPreview, setIsFetchingSubscriptionPreview] = useState(false);\n\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n useEffect(() => {\n const estimateSubscription = async () => {\n const { subscriptionPreview } = await previewSubscriptionAction();\n if (subscriptionPreview) {\n setSubscriptionPreview(subscriptionPreview);\n }\n\n setIsFetchingSubscriptionPreview(false);\n };\n\n setIsFetchingSubscriptionPreview(true);\n\n const timer = setTimeout(() => {\n setIsFetchingSubscriptionPreview(true);\n void estimateSubscription();\n }, SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [previewSubscriptionAction]);\n\n return { subscriptionPreview, isFetchingSubscriptionPreview };\n};\n","import { BillingAddress, Customer } from '@stigg/js-client-sdk';\n\nimport { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PaymentStepState = {\n useNewPaymentMethod: boolean;\n errorMessage?: string;\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n};\n\ntype GetPaymentStepInitialStateProps = {\n customer?: Customer;\n taxPercentage?: number;\n};\n\nexport function getPaymentStepInitialState({\n customer,\n taxPercentage,\n}: GetPaymentStepInitialStateProps): PaymentStepState {\n return {\n useNewPaymentMethod: !customer?.paymentMethodDetails,\n taxPercentage,\n };\n}\n\nfunction useSetUseNewPaymentMethod() {\n const [, setState] = useCheckoutContext();\n\n return (useNewPaymentMethod: boolean) =>\n setState((draft) => {\n draft.paymentStep.useNewPaymentMethod = useNewPaymentMethod;\n });\n}\n\nfunction useSetErrorMessage() {\n const [, setState] = useCheckoutContext();\n\n return (errorMessage?: string) =>\n setState((draft) => {\n draft.paymentStep.errorMessage = errorMessage;\n });\n}\n\nfunction useSetBillingAddress() {\n const [, setState] = useCheckoutContext();\n\n return (billingAddress?: BillingAddress) =>\n setState((draft) => {\n draft.paymentStep.billingAddress = billingAddress;\n });\n}\n\nfunction usePaymentState() {\n const [{ paymentStep }] = useCheckoutContext();\n return paymentStep;\n}\n\nexport function usePaymentStepModel() {\n const state = usePaymentState();\n\n return {\n ...state,\n setUseNewPaymentMethod: useSetUseNewPaymentMethod(),\n setErrorMessage: useSetErrorMessage(),\n setBillingAddress: useSetBillingAddress(),\n };\n}\n","import {\n BillingPeriod,\n DiscountType,\n Plan,\n SubscriptionPreviewDiscount,\n SubscriptionPreviewTaxDetails,\n DiscountDurationType,\n} from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../../types';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\n\nexport type CheckoutLocalization = {\n changePlan: string;\n billingPeriodsTitle: string;\n addAddonText: string;\n newPaymentMethodText: string;\n newPaymentMethodCardTitle: string;\n newPaymentMethodBillingAddressTitle: string;\n summary: {\n title: string;\n planName: (params: { plan: Plan }) => string;\n addCouponCodeText: string;\n couponCodeTitle: string;\n addonsSectionTitle: string;\n discountsSectionTitle: string;\n onlyPayAsYouGoText: string;\n startsAtText: string;\n proratedTotalDueText: string;\n baseChargeText: string | ((params: { billingPeriod: BillingPeriod }) => string);\n totalText: string;\n totalDueText: string;\n totalBillingPeriodText: (params: { billingPeriod: BillingPeriod }) => string;\n discountText: (params: { discountDetails: SubscriptionPreviewDiscount; currency: string }) => string;\n appliedCreditsTitle: string;\n taxTitle: (params: { taxDetails: SubscriptionPreviewTaxDetails }) => string;\n checkoutSuccessText: string;\n payAsYouGoTooltipText: string;\n changesWillApplyAtEndOfBillingPeriod: string | ((params: { billingPeriodEnd: Date }) => string);\n creditsForUnusedTimeText: (params: { credits: string }) => string;\n };\n checkoutButton: {\n nextText: string;\n noChangesText: string;\n updateText: string;\n downgradeToFreeText: string;\n upgradeText: string;\n };\n downgradeToFree: {\n alertText: (params: { plan: Plan }) => string;\n freePlanHeader: (params: { plan: Plan }) => string;\n freePlanName: (params: { plan: Plan }) => string;\n freePlanPriceText: (params: { plan: Plan }) => string;\n paidPlanHeader: (params: { plan: Plan }) => string;\n paidPlanName: (params: { plan: Plan }) => string;\n paidPlanPriceText: (params: { plan: Plan; billingPeriod?: BillingPeriod }) => string;\n };\n};\n\nexport function getResolvedCheckoutLocalize(\n localizeOverride?: DeepPartial<CheckoutLocalization>,\n): CheckoutLocalization {\n const checkoutDefaultLocalization: CheckoutLocalization = {\n changePlan: 'Change',\n billingPeriodsTitle: 'Billing cycle',\n addAddonText: 'Add',\n newPaymentMethodText: 'New payment method',\n newPaymentMethodBillingAddressTitle: 'Billing address',\n newPaymentMethodCardTitle: 'Payment method',\n summary: {\n title: 'Order summary',\n planName: ({ plan }) => `${plan.displayName} plan`,\n addCouponCodeText: 'Add promotion code',\n couponCodeTitle: 'Promotion code',\n addonsSectionTitle: 'Add-ons',\n discountsSectionTitle: 'Discounts',\n onlyPayAsYouGoText: 'Varies by usage',\n startsAtText: 'Starts at ',\n proratedTotalDueText: 'Prorated charge today',\n baseChargeText: () => 'Base charge',\n totalText: 'Total',\n totalDueText: 'Total due today',\n totalBillingPeriodText: ({ billingPeriod }) => `Billed ${billingPeriod.toLowerCase()}`,\n appliedCreditsTitle: 'Applied credits',\n creditsForUnusedTimeText: ({ credits }) =>\n `Your account will be granted credits worth ${credits} for unused time, which will be automatically applied to future payments.`,\n discountText: ({ discountDetails, currency }) => {\n let discountText = '';\n if (discountDetails.type === DiscountType.Percentage) {\n discountText = `${discountDetails.value}% off`;\n } else {\n discountText = `${currencyPriceFormatter({ amount: discountDetails.value, currency })}`;\n }\n\n let discountTextPostfix = '';\n switch (discountDetails.durationType) {\n case DiscountDurationType.Once: {\n discountTextPostfix = ' once';\n break;\n }\n case DiscountDurationType.Repeating: {\n const prefix = discountDetails.type === DiscountType.Fixed ? ' per month' : '';\n discountTextPostfix = `${prefix} for ${discountDetails.durationInMonths} months`;\n\n break;\n }\n\n case DiscountDurationType.Forever:\n default: {\n discountTextPostfix = '';\n }\n }\n\n return `${discountText}${discountTextPostfix}`;\n },\n taxTitle: ({ taxDetails }) => `Tax (${taxDetails?.percentage}%)`,\n changesWillApplyAtEndOfBillingPeriod: ({ billingPeriodEnd }) =>\n `Your changes will take effect at the end of your current billing cycle on ${moment(billingPeriodEnd).format(\n 'MMMM D, YYYY',\n )}.`,\n checkoutSuccessText: 'Changes applied',\n payAsYouGoTooltipText: 'Billed according to actual usage',\n },\n checkoutButton: {\n nextText: 'Next',\n noChangesText: 'No changes',\n updateText: 'Update subscription',\n downgradeToFreeText: 'Cancel subscription',\n upgradeText: 'Subscribe',\n },\n downgradeToFree: {\n alertText: () => `We’re sorry to see you cancel your paid subscription 😭`,\n freePlanHeader: () => 'New plan',\n freePlanName: ({ plan }) => `${plan.displayName}`,\n freePlanPriceText: () => 'Free',\n paidPlanHeader: () => 'Current plan',\n paidPlanName: ({ plan }) => `${plan.displayName}`,\n paidPlanPriceText: ({ billingPeriod }) =>\n `Paid plan${billingPeriod ? `, billed ${billingPeriod.toLowerCase()}` : ''}`,\n },\n };\n\n return merge(checkoutDefaultLocalization, localizeOverride);\n}\n","import { CheckoutConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../../theme/types';\nimport { DeepPartial } from '../../../types';\n\nexport type CheckoutTheme = {\n primary: string;\n textColor: string;\n backgroundColor: string;\n borderColor: string;\n summaryBackgroundColor: string;\n paymentInputBackgroundColor?: string;\n paymentInputBorderColor?: string;\n paymentInputBorderRadius?: string;\n};\n\nconst defaultCheckoutTheme: CheckoutTheme = {\n primary: 'rgb(50, 126, 238)',\n textColor: 'rgb(0, 30, 108)',\n backgroundColor: 'rgb(255, 255, 255)',\n borderColor: 'rgb(235, 237, 243)',\n summaryBackgroundColor: 'rgb(109, 121, 144)',\n};\n\nexport function getResolvedCheckoutTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CheckoutTheme>,\n // all the remote colors override theme colors, no need to use them here\n _remoteConfiguration?: CheckoutConfiguration | null,\n): CheckoutTheme {\n const { palette: globalPalette } = globalTheme || {};\n\n return {\n primary: themeOverride?.primary || globalPalette?.primary || defaultCheckoutTheme.primary,\n textColor: themeOverride?.textColor || globalPalette?.text.primary || defaultCheckoutTheme.textColor,\n backgroundColor:\n themeOverride?.backgroundColor || globalPalette?.backgroundPaper || defaultCheckoutTheme.backgroundColor,\n borderColor: themeOverride?.borderColor || globalPalette?.outlinedBorder || defaultCheckoutTheme.borderColor,\n summaryBackgroundColor:\n themeOverride?.summaryBackgroundColor ||\n globalPalette?.backgroundHighlight ||\n defaultCheckoutTheme.summaryBackgroundColor,\n paymentInputBackgroundColor: themeOverride?.paymentInputBackgroundColor,\n paymentInputBorderColor: themeOverride?.paymentInputBorderColor,\n paymentInputBorderRadius: themeOverride?.paymentInputBorderRadius,\n };\n}\n","import { produce } from 'immer';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { BillableFeature, BillingPeriod, GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { CustomizedTheme, SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { DeepPartial } from '../../types';\nimport { mapCheckoutConfiguration, mapTypography } from '../common/mapExternalTheme';\nimport {\n AddonsStepState,\n getAddonsStepInitialState,\n getPaymentStepInitialState,\n getPlanStepInitialState,\n getProgressBarInitialState,\n PaymentStepState,\n PlanStepState,\n ProgressBarState,\n useLoadCheckout,\n WidgetState,\n} from './hooks';\nimport { CheckoutLocalization, getResolvedCheckoutLocalize } from './configurations/textOverrides';\nimport { CheckoutTheme, getResolvedCheckoutTheme } from './configurations/theme';\nimport { StiggTheme } from '../../theme/types';\nimport { BillingInformation, MockCheckoutStateCallback } from './types';\nimport { defaultCheckoutTypography } from './configurations/typography';\nimport { CheckoutSteps } from './configurations/steps';\n\nexport interface CheckoutContextState {\n checkout?: GetCheckoutStateResults | null;\n checkoutLocalization: CheckoutLocalization;\n stiggTheme: StiggTheme;\n theme: CheckoutTheme;\n resourceId?: string;\n promotionCode?: string;\n progressBar: ProgressBarState;\n planStep: PlanStepState;\n addonsStep: AddonsStepState;\n paymentStep: PaymentStepState;\n widgetState: WidgetState;\n}\n\nexport const CheckoutContext = React.createContext<\n [CheckoutContextState, (updater: (state: CheckoutContextState) => void) => void] | null\n>(null);\n\nCheckoutContext.displayName = 'CheckoutContext';\n\nexport const useCheckoutContext = () => {\n const ctx = useContext(CheckoutContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Checkout context; You need to wrap your checkout components in an <CheckoutProvider> component.',\n );\n }\n return ctx;\n};\n\nconst CheckoutContextProvider: React.FC<{ children: React.ReactNode; initialState: CheckoutContextState }> = ({\n children,\n initialState,\n}) => {\n const [state, innerSetState] = useState(initialState);\n\n useEffect(() => {\n innerSetState(initialState);\n }, [initialState]);\n\n const setState = useCallback(\n (updater: (state: CheckoutContextState) => void) => innerSetState((old) => produce(old, (draft) => updater(draft))),\n [innerSetState],\n );\n\n const [contextValue, setContextValue] = useMemo(() => [state, setState], [setState, state]);\n\n return <CheckoutContext.Provider value={[contextValue, setContextValue]}>{children}</CheckoutContext.Provider>;\n};\n\nexport type CheckoutProviderProps = {\n textOverrides?: DeepPartial<CheckoutLocalization>;\n theme?: DeepPartial<CheckoutTheme>;\n resourceId?: string;\n planId: string;\n preferredBillingPeriod?: BillingPeriod;\n billingCountryCode?: string;\n billableFeatures?: BillableFeature[];\n billingInformation?: BillingInformation;\n onMockCheckoutState?: MockCheckoutStateCallback;\n skipCheckoutSteps?: CheckoutSteps[];\n};\n\nexport function CheckoutProvider({\n children,\n textOverrides,\n theme,\n preferredBillingPeriod,\n billableFeatures,\n resourceId,\n planId,\n billingCountryCode,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading } = useLoadCheckout({ resourceId, planId, billingCountryCode, onMockCheckoutState });\n const configuration: CustomizedTheme = checkout?.configuration\n ? mapCheckoutConfiguration(checkout.configuration)\n : { typography: mapTypography(defaultCheckoutTypography) };\n const globalTheme: StiggTheme = useStiggTheme(configuration);\n\n const initialState = useMemo(() => {\n const checkoutTheme = getResolvedCheckoutTheme(globalTheme, theme, checkout?.configuration);\n const checkoutLocalization = getResolvedCheckoutLocalize(textOverrides);\n const planStep = getPlanStepInitialState({\n preferredBillingPeriod,\n plan: checkout?.plan,\n activeSubscription: checkout?.activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n const addonsStep = getAddonsStepInitialState({\n plan: checkout?.plan,\n billingPeriod: planStep.billingPeriod,\n activeSubscription: checkout?.activeSubscription,\n });\n const paymentStep = getPaymentStepInitialState({\n customer: checkout?.customer,\n taxPercentage: billingInformation?.taxDetails?.taxPercentage,\n });\n const progressBar = getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps: skipCheckoutSteps ?? [],\n plan: checkout?.plan,\n availableAddons: addonsStep.availableAddons,\n availableCharges: planStep.billableFeatures,\n preferredBillingPeriod,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n\n const initialState: CheckoutContextState = {\n checkout,\n checkoutLocalization,\n stiggTheme: globalTheme,\n theme: checkoutTheme,\n progressBar,\n planStep,\n addonsStep,\n paymentStep,\n resourceId: checkout?.resource?.id,\n widgetState: { readOnly: false, isValid: true, isLoadingCheckoutData: isLoading },\n };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n preferredBillingPeriod,\n billingCountryCode,\n checkout,\n isLoading,\n skipCheckoutSteps,\n billingInformation?.taxDetails?.taxPercentage,\n ]);\n\n return (\n <SdkThemeProvider key={checkout?.plan.id} componentTheme={configuration}>\n <CheckoutContextProvider initialState={initialState}>{children}</CheckoutContextProvider>\n </SdkThemeProvider>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport { mq } from '../common/mediaQuery';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n\n & * {\n box-sizing: border-box;\n }\n\n padding: 16px 16px;\n ${mq.md} {\n padding: 32px;\n width: calc(100% - 64px);\n border-radius: 10px;\n }\n`;\nexport const CheckoutContent = styled(Box)`\n display: flex;\n align-items: flex-start;\n gap: 32px;\n flex-wrap: wrap;\n width: 100%;\n\n flex-direction: column;\n ${mq.md} {\n flex-direction: row;\n }\n`;\n\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\n\n width: 100%;\n ${mq.md} {\n width: auto;\n }\n`;\n","import styled from '@emotion/styled/macro';\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\nimport Button, { buttonClasses } from '@mui/material/Button';\nimport { Icon } from '../../common/Icon';\n\nexport const StyledProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>(({ theme, $disabled }) => ({\n [`&.${linearProgressClasses.root}`]: {\n borderRadius: theme.stigg.border.radius,\n backgroundColor: theme.stigg.palette.outlinedBorder,\n },\n [`& .${linearProgressClasses.bar}`]: {\n backgroundColor: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n },\n}));\n\nexport const StyledStepButton = styled(Button)(() => ({\n [`&.${buttonClasses.root}`]: {\n textTransform: 'none',\n lineHeight: 'inherit',\n justifyContent: 'flex-start',\n padding: '8px 4px',\n },\n}));\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n $shouldFill?: boolean;\n}>(({ theme, $disabled, $shouldFill }) => ({\n circle: {\n stroke: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n fill: $shouldFill ? ($disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary) : undefined,\n },\n}));\n","import React, { useEffect, useRef } from 'react';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport StepIcon from '@mui/material/StepIcon';\nimport { useCheckoutModel, useProgressBarModel } from '../hooks';\nimport { Typography } from '../../common/Typography';\nimport { StyledIcon, StyledProgress, StyledStepButton } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep, currentStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const containerRef = useRef<HTMLElement>();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n const [previousStep, setPreviousStep] = React.useState(currentStep);\n useEffect(() => {\n if (!isScreenWiderThanMd) {\n if (containerRef.current && currentStep !== previousStep) {\n containerRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n setPreviousStep(currentStep);\n }, [currentStep, isScreenWiderThanMd, previousStep, setPreviousStep]);\n\n if (progressBarState.steps.length === 1) {\n return null;\n }\n\n return (\n <Box className=\"stigg-checkout-progress-container\" sx={{ width: '100%', mb: 3 }} ref={containerRef}>\n <StyledProgress variant=\"determinate\" value={progress} $disabled={readOnly} />\n <Grid container display=\"flex\">\n {steps.map(({ key, label }, index) => {\n const isCompleted = completedSteps.includes(index);\n const isDisabled =\n readOnly ||\n (index > activeStep && !isCompleted && !completedSteps.includes(index - 1)) ||\n (activeStep !== index && progressBarState.isDisabled);\n const checkedIcon: Icons = isDisabled ? 'OutlinedCheckedCircleDisabled' : 'OutlinedCheckedCircle';\n\n return (\n <Grid\n key={key}\n item\n display=\"flex\"\n flexDirection=\"row\"\n flex={isScreenWiderThanMd ? 1 : 'auto'}\n justifyContent=\"flex-start\">\n {isLoadingCheckoutData ? (\n <Skeleton width={120} height={20} style={{ marginTop: 8 }} />\n ) : (\n <StyledStepButton onClick={() => setActiveStep(index)} fullWidth disabled={isDisabled}>\n <Grid item display=\"flex\" flexDirection=\"row\" alignItems=\"center\" gap={1}>\n <StepIcon\n icon={\n <StyledIcon\n icon={isCompleted ? checkedIcon : 'OutlinedCircle'}\n $disabled={isDisabled}\n $shouldFill={isCompleted}\n />\n }\n />\n\n <Typography variant=\"h6\" color={isDisabled ? 'primary.main.light' : 'primary.main'}>\n {label}\n </Typography>\n </Grid>\n </StyledStepButton>\n )}\n </Grid>\n );\n })}\n </Grid>\n </Box>\n );\n};\n","import sortBy from 'lodash/sortBy';\nimport { useMemo } from 'react';\n\nimport { BillingModel, Price } from '@stigg/js-client-sdk';\n\nconst CHARGES_BILLING_MODEL_ORDER = [BillingModel.FlatFee, BillingModel.PerUnit, BillingModel.UsageBased];\n\nexport const sortCharges = (charges: Price[]) => {\n return sortBy(charges, [\n (charge) => CHARGES_BILLING_MODEL_ORDER.indexOf(charge.pricingModel),\n (charge) => charge.feature?.displayName,\n ]);\n};\n\nexport const useChargesSort = (charges: Price[]) => {\n return useMemo(() => sortCharges(charges), [charges]);\n};\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PromotionCodeState = {\n promotionCode?: string;\n};\n\nfunction usePromotionCodeState() {\n const [{ promotionCode }] = useCheckoutContext();\n return promotionCode;\n}\n\nfunction useSetPromotionCode() {\n const [, setState] = useCheckoutContext();\n\n return (promotionCode: string) =>\n setState((draft) => {\n draft.promotionCode = promotionCode;\n });\n}\n\nexport function usePromotionCodeModel() {\n const promotionCode = usePromotionCodeState();\n\n return {\n promotionCode,\n setPromotionCode: useSetPromotionCode(),\n };\n}\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"plus\">\n<path id=\"Shape\" d=\"M10 4.16666V15.8333\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M4.16699 10H15.8337\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\n\nimport PlusIcon from '../../../assets/plus-icon.svg';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nconst StyledPlusIcon = styled(PlusIcon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $disabled: boolean }>`\n margin-right: 8px;\n path {\n stroke: ${({ theme, $disabled }) => ($disabled ? theme.stigg.palette.text.disabled : theme.stigg.palette.primary)};\n }\n`;\n\nexport type AddPromotionCodeButtonProps = {\n onAddClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n disabled: boolean;\n};\n\nexport const AddPromotionCodeButton = ({ onAddClick, checkoutLocalization, disabled }: AddPromotionCodeButtonProps) => (\n <Button\n disabled={disabled}\n fullWidth\n className=\"stigg-checkout-summary-add-coupon-code-button\"\n sx={{\n textTransform: 'none',\n justifyContent: 'flex-start',\n color: disabled ? 'text.disabled' : 'primary.main',\n }}\n variant=\"text\"\n size=\"medium\"\n onClick={onAddClick}>\n <StyledPlusIcon $disabled={disabled} className=\"stigg-checkout-summary-add-coupon-code-button-icon\" />\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color={disabled ? 'disabled' : 'primary.main'}\n style={{ lineHeight: '24px' }}\n variant=\"h3\">\n {checkoutLocalization.summary.addCouponCodeText}\n </Typography>\n </Button>\n);\n","import React, { useState } from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\n\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button, InputField } from '../components';\nimport { usePreviewSubscriptionAction } from '../hooks';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCodeButton } from './AddPromotionCodeButton';\nimport { PromotionCodeSectionProps } from './PromotionCodeSection';\n\nconst CouponCodeAddButton = styled(Button)`\n padding: 4px 10px;\n min-width: unset;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n display: flex;\n align-items: center;\n`;\n\nexport const AddPromotionCode = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { setPromotionCode: persistPromotionCode } = usePromotionCodeModel();\n const [showInput, setShowInput] = useState(false);\n const [promotionCode, setPromotionCode] = React.useState('');\n const [isLoading, setIsLoading] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n const handlePromotionCode = async () => {\n setIsLoading(true);\n setErrorMessage('');\n\n const { subscriptionPreview, errorMessage } = await previewSubscriptionAction({ promotionCode });\n\n if (!errorMessage && subscriptionPreview?.immediateInvoice?.discountDetails) {\n persistPromotionCode(promotionCode.toUpperCase());\n setShowInput(false);\n } else if (errorMessage) {\n setErrorMessage(errorMessage);\n }\n setIsLoading(false);\n };\n\n if (!showInput) {\n return (\n <AddPromotionCodeButton\n disabled={disabled}\n onAddClick={() => setShowInput(true)}\n checkoutLocalization={checkoutLocalization}\n />\n );\n }\n\n return (\n <Grid>\n <Typography variant=\"body1\" color={errorMessage ? 'error' : disabled ? 'disabled' : 'primary.main'}>\n {checkoutLocalization.summary.couponCodeTitle}\n </Typography>\n\n <InputField\n disabled={disabled}\n autoFocus\n variant=\"outlined\"\n fullWidth\n error={!!errorMessage}\n value={promotionCode}\n onChange={(e) => {\n setPromotionCode(e.target.value);\n }}\n inputProps={{ maxLength: 20 }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter') {\n void handlePromotionCode();\n e.preventDefault();\n }\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n InputProps={{\n endAdornment: (\n <CouponCodeAddButton\n variant=\"contained\"\n disabled={disabled}\n onClick={() => {\n void handlePromotionCode();\n }}>\n {isLoading ? (\n <CircularProgress size={18} sx={{ color: 'white' }} />\n ) : (\n <Icon style={{ display: 'flex' }} icon=\"ArrowForward\" />\n )}\n </CouponCodeAddButton>\n ),\n }}\n />\n {!!errorMessage && (\n <Typography variant=\"body1\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Grid>\n );\n};\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\n\nconst AppliedCouponContainer = styled(Grid)`\n width: auto;\n display: inline-flex;\n align-items: center;\n flex-direction: row;\n gap: 8px;\n padding: 6px 8px;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n border: 1px solid ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => prop !== 'style' })<{ $shouldFill?: boolean }>`\n display: flex;\n\n g {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n\n path {\n fill: ${({ theme, $shouldFill }) => ($shouldFill ? theme.stigg.palette.primary : undefined)};\n }\n`;\n\nexport type AppliedPromotionCodeProps = {\n promotionCode: string;\n onClearPromotionCode: () => void;\n};\n\nexport const AppliedPromotionCode = ({ promotionCode, onClearPromotionCode }: AppliedPromotionCodeProps) => (\n <AppliedCouponContainer container>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <StyledIcon icon=\"Coupon\" />\n <Typography variant=\"body1\" color=\"primary.main\" lineHeight=\"auto\">\n {promotionCode}\n </Typography>\n </Grid>\n <Grid item>\n <Button variant=\"text\" sx={{ minWidth: 'unset', padding: 0 }} onClick={onClearPromotionCode}>\n <StyledIcon icon=\"Close\" $shouldFill />\n </Button>\n </Grid>\n </AppliedCouponContainer>\n);\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCode } from './AddPromotionCode';\nimport { AppliedPromotionCode } from './AppliedPromotionCode';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { MockCheckoutPreviewCallback } from '../types';\n\nconst PromotionCodeSectionContainer = styled.div`\n margin: 16px 0;\n`;\n\nexport type PromotionCodeSectionProps = {\n disabled: boolean;\n checkoutLocalization: CheckoutLocalization;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport const PromotionCodeSection = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { promotionCode, setPromotionCode } = usePromotionCodeModel();\n\n const onClearPromotionCode = () => {\n setPromotionCode('');\n };\n\n const content = promotionCode ? (\n <AppliedPromotionCode promotionCode={promotionCode} onClearPromotionCode={onClearPromotionCode} />\n ) : (\n <AddPromotionCode\n disabled={disabled}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n );\n\n return <PromotionCodeSectionContainer>{content}</PromotionCodeSectionContainer>;\n};\n","import React from 'react';\nimport { StripeAddressElementChangeEvent } from '@stripe/stripe-js';\nimport Grid from '@mui/material/Grid';\nimport { BillingAddress } from '@stigg/js-client-sdk';\nimport { AddressElement, PaymentElement } from '@stripe/react-stripe-js';\nimport { Typography } from '../../../../common/Typography';\nimport { useCheckoutModel, usePaymentStepModel } from '../../../hooks';\nimport { CheckoutContainerProps } from '../../../CheckoutContainer';\n\nexport function StripePaymentForm({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setBillingAddress } = usePaymentStepModel();\n const { customer, configuration } = checkoutState || {};\n const { readOnly } = widgetState;\n const shouldCollectPhoneNumber = !!(collectPhoneNumber ?? configuration?.content?.collectPhoneNumber);\n\n const handleAddressChange = (args: StripeAddressElementChangeEvent) => {\n if (!args.complete) {\n return;\n }\n\n const { postal_code: postalCode, ...addressFields } = args.value.address;\n const billingAddress: BillingAddress = {\n postalCode,\n ...addressFields,\n };\n\n setWidgetReadOnly(true);\n setBillingAddress(billingAddress);\n\n if (onBillingAddressChange) {\n const callExternalBillingAddressChanged = async () => {\n await onBillingAddressChange({ billingAddress });\n setWidgetReadOnly(false);\n };\n\n void callExternalBillingAddressChanged();\n } else {\n setWidgetReadOnly(false);\n }\n };\n\n return (\n <Grid flexDirection=\"column\" container gap={3} padding=\"16px\" sx={{ pointerEvents: readOnly ? 'none' : undefined }}>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodBillingAddressTitle}</Typography>\n <AddressElement\n onChange={handleAddressChange}\n options={{\n mode: 'billing',\n fields: { phone: shouldCollectPhoneNumber ? 'always' : 'auto' },\n defaultValues: {\n ...(customer?.name && { name: customer.name }),\n },\n }}\n />\n </Grid>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodCardTitle}</Typography>\n <PaymentElement\n onChange={() => {}}\n onReady={() => {}}\n options={{\n readOnly,\n terms: { card: 'never' },\n defaultValues: {\n billingDetails: {\n ...(customer?.name && { name: customer.name }),\n ...(customer?.email && { email: customer.email }),\n },\n },\n }}\n />\n </Grid>\n </Grid>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { BillingVendorIdentifier } from '@stigg/js-client-sdk';\nimport { loadStripe, Stripe } from '@stripe/stripe-js';\n\nimport { useCheckoutModel } from '../../../hooks';\n\nexport function useStripeIntegration() {\n const [stripePromise, setStripePromise] = useState<Promise<Stripe | null> | null>(null);\n const { checkoutState } = useCheckoutModel();\n const { billingIntegration, setupSecret } = checkoutState || {};\n\n useEffect(() => {\n if (billingIntegration) {\n const { billingIdentifier, credentials } = billingIntegration;\n if (billingIdentifier !== BillingVendorIdentifier.Stripe) {\n console.error('Currently only stripe integration is supported');\n return;\n }\n\n const { accountId, publicKey } = credentials;\n setStripePromise(loadStripe(publicKey, { stripeAccount: accountId }));\n }\n }, [billingIntegration]);\n\n return { stripePromise, setupIntentClientSecret: setupSecret };\n}\n","import { ApplySubscription, PreviewSubscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { useSubscriptionModel } from './useSubscriptionModel';\n\nexport function useSubscriptionState(): ApplySubscription | PreviewSubscription | undefined {\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const addons = subscription.addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n\n if (!plan?.id) {\n return undefined;\n }\n\n return {\n resourceId,\n planId: plan.id,\n billingPeriod: subscription.billingPeriod,\n billableFeatures: subscription.billableFeatures,\n addons,\n promotionCode: subscription.promotionCode,\n billingCountryCode: subscription.billingCountryCode,\n };\n}\n","import { ApplySubscriptionResults, PaymentCollection } from '@stigg/js-client-sdk';\nimport { Stripe, StripeElements } from '@stripe/stripe-js';\n\ntype StripeElementsProps = {\n stripe: Stripe | null;\n elements: StripeElements | null;\n};\n\nconst FAILED_PAYMENT_COLLECTION_STATUSES = [PaymentCollection.Failed, PaymentCollection.Processing];\n\nexport async function handleStripeFormValidations({ elements }: Pick<StripeElementsProps, 'elements'>) {\n if (!elements) {\n const errorMessage = 'Stripe elements not initialized';\n console.error(errorMessage);\n return { success: false, errorMessage };\n }\n\n const { error: elementsError } = await elements.submit();\n\n if (elementsError) {\n console.log(elementsError.message);\n return { success: false, errorMessage: elementsError.message || '' };\n }\n\n return { success: true };\n}\n\nexport async function handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n}: {\n applySubscriptionResults: ApplySubscriptionResults;\n stripe: Stripe | null;\n}) {\n const subscription = applySubscriptionResults?.subscription;\n const paymentIntentClientSecret = subscription?.latestInvoice?.paymentSecret;\n const paymentCollection = subscription?.paymentCollection;\n\n if (stripe && paymentIntentClientSecret && paymentCollection === PaymentCollection.ActionRequired) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n } else if (paymentCollection && FAILED_PAYMENT_COLLECTION_STATUSES.includes(paymentCollection)) {\n return { errorMessage: subscription?.latestInvoice?.errorMessage || 'An error occurred - try again later' };\n }\n\n return { subscription };\n}\n\nasync function handleStripeSetup({\n stripe,\n elements,\n clientSecret,\n}: {\n stripe: Stripe;\n elements: StripeElements;\n clientSecret: string;\n}) {\n let newPaymentMethodId: string | undefined;\n let setupErrorMessage: string | undefined;\n\n const { error: setupError } = await stripe.confirmSetup({\n elements,\n confirmParams: { return_url: window.location.href },\n redirect: 'if_required',\n });\n\n if (setupError) {\n if (setupError.type === 'card_error' || setupError.type === 'validation_error') {\n if (setupError.type === 'card_error') {\n // Set some error message\n setupErrorMessage = setupError.message || '';\n }\n } else {\n setupErrorMessage = 'An unexpected error occurred.';\n }\n } else {\n try {\n const { setupIntent } = await stripe.retrieveSetupIntent(clientSecret);\n if (setupIntent?.payment_method) {\n newPaymentMethodId = setupIntent.payment_method as string;\n }\n } catch (e) {\n setupErrorMessage = 'An unexpected error occurred.';\n console.error(e);\n }\n }\n\n return { newPaymentMethodId, setupErrorMessage };\n}\n\nexport async function handleNewPaymentMethod({\n stripe,\n elements,\n setupIntentClientSecret,\n}: {\n stripe: Stripe | null;\n elements: StripeElements | null;\n setupIntentClientSecret?: string;\n}): Promise<{ success: boolean; errorMessage?: string; paymentMethodId?: string }> {\n if (!stripe || !elements || !setupIntentClientSecret) {\n return { success: false };\n }\n\n const stripeFormValidationsResults = await handleStripeFormValidations({ elements });\n if (!stripeFormValidationsResults.success) {\n return { success: false, errorMessage: stripeFormValidationsResults.errorMessage };\n }\n\n const { newPaymentMethodId, setupErrorMessage } = await handleStripeSetup({\n stripe,\n elements,\n clientSecret: setupIntentClientSecret,\n });\n\n if (setupErrorMessage || !newPaymentMethodId) {\n return { success: false, errorMessage: setupErrorMessage };\n }\n\n return { success: true, paymentMethodId: newPaymentMethodId };\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Color from 'color';\nimport React, { useEffect, useRef } from 'react';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/lottie/checkout-success.json';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ANIMATION_DURATION = 5000;\n\nconst CheckoutSuccessContainer = styled(Box)`\n @keyframes blurFade {\n 0% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0).toString()};\n backdrop-filter: blur(0px);\n }\n 100% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n backdrop-filter: blur(6.5px);\n }\n }\n\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 5;\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n animation: blurFade 2s ease-in forwards;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n * rect {\n fill: transparent;\n }\n\n & path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nconst CheckoutSuccessText = styled(Typography)`\n @keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 75% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n align-self: center;\n animation: fadeIn 5s ease-in forwards;\n`;\n\nconst StyledLottie = styled(Lottie)`\n display: flex;\n justify-content: center;\n\n svg {\n width: 350px !important;\n height: auto !important;\n }\n`;\n\nexport function CheckoutSuccess({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) {\n const containerRef = useRef<HTMLDivElement>();\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }\n }, []);\n return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\" ref={containerRef}>\n <StyledLottie animationData={animationData} loop={false} autoplay />\n <CheckoutSuccessText variant=\"h1\" color=\"primary.main\">\n {checkoutLocalization.summary.checkoutSuccessText}\n </CheckoutSuccessText>\n </CheckoutSuccessContainer>\n );\n}\n","import { ApplySubscription, ApplySubscriptionResults } from '@stigg/js-client-sdk';\nimport { useElements, useStripe } from '@stripe/react-stripe-js';\nimport { useStiggContext } from '../../../../..';\nimport { useCheckoutModel } from '../../../hooks';\nimport { usePaymentStepModel } from '../../../hooks/usePaymentStepModel';\nimport { useSubscriptionState } from '../../../hooks/useSubscriptionState';\nimport { CheckoutContainerProps, CheckoutResult } from '../../../CheckoutContainer';\nimport { handleNewPaymentMethod, handleStripeNextAction } from './stripe.utils';\nimport { ANIMATION_DURATION } from '../../../summary/CheckoutSuccess';\n\nconst delay = (ms: number) => new Promise((res) => setTimeout(res, ms));\n\nexport type HandleSubmitResult = { results?: ApplySubscriptionResults; success: boolean; errorMessage?: string };\n\nexport type UseSubmitProps = {\n onSuccess?: () => void;\n isMocked?: boolean;\n} & Pick<CheckoutContainerProps, 'onCheckout' | 'onCheckoutCompleted' | 'disableSuccessAnimation'>;\n\nexport function useSubmit({\n isMocked = false,\n onCheckout,\n onCheckoutCompleted,\n onSuccess,\n disableSuccessAnimation,\n}: UseSubmitProps) {\n const { stigg } = useStiggContext();\n const { useNewPaymentMethod } = usePaymentStepModel();\n const subscriptionState = useSubscriptionState();\n const { checkoutState, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setupSecret: setupIntentClientSecret, customer } = checkoutState || {};\n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async (e: any): Promise<HandleSubmitResult> => {\n e.preventDefault();\n\n if (!subscriptionState) {\n return { success: false, errorMessage: 'Unexpected error, please contact support.' };\n }\n\n let success = true;\n let errorMessage: string | undefined;\n let usedStiggCheckoutAction = false;\n let paymentMethodId: string | undefined;\n\n setWidgetReadOnly(true);\n\n if (!isMocked && useNewPaymentMethod) {\n const paymentMethodResults = await handleNewPaymentMethod({ elements, stripe, setupIntentClientSecret });\n if (!paymentMethodResults.success) {\n errorMessage = paymentMethodResults.errorMessage;\n success = false;\n } else {\n paymentMethodId = paymentMethodResults.paymentMethodId;\n }\n }\n\n const checkoutParams: ApplySubscription = { ...subscriptionState, paymentMethodId };\n\n const checkoutAction = async (params: ApplySubscription): Promise<CheckoutResult> => {\n usedStiggCheckoutAction = true;\n\n try {\n const applySubscriptionResults = await stigg.applySubscription(params);\n\n const nextActionResults = await handleStripeNextAction({ applySubscriptionResults, stripe });\n\n return {\n success: !nextActionResults.errorMessage,\n errorMessage: nextActionResults.errorMessage,\n results: applySubscriptionResults,\n };\n } catch (e) {\n console.error(e);\n errorMessage = (e as any)?.message;\n return { success: false, errorMessage };\n }\n };\n\n let checkoutResults: ApplySubscriptionResults | undefined;\n\n if (success) {\n if (onCheckout) {\n const externalCheckoutResults = await onCheckout({\n customerId: customer!.id,\n checkoutParams,\n checkoutAction,\n });\n if (externalCheckoutResults.errorMessage) {\n errorMessage = externalCheckoutResults.errorMessage;\n }\n\n if (!usedStiggCheckoutAction && externalCheckoutResults.results && externalCheckoutResults.success) {\n const nextActionResults = await handleStripeNextAction({\n applySubscriptionResults: externalCheckoutResults.results,\n stripe,\n });\n\n if (nextActionResults.errorMessage) {\n errorMessage = nextActionResults.errorMessage;\n success = false;\n }\n }\n\n success = success && externalCheckoutResults.success && !errorMessage;\n checkoutResults = externalCheckoutResults.results;\n } else {\n const checkoutActionResults = await checkoutAction(checkoutParams);\n if (!checkoutActionResults.success && checkoutActionResults.errorMessage) {\n errorMessage = checkoutActionResults.errorMessage;\n }\n success = checkoutActionResults.success && !errorMessage;\n checkoutResults = checkoutActionResults.results;\n }\n }\n\n setWidgetReadOnly(false);\n\n if (success && onSuccess) {\n onSuccess();\n\n if (!disableSuccessAnimation) {\n await delay(ANIMATION_DURATION); // Wait for animation to finish\n }\n }\n\n await onCheckoutCompleted({ success, error: errorMessage });\n\n return { results: checkoutResults, success: !errorMessage, errorMessage };\n };\n\n return { handleSubmit, isLoading: !!widgetState?.readOnly };\n}\n","import React, { FC, PropsWithChildren } from 'react';\nimport { Skeleton } from '../../components/Skeletons.style';\n\nexport const WithSkeleton: FC<\n PropsWithChildren<{\n isLoading: boolean;\n width?: number | string;\n height?: number | string;\n }>\n> = ({ isLoading, width = 50, height = 16, children }) => {\n if (isLoading) {\n return <Skeleton width={width} height={height} />;\n }\n\n return <>{children}</>;\n};\n","/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport moment from 'moment';\nimport { BillingModel, BillingPeriod, Plan, Subscription, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { WithSkeleton } from './WithSkeleton';\n\nexport type CheckoutCaptionProps = {\n subscriptionPreview?: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n activeSubscription?: Subscription | null;\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n billingPeriod: BillingPeriod;\n};\n\nconst RemainingCreditsCaption = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n const { immediateInvoice } = subscriptionPreview || {};\n if (!immediateInvoice?.proration?.netAmount?.amount || immediateInvoice?.proration?.netAmount?.amount >= 0) {\n return null;\n }\n\n const positiveAmount = immediateInvoice.proration.netAmount.amount * -1;\n\n const credits = currencyPriceFormatter({\n amount: positiveAmount,\n currency: immediateInvoice.proration.netAmount.currency,\n minimumFractionDigits: 2,\n });\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {checkoutLocalization.summary.creditsForUnusedTimeText({ credits })}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst ScheduledUpdatesCaption = ({\n subscriptionPreview,\n activeSubscription,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n if (!subscriptionPreview?.hasScheduledUpdates || !activeSubscription?.currentBillingPeriodEnd) {\n return null;\n }\n\n const { currentBillingPeriodEnd } = activeSubscription;\n const changesWillApplyText =\n typeof checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod === 'function'\n ? checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod({ billingPeriodEnd: currentBillingPeriodEnd })\n : checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {changesWillApplyText}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst NextBillingCaption = ({\n subscriptionPreview,\n activeSubscription,\n plan,\n isFetchingSubscriptionPreview,\n billingPeriod,\n}: CheckoutCaptionProps) => {\n const { recurringInvoice } = subscriptionPreview || {};\n if (!subscriptionPreview || !recurringInvoice?.total.amount) {\n return null;\n }\n\n const currentBillingPeriodEnd = subscriptionPreview.hasScheduledUpdates\n ? activeSubscription?.currentBillingPeriodEnd\n : subscriptionPreview?.billingPeriodRange.end;\n\n const total = currencyPriceFormatter({\n ...recurringInvoice.total,\n minimumFractionDigits: 2,\n });\n\n const hasUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel === BillingModel.UsageBased);\n const hasNonUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel !== BillingModel.UsageBased);\n\n let text = 'We will bill you ';\n let totalAmountText = `${total} `;\n\n if (hasUnitBasedPricing) {\n if (!hasNonUnitBasedPricing) {\n totalAmountText = 'for';\n } else {\n totalAmountText += '+';\n }\n\n totalAmountText += ' applicable usage-based charges for this subscription ';\n }\n\n let nextBillingDate;\n let billingPeriodText;\n\n switch (billingPeriod) {\n case BillingPeriod.Monthly:\n billingPeriodText = 'month';\n nextBillingDate = `the ${moment(currentBillingPeriodEnd).format('Do')}`;\n break;\n case BillingPeriod.Annually:\n billingPeriodText = 'year';\n nextBillingDate = moment(currentBillingPeriodEnd).format('MMMM Do');\n break;\n default: {\n break;\n }\n }\n\n text += `${totalAmountText}for this subscription every ${billingPeriodText} on ${nextBillingDate}, unless you cancel.`;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <>\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </>\n );\n}\n","import { BillingModel, BillingPeriod, Currency, Price, TiersMode } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { isBulkTiers, isQuantityInFirstTier } from '../../../utils/priceTierUtils';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nexport type GetPriceBreakdownStringProps = {\n totalAmount: number;\n quantity: number;\n tiersMode: Price['tiersMode'];\n tiers: Price['tiers'];\n currency: Currency;\n pricingModel: BillingModel;\n billingPeriod: BillingPeriod;\n blockSize?: number | null;\n priceAmount?: Price['amount'];\n};\n\nexport function formatPricePerUnit({\n quantity,\n totalAmount,\n pricingModel,\n billingPeriod,\n currency,\n blockSize,\n priceAmount,\n}: GetPriceBreakdownStringProps) {\n const isPerUnit = pricingModel === BillingModel.PerUnit;\n const aBlockSize = blockSize || 1;\n const featureUnits =\n quantity && (isPerUnit || quantity > 1) ? `${numberFormatter(quantity)} ${aBlockSize > 1 ? 'for' : 'x'} ` : '';\n const billingPeriodString = billingPeriod === BillingPeriod.Annually ? ' x 12 months' : '';\n\n const unitPrice = (priceAmount || totalAmount / quantity) / (billingPeriod === BillingPeriod.Annually ? 12 : 1);\n const formattedUnitPrice = currencyPriceFormatter({\n amount: unitPrice,\n currency,\n minimumFractionDigits: 2,\n });\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n\n return `${featureUnits}${formattedUnitPrice}${billingPeriodString} ${\n billingPeriodString || featureUnits ? ` = ${formattedTotalPrice}` : ''\n }`;\n}\n\nexport function getPriceBreakdownString(params: GetPriceBreakdownStringProps) {\n const { totalAmount, quantity, tiersMode, tiers, currency } = params;\n if (isBulkTiers(tiers) || (tiersMode === TiersMode.Graduated && !isQuantityInFirstTier(tiers, quantity))) {\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n return `${numberFormatter(quantity)} for ${formattedTotalPrice}`;\n }\n\n return formatPricePerUnit(params);\n}\n","import React from 'react';\nimport isNil from 'lodash/isNil';\nimport { Price, PriceTierFragment } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { calculateTierPriceGraduated } from '../../../utils/priceTierUtils';\nimport { formatPricePerUnit } from './getPriceBreakdownString';\nimport { LineItemContainer, LineItemRow } from './LineItems';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nfunction getLabel(tiers: PriceTierFragment[], index: number): string {\n const { unitPrice, upTo } = tiers[index];\n if (!unitPrice) {\n return '';\n }\n\n if (index === 0) {\n return `First ${upTo}`;\n }\n\n const previousTierUpTo = tiers[index - 1].upTo || 0;\n const startUnit = previousTierUpTo + 1;\n\n return isNil(upTo)\n ? `${numberFormatter(startUnit)} and above`\n : `Next ${numberFormatter(startUnit)} to ${numberFormatter(upTo)}`;\n}\n\nexport type GraduatedPriceBreakdownProps = {\n price: Price;\n unitQuantity: number;\n};\n\nexport function GraduatedPriceBreakdown({ price, unitQuantity }: GraduatedPriceBreakdownProps) {\n const tiers = price.tiers || [];\n\n const { breakdown } = calculateTierPriceGraduated(tiers, unitQuantity);\n\n if (breakdown.length === 1) {\n return null;\n }\n\n return (\n <>\n {breakdown.map(({ unitQuantity, amount }, index) => (\n <LineItemContainer>\n <LineItemRow key={index} style={{ alignItems: 'flex-start' }}>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {getLabel(tiers, index)}\n </Typography>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {formatPricePerUnit({\n quantity: unitQuantity,\n totalAmount: amount,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ))}\n </>\n );\n}\n","import { ChevronRight } from 'react-feather';\nimport styled from 'styled-components';\n\nexport const CollapsableSectionIcon = styled(ChevronRight)<{ $isOpen: boolean; $size?: number }>`\n height: ${({ $size = 24 }) => `${$size}px`};\n width: ${({ $size = 24 }) => `${$size}px`};\n transition: all 0.2s ease-in;\n ${({ $isOpen }) => $isOpen && `transform: rotate(90deg)`}\n`;\n","import React, { ReactNode, useState } from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport {\n BillingModel,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n TiersMode,\n} from '@stigg/js-client-sdk';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\nimport Link from '@mui/material/Link';\nimport { IconButton } from '@mui/material';\nimport Collapse from '@mui/material/Collapse';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { WithSkeleton } from './WithSkeleton';\nimport { Skeleton } from '../../components/Skeletons.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { getPriceBreakdownString } from './getPriceBreakdownString';\nimport { GraduatedPriceBreakdown } from './GraduatedPriceBreakdown';\nimport { CollapsableSectionIcon } from '../../../common/CollapsableSectionIcon';\nimport { calculateTierPrice } from '../../../utils/priceTierUtils';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 16px;\n }\n`;\n\nexport const NestedBreakdownContainer = styled.div`\n margin-top: 16px;\n margin-left: 16px;\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.lg} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst PayAsYouGoPriceTooltip = ({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) => {\n const title = <Typography variant=\"body1\">{checkoutLocalization.summary.payAsYouGoTooltipText}</Typography>;\n return (\n <InformationTooltip placement=\"left\" title={title}>\n <Icon icon=\"PayAsYouGoCharge\" style={{ display: 'flex' }} />\n </InformationTooltip>\n );\n};\n\nexport const BilledPriceLineItem = ({\n checkoutLocalization,\n label,\n quantity,\n price,\n}: {\n checkoutLocalization: CheckoutLocalization;\n label: string;\n quantity: number;\n price: Price;\n}) => {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const [isNestedBreakdownOpen, setIsNestedBreakdownOpen] = useState(false);\n const toggleNestedBreakdown = () => setIsNestedBreakdownOpen((prev) => !prev);\n\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n const totalAmount = price.isTieredPrice\n ? calculateTierPrice(price, quantity)\n : (price.amount || 0) * Math.ceil(quantity / (price.blockSize || 1));\n\n let nestedBreakdown: ReactNode;\n const shouldShowGraduatedPriceBreakdown =\n price.tiersMode === TiersMode.Graduated &&\n !!price.tiers &&\n !isEmpty(price.tiers) &&\n !isNil(price.tiers[0].upTo) &&\n quantity > price.tiers[0].upTo;\n\n if (shouldShowGraduatedPriceBreakdown) {\n nestedBreakdown = <GraduatedPriceBreakdown price={price} unitQuantity={quantity} />;\n }\n\n let title: ReactNode = (\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n );\n\n if (nestedBreakdown) {\n title = (\n <Link onClick={toggleNestedBreakdown} underline=\"none\" style={{ cursor: 'pointer' }}>\n {title}\n </Link>\n );\n }\n\n return (\n <LineItemContainer className=\"stigg-checkout-summary-base-charges-container\">\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item display=\"flex\" gap={0.5} style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {title}\n {nestedBreakdown && (\n <IconButton onClick={toggleNestedBreakdown} sx={{ padding: 0 }}>\n <CollapsableSectionIcon $isOpen={isNestedBreakdownOpen} $size={16} />\n </IconButton>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography\n variant=\"body1\"\n color=\"secondary\"\n style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {getPriceBreakdownString({\n totalAmount,\n quantity,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\n {nestedBreakdown && (\n <Collapse in={isNestedBreakdownOpen}>\n <NestedBreakdownContainer>{nestedBreakdown}</NestedBreakdownContainer>\n </Collapse>\n )}\n </LineItemContainer>\n );\n};\n\nexport const FreeChargeLineItem = ({ label }: { label: string }) => {\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-end' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n Free\n </Typography>\n </Grid>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const DiscountLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice, recurringInvoice } = subscriptionPreview;\n const { discount, discountDetails } = recurringInvoice || {};\n if (!discount || !discountDetails) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.discountText({\n discountDetails,\n currency: immediateInvoice.total.currency,\n })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {isFetchingSubscriptionPreview ? (\n <Skeleton width={50} height={16} />\n ) : (\n currencyPriceFormatter({\n amount: discount.amount,\n currency: discount.currency,\n minimumFractionDigits: 2,\n })\n )}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const AppliedCreditsLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice } = subscriptionPreview || {};\n const { credits } = immediateInvoice || {};\n\n if (!credits || !credits.used || credits.used.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.appliedCreditsTitle}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: -1 * credits.used.amount,\n currency: credits.used.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const TaxLineItem = ({\n tax,\n taxDetails,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n} & Pick<SubscriptionPreviewInvoice, 'tax' | 'taxDetails'>) => {\n if (!taxDetails || !tax || tax?.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.taxTitle({ taxDetails })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: tax?.amount, currency: tax?.currency, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n","import React, { useState } from 'react';\nimport partition from 'lodash/partition';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport { BillingModel } from '@stigg/js-client-sdk';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { Typography } from '../../common/Typography';\nimport { useChargesSort } from '../../hooks/useChargeSort';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\nimport { Button } from '../components';\nimport {\n useCheckoutModel,\n useProgressBarModel,\n usePreviewSubscription,\n useSubscriptionModel,\n usePaymentStepModel,\n} from '../hooks';\nimport { PromotionCodeSection } from '../promotionCode';\nimport { useSubmit } from '../steps/payment/stripe';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { CheckoutCaptions } from './components/CheckoutCaptions';\nimport {\n AppliedCreditsLineItem,\n BilledPriceLineItem,\n DiscountLineItem,\n FreeChargeLineItem,\n LineItemContainer,\n LineItemRow,\n TaxLineItem,\n} from './components/LineItems';\nimport { WithSkeleton } from './components/WithSkeleton';\nimport { Icon } from '../../common/Icon';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutSuccess } from './CheckoutSuccess';\nimport { getFeatureDisplayNameText } from '../../utils/getFeatureName';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SummaryContainer = styled(Box)`\n width: 100%;\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\n\n ${mq.md} {\n border-radius: 10px;\n }\n`;\n\nSummaryCard.defaultProps = {\n elevation: 0,\n};\n\nconst SummaryTitle = styled(Typography)`\n margin-bottom: 16px;\n font-weight: 500;\n`;\n\nconst StyledDivider = styled(Divider)`\n margin: 16px 0;\n`;\n\nconst TotalDueText = styled(Typography)`\n margin-bottom: 8px;\n`;\n\nfunction resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate,\n}: {\n isLastStep?: boolean;\n checkoutHasChanges: boolean;\n isFreeDowngrade: boolean;\n checkoutLocalization: CheckoutLocalization;\n isPlanUpdate?: boolean;\n}) {\n if (!isLastStep) {\n return checkoutLocalization.checkoutButton.nextText;\n }\n\n if (!checkoutHasChanges) {\n return checkoutLocalization.checkoutButton.noChangesText;\n }\n\n if (isPlanUpdate) {\n return checkoutLocalization.checkoutButton.updateText;\n }\n\n if (isFreeDowngrade) {\n return checkoutLocalization.checkoutButton.downgradeToFreeText;\n }\n\n return checkoutLocalization.checkoutButton.upgradeText;\n}\n\nexport const CheckoutSummary = ({\n onCheckout,\n onCheckoutCompleted,\n disablePromotionCode,\n disableSuccessAnimation,\n isFreeDowngrade,\n onMockCheckoutPreview,\n}: CheckoutContainerProps & { isFreeDowngrade: boolean }) => {\n const [isCheckoutCompletedSuccessfully, setIsCheckoutCompletedSuccessfully] = useState(false);\n const { setErrorMessage } = usePaymentStepModel();\n const progressBar = useProgressBarModel();\n const subscription = useSubscriptionModel();\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const planPrices = useChargesSort(\n plan?.pricePoints?.filter((price) => price.billingPeriod === subscription.billingPeriod) || [],\n );\n const [baseCharges, usageCharges] = partition(planPrices, (price) => price.pricingModel === BillingModel.FlatFee);\n const [baseCharge] = baseCharges || [];\n const isLastStep = isFreeDowngrade || (progressBar.isCheckoutComplete && progressBar.isLastStep);\n\n const { subscriptionPreview, isFetchingSubscriptionPreview } = usePreviewSubscription({ onMockCheckoutPreview });\n\n const { handleSubmit, isLoading } = useSubmit({\n isMocked: !!onMockCheckoutPreview, // This is a hack to make the submit button work with mocked data\n disableSuccessAnimation,\n onCheckout,\n onCheckoutCompleted,\n onSuccess: () => {\n setIsCheckoutCompletedSuccessfully(true);\n progressBar.markStepAsCompleted(progressBar.progressBarState.activeStep);\n },\n });\n\n const handleCheckout = async (e: any) => {\n if (isCheckoutCompletedSuccessfully) {\n return;\n }\n\n const { errorMessage } = (await handleSubmit(e)) || {};\n if (errorMessage) {\n setErrorMessage(errorMessage);\n setIsCheckoutCompletedSuccessfully(false);\n } else {\n setErrorMessage(undefined);\n }\n };\n\n const onCheckoutClick = async (e: any): Promise<void> => {\n if (isLoading) {\n return;\n }\n\n if (isLastStep) {\n await handleCheckout(e);\n } else {\n progressBar.goNext();\n }\n };\n\n const { immediateInvoice, recurringInvoice } = subscriptionPreview || {};\n const checkoutHasChanges =\n !!subscriptionPreview && (!!immediateInvoice?.proration || !!subscriptionPreview.hasScheduledUpdates);\n const showPromotionCodeLine = !disablePromotionCode && !isFreeDowngrade;\n const showDiscountLine = !!recurringInvoice?.discountDetails && !isFreeDowngrade;\n const hasDiscounts = showPromotionCodeLine || showDiscountLine;\n\n const hasPayAsYouGoCharges = usageCharges.some((price) => price.pricingModel === BillingModel.UsageBased);\n const onlyPayAsYouGoCharges =\n hasPayAsYouGoCharges &&\n !baseCharge &&\n usageCharges.every((price) => price.pricingModel === BillingModel.UsageBased);\n\n const baseChargeLabel =\n typeof checkoutLocalization.summary.baseChargeText === 'function'\n ? checkoutLocalization.summary.baseChargeText({ billingPeriod: subscription.billingPeriod })\n : checkoutLocalization.summary.baseChargeText;\n\n return (\n <SummaryContainer>\n <SummaryCard>\n <SummaryTitle variant=\"h3\">{checkoutLocalization.summary.title}</SummaryTitle>\n\n <Grid\n className=\"stigg-checkout-summary-plan-title-container\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.planName({ plan: plan! })}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n\n {baseCharge && (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n label={baseChargeLabel}\n quantity={1}\n price={baseCharge}\n />\n )}\n {!baseCharge && isFreeDowngrade ? <FreeChargeLineItem label={baseChargeLabel} /> : null}\n\n <Grid item className=\"stigg-checkout-summary-usage-charges-container\">\n {usageCharges.map((price) => {\n const priceBillableFeature = subscription.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === price.feature?.featureId,\n );\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={price.feature?.featureId}\n label={getFeatureDisplayNameText(\n price.feature?.displayName || '',\n price.feature?.units,\n price.feature?.unitsPlural,\n )}\n quantity={priceBillableFeature?.quantity || 1}\n price={price}\n />\n );\n })}\n </Grid>\n\n {!!subscription.addons?.length && (\n <>\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.addonsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n {subscription.addons.map((addon) => {\n const addonPrice = addon.addon.pricePoints?.find(\n (price) => price.billingPeriod === subscription.billingPeriod,\n );\n\n if (!addonPrice) return null;\n\n const addonQuantity = addon.quantity && addon.quantity > 0 ? addon.quantity : 1;\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={addon?.addon?.id}\n label={addon.addon.displayName}\n quantity={addonQuantity}\n price={addonPrice}\n />\n );\n })}\n </>\n )}\n\n {!hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n {hasDiscounts && (\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.discountsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n )}\n\n {showPromotionCodeLine && (\n <PromotionCodeSection\n disabled={isLoading || isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n\n {showDiscountLine && (\n <DiscountLineItem\n subscriptionPreview={subscriptionPreview!}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n )}\n\n {hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n\n <TaxLineItem\n tax={recurringInvoice?.tax}\n taxDetails={recurringInvoice?.taxDetails}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n {!isFreeDowngrade ? (\n <>\n <LineItemRow style={{ marginTop: 16 }}>\n <Grid display=\"flex\" flexDirection=\"column\" container>\n <Grid item display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h6\">{checkoutLocalization.summary.totalText}</Typography>\n <Typography variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {onlyPayAsYouGoCharges ? checkoutLocalization.summary.onlyPayAsYouGoText : null}\n {!onlyPayAsYouGoCharges && hasPayAsYouGoCharges\n ? checkoutLocalization.summary.startsAtText\n : null}\n {!onlyPayAsYouGoCharges\n ? currencyPriceFormatter({\n amount: 0,\n ...recurringInvoice?.total,\n minimumFractionDigits: 2,\n })\n : null}\n </WithSkeleton>\n </Typography>\n </Grid>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.totalBillingPeriodText({ billingPeriod: subscription.billingPeriod })}\n </Typography>\n </Grid>\n </Grid>\n </LineItemRow>\n <StyledDivider className=\"stigg-checkout-summary-divider\" />\n </>\n ) : null}\n\n {immediateInvoice?.proration?.hasProrations &&\n immediateInvoice?.subTotal &&\n immediateInvoice?.subTotal.amount > 0 ? (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.proratedTotalDueText}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: immediateInvoice?.subTotal?.amount + (immediateInvoice?.tax?.amount || 0),\n currency: immediateInvoice?.subTotal.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ) : null}\n\n <AppliedCreditsLineItem\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n <LineItemContainer>\n <LineItemRow>\n <TotalDueText variant=\"h6\">{checkoutLocalization.summary.totalDueText}</TotalDueText>\n <TotalDueText variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: 0, ...immediateInvoice?.total, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </TotalDueText>\n </LineItemRow>\n </LineItemContainer>\n\n <CheckoutCaptions\n plan={plan}\n activeSubscription={activeSubscription}\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n billingPeriod={subscription.billingPeriod}\n />\n\n <Button\n $success={isCheckoutCompletedSuccessfully}\n $error={isLastStep && isFreeDowngrade}\n disabled={\n isLoading ||\n isFetchingSubscriptionPreview ||\n progressBar.progressBarState.isDisabled ||\n (isLastStep && !checkoutHasChanges)\n }\n className=\"stigg-checkout-summary-cta-button\"\n sx={{ textTransform: 'none', borderRadius: '10px', marginTop: '24px', height: '36px' }}\n variant=\"contained\"\n size=\"medium\"\n onClick={(e: any) => {\n void onCheckoutClick(e);\n }}\n fullWidth>\n <Typography\n className=\"stigg-checkout-summary-cta-button-text\"\n variant=\"h3\"\n color=\"white\"\n style={{ display: 'flex' }}>\n {isCheckoutCompletedSuccessfully ? (\n <Icon icon=\"Check\" style={{ display: 'contents' }} />\n ) : isLoading || isFetchingSubscriptionPreview ? (\n <CircularProgress size={20} sx={{ color: 'white' }} />\n ) : (\n resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate: !!activeSubscription && activeSubscription?.plan.id === plan?.id,\n })\n )}\n </Typography>\n </Button>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n {!disableSuccessAnimation && isCheckoutCompletedSuccessfully && (\n <CheckoutSuccess checkoutLocalization={checkoutLocalization} />\n )}\n </SummaryContainer>\n );\n};\n","import React from 'react';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { SummaryCard, SummaryContainer } from './CheckoutSummary';\nimport { FlexedSkeleton, Skeleton, SkeletonsContainer } from '../components/Skeletons.style';\n\nexport const CheckoutSummarySkeleton = () => {\n return (\n <SummaryContainer>\n <SummaryCard>\n <SkeletonsContainer $flexDirection=\"column\" $gap={24}>\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <SkeletonsContainer $flexDirection=\"column\" $gap={24} marginTop={5}>\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n </SkeletonsContainer>\n\n <FlexedSkeleton flex={1} marginTop={5}>\n <Skeleton height={34} />\n </FlexedSkeleton>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n </SummaryContainer>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\n\nimport { Button } from '../../components';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.md} {\n gap: 0;\n flex-direction: row;\n justify-content: space-between;\n height: 80px;\n align-items: center;\n }\n`;\n\nexport const TrashButton = styled(Button)`\n min-width: unset;\n width: 41px;\n height: 41px;\n padding: 0;\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport Grid from '@mui/material/Grid';\nimport { Addon, BillingPeriod, SubscriptionAddon } from '@stigg/js-client-sdk';\n\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Button, InputField } from '../../components';\nimport { useAddonsStepModel } from '../../hooks/useAddonsStepModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { AddonListItemContainer, CheckoutAddonsContainer, TrashButton } from './CheckoutAddonsStep.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { useCheckoutModel, useProgressBarModel } from '../../hooks';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\ntype UseAddonsStepModel = ReturnType<typeof useAddonsStepModel>;\n\ntype AddonListItemProps = {\n addon: Addon;\n addonState?: SubscriptionAddon;\n initialAddonState?: SubscriptionAddon;\n billingPeriod: BillingPeriod;\n setAddon: UseAddonsStepModel['setAddon'];\n removeAddon: UseAddonsStepModel['removeAddon'];\n checkoutLocalization: CheckoutLocalization;\n onAddonsValidationChange: (params: { addonId: string; isValid: boolean }) => void;\n isValid: boolean;\n};\n\nfunction AddonListItem({\n addon,\n billingPeriod,\n addonState,\n initialAddonState,\n setAddon,\n removeAddon,\n checkoutLocalization,\n onAddonsValidationChange,\n isValid,\n}: AddonListItemProps) {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const addonPrice = addon.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const isAdded = !!addonState;\n const hasChanges =\n (!!addonState && !!initialAddonState && addonState.quantity !== initialAddonState.quantity) ||\n (!!initialAddonState && !addonState);\n\n const handleQuantityChange = (quantity: number | null) => {\n if (!quantity || quantity <= 0) {\n onAddonsValidationChange({ addonId: addon.id, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setAddon(addon, quantity ?? null);\n return;\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n setAddon(addon, quantity);\n };\n\n const handleUndo = () => {\n if (initialAddonState) {\n setAddon(addon, initialAddonState.quantity);\n } else {\n removeAddon(addon.id);\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n };\n\n return (\n <AddonListItemContainer container>\n <Grid item>\n <Typography variant=\"h6\" lineHeight=\"24px\">\n {addon.displayName}\n </Typography>\n {!!addonPrice && (\n <Typography variant=\"body1\" lineHeight=\"20px\" color=\"secondary\">\n {`${currencyPriceFormatter({\n amount: addonPrice.amount!,\n currency: addonPrice.currency,\n minimumFractionDigits: 2,\n })}/${billingPeriod === BillingPeriod.Annually ? 'year' : 'month'}`}\n </Typography>\n )}\n </Grid>\n <Grid item sx={{ gap: '16px' }} container={!isScreenWiderThanLg}>\n {hasChanges && (\n <Button variant=\"text\" size=\"small\" sx={{ padding: '8px', minWidth: 'unset' }} onClick={handleUndo}>\n <Typography color=\"primary.main\" variant=\"body1\">\n Undo\n </Typography>\n </Button>\n )}\n {isAdded && (\n <>\n <InputField\n id={`${addon.id}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n sx={isScreenWiderThanLg ? { marginX: 2, width: 120 } : { flex: 1 }}\n value={addonState?.quantity ?? ''}\n error={!isValid}\n helperText={!isValid ? 'Minimum 1' : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n onChange={(event) => handleQuantityChange(event?.target?.value ? Number(event?.target?.value) : null)}\n />\n <TrashButton\n color=\"error\"\n onClick={() => {\n removeAddon(addon.id);\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n }}>\n <Icon icon=\"Trash\" style={{ display: 'flex' }} />\n </TrashButton>\n </>\n )}\n {!isAdded && (\n <Button sx={{ paddingX: '22px', paddingY: '8px' }} onClick={() => handleQuantityChange(1)}>\n <Typography color=\"primary.main\" variant=\"body1\">\n {checkoutLocalization.addAddonText}\n </Typography>\n </Button>\n )}\n </Grid>\n </AddonListItemContainer>\n );\n}\n\nexport function CheckoutAddonsStep() {\n const { checkoutLocalization, setIsValid } = useCheckoutModel();\n const { billingPeriod } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { initialAddons, addons, availableAddons, setAddon, removeAddon } = useAddonsStepModel();\n const [addonsValidation, setAddonsValidation] = useState(\n availableAddons?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.id] = true;\n return acc;\n }, {}) || {},\n );\n\n useEffect(() => {\n const isDisabled = Object.values(addonsValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [addonsValidation, setIsDisabled, setIsValid]);\n\n return (\n <CheckoutAddonsContainer container>\n {availableAddons?.map((addon) => {\n const addonState = addons.find((x) => x.addon.id === addon.id);\n const initialAddonState = initialAddons?.find((x) => x.addon.id === addon.id);\n const isValid = addonsValidation[addon.id];\n\n return (\n <AddonListItem\n key={addon.id}\n addon={addon}\n billingPeriod={billingPeriod}\n addonState={addonState}\n initialAddonState={initialAddonState}\n setAddon={setAddon}\n removeAddon={removeAddon}\n checkoutLocalization={checkoutLocalization}\n onAddonsValidationChange={({ addonId, isValid }: { addonId: string; isValid: boolean }) =>\n setAddonsValidation({ ...addonsValidation, [addonId]: isValid })\n }\n isValid={isValid}\n />\n );\n })}\n </CheckoutAddonsContainer>\n );\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport Grid from '@mui/material/Grid';\n\nexport const PaymentMethodContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>`\n padding: 8px;\n border-radius: 10px;\n border: 1px solid ${({ theme }) => theme.stigg.palette.outlinedBorder};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nexport const NewPaymentMethodContainer = styled(PaymentMethodContainer)<{ $hideBorders?: boolean }>`\n flex-direction: column;\n align-items: unset;\n ${({ $hideBorders }) =>\n $hideBorders &&\n css`\n border: none;\n padding: 0;\n `}\n`;\n\nexport const PaymentMethodLayoutContainer = styled(Grid)`\n display: flex;\n align-items: center;\n flex: 1;\n gap: 12px;\n`;\n\nexport const PaymentMethodTextContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n","import React from 'react';\n\nimport Collapse from '@mui/material/Collapse';\nimport Grid from '@mui/material/Grid';\nimport Radio from '@mui/material/Radio';\nimport { Customer } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport {\n NewPaymentMethodContainer,\n PaymentMethodContainer,\n PaymentMethodLayoutContainer,\n PaymentMethodTextContainer,\n} from './PaymentMethods.style';\nimport { StripePaymentForm } from './stripe';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nexport type PaymentMethodLayoutProps = {\n checked: boolean;\n text: React.ReactNode;\n subtitle?: React.ReactNode;\n readOnly?: boolean;\n};\n\nexport type PaymentMethodProps = Pick<Customer, 'paymentMethodDetails'> &\n Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & { onSelect: () => void };\n\nexport type NewPaymentMethodProps = Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & {\n onSelect: () => void;\n checkoutLocalization: CheckoutLocalization;\n hasExistingPaymentMethod: boolean;\n} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <PaymentMethodTextContainer container>\n <Grid item>{text}</Grid>\n {subtitle && <Grid item>{subtitle}</Grid>}\n </PaymentMethodTextContainer>\n </PaymentMethodLayoutContainer>\n );\n}\n\nexport function ExistingPaymentMethod({ checked, paymentMethodDetails, readOnly, onSelect }: PaymentMethodProps) {\n if (!paymentMethodDetails) {\n return null;\n }\n const { last4Digits, expirationMonth, expirationYear } = paymentMethodDetails;\n\n return (\n <PaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{`Card ending in ${last4Digits}`}</Typography>}\n subtitle={\n !!expirationMonth &&\n !!expirationYear && (\n <Typography variant=\"body1\">{`Expires ${expirationMonth\n .toString()\n .padStart(2, '0')}/${expirationYear}`}</Typography>\n )\n }\n />\n </PaymentMethodContainer>\n );\n}\n\nexport function NewPaymentMethod({\n hasExistingPaymentMethod,\n checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item $hideBorders={!hasExistingPaymentMethod} onClick={onSelect} $disabled={readOnly}>\n {hasExistingPaymentMethod && (\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\n />\n )}\n <Collapse in={checked}>\n <StripePaymentForm onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n </Collapse>\n </NewPaymentMethodContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Grid from '@mui/material/Grid';\nimport { useCheckoutModel, usePaymentStepModel } from '../../hooks';\nimport { ExistingPaymentMethod, NewPaymentMethod } from './PaymentMethods';\nimport { Typography } from '../../../common/Typography';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nconst PaymentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nexport function PaymentStep({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState } = useCheckoutModel();\n const { customer } = checkoutState || {};\n const { errorMessage, useNewPaymentMethod, setUseNewPaymentMethod } = usePaymentStepModel();\n const { readOnly } = widgetState;\n\n const handleOnSelect = (openNewPaymentMethod: boolean) => {\n if (readOnly) {\n return;\n }\n\n setUseNewPaymentMethod(openNewPaymentMethod);\n };\n\n return (\n <PaymentContainer container>\n {!!errorMessage && (\n <Alert severity=\"error\" sx={{ alignItems: 'center' }}>\n <Typography overrideColor=\"inherit\">{errorMessage}</Typography>\n </Alert>\n )}\n <ExistingPaymentMethod\n readOnly={readOnly}\n checked={!useNewPaymentMethod}\n paymentMethodDetails={customer?.paymentMethodDetails}\n onSelect={() => handleOnSelect(false)}\n />\n <NewPaymentMethod\n hasExistingPaymentMethod={!!customer?.paymentMethodDetails}\n readOnly={readOnly}\n checked={useNewPaymentMethod}\n checkoutLocalization={checkoutLocalization}\n onSelect={() => handleOnSelect(true)}\n onBillingAddressChange={onBillingAddressChange}\n collectPhoneNumber={collectPhoneNumber}\n />\n </PaymentContainer>\n );\n}\n","import React from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ChangePlanButton = ({\n onClick,\n checkoutLocalization,\n size,\n}: {\n onClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n size: ButtonProps['size'];\n}) => {\n return (\n <Button\n className=\"stigg-checkout-change-plan-button\"\n sx={{ textTransform: 'none' }}\n variant=\"text\"\n size={size}\n onClick={onClick}>\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color=\"primary.main\"\n variant=\"h3\"\n style={{ lineHeight: '24px' }}>\n {checkoutLocalization.changePlan}\n </Typography>\n </Button>\n );\n};\n","import React from 'react';\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nimport { Typography } from '../../common/Typography';\nimport { useCheckoutModel } from '../hooks/useCheckoutModel';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from '../components/ChangePlanButton';\n\ntype PlanHeaderProps = {\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport function PlanHeader({ allowChangePlan = false, onChangePlan }: PlanHeaderProps) {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n\n return (\n <>\n <Box sx={{ marginBottom: '16px' }}>\n <Typography variant=\"body1\" color=\"disabled\" style={{ opacity: 0.6, marginBottom: '8px' }}>\n Selected plan\n </Typography>\n\n <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>\n <Typography variant=\"h1\">{plan?.displayName}</Typography>\n\n {allowChangePlan && onChangePlan && (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: plan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"medium\"\n />\n )}\n </Box>\n </Box>\n <Divider className=\"stigg-checkout-plan-header-divider\" />\n </>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function formatBillingPeriod(billingPeriod: BillingPeriod) {\n switch (billingPeriod) {\n case BillingPeriod.Annually:\n return 'Annual';\n case BillingPeriod.Monthly:\n return 'Monthly';\n default:\n return '';\n }\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Chip from '@mui/material/Chip';\nimport Color from 'color';\n\nexport const BillingPeriodPickerContainer = styled(Box)`\n margin: 16px 0;\n`;\n\nexport const BillingPeriodButton = styled.button<{\n $isActive?: boolean;\n $disabled?: boolean;\n $isOnlyBillingPeriod?: boolean;\n}>`\n cursor: ${({ $disabled, $isOnlyBillingPeriod }) =>\n $disabled ? 'default' : $isOnlyBillingPeriod ? 'default' : 'pointer'};\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 2px 8px;\n border-radius: 10px;\n border: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n let borderColor = theme.stigg.palette.outlinedBorder;\n if ($isOnlyBillingPeriod) {\n borderColor = 'transparent';\n } else if ($isActive) {\n borderColor = theme.stigg.palette.outlinedRestingBorder;\n }\n return `1px solid ${borderColor}`;\n }};\n background: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n if ($isOnlyBillingPeriod) {\n return 'transparent';\n }\n if ($isActive) {\n return Color(theme.stigg.palette.primary).alpha(0.15).toString();\n }\n return 'transparent';\n }};\n text-transform: none;\n text-align: start;\n height: 36px;\n\n &.MuiButton-root {\n padding: 0 16px 0 8px;\n &:hover {\n background: none;\n }\n }\n`;\n\nexport const BillingPeriodOptions = styled(Box)`\n display: flex;\n gap: 16px;\n margin-top: 16px;\n`;\n\nexport const BillingPeriodPrice = styled.div`\n display: flex;\n align-items: baseline;\n gap: 8px;\n`;\n\nexport const DiscountChip = styled(Chip)`\n & .MuiChip-label {\n font-size: 12px;\n }\n`;\n","import { partition } from 'lodash';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\n\nimport Box from '@mui/material/Box';\nimport Radio from '@mui/material/Radio';\nimport { BillingPeriod, Plan } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { formatBillingPeriod } from '../../formatting';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { BillingPeriodButton, BillingPeriodOptions, BillingPeriodPickerContainer } from './BillingPeriodPicker.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\n\nconst BillingPeriodOption = ({\n billingPeriod,\n isOnlyBillingPeriod,\n}: {\n billingPeriod: BillingPeriod;\n isOnlyBillingPeriod: boolean;\n}) => {\n const { billingPeriod: selectedBillingPeriod, setBillingPeriod } = usePlanStepModel();\n const isActive = selectedBillingPeriod === billingPeriod;\n\n return (\n <BillingPeriodButton\n onClick={() => setBillingPeriod(billingPeriod)}\n $isActive={isActive}\n $isOnlyBillingPeriod={isOnlyBillingPeriod}>\n <Radio\n checked={isActive}\n onChange={() => setBillingPeriod(billingPeriod)}\n value={billingPeriod}\n disabled={isOnlyBillingPeriod}\n inputProps={{ 'aria-label': formatBillingPeriod(billingPeriod) }}\n sx={{ padding: 0, marginRight: '8px' }}\n />\n\n <Box>\n <Typography variant=\"h3\" color=\"primary\">\n {formatBillingPeriod(billingPeriod)}\n </Typography>\n </Box>\n </BillingPeriodButton>\n );\n};\n\ntype BillingPeriodPickerProps = {\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n};\n\nexport function BillingPeriodPicker({ plan, checkoutLocalization }: BillingPeriodPickerProps) {\n const [monthlyPrices, annualPrices] = partition(\n plan?.pricePoints,\n (price) => price.billingPeriod === BillingPeriod.Monthly,\n );\n\n const hasBothBillingPeriods = !!monthlyPrices?.length && !!annualPrices?.length;\n if (!hasBothBillingPeriods) {\n return null;\n }\n\n return (\n <BillingPeriodPickerContainer>\n <Typography variant=\"h6\" color=\"primary\" fontWeight={FontWeight.Medium}>\n {checkoutLocalization.billingPeriodsTitle}\n </Typography>\n\n <BillingPeriodOptions>\n {!!monthlyPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Monthly}\n billingPeriod={BillingPeriod.Monthly}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n {!!annualPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Annually}\n billingPeriod={BillingPeriod.Annually}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n </BillingPeriodOptions>\n </BillingPeriodPickerContainer>\n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillingModel, BillingPeriod, Plan, Price } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { useChargesSort } from '../../../hooks/useChargeSort';\nimport { calculateUnitQuantityText } from '../../../paywall/utils/calculateUnitQuantityText';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { InputField } from '../../components';\nimport { useCheckoutModel, usePlanStepModel, useProgressBarModel } from '../../hooks';\nimport { TiersSelectContainer } from '../../../common/TiersSelectContainer';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { mq } from '../../../common/mediaQuery';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\nexport type UsePlanStepModel = ReturnType<typeof usePlanStepModel>;\n\ntype CheckoutChargeListProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n};\n\nconst StyledPlanCharge = styled.div`\n display: flex;\n min-height: 60px;\n margin-top: 16px;\n flex-direction: column;\n\n ${mq.md} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst getValidationText = (charge: Price, quantity?: number) => {\n const { minUnitQuantity, maxUnitQuantity } = charge;\n if (!quantity || quantity < (minUnitQuantity || 1)) {\n return `Minimum ${minUnitQuantity || 1}`;\n }\n\n if (maxUnitQuantity && quantity > maxUnitQuantity) {\n return `Maximum ${maxUnitQuantity}`;\n }\n\n return '';\n};\n\nexport function PlanCharge({\n charge,\n isValid,\n setBillableFeature,\n billableFeature,\n onValidationChange,\n}: {\n charge: Price;\n isValid: boolean;\n billableFeature?: BillableFeatureInput;\n setBillableFeature: UsePlanStepModel['setBillableFeature'];\n onValidationChange: ({ featureId, isValid }: { featureId: string; isValid: boolean }) => void;\n}) {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const featureId = charge.feature?.featureId;\n const isBaseCharge = !featureId;\n const isPayAsYouGo = charge.pricingModel === BillingModel.UsageBased;\n const displayName = isBaseCharge\n ? 'Base charge'\n : getFeatureDisplayNameText(charge.feature?.displayName || '', charge.feature?.units, charge.feature?.unitsPlural);\n const hasQuantityRestrictions = !!(charge?.minUnitQuantity || charge?.maxUnitQuantity);\n\n const handleQuantityChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isBaseCharge || !featureId) return;\n\n const { minUnitQuantity, maxUnitQuantity } = charge;\n const value = event?.target?.value ? Number(event?.target?.value) : null;\n if (\n !value ||\n value <= 0 ||\n (minUnitQuantity && value < minUnitQuantity) ||\n (maxUnitQuantity && value > maxUnitQuantity)\n ) {\n onValidationChange({ featureId, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setBillableFeature(featureId, value ?? null);\n return;\n }\n\n onValidationChange({ featureId, isValid: true });\n const quantity = getValidPriceQuantity(charge, value);\n setBillableFeature(featureId, quantity);\n };\n\n let chargeRow;\n\n if (isBaseCharge || isPayAsYouGo) {\n const formattedAmount = currencyPriceFormatter({\n amount: charge.amount!,\n currency: charge.currency,\n locale: 'en-us',\n minimumFractionDigits: 2,\n });\n\n chargeRow = `${formattedAmount}`;\n if (isPayAsYouGo) {\n chargeRow += ' / unit';\n }\n } else if (charge.isTieredPrice && charge.tiersMode && featureId) {\n const quantity = billableFeature?.quantity || 1;\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n tiersMode={charge.tiersMode}\n value={quantity}\n handleChange={(quantity: number) => {\n setBillableFeature(featureId, quantity);\n }}\n width={120}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: isScreenWiderThanMd ? 120 : '100%' }}\n id={`${featureId}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n />\n );\n }\n\n return (\n <StyledPlanCharge>\n <Box display=\"flex\" flexDirection=\"column\">\n <Typography variant=\"h6\" color=\"primary\" lineHeight=\"24px\">\n {displayName}\n </Typography>\n {hasQuantityRestrictions && (\n <Typography variant=\"body1\" color=\"secondary\" lineHeight=\"20px\">\n {calculateUnitQuantityText(charge.minUnitQuantity, charge.maxUnitQuantity, charge.feature?.unitsPlural)}\n </Typography>\n )}\n </Box>\n\n <Typography variant=\"h6\" color=\"primary\">\n {chargeRow}\n </Typography>\n </StyledPlanCharge>\n );\n}\n\nexport function CheckoutChargeList({ plan, billingPeriod }: CheckoutChargeListProps) {\n const { billableFeatures, setBillableFeature } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { setIsValid } = useCheckoutModel();\n const planCharges = useChargesSort(plan?.pricePoints?.filter((p) => p.billingPeriod === billingPeriod) || []);\n const [chargesValidation, setChargesValidation] = useState(\n planCharges?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.feature?.featureId || 'base-charge'] = true;\n return acc;\n }, {}),\n );\n\n useEffect(() => {\n const isDisabled = Object.values(chargesValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [chargesValidation, setIsDisabled, setIsValid]);\n\n return (\n <>\n {planCharges?.map((charge) => {\n const billableFeature = billableFeatures.find((x) => x.featureId === charge.feature?.featureId);\n return (\n <PlanCharge\n key={charge.feature?.featureId || 'base-charge'}\n charge={charge}\n setBillableFeature={setBillableFeature}\n billableFeature={billableFeature}\n isValid={chargesValidation[charge.feature?.featureId || 'base-charge']}\n onValidationChange={({ featureId, isValid }: { featureId: string; isValid: boolean }) =>\n setChargesValidation((prev) => ({ ...prev, [featureId]: isValid }))\n }\n />\n );\n })}\n </>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\n\nexport const CheckoutPlanContainer = styled(Box)`\n width: 100%;\n`;\n","import React from 'react';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nimport { useCheckoutModel } from '../../hooks/useCheckoutModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { PlanHeader } from '../../planHeader';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { CheckoutChargeList } from './CheckoutChargeList';\nimport { CheckoutPlanContainer } from './CheckoutPlanStep.style';\n\nexport const CheckoutPlanStep = ({ onChangePlan }: Pick<CheckoutContainerProps, 'onChangePlan'>) => {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const { billingPeriod } = usePlanStepModel();\n\n return (\n <>\n <PlanHeader allowChangePlan onChangePlan={onChangePlan} />\n <CheckoutPlanContainer>\n <BillingPeriodPicker plan={plan} checkoutLocalization={checkoutLocalization} />\n <CheckoutChargeList plan={plan} billingPeriod={billingPeriod} />\n </CheckoutPlanContainer>\n </>\n );\n};\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"arrow-right\">\n<path id=\"Shape\" d=\"M2.66699 8H13.3337\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M9.33301 4L13.333 8L9.33301 12\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nimport ArrowRightIcon from '../../../assets/arrow-right.svg';\n\nexport const StyledArrowRightIcon = styled(ArrowRightIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Alert from '@mui/material/Alert';\nimport { CheckoutStatePlan, Subscription } from '@stigg/js-client-sdk';\nimport { StyledArrowRightIcon } from './StyledArrow';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from './ChangePlanButton';\n\nconst DowngradeToFreePlansContainer = styled(Box)`\n display: flex;\n`;\n\nconst DowngradeToFreeAlert = styled(Alert)`\n margin-bottom: 16px;\n`;\n\nexport const DowngradeToFreePlanBox = styled(Box)`\n padding: 16px;\n border-radius: 10px;\n width: 100%;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nexport const DowngradeToFreeContent = ({\n headerText,\n planName,\n priceText,\n}: {\n headerText: string;\n planName: string;\n priceText: string;\n}) => {\n return (\n <DowngradeToFreePlanBox className=\"stigg-checkout-downgrade-to-free-container\">\n <Typography\n className=\"stigg-checkout-downgrade-to-free-text-header\"\n style={{ opacity: 0.8 }}\n variant=\"caption\"\n color=\"disabled\">\n {headerText}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-plan-name\" bold variant=\"h3\" color=\"primary\">\n {planName}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-price-text\" color=\"secondary\">\n {priceText}\n </Typography>\n </DowngradeToFreePlanBox>\n );\n};\n\ntype DowngradeToFreePlanProps = {\n checkoutLocalization: CheckoutLocalization;\n activeSubscription: Subscription;\n freePlan: CheckoutStatePlan;\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport const DowngradeToFreePlan = ({\n checkoutLocalization,\n activeSubscription,\n freePlan,\n allowChangePlan = false,\n onChangePlan,\n}: DowngradeToFreePlanProps) => {\n let alertAction;\n if (allowChangePlan && onChangePlan) {\n alertAction = (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: freePlan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"small\"\n />\n );\n }\n\n const paidBillingPeriod =\n activeSubscription.prices.length > 0 ? activeSubscription.prices[0].billingPeriod : undefined;\n\n return (\n <>\n <DowngradeToFreeAlert action={alertAction} className=\"stigg-checkout-downgrade-to-free-alert\" severity=\"info\">\n <Typography span color=\"secondary\">\n {checkoutLocalization.downgradeToFree.alertText({ plan: activeSubscription.plan })}\n </Typography>\n </DowngradeToFreeAlert>\n\n <DowngradeToFreePlansContainer className=\"stigg-checkout-downgrade-to-free-plans-container\">\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.paidPlanHeader({ plan: activeSubscription.plan })}\n planName={checkoutLocalization.downgradeToFree.paidPlanName({ plan: activeSubscription.plan })}\n priceText={checkoutLocalization.downgradeToFree.paidPlanPriceText({\n plan: activeSubscription.plan,\n billingPeriod: paidBillingPeriod,\n })}\n />\n\n <StyledArrowRightIcon\n className=\"stigg-checkout-downgrade-to-free-arrow\"\n style={{ margin: 'auto 16px', minWidth: '16px' }}\n />\n\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.freePlanHeader({ plan: freePlan })}\n planName={checkoutLocalization.downgradeToFree.freePlanName({ plan: freePlan })}\n priceText={checkoutLocalization.downgradeToFree.freePlanPriceText({ plan: freePlan })}\n />\n </DowngradeToFreePlansContainer>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Elements } from '@stripe/react-stripe-js';\nimport {\n PricingType,\n BillingAddress,\n ApplySubscription,\n CheckoutStatePlan,\n ApplySubscriptionResults,\n} from '@stigg/js-client-sdk';\nimport { CheckoutContent, CheckoutLayout, CheckoutPanel } from './CheckoutContainer.style';\nimport { CheckoutProgressBar } from './progressBar/CheckoutProgressBar';\nimport { CheckoutSummary, CheckoutSummarySkeleton } from './summary';\nimport { CheckoutStep, CheckoutStepKey, useCheckoutModel, useProgressBarModel } from './hooks';\nimport { CheckoutAddonsStep } from './steps/addons';\nimport { PaymentStep } from './steps/payment';\nimport { useStripeIntegration } from './steps/payment/stripe';\nimport { CheckoutPlanStep } from './steps/plan';\nimport { useCheckoutContext } from './CheckoutProvider';\nimport { ContentLoadingSkeleton } from './components';\nimport { DowngradeToFreePlan } from './components/DowngradeToFreeContainer';\nimport { MockCheckoutPreviewCallback } from './types';\n\ntype StepProps = {\n content: React.ReactNode;\n};\n\ntype StripeClientSecret = { clientSecret: string };\ntype StripeManualMode = { mode: 'setup' | 'payment' | 'subscription'; currency: string };\n\nconst getStepProps = (\n currentStep: CheckoutStep,\n {\n onBillingAddressChange,\n onChangePlan,\n collectPhoneNumber,\n }: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'onChangePlan' | 'collectPhoneNumber'>,\n): StepProps => {\n switch (currentStep.key) {\n case CheckoutStepKey.PLAN:\n return { content: <CheckoutPlanStep onChangePlan={onChangePlan} /> };\n case CheckoutStepKey.ADDONS:\n return { content: <CheckoutAddonsStep /> };\n case CheckoutStepKey.PAYMENT:\n return {\n content: (\n <PaymentStep onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n ),\n };\n default:\n return { content: null };\n }\n};\n\nexport type CheckoutResult = { success: boolean; errorMessage?: string; results?: ApplySubscriptionResults };\n\nexport type OnCheckoutParams = {\n customerId: string;\n checkoutParams: ApplySubscription;\n checkoutAction: (params: ApplySubscription) => Promise<CheckoutResult>;\n};\n\nexport type OnCheckoutCompletedParams = { success: boolean; error?: string };\n\nexport type CheckoutContainerProps = {\n onCheckout?: (params: OnCheckoutParams) => Promise<CheckoutResult>;\n onCheckoutCompleted: (params: OnCheckoutCompletedParams) => Promise<void>;\n onChangePlan?: (params: { currentPlan: CheckoutStatePlan | undefined }) => void;\n onBillingAddressChange?: (params: { billingAddress: BillingAddress }) => Promise<void>;\n disablePromotionCode?: boolean;\n disableSuccessAnimation?: boolean;\n collectPhoneNumber?: boolean;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport function CheckoutContainer({\n onCheckout,\n onCheckoutCompleted,\n onChangePlan,\n onBillingAddressChange,\n collectPhoneNumber,\n disablePromotionCode,\n disableSuccessAnimation,\n onMockCheckoutPreview,\n}: CheckoutContainerProps) {\n const { stripePromise, setupIntentClientSecret } = useStripeIntegration();\n const [{ stiggTheme, widgetState, theme }] = useCheckoutContext();\n const { currentStep } = useProgressBarModel();\n\n const { isLoadingCheckoutData } = widgetState;\n\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const isFreeDowngrade =\n !!plan &&\n plan.pricingType === PricingType.Free &&\n !!activeSubscription &&\n activeSubscription.pricingType !== PricingType.Free;\n\n const { content } = getStepProps(currentStep, { onBillingAddressChange, onChangePlan, collectPhoneNumber });\n\n const checkoutContent = (\n <>\n {isFreeDowngrade ? (\n <DowngradeToFreePlan\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n freePlan={plan!}\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n activeSubscription={activeSubscription!}\n allowChangePlan\n checkoutLocalization={checkoutLocalization}\n onChangePlan={onChangePlan}\n />\n ) : (\n <>{content}</>\n )}\n </>\n );\n\n const stripeElementsMode: StripeClientSecret | StripeManualMode = useMemo(\n () => (setupIntentClientSecret ? { clientSecret: setupIntentClientSecret } : { mode: 'setup', currency: 'usd' }),\n [setupIntentClientSecret],\n );\n\n return (\n <Elements\n key={setupIntentClientSecret}\n stripe={stripePromise}\n options={{\n ...stripeElementsMode,\n appearance: {\n theme: 'stripe',\n variables: {\n colorText: stiggTheme.palette.text.primary,\n colorPrimaryText: stiggTheme.palette.text.primary,\n colorTextPlaceholder: stiggTheme.palette.text.disabled,\n fontFamily: stiggTheme.typography.fontFamily,\n colorBackground: theme?.paymentInputBackgroundColor,\n borderRadius: theme?.paymentInputBorderRadius,\n },\n rules: theme?.paymentInputBorderColor\n ? {\n '.Input': {\n borderColor: theme?.paymentInputBorderColor,\n },\n }\n : undefined,\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n </CheckoutContent>\n </CheckoutLayout>\n </Elements>\n );\n}\n","import React from 'react';\nimport { CheckoutProvider, CheckoutProviderProps } from './CheckoutProvider';\nimport { CheckoutContainer, CheckoutContainerProps } from './CheckoutContainer';\nimport { CheckoutMockProps } from './types';\n\nexport type CheckoutProps = CheckoutProviderProps & CheckoutContainerProps & CheckoutMockProps;\n\nexport const Checkout = ({\n textOverrides,\n theme,\n resourceId,\n planId,\n preferredBillingPeriod,\n billingCountryCode,\n billableFeatures,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n ...containerProps\n}: CheckoutProps) => {\n return (\n <CheckoutProvider\n textOverrides={textOverrides}\n theme={theme}\n resourceId={resourceId}\n planId={planId}\n preferredBillingPeriod={preferredBillingPeriod}\n billingCountryCode={billingCountryCode}\n billableFeatures={billableFeatures}\n billingInformation={billingInformation}\n onMockCheckoutState={onMockCheckoutState}\n skipCheckoutSteps={skipCheckoutSteps}>\n <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../../hooks/useStiggContext';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paramName, window.location.search]);\n}\n\nexport enum ProvisionStatus {\n IN_PROGRESS = 'IN_PROGRESS',\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n}\n\nexport const useWaitForCheckoutCompleted = ({\n onProvisionStart,\n onProvisionSucceeded,\n onProvisionFailed,\n}: {\n onProvisionStart?: () => void;\n onProvisionSucceeded?: (subscription?: Subscription | null) => void;\n onProvisionFailed?: (err?: any) => void;\n} = {}) => {\n const { stigg } = useStiggContext();\n const [provisionStatus, setProvisionStatus] = useState(ProvisionStatus.IN_PROGRESS);\n const [isAwaitingCheckout, setIsAwaitingCheckout] = useState(false);\n const checkoutCompleted = useQueryParams('checkoutCompleted') as string;\n\n useEffect(() => {\n const waitForCheckoutToComplete = async () => {\n if (!checkoutCompleted || checkoutCompleted.toLowerCase() === 'false' || isAwaitingCheckout) {\n return;\n }\n\n setIsAwaitingCheckout(true);\n if (onProvisionStart) {\n onProvisionStart();\n }\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n if (onProvisionSucceeded) {\n onProvisionSucceeded(subscription);\n }\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n if (onProvisionFailed) {\n onProvisionFailed(err);\n }\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n void waitForCheckoutToComplete();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n","import { BooleanEntitlement, GetBooleanEntitlement, BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\nexport type TypedGetBooleanEntitlement<T> = Omit<GetBooleanEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useBooleanEntitlement<T extends string>(params: TypedGetBooleanEntitlement<T>): BooleanEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getBooleanEntitlement(params);\n}\n","import { NumericEntitlement, GetNumericEntitlement, NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetNumericEntitlement<T> = Omit<GetNumericEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useNumericEntitlement<T extends string>(params: TypedGetNumericEntitlement<T>): NumericEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getNumericEntitlement(params);\n}\n","import { GetMeteredEntitlement, METERED_DEFAULT_FALLBACK_ENTITLEMENT, MeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetMeteredEntitlement<T> = Omit<GetMeteredEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useMeteredEntitlement<T extends string>(params: TypedGetMeteredEntitlement<T>): MeteredEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...METERED_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getMeteredEntitlement(params);\n}\n","import { useEffect, useState } from 'react';\n\nexport type FetchResult<T> = {\n isLoaded: boolean;\n error: Error | null;\n data: T | null;\n};\n\nexport function useFetch<T>({ func }: { func: () => Promise<T> }): FetchResult<T> {\n const [isLoaded, setIsLoaded] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [data, setData] = useState<T | null>(null);\n\n useEffect(() => {\n const fetchData = async () => {\n setIsLoaded(true);\n try {\n const result = await func();\n setData(result);\n } catch (error) {\n setError(error as Error);\n } finally {\n setIsLoaded(false);\n }\n };\n\n void fetchData();\n }, [func]);\n\n return { isLoaded, error, data };\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetActiveSubscriptions } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useActiveSubscriptions(params?: GetActiveSubscriptions) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getActiveSubscriptions(params) : Promise.resolve([])), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n activeSubscriptions: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetPaywall } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function usePaywall(params?: GetPaywall) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getPaywall(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n paywall: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetCustomerPortal } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useCustomerPortal(params?: GetCustomerPortal) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getCustomerPortal(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n customerPortal: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import React from 'react';\nimport { GetBooleanEntitlement } from '@stigg/js-client-sdk';\nimport { useBooleanEntitlement } from '../hooks';\n\ntype BooleanEntitlementGuardProps = GetBooleanEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function BooleanEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: BooleanEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useBooleanEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n","import React from 'react';\nimport { GetMeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useMeteredEntitlement } from '../hooks';\n\ntype MeteredEntitlementGuardProps = GetMeteredEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function MeteredEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: MeteredEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useMeteredEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n"],"names":["_extends","React.createElement","calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","formatNumber","usageLimit","toLocaleString","maximumFractionDigits","getColor","theme","$color","stigg","palette","primary","primaryLight","warning","error","text","StyledText","Text","$span","getLevel","variant","mapFontWeight","fontWeight","StyledFontWeight","Bold","Normal","getFontWeight","typography","h1","h2","h3","body","caption","Typography","forwardRef","props","ref","children","span","style","color","overrideColor","bold","as","rest","useTheme","level","levelClassName","className","React","EntitlementName","EntitlementRowContainer","EntitlementIconContainer","fontSize","EntitlementCheckIcon","CheckUrl","disabled","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","Year","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","unitBasedEntitlement","resetPeriodSuffix","featureUnits","units","displayName","EntitlementRow","displayNameOverride","restProps","PlanEntitlementsContainer","getTitle","plan","paywallLocale","hasFeatures","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","key","visibleEntitlements","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","length","id","SubscribeIntentionType","flexLayoutMapper","horizontalAlignment","left","center","right","getResolvedTheme","customizedTheme","primaryColor","Color","textColor","successColor","errorColor","baseTheme","hex","primaryDark","darken","alpha","toString","backgroundPaper","backgroundHighlight","backgroundSection","backgroundButton","outlinedBorder","outlinedRestingBorder","outlinedHoverBackground","lightness","switchBorder","lighten","switchFill","switchHandle","errorDark","success","successDark","white","secondary","tertiary","layout","planMinWidth","planMaxWidth","planMargin","planPadding","ctaAlignment","headerAlignment","descriptionAlignment","descriptionMinHeight","switchBottomSpacing","shadows","light","popover","border","radius","fontFamily","customCss","merge","formatDate","date","moment","utc","format","getSubscriptionScheduleUpdateTexts","scheduledUpdate","subscriptionPrices","billingPeriodRange","options","withDate","postfix","subscriptionScheduleType","SubscriptionScheduleType","Downgrade","shouldShowDate","isNil","end","scheduledExecutionTime","isSame","line1","targetPackage","line2","BillingPeriod","variables","scheduleVariables","toLocaleLowerCase","UnitAmount","compact","find","featureId","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","getAmount","amount","selectedBillingPeriod","shouldShowMonthlyPriceAmount","Annually","calculateTierPriceVolume","currentTier","perUnitQuantity","unitPrice","flatPrice","calculateTierPriceGraduated","remainingQuantity","prevUpTo","currentTierIndex","breakdown","push","unitsInTier","consumed","Math","min","total","sum","calculateTierPrice","tiersMode","TiersMode","Volume","Graduated","hasTierWithUnitPrice","some","isBulkTiers","every","isQuantityInFirstTier","getTiersPerUnitQuantities","currentSubscription","selectDefaultTierIndex","planTierPrices","isTieredPrice","selectedDefaultTierIndex","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","result","PriceTierComparison","compareSelectedTierToCurrentTier","perUnitQuantityByFeature","Equal","currentTierPrice","oldQuantity","newQuantity","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","css","ButtonText","ScheduledUpdateText","CancelScheduledUpdateButton","TrialDaysLeft","ButtonLayout","PlanOfferingButton","isNextPlan","customer","isCustomerOnTrial","onPlanSelected","withTrialLeftRow","useState","isLoading","setIsLoading","planCTAButton","currentPlan","custom","downgrade","startTrial","upgrade","startNew","switchToBillingPeriod","cancelScheduledUpdate","resolvedDowngrade","isFunction","resolvedUpgrade","buttonProps","isLowerThanCurrentPlan","intentionType","DOWNGRADE_PLAN","UPGRADE_TRIAL_TO_PAID","UPGRADE_PLAN","isCustomPrice","pricingType","PricingType","Custom","scheduledUpdateText","isTriable","isCurrentCustomerPlan","START_TRIAL","isSameBillingPeriod","currentCustomerPlanBillingPeriod","Free","planComparison","CHANGE_UNIT_QUANTITY","CHANGE_BILLING_PERIOD","REQUEST_CUSTOM_PLAN_ACCESS","CANCEL_SCHEDULED_UPDATES","isDisabled","onClick","Promise","resolve","loading","size","height","trialDaysLeft","_path","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","currencyDisplay","replace","numberFormatter","number","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","formattedUnits","blockSize","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","StyledButton","MuiButton","shouldForwardProp","prop","startsWith","$success","$error","Button","InputField","styled","TextField","borderRadius","fieldset","borderColor","padding","SkeletonsContainer","Grid","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","flex","Skeleton","ReactSkeleton","ContentContainer","ContentLoadingSkeleton","container","item","width","Divider","sx","marginY","marginTop","ON_WHEEL_BLUR","e","target","blur","VolumePerUnitInput","value","handleChange","type","onWheel","fullWidth","minHeight","InputProps","endAdornment","InputAdornment","position","onChange","event","Number","TierSelect","Select","TierInput","OutlinedInput","VolumeBulkSelect","componentId","input","MenuProps","MenuListProps","disablePadding","PaperProps","MenuItem","lineHeight","TiersSelectLayout","TiersSelectContainer","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setPerUnitQuantityByFeature","planPrice","undefined","handlePerUnitQuantityChange","prevState","startingAtCaption","PlanOfferingButtonHeight","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","PlanHeader","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","isCustomerInCustomPlan","additionalChargesMayApply","showCTAButton","planBadge","highlightChip","onPlanButtonClick","perUnitBillableFeatures","Object","keys","classNames","description","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","round","getPlanBillingPeriodAmount","calculatePaywallDiscountRate","plans","reduce","maxDiscount","monthlyAmount","annuallyAmount","max","STIGG_WATERMARK_CLASSNAME","PoweredByStiggThemedSvg","PoweredByStiggSvg","StyledPoweredByStigg","$alignSelf","PoweredByStigg","source","showWatermark","align","onWatermarkClick","sourceDomain","window","location","hostname","open","cursor","hasPricePoints","hasPricePointsForPlans","getPlansToDisplay","shouldHidePlan","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","billableFeatures","subscription","useMemo","values","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","computeBillingPeriods","activeSubscriptions","preferredBillingPeriod","billingPeriods","flatMap","x","counts","countBy","uniq","defaultBillingPeriod","activeSubscription","status","SubscriptionStatus","Active","calculateTrialDaysLeft","trialEndDate","diff","defaultCheckoutTypography","FontWeight","addCssUnits","defaultValue","JSFontWeight","mapTypography","defaultTypography","fontFamilyUrl","mapAlignment","alignment","Alignment","Left","Center","Right","mapCustomerPortalConfiguration","configuration","paywallBackgroundColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","planId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","cacheTtlMs","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","offline","clientName","CLIENT_NAME","clientVersion","CLIENT_VERSION","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","useEffect","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","optional","useContext","Error","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","pxToRem","bodyFontFamily","headingFontFamily","fontSizes","createMuiPalette","main","SdkThemeProvider","componentTheme","muiPalette","materialTheme","createTheme","MuiThemeProvider","THEME_ID","ThemeProvider","StyledThemeProvider","useCustomerPortal","customerPortal","setCustomerPortal","loadCustomerPortal","getCustomerPortal","customerPortalData","getResolvedCustomerPortalLocalize","customerPortalDefaultLocalization","manageSubscription","usageTabTitle","addonsTabTitle","promotionsTabTitle","promotionsSubtitle","contactSupportTitle","contactSupportLink","editBilling","invoicesTitle","viewInvoiceHistory","editPaymentDetails","paywallSectionTitle","cancelScheduledUpdatesButtonTitle","getResolvedCustomerPortalTheme","globalTheme","themeOverride","remoteConfiguration","customerPortalDefaultTheme","sectionTitleColor","planNameColor","listItemBackgroundColor","tabMaxHeight","iconsBackgroundColor","CustomerPortalContext","useCustomerPortalContext","useCheckContextExists","contextType","CustomerPortalProvider","textOverrides","customerPortalTheme","resolvedTextOverrides","onBillingPeriodChange","hasCustomerPortalContext","isCustomerPortalLoading","customerPortalResourceId","handlePeriodChange","component","SectionHeader","$disableMargin","SectionTitle","CustomerPortalIntentionType","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","MANAGE_SUBSCRIPTION","marginLeft","AddonsList","addons","subscriptions","isEmpty","addon","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","getIconColor","_rect","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","_","newValue","shouldShowTabs","borderBottom","Tab","textTransform","breakpoints","xs","sm","md","lg","xl","xxl","mqMinWidth","breakpoint","mq","obj","useIsScreenWiderThan","useMediaQueryMui","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","isScreenWiderThanMd","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","ArrowDown","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","marginRight","SectionContainer","$backgroundColor","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","billingModel","scheduledDowngradeToFree","planName","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","$display","$maxLines","$wordBreak","$bold","checkTextClamped","element","clientHeight","scrollHeight","offsetWidth","scrollWidth","LongText","leaveDelay","maxLines","wordBreak","tooltipPlacement","dataTestId","isTextClamped","setIsTextClamped","textClamped","OnTrialBadge","StyledLink","Link","TrialPanel","includePlanName","SandClockIcon","trialRemainingDays","UPGRADE_TRIAL_PLAN","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","floor","getUsageProgressStatus","getResetUsageText","usagePeriodEnd","calculateResetDiff","StyledLinearProgress","LinearProgress","string","$progressStatus","StyledDivider","FeatureUsageProgressBar","usagePercentage","linearProgressStatus","EntitlementCtaButton","onBuyMore","canBuyMore","canUpgradeSubscription","hasCustomSubscription","ChargeItem","hideChargePrice","whiteSpace","ChargeList","entitlementByFeature","keyBy","filteredSubscriptionPrices","SubscriptionsOverview","isLoadingData","CustomerPortalHeaderLayout","CustomerPortalHeader","ExternalLinkText","LinkIcon","ExternalLinkIcon","ExternalLinkButton","url","startIcon","strokeWidth","InformationGridContainer","InformationGridRow","InformationGrid","rows","classNamePrefix","labelTypographyProps","valueTypographyProps","SkeletonButton","PaymentDetailsSection","billingInformation","items","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","CustomerPortalPaywall","paywallComponent","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","getFeatureDisplayName","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","Footer","CustomerUsageLoader","isMdScreen","spacing","range","MAX_BOXES","CustomerUsageData","filterEntitlements","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","filteredEntitlements","entitlementsToShow","slice","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","customerSubscriptions","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterAddons","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","compatibleAddons","activeSubscriptionAddons","planAddon","initialAddons","cloneDeep","useSetAddon","useCheckoutContext","setState","draft","addonToUpdate","addonsStep","currentAddon","useRemoveAddon","remove","useAddonsState","useAddonsStepModel","state","setAddon","removeAddon","useCheckoutState","checkout","widgetState","checkoutLocalization","checkoutState","useSetWidgetReadonly","readOnly","useSetIsValid","isValid","useCheckoutModel","setWidgetReadOnly","setIsValid","useLoadCheckout","onMockCheckoutState","setCheckout","loadCheckout","getCheckoutState","getValidPriceQuantity","hasMonthlyPrices","hasAnnualPrices","hasMultipleBillingPeriods","getBillingPeriod","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","hasMonthlyPlan","hasAnnualPlan","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","billableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","canSkipPlanStep","availableCharges","availableChargesIds","preconfiguredChargesIds","getProgressBarInitialState","skipCheckoutSteps","stepsToFilter","step","useProgressBarState","progressBar","useSetActiveStep","stepNumber","useMarkStepAsCompleted","isCheckoutComplete","useGoNext","useSetIsDisabled","useProgressBarModel","progressBarState","currentStep","isLastStep","setActiveStep","markStepAsCompleted","goNext","setIsDisabled","useSubscriptionModel","promotionCode","paymentStep","billingAddress","taxPercentage","mapBillingInformation","previewSubscription","onMockCheckoutPreview","estimateAddons","subscriptionPreview","errorMessage","previewSubscriptionProps","split","errorMsg","trim","usePreviewSubscriptionAction","previewSubscriptionAction","SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME","usePreviewSubscription","setSubscriptionPreview","isFetchingSubscriptionPreview","setIsFetchingSubscriptionPreview","estimateSubscription","timer","setTimeout","clearTimeout","getPaymentStepInitialState","useNewPaymentMethod","paymentMethodDetails","useSetUseNewPaymentMethod","useSetErrorMessage","useSetBillingAddress","usePaymentState","usePaymentStepModel","setUseNewPaymentMethod","setErrorMessage","setBillingAddress","getResolvedCheckoutLocalize","checkoutDefaultLocalization","changePlan","billingPeriodsTitle","addAddonText","newPaymentMethodText","newPaymentMethodBillingAddressTitle","newPaymentMethodCardTitle","summary","addCouponCodeText","couponCodeTitle","addonsSectionTitle","discountsSectionTitle","onlyPayAsYouGoText","startsAtText","proratedTotalDueText","baseChargeText","totalText","totalDueText","totalBillingPeriodText","appliedCreditsTitle","creditsForUnusedTimeText","credits","discountText","discountDetails","DiscountType","Percentage","discountTextPostfix","durationType","DiscountDurationType","Once","Repeating","prefix","Fixed","durationInMonths","Forever","taxTitle","taxDetails","percentage","changesWillApplyAtEndOfBillingPeriod","billingPeriodEnd","checkoutSuccessText","payAsYouGoTooltipText","checkoutButton","nextText","noChangesText","updateText","downgradeToFreeText","upgradeText","downgradeToFree","alertText","freePlanHeader","freePlanName","freePlanPriceText","paidPlanHeader","paidPlanName","paidPlanPriceText","defaultCheckoutTheme","getResolvedCheckoutTheme","_remoteConfiguration","globalPalette","paymentInputBackgroundColor","paymentInputBorderColor","paymentInputBorderRadius","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","CheckoutProgressBar","containerRef","progress","previousStep","setPreviousStep","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","inputProps","maxLength","onKeyDown","preventDefault","CircularProgress","AppliedCouponContainer","AppliedPromotionCode","onClearPromotionCode","minWidth","PromotionCodeSectionContainer","PromotionCodeSection","StripePaymentForm","onBillingAddressChange","collectPhoneNumber","shouldCollectPhoneNumber","handleAddressChange","args","complete","address","postalCode","postal_code","addressFields","callExternalBillingAddressChanged","pointerEvents","AddressElement","mode","fields","phone","defaultValues","PaymentElement","onReady","terms","card","billingDetails","useStripeIntegration","stripePromise","setStripePromise","billingIntegration","setupSecret","billingIdentifier","credentials","BillingVendorIdentifier","Stripe","accountId","publicKey","loadStripe","stripeAccount","setupIntentClientSecret","useSubscriptionState","FAILED_PAYMENT_COLLECTION_STATUSES","PaymentCollection","Failed","Processing","handleStripeFormValidations","elements","submit","elementsError","handleStripeNextAction","applySubscriptionResults","stripe","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","ActionRequired","handleNextAction","clientSecret","NextActionError","handleStripeSetup","confirmSetup","confirmParams","return_url","href","redirect","setupError","setupErrorMessage","retrieveSetupIntent","setupIntent","payment_method","newPaymentMethodId","handleNewPaymentMethod","stripeFormValidationsResults","paymentMethodId","ANIMATION_DURATION","CheckoutSuccessContainer","CheckoutSuccessText","StyledLottie","Lottie","CheckoutSuccess","block","inline","animationData","loop","autoplay","delay","ms","res","useSubmit","isMocked","onCheckout","onCheckoutCompleted","onSuccess","disableSuccessAnimation","subscriptionState","useStripe","useElements","handleSubmit","usedStiggCheckoutAction","paymentMethodResults","checkoutParams","checkoutAction","applySubscription","nextActionResults","results","externalCheckoutResults","checkoutResults","checkoutActionResults","WithSkeleton","RemainingCreditsCaption","proration","netAmount","positiveAmount","ScheduledUpdatesCaption","hasScheduledUpdates","currentBillingPeriodEnd","changesWillApplyText","NextBillingCaption","recurringInvoice","hasUnitBasedPricing","hasNonUnitBasedPricing","totalAmountText","nextBillingDate","billingPeriodText","CheckoutCaptions","formatPricePerUnit","totalAmount","isPerUnit","aBlockSize","billingPeriodString","formattedUnitPrice","formattedTotalPrice","getPriceBreakdownString","getLabel","previousTierUpTo","startUnit","GraduatedPriceBreakdown","LineItemContainer","LineItemRow","CollapsableSectionIcon","ChevronRight","$size","$isOpen","NestedBreakdownContainer","PayAsYouGoPriceTooltip","BilledPriceLineItem","isScreenWiderThanLg","isNestedBreakdownOpen","setIsNestedBreakdownOpen","toggleNestedBreakdown","prev","isPayAsYouGo","ceil","nestedBreakdown","shouldShowGraduatedPriceBreakdown","underline","IconButton","Collapse","FreeChargeLineItem","DiscountLineItem","AppliedCreditsLineItem","used","TaxLineItem","tax","SummaryContainer","SummaryCard","Paper","defaultProps","elevation","SummaryTitle","TotalDueText","resolveCheckoutButtonText","checkoutHasChanges","isFreeDowngrade","isPlanUpdate","CheckoutSummary","disablePromotionCode","isCheckoutCompletedSuccessfully","setIsCheckoutCompletedSuccessfully","partition","baseCharges","usageCharges","baseCharge","handleCheckout","onCheckoutClick","showPromotionCodeLine","showDiscountLine","hasDiscounts","hasPayAsYouGoCharges","onlyPayAsYouGoCharges","baseChargeLabel","paddingRight","margin","priceBillableFeature","addonPrice","addonQuantity","hasProrations","subTotal","CheckoutSummarySkeleton","CheckoutAddonsContainer","AddonListItemContainer","TrashButton","AddonListItem","addonState","initialAddonState","onAddonsValidationChange","isAdded","hasChanges","handleQuantityChange","handleUndo","marginX","helperText","FormHelperTextProps","paddingX","paddingY","CheckoutAddonsStep","acc","curr","addonsValidation","setAddonsValidation","PaymentMethodContainer","NewPaymentMethodContainer","$hideBorders","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","hasExistingPaymentMethod","PaymentContainer","PaymentStep","handleOnSelect","openNewPaymentMethod","Alert","severity","ChangePlanButton","allowChangePlan","onChangePlan","opacity","formatBillingPeriod","BillingPeriodPickerContainer","BillingPeriodButton","$isOnlyBillingPeriod","$isActive","BillingPeriodOptions","BillingPeriodOption","isOnlyBillingPeriod","isActive","monthlyPrices","annualPrices","hasBothBillingPeriods","StyledPlanCharge","div","getValidationText","PlanCharge","onValidationChange","isBaseCharge","hasQuantityRestrictions","chargeRow","formattedAmount","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","colorBackground","rules","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED","useBooleanEntitlement","stiggContext","BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT","fallback","getBooleanEntitlement","useNumericEntitlement","NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT","getNumericEntitlement","useMeteredEntitlement","METERED_DEFAULT_FALLBACK_ENTITLEMENT","getMeteredEntitlement","useFetch","func","isLoaded","setIsLoaded","setError","data","setData","fetchData","useActiveSubscriptions","getActiveSubscriptions","usePaywall","BooleanEntitlementGuard","noAccessComponent","hasAccess","MeteredEntitlementGuard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,KAAK,CAAC;AACV,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgBC,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,qGAAqG;AAC5G,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;;SCbeC,0BACdC,iBACAC,iBACAC;AAEA,MAAMC,SAAS,GAAGD,WAAW,SAAOA,WAAP,GAAuB,EAApD;;AAGA,MAAI,CAAC,CAACF,eAAD,IAAoBA,eAAe,KAAK,CAAzC,KAA+CC,eAAnD,EAAoE;AAClE,sBAAgBA,eAAhB,GAAkCE,SAAlC;AACD;;;AAGD,MAAIH,eAAe,IAAIA,eAAe,GAAG,CAArC,IAA0CC,eAA9C,EAA+D;AAC7D,WAAUD,eAAV,SAA6BC,eAA7B,GAA+CE,SAA/C;AACD;;AAED,MAAIH,eAAe,IAAIA,eAAe,GAAG,CAAzC,EAA4C;AAC1C,wBAAkBA,eAAlB,GAAoCG,SAApC;AACD;;AAED,SAAO,EAAP;AACD;;SCtBeC,aAAaC;AAC3B,SAAOA,UAAP,oBAAOA,UAAU,CAAEC,cAAZ,CAA2B,OAA3B,EAAoC;AACzCC,IAAAA,qBAAqB,EAAE;AADkB,GAApC,CAAP;AAGD;;;ACJD;AA+BA,SAASC,QAAT,CAAkBC,KAAlB,EAAgCC,MAAhC;AACE,UAAQA,MAAR;AACE,SAAK,OAAL;AACE,aAAO,OAAP;;AACF,SAAK,cAAL;AACE,aAAOD,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAA3B;;AACF,SAAK,oBAAL;AACE,aAAOJ,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBE,YAA3B;;AACF,SAAK,SAAL;AACE,aAAOL,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBG,OAA3B;;AACF,SAAK,OAAL;AACE,aAAON,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBI,KAA3B;;AACF;AACE,aAAOP,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBP,MAAzB,CAAP;AAZJ;AAcD;;AAED,IAAMQ,UAAU,gBAAG,QAAOC,qBAAP;AAAA;AAAA;AAAA,EAAH,cAEZ;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,qBAApB;AAAA,CAFY,ijIAAhB;;AAKA,SAASC,QAAT,CAAkBC,OAAlB;AACE,UAAQA,OAAR;AACE,SAAK,IAAL;AACE,aAAO,CAAP;;AACF,SAAK,IAAL;AACE,aAAO,CAAP;;AACF,SAAK,IAAL;AACE,aAAO,CAAP;;AACF,SAAK,OAAL;AACE,aAAO,CAAP;;AACF,SAAK,SAAL;AACE,aAAO,CAAP;;AACF;AACE,aAAO,CAAP;AAZJ;AAcD;;AAED,SAASC,aAAT,CAAuBC,UAAvB;AACE,UAAQA,UAAR;AACE,SAAK,MAAL;AACE,aAAOC,2BAAgB,CAACC,IAAxB;;AACF,SAAK,QAAL;AACE,aAAOD,2BAAgB,CAACE,MAAxB;;AACF;AACE,aAAOF,2BAAgB,CAACE,MAAxB;AANJ;AAQD;;AAED,SAASC,aAAT,CAAuBnB,KAAvB,EAAqCa,OAArC;AACE,MAAQO,UAAR,GAAuBpB,KAAK,CAACE,KAA7B,CAAQkB,UAAR;;AACA,UAAQP,OAAR;AACE,SAAK,IAAL;AACE,aAAOC,aAAa,CAACM,UAAU,CAACC,EAAX,CAAcN,UAAf,CAApB;;AACF,SAAK,IAAL;AACE,aAAOD,aAAa,CAACM,UAAU,CAACE,EAAX,CAAcP,UAAf,CAApB;;AACF,SAAK,IAAL;AACE,aAAOD,aAAa,CAACM,UAAU,CAACG,EAAX,CAAcR,UAAf,CAApB;;AACF,SAAK,OAAL;AACE,aAAOD,aAAa,CAACM,UAAU,CAACI,IAAX,CAAgBT,UAAjB,CAApB;;AACF,SAAK,SAAL;AACE,aAAOD,aAAa,CAACM,UAAU,CAACK,OAAX,CAAmBV,UAApB,CAApB;;AACF;AACE,aAAOC,2BAAgB,CAACE,MAAxB;AAZJ;AAcD;;AAED,AAAO,IAAMQ,UAAU,gBAAGC,gBAAU,CAAC,UAACC,KAAD,EAAyBC,GAAzB;AACnC,MACEC,QADF,GAWIF,KAXJ,CACEE,QADF;AAAA,MAEEC,IAFF,GAWIH,KAXJ,CAEEG,IAFF;AAAA,MAGEC,KAHF,GAWIJ,KAXJ,CAGEI,KAHF;AAAA,MAIEjB,UAJF,GAWIa,KAXJ,CAIEb,UAJF;AAAA,uBAWIa,KAXJ,CAKEf,OALF;AAAA,MAKEA,OALF,+BAKY,OALZ;AAAA,qBAWIe,KAXJ,CAMEK,KANF;AAAA,MAMEA,KANF,6BAMU,SANV;AAAA,MAOEC,aAPF,GAWIN,KAXJ,CAOEM,aAPF;AAAA,MAQEC,IARF,GAWIP,KAXJ,CAQEO,IARF;AAAA,kBAWIP,KAXJ,CASEQ,EATF;AAAA,MASEA,EATF,0BASO,GATP;AAAA,MAUKC,IAVL,iCAWIT,KAXJ;;AAYA,MAAM5B,KAAK,GAAGsC,cAAQ,EAAtB;AACA,MAAMC,KAAK,GAAG3B,QAAQ,CAACC,OAAD,CAAtB;AACA,MAAM2B,cAAc,yBAAuBD,KAA3C;AACA,MAAME,SAAS,GAAGb,KAAK,CAACa,SAAN,GAAqBb,KAAK,CAACa,SAA3B,SAAwCD,cAAxC,GAA2DA,cAA7E;AAEA,SACEE,4BAAA,CAACjC,UAAD;AACE2B,IAAAA,EAAE,EAAEA;AACJP,IAAAA,GAAG,EAAEA;KACDQ;AACJI,IAAAA,SAAS,EAAEA;AACXT,IAAAA,KAAK,EAAEA;AACPO,IAAAA,KAAK,EAAEA;AACPN,IAAAA,KAAK,EAAEC,aAAa,IAAInC,QAAQ,CAACC,KAAD,EAAQiC,KAAR;AAChClB,IAAAA,UAAU,EAAEA,UAAF,WAAEA,UAAF,GAAiBoB,IAAI,GAAGnB,2BAAgB,CAACC,IAApB,GAA2BE,aAAa,CAACnB,KAAD,EAAQa,OAAR;aAChEkB;IATT,EAUGD,QAVH,CADF;AAcD,CAhCmC,CAA7B;;;;;;AC3FP,IAAMa,eAAe,gBAAG,QAAOjB,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAArB;;AAIA,IAAMkB,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA7B;;AAKA,IAAMC,wBAAwB;AAAA;AAAA;AAAA,gEAIlB;AAAA,MAAG7C,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYkB,UAAZ,CAAuBG,EAAvB,CAA0BuB,QAAzC;AAAA,CAJkB,m2IAA9B;;AAQA,IAAMC,oBAAoB,gBAAG,QAAOC,aAAP;AAAA;AAAA;AAAA,EAAH,0BAGd;AAAA,MAAGhD,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyByC,QAAxC;AAAA,CAHc,01IAA1B;;AAuBA,SAASC,kBAAT,CAA4BC,WAA5B;AACE,MAAI,CAACA,WAAL,EAAkB;AAChB,WAAO,EAAP;AACD;;AAED,UAAQA,WAAR;AACE,SAAKC,4BAAsB,CAACC,GAA5B;AAAiC;AAC/B,eAAO,SAAP;AACD;;AACD,SAAKD,4BAAsB,CAACE,IAA5B;AAAkC;AAChC,eAAO,UAAP;AACD;;AACD,SAAKF,4BAAsB,CAACG,IAA5B;AAAkC;AAChC,eAAO,UAAP;AACD;;AACD,SAAKH,4BAAsB,CAACI,KAA5B;AAAmC;AACjC,eAAO,WAAP;AACD;;AACD,SAAKJ,4BAAsB,CAACK,IAA5B;AAAkC;AAChC,eAAO,UAAP;AACD;;AACD;AAAS;AACP,eAAO,EAAP;AACD;AAlBH;AAoBD;;AAED,SAASC,qBAAT;MACEC,0BAAAA;MACAC,gBAAAA;MACAT,oBAAAA;MACAvD,mBAAAA;MACAL,wBAAAA;MACAC,wBAAAA;MACAqE,iBAAAA;AAEA,MAAMC,oBAAoB,GAAGvE,eAAe,IAAIC,eAAhD;AACA,MAAMuE,iBAAiB,SAAMZ,WAAW,IAAIvD,UAAf,QAA+BsD,kBAAkB,CAACC,WAAD,CAAjD,GAAmE,EAAzE,CAAvB;;AAEA,MAAIQ,iBAAJ,EAAuB;AACrB,2BAAoBC,OAApB,oBAAoBA,OAAO,CAAEnE,WAA7B;AACD;;AAED,MAAIoE,QAAJ,EAAc;AACZ,wBAAiBD,OAAjB,oBAAiBA,OAAO,CAAEnE,WAA1B;AACD;;AAED,MAAIG,UAAJ,EAAgB;AACd,QAAMoE,YAAY,GAAGpE,UAAU,KAAK,CAAf,GAAmBgE,OAAnB,oBAAmBA,OAAO,CAAEK,KAA5B,GAAoCL,OAApC,oBAAoCA,OAAO,CAAEnE,WAAlE;AACA,WAAUE,YAAY,CAACC,UAAD,CAAtB,SAAsCoE,YAAtC,SAAsDD,iBAAtD;AACD;;AAED,MAAID,oBAAJ,EAA0B;AACxB,WAAOxE,yBAAyB,CAACC,eAAD,EAAkBC,eAAlB,EAAmCoE,OAAnC,oBAAmCA,OAAO,CAAEnE,WAA5C,CAAhC;AACD;;AAED,SAAOmE,OAAP,oBAAOA,OAAO,CAAEM,WAAhB;AACD;;AAED,SAAgBC,eAAevC;AAC7B,MAAQwC,mBAAR,GAA8CxC,KAA9C,CAAQwC,mBAAR;AAAA,MAAgCC,SAAhC,iCAA8CzC,KAA9C;;AACA,MAAMsC,WAAW,GAAGR,qBAAqB,CAACW,SAAD,CAAzC;AAEA,SACE3B,4BAAA,CAACE,uBAAD;AAAyBH,IAAAA,SAAS,EAAC;GAAnC,EACEC,4BAAA,CAACG,wBAAD,MAAA,EACEH,4BAAA,CAACK,oBAAD;AAAsBN,IAAAA,SAAS,EAAC;GAAhC,CADF,CADF,EAIEC,4BAAA,CAACC,eAAD;AAAiBF,IAAAA,SAAS,EAAC;AAAyB5B,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAAvE,EACGmC,mBAAmB,IAAIF,WAD1B,CAJF,CADF;AAUD;;;;ACjHD,IAAMI,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA/B;;AAMA,SAASC,QAAT,CAAkBC,IAAlB,EAAqCC,aAArC,EAAyEC,WAAzE;AACE,MAAID,aAAa,CAACE,iBAAlB,EAAqC;AACnC,WAAOF,aAAa,CAACE,iBAAd,CAAgCH,IAAhC,CAAP;AACD;;AACD,MAAII,KAAK,GAAGF,WAAW,GAAMF,IAAI,CAACN,WAAX,iBAAoC,EAA3D;;AACA,MAAIM,IAAI,CAACK,QAAT,EAAmB;AACjBD,IAAAA,KAAK,sBAAoBJ,IAAI,CAACK,QAAL,CAAcX,WAAlC,IAAgDQ,WAAW,GAAG,SAAH,GAAe,EAA1E,CAAL;AACD;;AAED,SAAOE,KAAP;AACD;;AAED,SAAgBE;;;MACdN,YAAAA;MACAO,qBAAAA;MACAN,qBAAAA;AAMA,MAAMO,MAAM,GAAG,sBAAAR,IAAI,CAACS,WAAL,uCAAkBC,MAAlB,CAAyB,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACJ,aAAN,KAAwBA,aAAnC;AAAA,GAAzB,MAA8E,EAA7F;AACA,MAAMK,qBAAqB,GAAGJ,MAAM,CACjCE,MAD2B,CACpB,UAACC,KAAD;AAAA,WAAY,CAAAA,KAAK,QAAL,YAAAA,KAAK,CAAE5F,eAAP,KAA0B,CAAA4F,KAAK,QAAL,YAAAA,KAAK,CAAE5F,eAAP,IAAyB,CAApD,KAA0D4F,KAA1D,oBAA0DA,KAAK,CAAE3F,eAAjE,CAAX;AAAA,GADoB,EAE3B6F,GAF2B,CAEvB,UAACF,KAAD;;;AACH,WACEzC,4BAAA,CAACyB,cAAD;AACEmB,MAAAA,GAAG,6BAA0BH,KAA1B,sCAA0BA,KAAK,CAAEvB,OAAjC,qBAA0B,eAAgBM,WAA1C;AACHN,MAAAA,OAAO,EAAEuB,KAAF,oBAAEA,KAAK,CAAEvB;AAChBrE,MAAAA,eAAe,EAAE4F,KAAF,oBAAEA,KAAK,CAAE5F;AACxBC,MAAAA,eAAe,EAAE2F,KAAF,oBAAEA,KAAK,CAAE3F;KAJ1B,CADF;AAQD,GAX2B,CAA9B;AAaA,MAAM+F,mBAAmB,GAAGf,IAAI,CAACgB,YAAL,CAAkBN,MAAlB,CAC1B,UAACO,WAAD;AAAA,WAAiB,CAAC,CAACA,WAAW,CAACC,iBAAZ,IAAiC,EAAlC,EAAsCC,QAAtC,CAA+CC,gBAAU,CAACC,OAA1D,CAAlB;AAAA,GAD0B,CAA5B;AAIA,MAAMnB,WAAW,GAAGU,qBAAqB,CAACU,MAAtB,GAA+B,CAA/B,IAAoCP,mBAAmB,CAACO,MAApB,GAA6B,CAArF;AAEA,SACEpD,4BAAA,CAAC4B,yBAAD;AAA2B7B,IAAAA,SAAS,EAAC;GAArC,EACEC,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAgCR,IAAAA,KAAK,EAAC;AAAYpB,IAAAA,OAAO,EAAC;AAAKsB,IAAAA,IAAI;GAAzF,EACGoC,QAAQ,CAACC,IAAD,EAAOC,aAAP,EAAsBC,WAAtB,CADX,CADF,EAIGU,qBAJH,EAKGG,mBAAmB,CAACF,GAApB,CAAwB,UAACI,WAAD;AAAA;;AAAA,WACvB/C,4BAAA,CAACyB,cAAD;AACEmB,MAAAA,GAAG,0BAAEG,WAAW,CAAC7B,OAAd,qBAAE,qBAAqBmC;AAC1B3B,MAAAA,mBAAmB,EAAEqB,WAAW,CAACrB;AACjCR,MAAAA,OAAO,EAAE6B,WAAW,CAAC7B;AACrBT,MAAAA,WAAW,EAAEsC,WAAW,CAACtC;AACzBQ,MAAAA,iBAAiB,EAAE8B,WAAW,CAAC9B;AAC/B/D,MAAAA,UAAU,EAAE6F,WAAW,CAAC7F;AACxBiE,MAAAA,QAAQ,EAAE4B,WAAW,CAAC5B;KAPxB,CADuB;AAAA,GAAxB,CALH,CADF;AAmBD;;ACjDD,WAAYmC;AACVA,EAAAA,qCAAA,gBAAA;AACAA,EAAAA,+CAAA,0BAAA;AACAA,EAAAA,oDAAA,+BAAA;AACAA,EAAAA,+CAAA,0BAAA;AACAA,EAAAA,8CAAA,yBAAA;AACAA,EAAAA,sCAAA,iBAAA;AACAA,EAAAA,wCAAA,mBAAA;AACAA,EAAAA,kDAAA,6BAAA;AACD,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;ACpBO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,mBAAD;AAC9B,SAAO;AACLC,IAAAA,IAAI,EAAE,YADD;AAELC,IAAAA,MAAM,EAAE,QAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF,IAILH,mBAJK,CAAP;AAKD,CANM;AAQP,AAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,eAAD;;;AAC9B,MAAMC,YAAY,GAAGC,KAAK,CAAC,CAAAF,eAAe,QAAf,qCAAAA,eAAe,CAAEpG,OAAjB,2CAA0BC,OAA1B,KAAqC,SAAtC,CAA1B;AACA,MAAMsG,SAAS,GAAGD,KAAK,CAAC,CAAAF,eAAe,QAAf,sCAAAA,eAAe,CAAEpG,OAAjB,sEAA0BK,IAA1B,4CAAgCJ,OAAhC,KAA2C,SAA5C,CAAvB;AACA,MAAMuG,YAAY,GAAGF,KAAK,CAAC,SAAD,CAA1B;AACA,MAAMG,UAAU,GAAGH,KAAK,CAAC,SAAD,CAAxB;AAEA,MAAMI,SAAS,GAAe;AAC5B1G,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAEoG,YAAY,CAACM,GAAb,EADF;AAEPC,MAAAA,WAAW,EAAEP,YAAY,CAACQ,MAAb,CAAoB,GAApB,EAAyBF,GAAzB,EAFN;AAGPzG,MAAAA,YAAY,EAAEmG,YAAY,CAACS,KAAb,CAAmB,GAAnB,EAAwBC,QAAxB,EAHP;AAIPC,MAAAA,eAAe,EAAE,SAJV;AAKPC,MAAAA,mBAAmB,EAAE,SALd;AAMPC,MAAAA,iBAAiB,EAAEb,YAAY,CAACS,KAAb,CAAmB,GAAnB,EAAwBC,QAAxB,EANZ;AAOPI,MAAAA,gBAAgB,EAAEd,YAAY,CAACS,KAAb,CAAmB,IAAnB,EAAyBC,QAAzB,EAPX;AAQPK,MAAAA,cAAc,EAAE,SART;AASPC,MAAAA,qBAAqB,EAAEhB,YAAY,CAACS,KAAb,CAAmB,GAAnB,EAAwBC,QAAxB,EAThB;AAUPO,MAAAA,uBAAuB,EAAEjB,YAAY,CAACkB,SAAb,CAAuB,EAAvB,EAA2BZ,GAA3B,EAVlB;AAWPa,MAAAA,YAAY,EAAEnB,YAAY,CAACoB,OAAb,CAAqB,GAArB,EAA0Bd,GAA1B,EAXP;AAYPe,MAAAA,UAAU,EAAErB,YAAY,CAACoB,OAAb,CAAqB,GAArB,EAA0Bd,GAA1B,EAZL;AAaPgB,MAAAA,YAAY,EAAEtB,YAAY,CAACM,GAAb,EAbP;AAcPxG,MAAAA,OAAO,EAAE,SAdF;AAePC,MAAAA,KAAK,EAAEqG,UAAU,CAACE,GAAX,EAfA;AAgBPiB,MAAAA,SAAS,EAAEnB,UAAU,CAACI,MAAX,CAAkB,GAAlB,EAAuBF,GAAvB,EAhBJ;AAiBPkB,MAAAA,OAAO,EAAErB,YAAY,CAACG,GAAb,EAjBF;AAkBPmB,MAAAA,WAAW,EAAEtB,YAAY,CAACK,MAAb,CAAoB,GAApB,EAAyBF,GAAzB,EAlBN;AAmBPoB,MAAAA,KAAK,EAAE,SAnBA;AAoBP1H,MAAAA,IAAI,EAAE;AACJJ,QAAAA,OAAO,EAAEsG,SAAS,CAACI,GAAV,EADL;AAEJqB,QAAAA,SAAS,EAAEzB,SAAS,CAACO,KAAV,CAAgB,IAAhB,EAAsBC,QAAtB,EAFP;AAGJkB,QAAAA,QAAQ,EAAE1B,SAAS,CAACO,KAAV,CAAgB,GAAhB,EAAqBC,QAArB,EAHN;AAIJjE,QAAAA,QAAQ,EAAEyD,SAAS,CAACO,KAAV,CAAgB,IAAhB,EAAsBC,QAAtB;AAJN;AApBC,KADmB;AA4B5BmB,IAAAA,MAAM,EAAE;AACNC,MAAAA,YAAY,EAAE,OADR;AAENC,MAAAA,YAAY,EAAE,OAFR;AAGNC,MAAAA,UAAU,EAAE,MAHN;AAINC,MAAAA,WAAW,EAAE,MAJP;AAKNC,MAAAA,YAAY,EAAE,MALR;AAMNC,MAAAA,eAAe,EAAE,MANX;AAONC,MAAAA,oBAAoB,EAAE,MAPhB;AAQNC,MAAAA,oBAAoB,EAAE,MARhB;AASNC,MAAAA,mBAAmB,EAAE;AATf,KA5BoB;AAuC5BC,IAAAA,OAAO,EAAE;AACPC,MAAAA,KAAK,EAAE,uGADA;AAEPC,MAAAA,OAAO,EACL;AAHK,KAvCmB;AA4C5BC,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE;AADF,KA5CoB;AA+C5B/H,IAAAA,UAAU,EAAE;AACVgI,MAAAA,UAAU,EAAE,kCADF;AAEV/H,MAAAA,EAAE,EAAE;AACFyB,QAAAA,QAAQ,EAAE,MADR;AAEF/B,QAAAA,UAAU,EAAE;AAFV,OAFM;AAMVO,MAAAA,EAAE,EAAE;AACFwB,QAAAA,QAAQ,EAAE,MADR;AAEF/B,QAAAA,UAAU,EAAE;AAFV,OANM;AAUVQ,MAAAA,EAAE,EAAE;AACFuB,QAAAA,QAAQ,EAAE,MADR;AAEF/B,QAAAA,UAAU,EAAE;AAFV,OAVM;AAcVS,MAAAA,IAAI,EAAE;AACJsB,QAAAA,QAAQ,EAAE,MADN;AAEJ/B,QAAAA,UAAU,EAAE;AAFR,OAdI;AAkBVU,MAAAA,OAAO,EAAE;AACPqB,QAAAA,QAAQ,EAAE,MADH;AAEP/B,QAAAA,UAAU,EAAE;AAFL;AAlBC,KA/CgB;AAsE5BsI,IAAAA,SAAS,EAAE;AAtEiB,GAA9B;AAyEA,SAAOC,KAAK,CAACzC,SAAD,EAAYN,eAAZ,CAAZ;AACD,CAhFM;;ACDP,IAAMgD,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD;AAAA,SAAkBC,MAAM,CAACC,GAAP,CAAWF,IAAX,EAAiBG,MAAjB,CAAwB,eAAxB,CAAlB;AAAA,CAAnB;;AASA,SAAgBC;MACdC,uBAAAA;MACAC,0BAAAA;MACAC,0BAAAA;0BACAC;MAAAA,oCAAU;;AAEV,MAAI,CAACH,eAAL,EAAsB;AACpB,WAAO,EAAP;AACD;;AACD,MAAQI,QAAR,GAAmCD,OAAnC,CAAQC,QAAR;AAAA,yBAAmCD,OAAnC,CAAkBE,OAAlB;AAAA,MAAkBA,OAAlB,iCAA4B,EAA5B;;AAEA,UAAQL,eAAe,CAACM,wBAAxB;AACE,SAAKC,8BAAwB,CAACC,SAA9B;AAAyC;AAAA;;AACvC,YAAIC,cAAc,GAAGL,QAArB;;AACA,YAAIM,KAAK,CAACD,cAAD,CAAL,IAAyBP,kBAAzB,YAAyBA,kBAAkB,CAAES,GAAjD,EAAsD;AACpDF,UAAAA,cAAc,GAAG,CAACb,MAAM,CAACI,eAAe,CAACY,sBAAjB,CAAN,CAA+CC,MAA/C,CAAsDX,kBAAtD,oBAAsDA,kBAAkB,CAAES,GAA1E,EAA+E,KAA/E,CAAlB;AACD;;AAED,YAAMG,KAAK,GACTjI,4BAAA,wBAAA,MAAA,gDAAA,EAC8CA,4BAAA,IAAA,MAAA,2BAAImH,eAAe,CAACe,aAApB,qBAAI,sBAA+B1G,WAAnC,SAAA,CAD9C,EACuG,GADvG,EAEGoG,cAAc,GAAG5H,4BAAA,wBAAA,MAAA,OAAA,EAAM6G,UAAU,CAACM,eAAe,CAACY,sBAAjB,CAAhB,CAAH,GAAkEP,OAFnF,KAAA,CADF;AAMA,YAAMW,KAAK,2DAAX;AAEA,eAAO;AAAEF,UAAAA,KAAK,EAALA,KAAF;AAASE,UAAAA,KAAK,EAALA;AAAT,SAAP;AACD;;AAED,SAAKT,8BAAwB,CAACU,aAA9B;AAA6C;AAAA;;AAC3C,YAAMC,SAAS,GAAGlB,eAAe,CAACmB,iBAAlC;;AACA,YAAML,KAAK,GACTjI,4BAAA,wBAAA,MAAA,sCAAA,EACoCA,4BAAA,IAAA,MAAA,2BAAIqI,SAAS,CAAChG,aAAd,qBAAI,sBAAyBkG,iBAAzB,EAAJ,CADpC,EAC0F,GAD1F,EAEGhB,QAAQ,GAAGvH,4BAAA,wBAAA,MAAA,OAAA,EAAM6G,UAAU,CAACM,eAAe,CAACY,sBAAjB,CAAhB,CAAH,GAAkEP,OAF7E,KAAA,CADF;;AAOA,eAAO;AAAES,UAAAA,KAAK,EAALA;AAAF,SAAP;AACD;;AAED,SAAKP,8BAAwB,CAACc,UAA9B;AAA0C;AACxC,YAAMH,UAAS,GAAGlB,eAAe,CAACmB,iBAAlC;AACA,YAAMpH,OAAO,GAAGuH,cAAO,CAAC9F,UAAG,CAACyE,kBAAD,EAAqB,SAArB,CAAJ,CAAP,CAA4CsB,IAA5C,CAAiD;AAAA,cAAGrF,EAAH,SAAGA,EAAH;AAAA,iBAAYA,EAAE,KAAKgF,UAAS,CAACM,SAA7B;AAAA,SAAjD,CAAhB;;AACA,oBAA6CzH,OAAO,IAAI,EAAxD;AAAA,YAAQI,YAAR,SAAQA,YAAR;AAAA,YAAsBsH,kBAAtB,SAAsBA,kBAAtB;;AACA,YAAM5L,SAAS,GAAGqL,UAAS,CAACQ,aAAV,KAA4B,CAA5B,GAAgCvH,YAAhC,GAA+CsH,kBAAjE;;AAEA,YAAMX,MAAK,GACTjI,4BAAA,wBAAA,MAAA,yCAAA,EACuCA,4BAAA,IAAA,MAAA,EAAIqI,UAAS,CAACQ,aAAd,CADvC,KAAA,EACyE7L,SADzE,EACoF,GADpF,EAEGuK,QAAQ,GAAGvH,4BAAA,wBAAA,MAAA,OAAA,EAAM6G,UAAU,CAACM,eAAe,CAACY,sBAAjB,CAAhB,CAAH,GAAkEP,OAF7E,KAAA,CADF;;AAOA,YAAMW,MAAK,yDAAuD7G,YAAvD,YAAX;;AAEA,eAAO;AAAE2G,UAAAA,KAAK,EAALA,MAAF;AAASE,UAAAA,KAAK,EAALA;AAAT,SAAP;AACD;;AAED;AAAS;AACP,eAAO,EAAP;AACD;AAlDH;AAoDD;;SC9EeW,oBAAoBrG;AAClC,MAAI,CAACA,KAAK,CAACvB,OAAX,EAAoB;AAClB,WAAO,EAAP;AACD;;AAED,SAAO,CAACuB,KAAK,CAACvB,OAAN,CAAc6H,YAAd,KAA+B,CAA/B,GAAmCtG,KAAK,CAACvB,OAAN,CAAcnE,WAAjD,GAA+D0F,KAAK,CAACvB,OAAN,CAAcK,KAA9E,KAAwF,EAA/F;AACD;AAED,SAAgByH,kBAAkBC,OAA4BC;AAC5D,MAAMC,cAAc,aAAOF,KAAP,CAApB;AAEA;;AACAE,EAAAA,cAAc,CAACC,IAAf,CAAoB,UAACC,CAAD,EAAIC,CAAJ;AAAA,WAAW,CAACD,CAAC,CAACE,IAAH,GAAU,CAAV,GAAc,CAACD,CAAC,CAACC,IAAH,GAAU,CAAC,CAAX,GAAeF,CAAC,CAACE,IAAF,GAASD,CAAC,CAACC,IAAnD;AAAA,GAApB;;AAEA,uDAAmBJ,cAAnB,wCAAmC;AAAA,QAAxBK,IAAwB;;AACjC,QAAIA,IAAI,CAACD,IAAL,IAAaL,QAAQ,IAAIM,IAAI,CAACD,IAAlC,EAAwC;AACtC,aAAOC,IAAP;AACD;AACF;;AAED,SAAOL,cAAc,CAACA,cAAc,CAAC/F,MAAf,GAAwB,CAAzB,CAArB;AACD;;AAED,SAASqG,SAAT,CAAmBC,MAAnB,EAAmCC,qBAAnC,EAA0EC,4BAA1E;AACE,SAAOD,qBAAqB,KAAKvB,mBAAa,CAACyB,QAAxC,IAAoDD,4BAApD,GAAmFF,MAAM,GAAG,EAA5F,GAAiGA,MAAxG;AACD;;AAED,SAASI,wBAAT,CACEC,WADF,EAEEC,eAFF,EAGEL,qBAHF,EAIEC,4BAJF;AAME,MAAIF,MAAM,GAAG,CAAb;;AAEA,MAAIK,WAAW,CAACE,SAAhB,EAA2B;AACzB,QAAMA,SAAS,GAAGR,SAAS,CAACM,WAAW,CAACE,SAAZ,CAAsBP,MAAvB,EAA+BC,qBAA/B,EAAsDC,4BAAtD,CAA3B;AACAF,IAAAA,MAAM,IAAIO,SAAS,GAAGD,eAAtB;AACD;;AAED,MAAID,WAAW,CAACG,SAAhB,EAA2B;AACzBR,IAAAA,MAAM,IAAID,SAAS,CAACM,WAAW,CAACG,SAAZ,CAAsBR,MAAvB,EAA+BC,qBAA/B,EAAsDC,4BAAtD,CAAnB;AACD;;AAED,SAAOF,MAAP;AACD;;AAED,SAAgBS,4BACdlB,OACAF,cACAY,uBACAC;AAEA,MAAIQ,iBAAiB,GAAGrB,YAAxB;AACA,MAAIsB,QAAQ,GAAG,CAAf;AACA,MAAIC,gBAAgB,GAAG,CAAvB;AAEA,MAAMC,SAAS,GAAoD,EAAnE;;AAEA,SAAOH,iBAAiB,GAAG,CAApB,IAAyBE,gBAAgB,GAAGrB,KAAK,CAAC7F,MAAzD,EAAiE;AAC/D,QAAMoG,IAAI,GAAGP,KAAK,CAACqB,gBAAD,CAAlB;AACA,QAAQf,IAAR,GAAiBC,IAAjB,CAAQD,IAAR;;AAEA,QAAI1B,KAAK,CAAC0B,IAAD,CAAT,EAAiB;AACfgB,MAAAA,SAAS,CAACC,IAAV,CAAe;AACbzB,QAAAA,YAAY,EAAEqB,iBADD;AAEbV,QAAAA,MAAM,EAAEI,wBAAwB,CAACN,IAAD,EAAOY,iBAAP,EAA0BT,qBAA1B,EAAiDC,4BAAjD;AAFnB,OAAf;AAIAQ,MAAAA,iBAAiB,GAAG,CAApB;AACD,KAND,MAMO;AACL,UAAMK,WAAW,GAAGlB,IAAI,GAAGc,QAA3B;AACA,UAAMK,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASR,iBAAT,EAA4BK,WAA5B,CAAjB;AACAF,MAAAA,SAAS,CAACC,IAAV,CAAe;AACbzB,QAAAA,YAAY,EAAE2B,QADD;AAEbhB,QAAAA,MAAM,EAAEI,wBAAwB,CAACN,IAAD,EAAOkB,QAAP,EAAiBf,qBAAjB,EAAwCC,4BAAxC;AAFnB,OAAf;AAIAQ,MAAAA,iBAAiB,IAAIM,QAArB;AACAL,MAAAA,QAAQ,GAAGd,IAAX;AACD;;AAEDe,IAAAA,gBAAgB,IAAI,CAApB;AACD;;AAED,MAAMO,KAAK,GAAGC,UAAG,CAACP,SAAS,CAAC5H,GAAV,CAAc;AAAA,QAAG+G,MAAH,QAAGA,MAAH;AAAA,WAAgBA,MAAhB;AAAA,GAAd,CAAD,CAAjB;AAEA,SAAO;AACLa,IAAAA,SAAS,EAATA,SADK;AAELM,IAAAA,KAAK,EAALA;AAFK,GAAP;AAID;AAED,SAAgBE,mBACdtI,OACAsG,cACAY,uBACAC;AAEA,MAAI,CAACnH,KAAK,CAACwG,KAAX,EAAkB;AAChB,WAAO,CAAP;AACD;;AAED,UAAQxG,KAAK,CAACuI,SAAd;AACE,SAAKC,eAAS,CAACC,MAAf;AAAuB;AACrB,YAAMnB,WAAW,GAAGf,iBAAiB,CAACvG,KAAK,CAACwG,KAAP,EAAcF,YAAd,CAArC;AACA,eAAOe,wBAAwB,CAACC,WAAD,EAAchB,YAAd,EAA4BY,qBAA5B,EAAmDC,4BAAnD,CAA/B;AACD;;AACD,SAAKqB,eAAS,CAACE,SAAf;AAA0B;AACxB,eAAOhB,2BAA2B,CAAC1H,KAAK,CAACwG,KAAP,EAAcF,YAAd,EAA4BY,qBAA5B,EAAmDC,4BAAnD,CAA3B,CACJiB,KADH;AAED;;AACD;AACE,aAAO,CAAP;AAVJ;AAYD;AAED,SAAgBO,qBAAqBnC;AACnC,SAAOA,KAAP,oBAAOA,KAAK,CAAEoC,IAAP,CAAY;AAAA,QAAGpB,SAAH,SAAGA,SAAH;AAAA,QAAcV,IAAd,SAAcA,IAAd;AAAA,WAAyBU,SAAS,IAAI,CAACpC,KAAK,CAAC0B,IAAD,CAA5C;AAAA,GAAZ,CAAP;AACD;AAED,SAAgB+B,YAAYrC;AAC1B,SAAOA,KAAP,oBAAOA,KAAK,CAAEsC,KAAP,CAAa;AAAA,QAAGtB,SAAH,SAAGA,SAAH;AAAA,QAAcV,IAAd,SAAcA,IAAd;AAAA,WAAyB,CAACU,SAAD,IAAcpC,KAAK,CAAC0B,IAAD,CAA5C;AAAA,GAAb,CAAP;AACD;AAED,SAAgBiC,sBAAsBvC,OAA+CC;AACnF,SAAO,CAAAD,KAAK,QAAL,YAAAA,KAAK,CAAG,CAAH,CAAL,CAAWM,IAAX,KAAmBL,QAAQ,IAAID,KAAK,CAAC,CAAD,CAAL,CAASM,IAA/C;AACD;AAED,SAAgBkC,0BACd3J,MACAO,eACAqJ,qBACAC;AAEA,MAAMC,cAAc,GAAG9J,IAAI,CAACS,WAAL,CAAiBC,MAAjB,CACrB,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACJ,aAAN,KAAwBA,aAAxB,IAAyCI,KAAK,CAACoJ,aAA1D;AAAA,GADqB,CAAvB;;AAIA,MAAID,cAAc,CAACxI,MAAf,KAA0B,CAA9B,EAAiC;AAC/B,QAAOX,KAAP,GAAgBmJ,cAAhB;AACA,QAAQjD,SAAR,GAAsBlG,KAAK,CAACvB,OAA5B,CAAQyH,SAAR;AACA,QAAMmD,wBAAwB,GAAGH,sBAAsB,GAAGA,sBAAsB,CAAC;AAAE7J,MAAAA,IAAI,EAAJA;AAAF,KAAD,CAAzB,GAAsC,CAA7F;AACA,QAAMiI,WAAW,GAAGtH,KAAK,CAACwG,KAAN,CAAa6C,wBAAb,CAApB;AACA,QAAI5C,QAAQ,GAAGkC,oBAAoB,CAAC3I,KAAK,CAACwG,KAAP,CAApB,GAAoC,CAApC,GAAwCc,WAAW,CAACR,IAAZ,IAAoB,CAA3E;;AAEA,QAAImC,mBAAmB,IAAIA,mBAAmB,CAAC5J,IAApB,CAAyBuB,EAAzB,KAAgCvB,IAAI,CAACuB,EAAhE,EAAoE;AAClE,UAAM0I,WAAW,GAAGL,mBAAmB,CAACpJ,MAApB,CAA2BoG,IAA3B,CAClB,UAACsD,iBAAD;AAAA;;AAAA,eACEA,iBAAiB,CAACC,YAAlB,KAAmCC,kBAAY,CAACC,OAAhD,IACAH,iBAAiB,CAAChB,SADlB,IAEA,0BAAAgB,iBAAiB,CAAC9K,OAAlB,2CAA2ByH,SAA3B,MAAyCA,SAH3C;AAAA,OADkB,CAApB;;AAOA,UAAIoD,WAAJ,EAAiB;AACf7C,QAAAA,QAAQ,GAAG6C,WAAW,CAAC7K,OAAZ,CAAqB6H,YAArB,IAAqC,CAAhD;AACD;AACF;;AAED,QAAMqD,MAAM,GAA2B,EAAvC;AACAA,IAAAA,MAAM,CAACzD,SAAD,CAAN,GAAoBO,QAApB;AAEA,WAAOkD,MAAP;AACD;;AAED,SAAO,EAAP;AACD;AAED,AAAA,IAAYC,mBAAZ;;AAAA,WAAYA;AACVA,EAAAA,sDAAA,UAAA;AACAA,EAAAA,qDAAA,UAAA;AACAA,EAAAA,sDAAA,WAAA;AACD,CAJD,EAAYA,mBAAmB,KAAnBA,mBAAmB,KAAA,CAA/B;;AAMA,SAAgBC,iCACdC,0BACAb;AAEA,MAAI,CAACA,mBAAL,EAA0B;AACxB,WAAOW,mBAAmB,CAACG,KAA3B;AACD;;AAED,MAAMC,gBAAgB,GAAGf,mBAAmB,CAACpJ,MAApB,CAA2BoG,IAA3B,CACvB,UAACjG,KAAD;AAAA,WAAWA,KAAK,CAACwJ,YAAN,KAAuBC,kBAAY,CAACC,OAApC,IAA+C1J,KAAK,CAACuI,SAAhE;AAAA,GADuB,CAAzB;;AAGA,MAAI,CAACyB,gBAAL,EAAuB;AACrB,WAAOJ,mBAAmB,CAACG,KAA3B;AACD;;AAED,8BAAiDC,gBAAgB,CAACvL,OAAlE;AAAA,MAAQyH,SAAR,yBAAQA,SAAR;AAAA,MAAiC+D,WAAjC,yBAAmB3D,YAAnB;;AAEA,MAAIlB,KAAK,CAAC6E,WAAD,CAAT,EAAwB;AACtB,WAAOL,mBAAmB,CAACG,KAA3B;AACD;;AAED,MAAMG,WAAW,GAAGJ,wBAAwB,CAAC5D,SAAD,CAA5C;;AAEA,MAAIgE,WAAW,GAAGD,WAAlB,EAA+B;AAC7B,WAAOL,mBAAmB,CAACO,KAA3B;AACD;;AACD,MAAID,WAAW,GAAGD,WAAlB,EAA+B;AAC7B,WAAOL,mBAAmB,CAACQ,MAA3B;AACD;;AACD,SAAOR,mBAAmB,CAACG,KAA3B;AACD;;;;;;ACnMD,IAAMM,gBAAgB,gBAAG,QAAOC,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;;AAIA,IAAMC,cAAc;AAAA;AAAA;AAAA,cACR;AAAA,MAAGC,SAAH,QAAGA,SAAH;AAAA,SAAoBA,SAAS,GAAG,SAAH,GAAe,SAA5C;AAAA,CADQ,yCAGE;AAAA,MAAG3P,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBmH,gBAAnC;AAAA,CAHF,cAIR;AAAA,MAAGtH,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBqH,qBAAhD;AAAA,CAJQ,iHAYhB;AAAA,MAAGmI,SAAH,SAAGA,SAAH;AAAA,SACAA,SAAS,IACTC,SADS,qGADT;AAAA,CAZgB,gCAmBI;AAAA,MAAG5P,KAAH,SAAGA,KAAH;AAAA,MAAU2P,SAAV,SAAUA,SAAV;AAAA,SAClBA,SAAS,GAAG3P,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBmH,gBAAvB,GAA0CtH,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBsH,uBADrD;AAAA,CAnBJ,8nUAApB;;AAwBA,IAAMoI,UAAU,gBAAG,QAAOnO,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;;AAKA,IAAMoO,mBAAmB,gBAAG,QAAOpO,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAzB;;AAIA,IAAMqO,2BAA2B;AAAA;AAAA;AAAA,mDAItB;AAAA,MAAG/P,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyB2H,SAAxC;AAAA,CAJsB,sqUAAjC;;AAUA,IAAM6H,aAAa,gBAAG,QAAOtO,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAnB;;AAMA,IAAMuO,YAAY;AAAA;AAAA;AAAA,oEAIF;AAAA,MAAGjQ,KAAH,SAAGA,KAAH;AAAA,SAAeiG,gBAAgB,CAACjG,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBK,YAApB,CAA/B;AAAA,CAJE,woUAAlB;;AAqBA,SAAgBwH;MACdC,mBAAAA;MACAC,iBAAAA;MACA5L,aAAAA;MACAO,sBAAAA;MACAsL,0BAAAA;MACAC,uBAAAA;MACA7L,sBAAAA;MACA8L,yBAAAA;MACAnC,4BAAAA;MACAa,iCAAAA;AAEA,MAAMjP,KAAK,GAAGsC,cAAQ,EAAtB;;AACA,kBAAkCkO,cAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,8BASIjM,aAAa,CAACkM,aATlB;AAAA,MACEC,WADF,yBACEA,WADF;AAAA,MAEEC,MAFF,yBAEEA,MAFF;AAAA,MAGEC,SAHF,yBAGEA,SAHF;AAAA,MAIEC,UAJF,yBAIEA,UAJF;AAAA,MAKEC,OALF,yBAKEA,OALF;AAAA,MAMEC,QANF,yBAMEA,QANF;AAAA,MAOEC,qBAPF,yBAOEA,qBAPF;AAAA,MAQEC,qBARF,yBAQEA,qBARF;AAUA,MAAMC,iBAAiB,GAAGC,iBAAU,CAACP,SAAD,CAAV,GAAwBA,SAAS,CAACtM,IAAD,CAAjC,GAA0CsM,SAApE;AACA,MAAMQ,eAAe,GAAGD,iBAAU,CAACL,OAAD,CAAV,GAAsBA,OAAO,CAACxM,IAAD,CAA7B,GAAsCwM,OAA9D;AAEA,MAAMO,WAAW,GAIb;AACF3M,IAAAA,KAAK,EAAEwL,QAAQ,GAAI5L,IAAI,CAACgN,sBAAL,GAA8BJ,iBAA9B,GAAkDE,eAAtD,GAAyEL,QADtF;AAEFhO,IAAAA,QAAQ,EAAE,KAFR;AAGFwO,IAAAA,aAAa,EAAEjN,IAAI,CAACgN,sBAAL,GACXxL,8BAAsB,CAAC0L,cADZ,GAEXrB,iBAAiB,GACjBrK,8BAAsB,CAAC2L,qBADN,GAEjB3L,8BAAsB,CAAC4L;AAPzB,GAJJ;AAaA,MAAMC,aAAa,GAAGrN,IAAI,CAACsN,WAAL,KAAqBC,iBAAW,CAACC,MAAvD;;AAEA,8BAAuCpI,kCAAkC,CAAC;AACxEC,IAAAA,eAAe,EAAErF,IAAI,CAACqF,eADkD;AAExEG,IAAAA,OAAO,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAZ;AAF+D,GAAD,CAAzE;AAAA,MAAegI,mBAAf,yBAAQtH,KAAR;;AAKA,MAAInG,IAAI,CAAC0N,SAAL,IAAkB,CAAC1N,IAAI,CAAC2N,qBAAxB,IAAiD,CAAC9B,iBAAtD,EAAyE;AACvEkB,IAAAA,WAAW,CAAC3M,KAAZ,GAAoBmM,UAAU,CAACvM,IAAD,CAA9B;AACA+M,IAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAACoM,WAAnD;AACD,GAHD,MAGO,IAAI5N,IAAI,CAAC2N,qBAAL,IAA8B,CAAC9B,iBAAnC,EAAsD;AAC3D,QAAMgC,mBAAmB,GAAGtN,aAAa,KAAKP,IAAI,CAAC8N,gCAAnD;;AAEA,QACED,mBAAmB,IAClB7N,IAAI,CAACsN,WAAL,IAAoB,CAACC,iBAAW,CAACQ,IAAb,EAAmBR,iBAAW,CAACC,MAA/B,EAAuCrM,QAAvC,CAAgDnB,IAAI,CAACsN,WAArD,CAFvB,EAGE;AACA,UAAMU,cAAc,GAAGxD,gCAAgC,CAACC,wBAAD,EAA2Bb,mBAA3B,CAAvD;;AACA,cAAQoE,cAAR;AACE,aAAKzD,mBAAmB,CAACO,KAAzB;AACEiC,UAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAACyM,oBAAnD;AACAlB,UAAAA,WAAW,CAAC3M,KAAZ,GAAoBwM,iBAApB;AACA;;AACF,aAAKrC,mBAAmB,CAACQ,MAAzB;AACEgC,UAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAACyM,oBAAnD;AACAlB,UAAAA,WAAW,CAAC3M,KAAZ,GAAoB0M,eAApB;AACA;;AAEF;AACEC,UAAAA,WAAW,CAAC3M,KAAZ,GAAoBgM,WAApB;AACAW,UAAAA,WAAW,CAACtO,QAAZ,GAAuB,IAAvB;AACA;AAbJ;AAeD,KApBD,MAoBO;AACLsO,MAAAA,WAAW,CAAC3M,KAAZ,GAAoBsM,qBAAqB,CAACnM,aAAD,CAAzC;AACAwM,MAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAAC0M,qBAAnD;AACD;AACF,GA3BM,MA2BA,IAAIb,aAAJ,EAAmB;AACxBN,IAAAA,WAAW,CAAC3M,KAAZ,GAAoB,OAAOiM,MAAP,KAAkB,UAAlB,GAA+BA,MAAM,CAAC;AAAErM,MAAAA,IAAI,EAAJA,IAAF;AAAQ6H,MAAAA,qBAAqB,EAAEtH;AAA/B,KAAD,CAArC,GAAwF8L,MAA5G;AACAU,IAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAAC2M,0BAAnD;AACD;;AAED,MAAIxC,UAAU,IAAI3L,IAAI,CAACqF,eAAvB,EAAwC;AACtC0H,IAAAA,WAAW,CAACtO,QAAZ,GAAuB,KAAvB;AACAsO,IAAAA,WAAW,CAAC3M,KAAZ,GAAoBuM,qBAApB;AACAI,IAAAA,WAAW,CAACE,aAAZ,GAA4BzL,8BAAsB,CAAC4M,wBAAnD;AACD;;AAED,MAAMC,UAAU,GAAGpC,SAAS,IAAIc,WAAW,CAACtO,QAA5C;AACA,SACEP,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACuN,YAAD;AAAcxN,IAAAA,SAAS,EAAC;GAAxB,EACG0N,UAAU,IAAI8B,mBAAd,GACCvP,4BAAA,CAACoN,mBAAD;AAAqB7N,IAAAA,KAAK,EAAC;AAAYpB,IAAAA,OAAO,EAAC;AAAQ4B,IAAAA,SAAS,EAAC;GAAjE,EACGwP,mBADH,EACwB,GADxB,EAEEvP,4BAAA,CAACqN,2BAAD;AACE9N,IAAAA,KAAK,EAAC;AACN6Q,IAAAA,OAAO,EAAE;AACPpC,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACAqC,MAAAA,OAAO,CAACC,OAAR,CAAgB1C,cAAc,CAACiB,WAAW,CAACE,aAAb,CAA9B,aAAmE;AAAA,eAAMf,YAAY,CAAC,KAAD,CAAlB;AAAA,OAAnE;AACD;GALH,EAMGa,WAAW,CAAC3M,KANf,CAFF,CADD,GAaClC,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACgN,cAAD;AACEjN,IAAAA,SAAS,EAAC;yCACuB+B,IAAI,CAACN;AACtCjB,IAAAA,QAAQ,EAAE4P;iBACCA;AACXC,IAAAA,OAAO,EAAE;AACPpC,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACAqC,MAAAA,OAAO,CAACC,OAAR,CAAgB1C,cAAc,CAACiB,WAAW,CAACE,aAAb,CAA9B,aAAmE;AAAA,eAAMf,YAAY,CAAC,KAAD,CAAlB;AAAA,OAAnE;AACD;GARH,EASEhO,4BAAA,CAACmN,UAAD;AAAYpN,IAAAA,SAAS,EAAC;AAAiC5B,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAA1E,EACGsP,WAAW,CAAC3M,KADf,CATF,EAYG6L,SAAS,IAAI/N,4BAAA,CAAC8M,gBAAD;AAAkBvN,IAAAA,KAAK,EAAEjC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyByC;AAAUgQ,IAAAA,OAAO;AAACC,IAAAA,IAAI,EAAE;GAA1E,CAZhB,CADF,EAgBG,CAAC3C,gBAAD,GACC7N,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEmR,MAAAA,MAAM,EAAE;AAAV;GAAZ,CADD,GAGCzQ,4BAAA,CAACsN,aAAD;AAAevN,IAAAA,SAAS,EAAC;AAA6B5B,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAAzE,EACGuC,IAAI,CAAC2N,qBAAL,IAA8B3N,IAAI,CAAC4O,aAAnC,IACC1Q,4BAAA,wBAAA,MAAA,EACEA,4BAAA,IAAA,MAAA,EAAI8B,IAAI,CAAC4O,aAAT,SAAA,CADF,4BAAA,CAFJ,CAnBJ,CAdJ,CADF,CADF;AAgDD;;AChOD,IAAIC,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AACtD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,8cAA8c;AACrd,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACZK,IAAMiU,sBAAsB,GAAG,SAAzBA,sBAAyB;MACpClH,cAAAA;2BACAmH;MAAAA,sCAAWC,cAAQ,CAACC;MACpBC,cAAAA;mCACA5T;MAAAA,2DAAwB;mCACxB6T;MAAAA,2DAAwB;AAQxB,MAAMC,cAAc,GAAGL,QAAQ,CAACrM,QAAT,EAAvB;AACA,MAAM2M,cAAc,GAAGC,qBAAqB,CAACF,cAAD,CAA5C;AACA,MAAIG,cAAc,GAAG,IAAIC,IAAI,CAACC,YAAT,CAAsBP,MAAtB;AACnB5T,IAAAA,qBAAqB,EAArBA,qBADmB;AAEnB6T,IAAAA,qBAAqB,EAArBA,qBAFmB;AAGnB3R,IAAAA,KAAK,EAAE,UAHY;AAInBuR,IAAAA,QAAQ,EAAEK;AAJS,KAKfC,cAAc,GAAG;AAAEK,IAAAA,eAAe,EAAE;AAAnB,GAAH,GAAiC,EALhC,GAMlBvK,MANkB,CAMXyC,MAAM,IAAI,CANC,CAArB;;AAQA,MAAIyH,cAAJ,EAAoB;AAClBE,IAAAA,cAAc,GAAGA,cAAc,CAACI,OAAf,CAAuBP,cAAvB,EAAuCC,cAAvC,CAAjB;AACD;;;AAGDE,EAAAA,cAAc,GAAGA,cAAc,CAACI,OAAf,CAAuB,KAAvB,EAA8B,EAA9B,CAAjB;AAEA,SAAOJ,cAAP;AACD,CA/BM;;SCHSK,gBAAgBC;gCAAkD;MAAhCX,cAAAA;;AAChD,SAAO,IAAIM,IAAI,CAACC,YAAT,CAAsBP,MAAtB,EAA8B/J,MAA9B,CAAqC0K,MAArC,CAAP;AACD;;SCeeC;MACdC,kBAAAA;MACAC,8BAAAA;MACAnI,6BAAAA;MACAqH,cAAAA;MACApH,oCAAAA;MACA7H,qBAAAA;MACAwK,gCAAAA;;AAEA,cAA6BuF,sBAAsB,IAAID,UAAU,CAAC,CAAD,CAAjE;AAAA,MAAQnI,MAAR,SAAQA,MAAR;AAAA,MAAgBmH,QAAhB,SAAgBA,QAAhB;;AACA,MAAMkB,WAAW,GAAGrI,MAAM,IAAI,CAA9B;AAEA,MAAMsI,aAAa,GAAGH,UAAU,CAACzO,MAAX,KAAsB,CAA5C;AACA,MAAI6O,WAAW,GACbtI,qBAAqB,KAAKvB,mBAAa,CAACyB,QAAxC,IAAoDD,4BAApD,GAAmFmI,WAAW,GAAG,EAAjG,GAAsGA,WADxG;AAGA,MAAI9I,KAAJ;AACA,MAAIiJ,SAAJ;AACA,MAAMC,WAAW,GAAGpQ,aAAa,CAACU,KAAd,CAAoB0P,WAApB,CAClBvI,4BAA4B,GAAGxB,mBAAa,CAACgK,OAAjB,GAA2BhK,mBAAa,CAACyB,QADnD,CAApB;AAGA,MAAIwI,IAAI,GAAGF,WAAX;;AAEA,uDAAoBN,UAApB,wCAAgC;AAAA,QAArBpP,MAAqB;;AAC9B,QAAIA,MAAK,CAACoJ,aAAN,IAAuBpJ,MAAK,CAACwG,KAAjC,EAAwC;AACtC,UAAMC,QAAQ,GAAG,CAAAqD,wBAAwB,QAAxB,YAAAA,wBAAwB,CAAG9J,MAAK,CAACvB,OAAN,CAAeyH,SAAlB,CAAxB,KAAwD,CAAzE;AACAM,MAAAA,KAAK,GAAGxG,MAAK,CAACwG,KAAd;AACAiJ,MAAAA,SAAS,GAAGpJ,mBAAmB,CAACrG,MAAD,CAA/B;AAEAwP,MAAAA,WAAW,IAAIlH,kBAAkB,CAACtI,MAAD,EAAQyG,QAAR,EAAkBS,qBAAlB,EAAyCC,4BAAzC,CAAjC;AACD;AACF;;AAED,MAAIoI,aAAJ,EAAmB;AAAA;;AACjB,QAAMvP,KAAK,GAAGoP,UAAU,CAAC,CAAD,CAAxB;AACA,QAAMS,cAAc,GAClB7P,KAAK,CAAC8P,SAAN,IAAmB9P,KAAK,CAAC8P,SAAN,GAAkB,CAArC,YACWb,eAAe,CAACjP,KAAK,CAAC8P,SAAP,CAD1B,UAC+C,mBAAA9P,KAAK,CAACvB,OAAN,oCAAenE,WAAf,yBAA8B0F,KAAK,CAACvB,OAApC,qBAA8B,gBAAeK,KAA7C,KAAsD,EADrG,cAEW,oBAAAkB,KAAK,CAACvB,OAAN,qCAAeK,KAAf,KAAwB,EAFnC,CADF;;AAKA,QAAIkB,KAAK,CAACwJ,YAAN,KAAuBC,kBAAY,CAACC,OAApC,IAA+C,CAAC1J,KAAK,CAACoJ,aAA1D,EAAyE;AACvEwG,MAAAA,IAAI,GAAMC,cAAN,SAAwBH,WAA5B;AACD,KAFD,MAEO,IAAI1P,KAAK,CAACwJ,YAAN,KAAuBC,kBAAY,CAACsG,UAAxC,EAAoD;AACzDH,MAAAA,IAAI,QAAMC,cAAV;AACD;AACF;;AAED,SAAO;AACL7P,IAAAA,KAAK,EAAEmO,sBAAsB,CAAC;AAAElH,MAAAA,MAAM,EAAEuI,WAAV;AAAuBpB,MAAAA,QAAQ,EAARA,QAAvB;AAAiCG,MAAAA,MAAM,EAANA;AAAjC,KAAD,CADxB;AAELqB,IAAAA,IAAI,EAAJA,IAFK;AAGLpJ,IAAAA,KAAK,EAALA,KAHK;AAILiJ,IAAAA,SAAS,EAATA;AAJK,GAAP;AAMD;;SC3DeO,aACd3Q,MACAO,eACAN,eACAiP,QACApH,8BACA2C;AAEA,UAAQzK,IAAI,CAACsN,WAAb;AACE,SAAKC,iBAAW,CAACQ,IAAjB;AACE,UAAI,OAAO9N,aAAa,CAACU,KAAd,CAAoBiQ,IAA3B,KAAoC,UAAxC,EAAoD;AAClD,eAAO3Q,aAAa,CAACU,KAAd,CAAoBiQ,IAApB,CAAyB5Q,IAAI,CAAC6Q,eAA9B,CAAP;AACD;;AAED,aAAO5Q,aAAa,CAACU,KAAd,CAAoBiQ,IAA3B;;AACF,SAAKrD,iBAAW,CAACC,MAAjB;AACE,aAAO;AACL7M,QAAAA,KAAK,EACH,OAAOV,aAAa,CAACU,KAAd,CAAoB0L,MAA3B,KAAsC,UAAtC,GACIpM,aAAa,CAACU,KAAd,CAAoB0L,MAApB,CAA2B;AAAErM,UAAAA,IAAI,EAAJA,IAAF;AAAQ6H,UAAAA,qBAAqB,EAAEtH;AAA/B,SAA3B,CADJ,GAEIN,aAAa,CAACU,KAAd,CAAoB0L;AAJrB,OAAP;;AAMF,SAAKkB,iBAAW,CAACuD,IAAjB;AAAuB;AAAA;;AACrB,YAAMf,UAAU,GAAG/P,IAAI,CAACS,WAAL,CAAiBC,MAAjB,CAAwB,UAACqQ,UAAD;AAAA,iBAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,SAAxB,CAAnB;AACA,YAAMyP,sBAAsB,4BAAGhQ,IAAI,CAACgR,4BAAR,qBAAG,sBAAmCpK,IAAnC,CAC7B,UAACmK,UAAD;AAAA,iBAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,SAD6B,CAA/B;;AAIA,YAAI,EAACwP,UAAD,YAACA,UAAU,CAAEzO,MAAb,KAAuB,CAAC0O,sBAA5B,EAAoD;AAClD,iBAAO;AACLrP,YAAAA,KAAK,EAAEV,aAAa,CAACU,KAAd,CAAoBsQ;AADtB,WAAP;AAGD;;AAED,YAAMC,UAAU,GAAG;AACjBnB,UAAAA,UAAU,EAAVA,UADiB;AAEjBC,UAAAA,sBAAsB,EAAtBA,sBAFiB;AAGjBnI,UAAAA,qBAAqB,EAAEtH,aAHN;AAIjBkK,UAAAA,wBAAwB,EAAEA,wBAAwB,IAAI;AAJrC,SAAnB;AAOA,eAAOxK,aAAa,CAACU,KAAd,CAAoBwQ,IAApB,GACHlR,aAAa,CAACU,KAAd,CAAoBwQ,IAApB,cAA8BD,UAA9B;AAA0ClR,UAAAA,IAAI,EAAJA;AAA1C,WADG,GAEH8P,gBAAgB,cAAMoB,UAAN;AAAkBhC,UAAAA,MAAM,EAANA,MAAlB;AAA0BpH,UAAAA,4BAA4B,EAA5BA,4BAA1B;AAAwD7H,UAAAA,aAAa,EAAbA;AAAxD,WAFpB;AAGD;;AACD;AACE,aAAO;AACLU,QAAAA,KAAK,EAAE;AADF,OAAP;AAtCJ;AA0CD;;;AC7DD;AAOA,IAAMyQ,YAAY,gBAAG,QAAOC,iBAAP;AAAoBC,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAAvC;AAAA;AAAA;AAAA,EAAH,6DAII;MAAGhW,aAAAA;MAAOiW,gBAAAA;MAAUC,cAAAA;;AACtC,MAAID,QAAJ,EAAc;AACZ,WAAOjW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB6H,OAA3B;AACD;;AACD,MAAIkO,MAAJ,EAAY;AACV,WAAOlW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBI,KAA3B;AACD;;AACD,SAAO,EAAP;AACD,CAZe,gCAeM;MAAGP,cAAAA;MAAOiW,iBAAAA;MAAUC,eAAAA;;AACtC,MAAID,QAAJ,EAAc;AACZ,WAAOjW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB8H,WAA3B;AACD;;AACD,MAAIiO,MAAJ,EAAY;AACV,WAAOlW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB4H,SAA3B;AACD;;AACD,SAAO,EAAP;AACD,CAvBa,sgDAAlB;;AA2BA,AAAO,IAAMoO,MAAM,GAAG,SAATA,MAAS;4BAAGtV;MAAAA,qCAAU;MAAee;;AAChD,SAAOc,4BAAA,CAACkT,YAAD;AAAc/U,IAAAA,OAAO,EAAEA;KAAae,MAApC,CAAP;AACD,CAFM;;AC9BA,IAAMwU,UAAU,gBAAGC,MAAM,CAACC,SAAD,CAAN,CAAsC;AAAA,MAAGtW,KAAH,QAAGA,KAAH;AAAA,SAAgB;AAC9E,gCAA4B;AAC1BmT,MAAAA,MAAM,EAAE,MADkB;AAE1BoD,MAAAA,YAAY,EAAEvW,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MAFP;AAG1BqN,MAAAA,QAAQ,EAAE;AACRC,QAAAA,WAAW,EAAEzW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH;AADzB,OAHgB;AAM1B,4CAAsC;AACpCkP,QAAAA,WAAW,EAAEzW,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBqH;AADG;AANZ,KADkD;AAW9E;AACEkP,MAAAA,OAAO,EAAE,UADX;AAEEH,MAAAA,YAAY,EAAEvW,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MAFnC;AAGEC,MAAAA,UAAU,EAAEpJ,KAAK,CAACE,KAAN,CAAYkB,UAAZ,CAAuBgI,UAHrC;AAIEnH,MAAAA,KAAK,EAAEjC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBJ;AAJlC,OAKKJ,KAAK,CAACE,KAAN,CAAYkB,UAAZ,CAAuBI,IAL5B,CAX8E;AAkB9E,oBAAgB;AACd4H,MAAAA,UAAU,EAAEpJ,KAAK,CAACE,KAAN,CAAYkB,UAAZ,CAAuBgI;AADrB;AAlB8D,GAAhB;AAAA,CAAtC,CAAnB;;;ACAA,IAAMuN,kBAAkB,gBAAG,QAAOC,IAAP;AAAed,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAAlC;AAAA;AAAA;AAAA,EAAH,iCAKX;AAAA,MAAGa,cAAH,QAAGA,cAAH;AAAA,SAAwBA,cAAc,IAAI,KAA1C;AAAA,CALW,WAMtB;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,SAAcA,IAAd;AAAA,CANsB,2tCAAxB;AASP,AAAO,IAAMC,uBAAuB,gBAAG,QAAOJ,kBAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAA7B;AAOP,AAAO,IAAMK,cAAc,gBAAG,QAAOJ,IAAP;AAAA;AAAA;AAAA,EAAH,4BAGf;AAAA,MAAGK,IAAH,SAAGA,IAAH;AAAA,SAAcA,IAAd;AAAA,CAHe,0tCAApB;AAOP,AAAO,IAAMC,QAAQ,gBAAG,QAAOC,mBAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAd;;;;ACrBP,IAAMC,gBAAgB,gBAAG,QAAOR,IAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;;AAKA,SAAgBS;AACd,SACE3U,4BAAA,CAAC0U,gBAAD;AAAkBE,IAAAA,SAAS;GAA3B,EACE5U,4BAAA,CAACiU,kBAAD;AAAoBY,IAAAA,IAAI;YAAO;GAA/B,EACE7U,4BAAA,CAACwU,QAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKrE,IAAAA,MAAM,EAAE;GAA9B,CADF,EAEEzQ,4BAAA,CAACwU,QAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKrE,IAAAA,MAAM,EAAE;GAA9B,CAFF,CADF,EAMEzQ,4BAAA,CAAC+U,SAAD;AAAShV,IAAAA,SAAS,EAAC;AAAqCiV,IAAAA,EAAE,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAX;GAA5D,CANF,EAQEjV,4BAAA,CAAC0U,gBAAD;AAAkBG,IAAAA,IAAI;GAAtB,EACE7U,4BAAA,CAACwU,QAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKrE,IAAAA,MAAM,EAAE;GAA9B,CADF,EAGEzQ,4BAAA,CAACqU,uBAAD;YAA+B;AAAIa,IAAAA,SAAS,EAAE;GAA9C,EACElV,4BAAA,CAACwU,QAAD;AAAU/D,IAAAA,MAAM,EAAE;GAAlB,CADF,EAEEzQ,4BAAA,CAACwU,QAAD;AAAU/D,IAAAA,MAAM,EAAE;GAAlB,CAFF,CAHF,EAQEzQ,4BAAA,CAACiU,kBAAD;YAA0B;AAAKiB,IAAAA,SAAS,EAAE;GAA1C,EACElV,4BAAA,CAACsU,cAAD;AAAgBC,IAAAA,IAAI,EAAE;GAAtB,EACEvU,4BAAA,CAACwU,QAAD;AAAU/D,IAAAA,MAAM,EAAE;GAAlB,CADF,CADF,EAKEzQ,4BAAA,CAACsU,cAAD;AAAgBC,IAAAA,IAAI,EAAE;GAAtB,EACEvU,4BAAA,CAACwU,QAAD;AAAU/D,IAAAA,MAAM,EAAE;GAAlB,CADF,CALF,CARF,CARF,CADF;AA6BD;;ACvCM,IAAM0E,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD;AAAA,SAA4CA,CAAC,CAACC,MAAF,CAAyBC,IAAzB,EAA5C;AAAA,CAAtB;;SCKSC;MACdT,aAAAA;MACA5C,iBAAAA;MACAsD,aAAAA;MACAC,oBAAAA;AAIA,SACEzV,4BAAA,CAAC0T,UAAD;AACEgC,IAAAA,IAAI,EAAC;AACLC,IAAAA,OAAO,EAAER;AACTS,IAAAA,SAAS;AACTZ,IAAAA,EAAE,EAAE;AAAEa,MAAAA,SAAS,EAAE,MAAb;AAAqBf,MAAAA,KAAK,EAALA;AAArB;AACJgB,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EACV/V,4BAAA,CAACgW,cAAD;AAAgBC,QAAAA,QAAQ,EAAC;OAAzB,EACEjW,4BAAA,CAAChB,UAAD;AAAYb,QAAAA,OAAO,EAAC;AAAQoB,QAAAA,KAAK,EAAC;OAAlC,EACG2S,SADH,CADF;AAFQ;AASZsD,IAAAA,KAAK,EAAEA;AACPU,IAAAA,QAAQ,EAAE,kBAACC,KAAD;;;AACR,UAAMjN,QAAQ,GAAGiN,KAAK,QAAL,qBAAAA,KAAK,CAAEd,MAAP,2BAAeG,KAAf,GAAuBY,MAAM,CAACD,KAAD,sCAACA,KAAK,CAAEd,MAAR,qBAAC,eAAeG,KAAhB,CAA7B,GAAsD,IAAvE;;AACA,UAAItM,QAAJ,EAAc;AACZuM,QAAAA,YAAY,CAACvM,QAAD,CAAZ;AACD;AACF;GApBH,CADF;AAwBD;;AC5BD,IAAMmN,UAAU,gBAAG,QAAOC,MAAP;AAAA;AAAA;AAAA,EAAH,8GAMI;AAAA,MAAGhZ,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAnC;AAAA,CANJ,80FAAhB;;AAUA,IAAM0R,SAAS,gBAAG,QAAOC,aAAP;AAAA;AAAA;AAAA,EAAH,0GAMK;AAAA,MAAGlZ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CANL,41FAAf;;AAUA,SAAgB+Y;MACdjB,cAAAA;MACAkB,oBAAAA;MACAxE,kBAAAA;MACAjJ,cAAAA;MACAwM,qBAAAA;;AAIA,MAAI,CAACxM,KAAL,EAAY;AACV,WAAO,IAAP;AACD;;AAED,SACEjJ,4BAAA,CAACqW,UAAD;AACEb,IAAAA,KAAK,EAAEA,KAAK,CAAChR,QAAN;AACPoR,IAAAA,SAAS;AACTM,IAAAA,QAAQ,EAAE,kBAACC,KAAD;;;AACR,UAAMjN,QAAQ,GAAGiN,KAAK,QAAL,qBAAAA,KAAK,CAAEd,MAAP,2BAAeG,KAAf,GAAuBY,MAAM,CAACD,KAAD,sCAACA,KAAK,CAAEd,MAAR,qBAAC,eAAeG,KAAhB,CAA7B,GAAsD,IAAvE;;AACA,UAAItM,QAAJ,EAAc;AACZuM,QAAAA,YAAY,CAACvM,QAAD,CAAZ;AACD;AACF;AACD7F,IAAAA,EAAE,EAAEqT;AACJC,IAAAA,KAAK,EAAE3W,4BAAA,CAACuW,SAAD,MAAA;AACPK,IAAAA,SAAS,EAAE;AACTC,MAAAA,aAAa,EAAE;AAAEC,QAAAA,cAAc,EAAE;AAAlB,OADN;AAETC,MAAAA,UAAU,EAAE;AACV/B,QAAAA,EAAE,EAAE;AAAEE,UAAAA,SAAS,EAAE,KAAb;AAAoBrB,UAAAA,YAAY,EAAE;AAAlC;AADM;AAFH;GAXb,EAiBGlR,UAAG,CAACsG,KAAD,EAAQ,UAACO,IAAD;AAAA;;AAAA,WACVxJ,4BAAA,CAACgX,QAAD;AAAUjX,MAAAA,SAAS,EAAC;AAAkC6C,MAAAA,GAAG,EAAE4G,IAAI,CAACD;AAAMiM,MAAAA,KAAK,gBAAEhM,IAAI,CAACD,IAAP,qBAAE,WAAW/E,QAAX;KAA7E,EACExE,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;AAAQoB,MAAAA,KAAK,EAAC;AAAUD,MAAAA,KAAK,EAAE;AAAE2X,QAAAA,UAAU,EAAE;AAAd;KAAnD,EACGha,YAAY,CAACuM,IAAI,CAACD,IAAN,CADf,KAAA,EAC6B2I,SAD7B,CADF,CADU;AAAA,GAAR,CAjBN,CADF;AA2BD;;;;ACrDD,IAAMgF,iBAAiB,gBAAG,QAAOlY,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAvB;;AAIA,SAAgBmY,qBAAqBjY;AACnC,MAAQ+J,KAAR,GAAkB/J,KAAlB,CAAQ+J,KAAR;AAEA,SACEjJ,4BAAA,CAACkX,iBAAD;AAAmBxX,IAAAA,EAAE,EAAC;AAAMK,IAAAA,SAAS,EAAC;GAAtC,EACGqL,oBAAoB,CAACnC,KAAD,CAApB,GAA8BjJ,4BAAA,CAACuV,kBAAD,oBAAwBrW,MAAxB,CAA9B,GAAkEc,4BAAA,CAACyW,gBAAD,oBAAsBvX,MAAtB,CADrE,CADF;AAKD;;;ACrBD,IAAMkY,UAAU,GAAG,GAAnB;;AAEA,IAAMC,kBAAkB,gBAAG,QAAOrY,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAxB;;AAKA,IAAMsY,QAAQ,gBAAG,QAAOtY,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAd;;AAIA,IAAMuY,SAAS,gBAAG,QAAOvY,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAf;;AAaA,SAASwY,kBAAT;MACE1V,YAAAA;MACAO,qBAAAA;MACAoV,uBAAAA;MACAC,wBAAAA;MACA3V,qBAAAA;AAEA,MAAM4V,QAAQ,GAAG7V,IAAI,CAACS,WAAL,CAAiBmG,IAAjB,CAAsB,UAACmK,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAAtB,CAAjB;AAEA,MAAIuV,OAAO,GAAGR,UAAd;;AACA,MAAIO,QAAQ,IAAIF,eAAZ,IAA+BC,gBAAnC,EAAqD;AACnDE,IAAAA,OAAO,GAAG,CAAA7V,aAAa,CAACU,KAAd,CAAoBJ,aAApB,oBAAAN,aAAa,CAACU,KAAd,CAAoBJ,aAApB,CAAoCA,aAApC,oBAAkEA,aAAa,CAACwV,WAAd,EAA5E;AACD;;AAED,SACE7X,4BAAA,CAAChB,UAAD;AAAYK,IAAAA,IAAI;AAACU,IAAAA,SAAS,EAAC;AAAkC5B,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAAhF,EACGqY,OADH,CADF;AAKD;;AAED,AAAO,IAAME,SAAS,GAAG,SAAZA,SAAY;;;MACvBC,uBAAAA;MACAC,yBAAAA;MACAC,0BAAAA;MACAC,qBAAAA;MACApW,aAAAA;MACAO,sBAAAA;MACAN,sBAAAA;MACAiP,eAAAA;MACAyG,wBAAAA;MACAC,yBAAAA;MACAnL,iCAAAA;MACA4L,oCAAAA;;AAeA,sBAA0C1F,YAAY,CACpD3Q,IADoD,EAEpDO,aAFoD,EAGpDN,aAHoD,EAIpDiP,MAJoD,EAKpDyG,eALoD,EAMpDlL,wBANoD,CAAtD;AAAA,MAAQ9J,KAAR,iBAAQA,KAAR;AAAA,MAAe4P,IAAf,iBAAeA,IAAf;AAAA,MAAqBpJ,KAArB,iBAAqBA,KAArB;AAAA,MAA4BiJ,SAA5B,iBAA4BA,SAA5B;;;AAUA,MAAMnG,WAAW,GAAGjK,IAAI,CAACS,WAAL,CAAiBmG,IAAjB,CAAsB,UAAC0P,SAAD;AACxC,WAAOA,SAAS,CAAC/V,aAAV,KAA4BA,aAA5B,IAA6C+V,SAAS,CAACvM,aAA9D;AACD,GAFmB,CAApB;AAGA,MAAMlD,SAAS,GAAGoD,WAAW,GAAGA,WAAW,CAAC7K,OAAZ,CAAqByH,SAAxB,GAAoC0P,SAAjE;AACA,MAAMrO,eAAe,4BAAGuC,wBAAwB,CAAC5D,SAAS,IAAI,EAAd,CAA3B,oCAAgD,CAArE;;AAEA,MAAM2P,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACpP,QAAD;AAClC,QAAI,CAACP,SAAL,EAAgB;AACd;AACD;;AAEDwP,IAAAA,2BAA2B,CAAC,UAACI,SAAD;AAAA;;AAAA,0BACvBA,SADuB,6BAEzB5P,SAFyB,IAEbO,QAFa;AAAA,KAAD,CAA3B;AAID,GATD;;AAWA,SACElJ,4BAAA,CAACqX,kBAAD;AAAoB3X,IAAAA,EAAE,EAAC;AAAMK,IAAAA,SAAS,EAAC;GAAvC,EACEC,4BAAA,wBAAA,MAAA,EACGiY,iBAAiB,IAChBjY,4BAAA,CAAChB,UAAD;AACEM,IAAAA,KAAK,EAAE;AAAEuW,MAAAA,SAAS,EAAE;AAAb;AACP9V,IAAAA,SAAS,EAAC;AACV5B,IAAAA,OAAO,EAAC;AACRoB,IAAAA,KAAK,EAAC;GAJR,EAKGwY,cAAc,GAAGhW,aAAa,CAACU,KAAd,CAAoB+V,iBAAvB,GAA2CpB,UAL5D,CAFJ,EAWEpX,4BAAA,CAACuX,SAAD;AAAWxX,IAAAA,SAAS,EAAC;AAAoB5B,IAAAA,OAAO,EAAC;GAAjD,EACGsE,KADH,CAXF,EAeGuV,gBAAgB,IACfhY,4BAAA,CAAChB,UAAD;AAAYU,IAAAA,EAAE,EAAC;AAAMK,IAAAA,SAAS,EAAC;AAA2CT,IAAAA,KAAK,EAAE;AAAEuW,MAAAA,SAAS,EAAE;AAAb;GAAjF,EACE7V,4BAAA,CAACsX,QAAD;AAAUvX,IAAAA,SAAS,EAAC;AAAwBV,IAAAA,IAAI;AAAClB,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAApE,EACG8S,IADH,CADF,EAKErS,4BAAA,CAACwX,kBAAD;AACE1V,IAAAA,IAAI,EAAEA;AACNO,IAAAA,aAAa,EAAEA;AACfqV,IAAAA,gBAAgB,EAAEA;AAClBD,IAAAA,eAAe,EAAEA;AACjB1V,IAAAA,aAAa,EAAEA;GALjB,CALF,CAhBJ,EA+BGmW,YAAY,GACXlY,4BAAA,CAACmX,oBAAD;AACET,IAAAA,WAAW,EAAK5U,IAAI,CAACuB,EAAV,SAAgBsF,SAAhB;AACXM,IAAAA,KAAK,EAAEA;AACPiJ,IAAAA,SAAS,EAAEA;AACXlH,IAAAA,SAAS,EAAEe,WAAF,oBAAEA,WAAW,CAAEf;AACxByK,IAAAA,YAAY,EAAE6C;AACd9C,IAAAA,KAAK,EAAExL;GANT,CADW,GAST,IAxCN,CADF,CADF;AA8CD,CApGM;;;ACvCP,IAAMyO,wBAAwB,GAAG,MAAjC;;AAEA,IAAMC,qBAAqB;AAAA;AAAA;AAAA,0CAEL;AAAA,MAAGpb,KAAH,QAAGA,KAAH;AAAA,MAAUqb,cAAV,QAAUA,cAAV;AAAA,SAClBA,cAAc,GAAGrb,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBiH,mBAAvB,GAA6CpH,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBgH,eAD7D;AAAA,CAFK,cAIf;AAAA,MAAGnH,KAAH,SAAGA,KAAH;AAAA,MAAUsb,cAAV,SAAUA,cAAV;AAAA,SACRA,cAAc,kBAAgBtb,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAApC,kBAA6DJ,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cADvF;AAAA,CAJe,kCAOd;AAAA,MAAGvH,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBI,WAAlC;AAAA,CAPc,8BASZ;AAAA,MAAGzI,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBC,YAAlC;AAAA,CATY,iBAUZ;AAAA,MAAGtI,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBE,YAAlC;AAAA,CAVY,m2SAA3B;;AAiBA,IAAMgT,UAAU,gBAAG,QAAO7Z,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;;AAIA,IAAM+V,OAAO;AAAA;AAAA;AAAA,8CAGS;AAAA,MAAGzX,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAnC;AAAA,CAHT,4xSAAb;;AAOA,IAAMiU,eAAe,gBAAG,QAAO9Z,UAAP;AAAA;AAAA;AAAA,EAAH,gBACL;AAAA,MAAG1B,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBO,oBAAlC;AAAA,CADK,kBAEL;AAAA,MAAG5I,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBQ,oBAAlC;AAAA,CAFK,ywSAArB;;AAKA,IAAM4S,cAAc;AAAA;AAAA;AAAA,wBACE;AAAA,MAAGzb,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CADF,wzSAApB;;AAOA,IAAMsb,aAAa,gBAAG,QAAOha,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAnB;;AAKA,IAAMia,aAAa;AAAA;AAAA;AAAA,iEAIF;AAAA,MAAG3b,KAAH,UAAGA,KAAH;AAAA,SAAeiG,gBAAgB,CAACjG,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBM,eAApB,CAA/B;AAAA,CAJE,ywSAAnB;;AA4BA,IAAMiT,oBAAoB;AAAA;AAAA;AAAA,gDAGJ;AAAA,MAAG5b,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAnC;AAAA,CAHI,0zSAA1B;;AAQA,IAAMsU,kBAAkB,gBAAG,QAAOC,eAAP;AAAA;AAAA;AAAA,EAAH,yDAMZ;AAAA,MAAG9b,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBJ,OAAxC;AAAA,CANY,0wSAAxB;;AAUA,SAAS2b,iBAAT;2BAA6Bvb;MAAAA,gCAAO;MAAQwb,oBAAAA;AAC1C,SACEtZ,4BAAA,CAACkZ,oBAAD,MAAA,EACElZ,4BAAA,CAACkU,IAAD;AAAMqF,IAAAA,OAAO,EAAC;AAAOC,IAAAA,UAAU,EAAC;AAASC,IAAAA,GAAG,EAAE;GAA9C,EACEzZ,4BAAA,CAACmZ,kBAAD;mBAAiCG;GAAjC,CADF,EAEEtZ,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAC;AAAUpB,IAAAA,OAAO,EAAC;GAApC,EACGL,IADH,CAFF,CADF,CADF;AAUD;;AAED,SAAgB4b;;;MACd1B,0BAAAA;MACAE,sBAAAA;MACArK,0BAAAA;MACAH,kBAAAA;MACA5L,cAAAA;MACAO,uBAAAA;MACAsX,uBAAAA;MACAjO,6BAAAA;MACAkO,sCAAAA;MACAnC,yBAAAA;MACAC,0BAAAA;MACA/J,2BAAAA;MACAC,wBAAAA;MACA7L,uBAAAA;MACAiP,gBAAAA;MACAiH,2BAAAA;MACA4B,gCAAAA;MACAlO,gCAAAA;AAEA,MAAM8B,UAAU,GAAG3L,IAAI,CAAC2L,UAAL,IAAmB3L,IAAI,CAAC2L,UAAL,CAAgBpL,aAAhB,CAAtC;AACA,MAAMwP,UAAU,GAAG/P,IAAI,CAACS,WAAL,CAAiBC,MAAjB,CAAwB,UAACqQ,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAAxB,CAAnB;AACA,MAAMyP,sBAAsB,4BAAGhQ,IAAI,CAACgR,4BAAR,qBAAG,sBAAmCpK,IAAnC,CAC7B,UAACmK,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAD6B,CAA/B;AAGA,MAAM0V,cAAc,GAAGlG,UAAU,CAACzO,MAAX,GAAoB,CAApB,IAAyB,CAAC,EAAC0O,sBAAD,YAACA,sBAAsB,CAAEgI,yBAAzB,CAAjD;AACA,MAAMC,aAAa,GAAG,CAACF,sBAAD,IAA2B/X,IAAI,CAACsN,WAAL,KAAqBC,iBAAW,CAACC,MAAlF;AAEA,MAAI0K,SAAS,GAAG,IAAhB;;AACA,MAAIvM,UAAJ,EAAgB;AACduM,IAAAA,SAAS,GAAGha,4BAAA,CAACqZ,iBAAD;AAAmBvb,MAAAA,IAAI,EAAC;KAAxB,CAAZ;AACD,GAFD,MAEO,IAAI6b,aAAa,IAAI5X,aAAa,CAACkY,aAAnC,EAAkD;AACvDD,IAAAA,SAAS,GACPha,4BAAA,CAAC+Y,cAAD;AAAgBhZ,MAAAA,SAAS,EAAC;KAA1B,EACEC,4BAAA,CAACgZ,aAAD;AAAejZ,MAAAA,SAAS,EAAC;AAA6BR,MAAAA,KAAK,EAAC;AAAQE,MAAAA,IAAI;KAAxE,EACGsC,aAAa,CAACkY,aADjB,CADF,CADF;AAOD;;AAED,kBAAgEnM,cAAQ,CACtErC,yBAAyB,CAAC3J,IAAD,EAAOO,aAAP,EAAsBqJ,mBAAtB,EAA2CC,sBAA3C,CAD6C,CAAxE;AAAA,MAAOY,wBAAP;AAAA,MAAiC4L,2BAAjC;;AAIA,MAAM+B,iBAAiB,GAAG,SAApBA,iBAAoB,CAACnL,aAAD;AACxB,QAAMoL,uBAAuB,GAAsBC,MAAM,CAACC,IAAP,CAAY9N,wBAAZ,EAAsC5J,GAAtC,CAA0C,UAACgG,SAAD;AAAA,aAAgB;AAC3GA,QAAAA,SAAS,EAATA,SAD2G;AAE3GO,QAAAA,QAAQ,EAAEqD,wBAAwB,CAAC5D,SAAD;AAFyE,OAAhB;AAAA,KAA1C,CAAnD;AAKA,WAAOiF,cAAc,CAACmB,aAAD,EAAgBoL,uBAAhB,CAArB;AACD,GAPD;;AASA,SACEna,4BAAA,CAAC0Y,qBAAD;AACE3Y,IAAAA,SAAS,EAAEua,UAAU,YAAUxY,IAAI,CAACuB,EAAf,EAAqB,+BAArB,EAAsD;AACzE,4BAAsBvB,IAAI,CAAC2N;AAD8C,KAAtD;sBAGLkK;sBACA7X,IAAI,CAAC2N;GALvB,EAMGuK,SANH,EAQEha,4BAAA,CAACiZ,aAAD;AAAelZ,IAAAA,SAAS,EAAC;GAAzB,EACEC,4BAAA,CAAC6Y,UAAD;AAAY9Y,IAAAA,SAAS,EAAC;AAAoB5B,IAAAA,OAAO,EAAC;GAAlD,EACG2D,IAAI,CAACN,WADR,CADF,EAKGoY,4BAA4B,IAC3B5Z,4BAAA,CAAC8Y,eAAD;AAAiB/Y,IAAAA,SAAS,EAAC;AAAyB5B,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAAvE,EACGuC,IAAI,CAACyY,WADR,CANJ,EAWEva,4BAAA,CAAC8X,SAAD;AACEC,IAAAA,cAAc,EAAEA;AAChBC,IAAAA,gBAAgB,EAAEA;AAClBC,IAAAA,iBAAiB,EAAEA;AACnBC,IAAAA,YAAY,EAAEA;AACdpW,IAAAA,IAAI,EAAEA;AACNO,IAAAA,aAAa,EAAEA;AACfN,IAAAA,aAAa,EAAEA;AACfiP,IAAAA,MAAM,EAAEA;AACR0G,IAAAA,gBAAgB,EAAEA;AAClBD,IAAAA,eAAe,EAAEA;AACjBU,IAAAA,2BAA2B,EAAEA;AAC7B5L,IAAAA,wBAAwB,EAAEA;GAZ5B,CAXF,EA0BGwN,aAAa,GACZ/Z,4BAAA,CAACwN,kBAAD;AACEC,IAAAA,UAAU,EAAEA;AACZC,IAAAA,QAAQ,EAAEA;AACV5L,IAAAA,IAAI,EAAEA;AACN4J,IAAAA,mBAAmB,EAAEA;AACrBrJ,IAAAA,aAAa,EAAEA;AACfsL,IAAAA,iBAAiB,EAAEA;AACnBC,IAAAA,cAAc,EAAEsM;AAChBnY,IAAAA,aAAa,EAAEA;AACf8L,IAAAA,gBAAgB,EAAEA;AAClBtB,IAAAA,wBAAwB,EAAEA;GAV5B,CADY,GAcZvM,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEmR,MAAAA,MAAM,EAAEgI;AAAV;GAAZ,CAxCJ,EA2CEzY,4BAAA,CAAC+U,OAAD;AAAShV,IAAAA,SAAS,EAAC;GAAnB,CA3CF,CARF,EAsDEC,4BAAA,CAACoC,gBAAD;AAAkBN,IAAAA,IAAI,EAAEA;AAAMO,IAAAA,aAAa,EAAEA;AAAeN,IAAAA,aAAa,EAAEA;GAA3E,CAtDF,CADF;AA0DD;;;;ACnOD,IAAMyY,eAAe;AAAA;AAAA;AAAA,gDAGF;AAAA,MAAGld,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBS,mBAAlC;AAAA,CAHE,iCAKT;AAAA,MAAG9I,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAhD;AAAA,CALS,wBAMC;AAAA,MAAGvH,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBgH,eAAnC;AAAA,CAND,gzHAArB;;AAYA,IAAMgW,UAAU,gBAAG,QAAOzb,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;;AAIA,IAAM0b,YAAY,gBAAG,QAAOC,MAAP;AAAA;AAAA;AAAA,EAAH,+BAEJ;AAAA,MAAGrd,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBwH,YAAhD;AAAA,CAFI,kBAGA;AAAA,MAAG3H,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB0H,UAAnC;AAAA,CAHA,oDAOA;AAAA,MAAG7H,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAY6I,OAAZ,CAAoBC,KAAnC;AAAA,CAPA,kBAQA;AAAA,MAAGhJ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB2H,YAAnC;AAAA,CARA,wxHAAlB;;AAaA,SAASwV,YAAT;MAAwBC,iBAAAA;MAAUta,iBAAAA;AAChC,SACEP,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAEgB,QAAQ,GAAG,UAAH,GAAgB;AAAWR,IAAAA,SAAS,EAAC;GAA7E,EACG8a,QADH,SAAA,CADF;AAKD;;AAED,SAAgBC;MACdC,qBAAAA;MACApR,8BAAAA;MACAqR,+BAAAA;MACAC,gCAAAA;;AAOA,MAAIA,uBAAuB,CAAC7X,MAAxB,IAAkC,CAAtC,EAAyC;AACvC,WAAO,IAAP;AACD;;AAED,MAAM8X,sBAAsB,GAAGvR,qBAAqB,KAAKvB,mBAAa,CAACgK,OAAvE;AAEA,SACEpS,4BAAA,CAACwa,eAAD;AAAiBza,IAAAA,SAAS,EAAC;GAA3B,EACEC,4BAAA,CAACya,UAAD;AACEtc,IAAAA,OAAO,EAAC;AACR4B,IAAAA,SAAS,EAAC;AACVR,IAAAA,KAAK,EAAE2b,sBAAsB,GAAG,SAAH,GAAe;GAH9C,WAAA,CADF,EAOElb,4BAAA,CAAC0a,YAAD;AACE3a,IAAAA,SAAS,EAAC;AACVob,IAAAA,aAAa,EAAE;AACfC,IAAAA,WAAW,EAAE;AACb3K,IAAAA,MAAM,EAAE;AACRqE,IAAAA,KAAK,EAAE;AACPoB,IAAAA,QAAQ,EAAE,kBAACmF,kBAAD;AAAA,aACRL,sBAAsB,CAACK,kBAAkB,GAAGjT,mBAAa,CAACyB,QAAjB,GAA4BzB,mBAAa,CAACgK,OAA7D,CADd;AAAA;AAGVkJ,IAAAA,OAAO,EAAE,CAACJ;AACVrH,IAAAA,YAAY,EAAE;AACd0H,IAAAA,cAAc,EAAE;GAXlB,CAPF,EAoBEvb,4BAAA,CAACya,UAAD;AACEtc,IAAAA,OAAO,EAAC;AACR4B,IAAAA,SAAS,EAAC;AACVR,IAAAA,KAAK,EAAE,CAAC2b,sBAAD,GAA0B,SAA1B,GAAsC;GAH/C,UAAA,CApBF,EA0BGH,YAAY,KAAK,CAAjB,IAAsB/a,4BAAA,CAAC4a,YAAD;AAAcC,IAAAA,QAAQ,EAAEE;AAAcxa,IAAAA,QAAQ,EAAE2a;GAAhD,CA1BzB,CADF;AA8BD;;SCrFeM,sBAAsBC,cAA8BC;AAClE,MAAI,CAAC7T,KAAK,CAAC4T,YAAD,CAAN,IAAwB,CAAC5T,KAAK,CAAC6T,aAAD,CAAlC,EAAmD;AACjD,QAAMC,qBAAqB,GAAGD,aAAa,GAAG,EAA9C;AACA,WAAO/Q,IAAI,CAACiR,KAAL,CAAY,CAACH,YAAY,GAAGE,qBAAhB,IAAyCF,YAA1C,GAA0D,GAArE,CAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASI,0BAAT,CAAoC/Z,IAApC,EAAuDO,aAAvD;;;AACE,MAAIwQ,UAAJ;AAEAA,EAAAA,UAAU,4BAAG/Q,IAAI,CAACgR,4BAAR,qBAAG,sBAAmCpK,IAAnC,CAAwC,UAACjG,KAAD;AAAA,WAAWA,KAAK,CAACJ,aAAN,KAAwBA,aAAnC;AAAA,GAAxC,CAAb;;AAEA,MAAI,CAACwQ,UAAL,EAAiB;AACfA,IAAAA,UAAU,GAAG/Q,IAAI,CAACS,WAAL,CAAiBmG,IAAjB,CAAsB,UAACjG,KAAD;AAAA,aAAWA,KAAK,CAACJ,aAAN,KAAwBA,aAAnC;AAAA,KAAtB,CAAb;AACD;;AAED,MAAI,iBAACwQ,UAAD,aAAC,YAAYnJ,MAAb,CAAJ,EAAyB;AACvB,QAAMqC,WAAW,GAAGjK,IAAI,CAACS,WAAL,CAAiBmG,IAAjB,CAAsB,UAACjG,KAAD;AACxC,aAAOA,KAAK,CAACoJ,aAAN,IAAuBpJ,KAAK,CAACJ,aAAN,KAAwBA,aAAtD;AACD,KAFmB,CAApB;;AAIA,QAAI0J,WAAJ,EAAiB;AACf,aAAOhB,kBAAkB,CAACgB,WAAD,EAAc,CAAd,CAAzB;AACD;AACF;;AAED,yBAAO8G,UAAP,qBAAO,aAAYnJ,MAAnB;AACD;;AAED,SAAgBoS,6BAA6BC;AAC3C,SAAOA,KAAK,CAACC,MAAN,CAAa,UAACC,WAAD,EAAcna,IAAd;AAClB,QAAMoa,aAAa,GAAGL,0BAA0B,CAAC/Z,IAAD,EAAOsG,mBAAa,CAACgK,OAArB,CAAhD;AACA,QAAM+J,cAAc,GAAGN,0BAA0B,CAAC/Z,IAAD,EAAOsG,mBAAa,CAACyB,QAArB,CAAjD;AAEA,QAAMkR,YAAY,GAAGS,qBAAqB,CAACU,aAAD,EAAgBC,cAAhB,CAA1C;;AACA,QAAIpB,YAAJ,EAAkB;AAChBkB,MAAAA,WAAW,GAAGtR,IAAI,CAACyR,GAAL,CAASH,WAAT,EAAsBlB,YAAtB,CAAd;AACD;;AAED,WAAOkB,WAAP;AACD,GAVM,EAUJ,CAVI,CAAP;AAWD;;AChDD,IAAItL,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAC1D,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,ykJAAykJ;AAChlJ,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACTK,IAAM0f,yBAAyB,GAAG,iBAAlC;;AAIP,IAAMC,uBAAuB,gBAAG,QAAOC,iBAAP;AAAA;AAAA;AAAA,EAAH,YAEjB;AAAA,MAAGjf,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyB2H,SAAxC;AAAA,CAFiB,k2DAA7B;;AAaA,IAAM+W,oBAAoB;AAAA;AAAA;AAAA,kBACV;AAAA,MAAGC,UAAH,SAAGA,UAAH;AAAA,SAAoBA,UAAU,IAAI,OAAlC;AAAA,CADU,+4DAA1B;;AAQA,SAAgBC;MAAiBC,eAAAA;MAAQC,sBAAAA;MAAeC,cAAAA;0BAAOvd;MAAAA,iCAAQ;;AACrE,MAAI,CAACsd,aAAL,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,MAAME,gBAAgB,GAAG,SAAnBA,gBAAmB;AACvB,QAAMC,YAAY,GAAGC,MAAM,CAACC,QAAP,CAAgBC,QAAhB,CAAyBzL,OAAzB,CAAiC,MAAjC,EAAyC,EAAzC,CAArB;AACAuL,IAAAA,MAAM,CAACG,IAAP,uCACsCJ,YADtC,0CACuFJ,MADvF,EAEE,QAFF;AAID,GAND;;AAQA,SACE3c,4BAAA,CAACwc,oBAAD;kBACcK;AACZ9c,IAAAA,SAAS,EAAEsc;AACX/c,IAAAA,KAAK;AAAI8d,MAAAA,MAAM,EAAE;AAAZ,OAA0B9d,KAA1B;AACL8Q,IAAAA,OAAO,EAAE0M;GAJX,EAKE9c,4BAAA,CAACsc,uBAAD,MAAA,CALF,CADF;AASD;;SChDee,eAAevb,MAAmBO;AAChD,SAAOP,IAAI,CAACS,WAAL,CAAiB8I,IAAjB,CAAsB,UAACwH,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAAtB,CAAP;AACD;AAED,SAAgBib,uBAAuBvB,OAAsB1Z;AAC3D,SAAO0Z,KAAK,CAAC1Q,IAAN,CAAW,UAACvJ,IAAD;AAAA,WAAUub,cAAc,CAACvb,IAAD,EAAOO,aAAP,CAAxB;AAAA,GAAX,CAAP;AACD;;SCLekb,kBACdxB,OACApS,uBACA6T;AAEA,SAAOzB,KAAK,CACTvZ,MADI,CACG,UAACV,IAAD;AAAA,WAAUA,IAAI,CAACsN,WAAL,KAAqBC,iBAAW,CAACuD,IAAjC,IAAyCyK,cAAc,CAACvb,IAAD,EAAO6H,qBAAP,CAAjE;AAAA,GADH,EAEJnH,MAFI,CAEG,UAACV,IAAD;AAAA,WAAU,CAAC0b,cAAD,IAAmB,CAACA,cAAc,CAAC;AAAE1b,MAAAA,IAAI,EAAJA;AAAF,KAAD,CAA5C;AAAA,GAFH,CAAP;AAGD;;;;ACSD,IAAM2b,qBAAqB;AAAA;AAAA;AAAA,aAChB;AAAA,MAAGngB,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBJ,OAAxC;AAAA,CADgB,iGAOlB;AAAA,MAAGJ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBG,UAAlC;AAAA,CAPkB,yxOAA3B;;AAUA,IAAM4X,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;;AAUA,IAAMC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAnB;;AAsBA,AAAO,IAAMxa,OAAO,GAAG,SAAVA,OAAU;MACrB4Y,cAAAA;MACArO,iBAAAA;MACAhC,4BAAAA;MACAkS,0BAAAA;MACAjU,8BAAAA;MACAqR,+BAAAA;MACAC,gCAAAA;MACAtN,0BAAAA;MACAC,uBAAAA;MACA7L,sBAAAA;MACAiP,eAAAA;MACAwM,uBAAAA;MACA7R,+BAAAA;;AAEA,yBAAkBkS,eAAe,EAAjC;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;;AACA,MAAMud,YAAY,GAAGe,4BAA4B,CAACC,KAAD,CAAjD;AACA,MAAMnC,4BAA4B,GAAGmC,KAAK,CAAC1Q,IAAN,CAAW,UAACvJ,IAAD;AAAA,WAAU,CAAC,CAACA,IAAI,CAACyY,WAAjB;AAAA,GAAX,CAArC;AACA,MAAM9C,eAAe,GAAG6F,sBAAsB,CAACvB,KAAD,EAAQ3T,mBAAa,CAACgK,OAAtB,CAA9C;AACA,MAAMsF,gBAAgB,GAAG4F,sBAAsB,CAACvB,KAAD,EAAQ3T,mBAAa,CAACyB,QAAtB,CAA/C;AACA,MAAMiU,WAAW,GAAGP,iBAAiB,CAACxB,KAAD,EAAQpS,qBAAR,EAA+B6T,cAA/B,CAArC;AAEA,MAAMO,iBAAiB,GAAGC,iBAAW,CACnC,UAAClc,IAAD,EAAaiN,aAAb,EAAoDkP,gBAApD;AACE,WAAOrQ,cAAc,CAAC;AACpB9L,MAAAA,IAAI,EAAJA,IADoB;AAEpB4L,MAAAA,QAAQ,EAARA,QAFoB;AAGpBwQ,MAAAA,YAAY,EAAExS,mBAHM;AAIpBqD,MAAAA,aAAa,EAAbA,aAJoB;AAKpBpF,MAAAA,qBAAqB,EAArBA,qBALoB;AAMpBsU,MAAAA,gBAAgB,EAAhBA;AANoB,KAAD,CAArB;AAQD,GAVkC,EAWnC,CAACvQ,QAAD,EAAW/D,qBAAX,EAAkC+B,mBAAlC,EAAuDkC,cAAvD,CAXmC,CAArC;AAcA,MAAMiM,sBAAsB,GAAG,CAAC,CAACnO,mBAAF,IAAyBA,mBAAmB,CAAC5J,IAApB,CAAyBsN,WAAzB,KAAyCC,iBAAW,CAACC,MAA7G;AAEA,MAAM2I,iBAAiB,GAAGkG,aAAO,CAC/B;AAAA,WACEL,WAAW,CAACzS,IAAZ,CAAiB,UAACvJ,IAAD;;;AACf,UAAM+P,UAAU,GAAG/P,IAAI,CAACS,WAAL,CAAiBC,MAAjB,CAAwB,UAACqQ,UAAD;AAAA,eAAgBA,UAAU,CAACxQ,aAAX,KAA6BsH,qBAA7C;AAAA,OAAxB,CAAnB;AACA,UAAMmI,sBAAsB,4BAAGhQ,IAAI,CAACgR,4BAAR,qBAAG,sBAAmCpK,IAAnC,CAC7B,UAACmK,UAAD;AAAA,eAAgBA,UAAU,CAACxQ,aAAX,KAA6BsH,qBAA7C;AAAA,OAD6B,CAA/B;AAGA,aAAOkI,UAAU,CAACzO,MAAX,GAAoB,CAApB,IAAyB,CAAC,EAAC0O,sBAAD,YAACA,sBAAsB,CAAEgI,yBAAzB,CAAjC;AACD,KAND,CADF;AAAA,GAD+B,EAS/B,CAACnQ,qBAAD,EAAwBmU,WAAxB,CAT+B,CAAjC;AAYA,MAAM9F,gBAAgB,GAAGmG,aAAO,CAC9B;AAAA,WACEL,WAAW,CAACzS,IAAZ,CAAiB,UAACvJ,IAAD;AACf,aAAO,CAAC,CAAC2Q,YAAY,CAAC3Q,IAAD,EAAO6H,qBAAP,EAA8B5H,aAA9B,EAA6CiP,MAA7C,EAAqDyG,eAArD,CAAZ,CAAkFpF,IAA3F;AACD,KAFD,CADF;AAAA,GAD8B,EAK9B,CAAC1I,qBAAD,EAAwB8N,eAAxB,EAAyCzG,MAAzC,EAAiDjP,aAAjD,EAAgE+b,WAAhE,CAL8B,CAAhC;AAQA,MAAM5F,YAAY,GAAGiG,aAAO,CAAC;AAC3B,WACE,CAACtE,sBAAD,IACAiE,WAAW,CAACzS,IAAZ,CAAiB,UAACvJ,IAAD;AACf,UAAMmH,KAAK,GAAGwC,yBAAyB,CAAC3J,IAAD,EAAO6H,qBAAP,EAA8B+B,mBAA9B,CAAvC;AACA,aAAO0O,MAAM,CAACgE,MAAP,CAAcnV,KAAd,EAAqB7F,MAArB,GAA8B,CAArC;AACD,KAHD,CAFF;AAOD,GAR2B,EAQzB,CAACuG,qBAAD,EAAwB+B,mBAAxB,EAA6CmO,sBAA7C,EAAqEiE,WAArE,CARyB,CAA5B;AAUA,MAAMjQ,gBAAgB,GAAGiQ,WAAW,CAACzS,IAAZ,CAAiB,UAACvJ,IAAD;AACxC,WAAOA,IAAI,CAAC2N,qBAAL,IAA8B3N,IAAI,CAAC4O,aAA1C;AACD,GAFwB,CAAzB;AAIA,SACE1Q,4BAAA,CAAC0d,gBAAD;AAAkB3d,IAAAA,SAAS,EAAC;GAA5B,EACEC,4BAAA,CAAC2d,aAAD;AAAe5d,IAAAA,SAAS,EAAC;GAAzB,EACEC,4BAAA,CAAC8a,mBAAD;AACEE,IAAAA,sBAAsB,EAAEA;AACxBrR,IAAAA,qBAAqB,EAAEA;AACvBsR,IAAAA,uBAAuB,EAAEA;AACzBF,IAAAA,YAAY,EAAEA;GAJhB,CADF,EAQE/a,4BAAA,CAACyd,qBAAD;AAAuB1d,IAAAA,SAAS,EAAC;GAAjC,EACG+d,WAAW,CAACnb,GAAZ,CAAgB,UAACb,IAAD;AAAA,WACf9B,4BAAA,CAAC0Z,YAAD;AACE1B,MAAAA,gBAAgB,EAAEA;AAClBE,MAAAA,YAAY,EAAEA;AACdrK,MAAAA,gBAAgB,EAAEA;AAClBjL,MAAAA,GAAG,EAAEd,IAAI,CAACuB;AACVuW,MAAAA,4BAA4B,EAAEA;AAC9BnC,MAAAA,eAAe,EAAEA;AACjBC,MAAAA,gBAAgB,EAAEA;AAClB5V,MAAAA,IAAI,EAAEA;AACNmW,MAAAA,iBAAiB,EAAEA;AACnBvM,MAAAA,mBAAmB,EAAEA;AACrBrJ,MAAAA,aAAa,EAAEsH;AACfgQ,MAAAA,aAAa,EAAE7X,IAAI,CAACuB,EAAL,KAAYua;AAC3BjQ,MAAAA,iBAAiB,EAAEA;AACnBC,MAAAA,cAAc,EAAE,wBAACmB,aAAD,EAAwCkP,gBAAxC;AAAA,eACdF,iBAAiB,CAACjc,IAAD,EAAOiN,aAAP,EAAsBkP,gBAAtB,CADH;AAAA;AAGhBlc,MAAAA,aAAa,EAAEA;AACfiP,MAAAA,MAAM,EAAEA;AACRtD,MAAAA,QAAQ,EAAEA;AACVmM,MAAAA,sBAAsB,EAAEA;AACxBlO,MAAAA,sBAAsB,EAAEA;KArB1B,CADe;AAAA,GAAhB,CADH,CARF,EAmCE3L,4BAAA,CAAC0c,cAAD;AACEC,IAAAA,MAAM,EAAC;AACPE,IAAAA,KAAK,EAAC;AACNvd,IAAAA,KAAK,EAAE;AAAE4V,MAAAA,SAAS,EAAE;AAAb;AACP0H,IAAAA,aAAa,EAAEpf,KAAK,CAAC6gB;GAJvB,CAnCF,CADF,CADF;AA8CD,CAtHM;;;;;;;AC/DP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,UAAU,OAAO,EAAE;AAClC,AACA;AACA,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC;AACjC,EAAE,IAAIhG,WAAS,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3D,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC;AACxD,EAAE,IAAI,mBAAmB,GAAG,OAAO,CAAC,aAAa,IAAI,iBAAiB,CAAC;AACvE,EAAE,IAAI,iBAAiB,GAAG,OAAO,CAAC,WAAW,IAAI,eAAe,CAAC;AACjE;AACA,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACnC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,QAAQ,EAAE,IAAI;AACpB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,GAAG;AACH,EAAE,IAAI;AACN;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnB,GAAG,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACvC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;AACrD;AACA,IAAI,IAAI,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,YAAY,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AACjG,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC5D,IAAI,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AACjD;AACA;AACA;AACA,IAAI,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACjE;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAClC,IAAI,IAAI;AACR,MAAM,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACxD,KAAK,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,sBAAsB,GAAG,gBAAgB,CAAC;AAChD,EAAE,IAAI,sBAAsB,GAAG,gBAAgB,CAAC;AAChD,EAAE,IAAI,iBAAiB,GAAG,WAAW,CAAC;AACtC,EAAE,IAAI,iBAAiB,GAAG,WAAW,CAAC;AACtC;AACA;AACA;AACA,EAAE,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,SAAS,GAAG,EAAE;AACzB,EAAE,SAAS,iBAAiB,GAAG,EAAE;AACjC,EAAE,SAAS,0BAA0B,GAAG,EAAE;AAC1C;AACA;AACA;AACA,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC;AAC7B,EAAE,MAAM,CAAC,iBAAiB,EAAE,cAAc,EAAE,YAAY;AACxD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,EAAE,IAAI,uBAAuB,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,IAAI,uBAAuB;AAC7B,MAAM,uBAAuB,KAAK,EAAE;AACpC,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,EAAE;AAC5D;AACA;AACA,IAAI,iBAAiB,GAAG,uBAAuB,CAAC;AAChD,GAAG;AACH;AACA,EAAE,IAAI,EAAE,GAAG,0BAA0B,CAAC,SAAS;AAC/C,IAAI,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3D,EAAE,iBAAiB,CAAC,SAAS,GAAG,0BAA0B,CAAC;AAC3D,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAC;AACxD,EAAE,MAAM,CAAC,0BAA0B,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACvE,EAAE,iBAAiB,CAAC,WAAW,GAAG,MAAM;AACxC,IAAI,0BAA0B;AAC9B,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,GAAG,CAAC;AACJ;AACA;AACA;AACA,EAAE,SAAS,qBAAqB,CAAC,SAAS,EAAE;AAC5C,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AACzD,MAAM,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzC,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,OAAO,CAAC,mBAAmB,GAAG,SAAS,MAAM,EAAE;AACjD,IAAI,IAAI,IAAI,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC;AAClE,IAAI,OAAO,IAAI;AACf,QAAQ,IAAI,KAAK,iBAAiB;AAClC;AACA;AACA,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,MAAM,mBAAmB;AAC/D,QAAQ,KAAK,CAAC;AACd,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS,MAAM,EAAE;AAClC,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE;AAC/B,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAChE,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,SAAS,GAAG,0BAA0B,CAAC;AACpD,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE;AAChC,IAAI,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC5B,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE;AACjD,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;AAClD,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAC/D,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACnC,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAChC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACjC,QAAQ,IAAI,KAAK;AACjB,YAAY,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC3C,UAAU,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE;AACzE,YAAY,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACnD,WAAW,EAAE,SAAS,GAAG,EAAE;AAC3B,YAAY,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAClD,WAAW,CAAC,CAAC;AACb,SAAS;AACT;AACA,QAAQ,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,EAAE;AACnE;AACA;AACA;AACA,UAAU,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;AACnC,UAAU,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1B,SAAS,EAAE,SAAS,KAAK,EAAE;AAC3B;AACA;AACA,UAAU,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzD,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,eAAe,CAAC;AACxB;AACA,IAAI,SAAS,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;AAClC,MAAM,SAAS,0BAA0B,GAAG;AAC5C,QAAQ,OAAO,IAAI,WAAW,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;AACzD,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/C,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA,MAAM,OAAO,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe,GAAG,eAAe,CAAC,IAAI;AAC9C,UAAU,0BAA0B;AACpC;AACA;AACA,UAAU,0BAA0B;AACpC,SAAS,GAAG,0BAA0B,EAAE,CAAC;AACzC,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACjD,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,YAAY;AACnE,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AACxC;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;AAC7E,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;AACtD;AACA,IAAI,IAAI,IAAI,GAAG,IAAI,aAAa;AAChC,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;AAC/C,MAAM,WAAW;AACjB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC/C,QAAQ,IAAI;AACZ,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE;AAC1C,UAAU,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1D,SAAS,CAAC,CAAC;AACX,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AACpD,IAAI,IAAI,KAAK,GAAG,sBAAsB,CAAC;AACvC;AACA,IAAI,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,MAAM,IAAI,KAAK,KAAK,iBAAiB,EAAE;AACvC,QAAQ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACxD,OAAO;AACP;AACA,MAAM,IAAI,KAAK,KAAK,iBAAiB,EAAE;AACvC,QAAQ,IAAI,MAAM,KAAK,OAAO,EAAE;AAChC,UAAU,MAAM,GAAG,CAAC;AACpB,SAAS;AACT;AACA;AACA;AACA,QAAQ,OAAO,UAAU,EAAE,CAAC;AAC5B,OAAO;AACP;AACA,MAAM,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,MAAM,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACxB;AACA,MAAM,OAAO,IAAI,EAAE;AACnB,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,IAAI,cAAc,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtE,UAAU,IAAI,cAAc,EAAE;AAC9B,YAAY,IAAI,cAAc,KAAK,gBAAgB,EAAE,SAAS;AAC9D,YAAY,OAAO,cAAc,CAAC;AAClC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;AACvC;AACA;AACA,UAAU,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AACrD;AACA,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;AAC/C,UAAU,IAAI,KAAK,KAAK,sBAAsB,EAAE;AAChD,YAAY,KAAK,GAAG,iBAAiB,CAAC;AACtC,YAAY,MAAM,OAAO,CAAC,GAAG,CAAC;AAC9B,WAAW;AACX;AACA,UAAU,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjD;AACA,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;AAChD,UAAU,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAChD,SAAS;AACT;AACA,QAAQ,KAAK,GAAG,iBAAiB,CAAC;AAClC;AACA,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACtD,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACtC;AACA;AACA,UAAU,KAAK,GAAG,OAAO,CAAC,IAAI;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,sBAAsB,CAAC;AACrC;AACA,UAAU,IAAI,MAAM,CAAC,GAAG,KAAK,gBAAgB,EAAE;AAC/C,YAAY,SAAS;AACrB,WAAW;AACX;AACA,UAAU,OAAO;AACjB,YAAY,KAAK,EAAE,MAAM,CAAC,GAAG;AAC7B,YAAY,IAAI,EAAE,OAAO,CAAC,IAAI;AAC9B,WAAW,CAAC;AACZ;AACA,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC5C,UAAU,KAAK,GAAG,iBAAiB,CAAC;AACpC;AACA;AACA,UAAU,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AACnC,UAAU,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACnC,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;AAClD,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnD,IAAI,IAAI,MAAM,KAAKA,WAAS,EAAE;AAC9B;AACA;AACA,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B;AACA,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;AACtC;AACA,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACzC;AACA;AACA,UAAU,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;AACpC,UAAU,OAAO,CAAC,GAAG,GAAGA,WAAS,CAAC;AAClC,UAAU,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjD;AACA,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;AAC1C;AACA;AACA,YAAY,OAAO,gBAAgB,CAAC;AACpC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AACjC,QAAQ,OAAO,CAAC,GAAG,GAAG,IAAI,SAAS;AACnC,UAAU,gDAAgD,CAAC,CAAC;AAC5D,OAAO;AACP;AACA,MAAM,OAAO,gBAAgB,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAClE;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACjC,MAAM,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAC/B,MAAM,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,gBAAgB,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B;AACA,IAAI,IAAI,EAAE,IAAI,EAAE;AAChB,MAAM,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAC/B,MAAM,OAAO,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;AACtE,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,gBAAgB,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AACnB;AACA;AACA,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD;AACA;AACA,MAAM,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;AACvC,QAAQ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,QAAQ,OAAO,CAAC,GAAG,GAAGA,WAAS,CAAC;AAChC,OAAO;AACP;AACA,KAAK,MAAM;AACX;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC5B,IAAI,OAAO,gBAAgB,CAAC;AAC5B,GAAG;AACH;AACA;AACA;AACA,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC5B;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW;AACxC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW;AACpC,IAAI,OAAO,oBAAoB,CAAC;AAChC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,SAAS,YAAY,CAAC,IAAI,EAAE;AAC9B,IAAI,IAAI,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC;AACA,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACnB,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACnB,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,GAAG;AACH;AACA,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AACxC,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC3B,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC;AACtB,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,SAAS,OAAO,CAAC,WAAW,EAAE;AAChC;AACA;AACA;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3C,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,IAAI,GAAG,SAAS,MAAM,EAAE;AAClC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB;AACA;AACA;AACA,IAAI,OAAO,SAAS,IAAI,GAAG;AAC3B,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,GAAG,IAAI,MAAM,EAAE;AAC3B,UAAU,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAC3B,UAAU,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5B,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;AAC5B,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,OAAO;AACP;AACA,MAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,QAAQ,OAAO,QAAQ,CAAC;AACxB,OAAO;AACP;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACnC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,IAAI,GAAG;AAC3C,UAAU,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;AAC1C,cAAc,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvC,cAAc,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAChC,cAAc,OAAO,IAAI,CAAC;AAC1B,aAAa;AACb,WAAW;AACX;AACA,UAAU,IAAI,CAAC,KAAK,GAAGA,WAAS,CAAC;AACjC,UAAU,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3B;AACA,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS,CAAC;AACV;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B;AACA,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,OAAO,EAAE,KAAK,EAAEA,WAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,SAAS,GAAG;AACtB,IAAI,WAAW,EAAE,OAAO;AACxB;AACA,IAAI,KAAK,EAAE,SAAS,aAAa,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACpB;AACA;AACA,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAGA,WAAS,CAAC;AACzC,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACxB,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3B;AACA,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,MAAM,IAAI,CAAC,GAAG,GAAGA,WAAS,CAAC;AAC3B;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC7C;AACA,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;AAC/B;AACA,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;AACpC,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AACrC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACtC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAGA,WAAS,CAAC;AACnC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,EAAE,WAAW;AACrB,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB;AACA,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC5C,MAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;AACvC,QAAQ,MAAM,UAAU,CAAC,GAAG,CAAC;AAC7B,OAAO;AACP;AACA,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC;AACvB,KAAK;AACL;AACA,IAAI,iBAAiB,EAAE,SAAS,SAAS,EAAE;AAC3C,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACrB,QAAQ,MAAM,SAAS,CAAC;AACxB,OAAO;AACP;AACA,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC;AACzB,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;AACnC,QAAQ,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;AAC9B,QAAQ,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;AAC/B,QAAQ,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;AAC3B;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB;AACA;AACA,UAAU,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAClC,UAAU,OAAO,CAAC,GAAG,GAAGA,WAAS,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,OAAO,CAAC,EAAE,MAAM,CAAC;AACzB,OAAO;AACP;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;AACtC;AACA,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;AACrC;AACA;AACA;AACA,UAAU,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT;AACA,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACvC,UAAU,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACxD,UAAU,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC5D;AACA,UAAU,IAAI,QAAQ,IAAI,UAAU,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC5C,cAAc,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClD,aAAa,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;AACrD,cAAc,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,WAAW,MAAM,IAAI,QAAQ,EAAE;AAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC5C,cAAc,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClD,aAAa;AACb;AACA,WAAW,MAAM,IAAI,UAAU,EAAE;AACjC,YAAY,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;AAC9C,cAAc,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,WAAW,MAAM;AACjB,YAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACtE,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE;AAChC,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;AACrC,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;AAC5C,YAAY,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;AAC1C,UAAU,IAAI,YAAY,GAAG,KAAK,CAAC;AACnC,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,YAAY;AACtB,WAAW,IAAI,KAAK,OAAO;AAC3B,WAAW,IAAI,KAAK,UAAU,CAAC;AAC/B,UAAU,YAAY,CAAC,MAAM,IAAI,GAAG;AACpC,UAAU,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE;AAC1C;AACA;AACA,QAAQ,YAAY,GAAG,IAAI,CAAC;AAC5B,OAAO;AACP;AACA,MAAM,IAAI,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC;AAC/D,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,MAAM,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB;AACA,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC;AAC5C,QAAQ,OAAO,gBAAgB,CAAC;AAChC,OAAO;AACP;AACA,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,KAAK;AACL;AACA,IAAI,QAAQ,EAAE,SAAS,MAAM,EAAE,QAAQ,EAAE;AACzC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACnC,QAAQ,MAAM,MAAM,CAAC,GAAG,CAAC;AACzB,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;AACjC,UAAU,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,EAAE;AACvD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC7B,OAAO;AACP;AACA,MAAM,OAAO,gBAAgB,CAAC;AAC9B,KAAK;AACL;AACA,IAAI,MAAM,EAAE,SAAS,UAAU,EAAE;AACjC,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;AAC7C,UAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC1D,UAAU,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,UAAU,OAAO,gBAAgB,CAAC;AAClC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,EAAE,SAAS,MAAM,EAAE;AAC9B,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;AACrC,UAAU,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;AACxC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACvC,YAAY,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AACpC,YAAY,aAAa,CAAC,KAAK,CAAC,CAAC;AACjC,WAAW;AACX,UAAU,OAAO,MAAM,CAAC;AACxB,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,MAAM,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,aAAa,EAAE,SAAS,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;AAC3D,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,QAAQ,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,UAAU,EAAE,UAAU;AAC9B,QAAQ,OAAO,EAAE,OAAO;AACxB,OAAO,CAAC;AACR;AACA,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAClC;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAGA,WAAS,CAAC;AAC7B,OAAO;AACP;AACA,MAAM,OAAO,gBAAgB,CAAC;AAC9B,KAAK;AACL,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,OAAO,CAAC;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,CAA6B,MAAM,CAAC,OAAO,CAAK;AAClD,CAAC,CAAC,CAAC;AACH;AACA,IAAI;AACJ,EAAE,kBAAkB,GAAG,OAAO,CAAC;AAC/B,CAAC,CAAC,OAAO,oBAAoB,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,UAAU,CAAC,kBAAkB,GAAG,OAAO,CAAC;AAC5C,GAAG,MAAM;AACT,IAAI,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC;AACrD,GAAG;AACH;;;IC3uBaiG,aAAb;AAAA;;AAAA;;AAAA,SACEzgB,KADF,GACE,eAAM0gB,OAAN,EAAuB1gB,MAAvB;sCAAyC2gB;AAAAA,MAAAA;;;AACvCC,IAAAA,OAAO,CAAC5gB,KAAR,CAAc0gB,OAAd,EAAuB1gB,MAAK,IAAI,EAAhC,EAAoC2gB,MAApC;AACD,GAHH;;AAAA,SAKEE,GALF,GAKE,aAAIH,OAAJ,EAAqBI,MAArB;AACEF,IAAAA,OAAO,CAACC,GAAR,CAAYH,OAAZ,EAAqBI,MAAM,IAAI,EAA/B;AACD,GAPH;;AAAA,SASEC,KATF,GASE,eAAML,OAAN,EAAuBI,MAAvB;AACEF,IAAAA,OAAO,CAACG,KAAR,CAAcL,OAAd,EAAuBI,MAAM,IAAI,EAAjC;AACD,GAXH;;AAAA;AAAA;;AAeA,0BAAe,IAAIL,aAAJ,EAAf;;SClBgBO,sBACd9C,OACA+C,qBACAC;AAEA,MAAMC,cAAc,GAAGjD,KAAK,CAACkD,OAAN,CAAc,UAACC,CAAD;AAAA,WAAOA,CAAC,CAAC3c,WAAT;AAAA,GAAd,EAAoCI,GAApC,CAAwC,UAACuc,CAAD;AAAA,WAAOA,CAAC,CAAC7c,aAAT;AAAA,GAAxC,CAAvB;AACA,MAAM8c,MAAM,GAAGC,cAAO,CAACJ,cAAD,CAAtB;AAEA,MAAM/D,uBAAuB,GAAGoE,WAAI,CAACL,cAAD,CAApC;AACA,MAAIM,oBAAJ;;AAEA,MAAIP,sBAAsB,IAAI9D,uBAAuB,CAAChY,QAAxB,CAAiC8b,sBAAjC,CAA9B,EAAwF;AACtFO,IAAAA,oBAAoB,GAAGP,sBAAvB;AACD,GAFD,MAEO,IAAID,mBAAJ,EAAyB;AAC9B,QAAMS,kBAAkB,GAAGT,mBAAmB,CAACpW,IAApB,CAAyB,UAACwW,CAAD;AAAA,aAAOA,CAAC,CAACM,MAAF,KAAaC,wBAAkB,CAACC,MAAvC;AAAA,KAAzB,CAA3B;;AAEA,QAAIH,kBAAkB,IAAIA,kBAAkB,CAACjd,MAAnB,CAA0Bc,MAA1B,GAAmC,CAA7D,EAAgE;AAC9Dkc,MAAAA,oBAAoB,GAAGC,kBAAH,oBAAGA,kBAAkB,CAAEjd,MAApB,CAA2B,CAA3B,EAA8BD,aAArD;AACD;AACF;;AAED,MAAI,CAACid,oBAAL,EAA2B;AACzBA,IAAAA,oBAAoB,GAClB,CAACH,MAAM,CAAC/W,mBAAa,CAACgK,OAAf,CAAN,IAAiC,CAAlC,KAAwC+M,MAAM,CAAC/W,mBAAa,CAACyB,QAAf,CAAN,IAAkC,CAA1E,IACIzB,mBAAa,CAACgK,OADlB,GAEIhK,mBAAa,CAACyB,QAHpB;AAID;;AAED,SAAO;AAAEyV,IAAAA,oBAAoB,EAApBA,oBAAF;AAAwBrE,IAAAA,uBAAuB,EAAvBA;AAAxB,GAAP;AACD;;SC9Be0E,uBAAuBC;AACrC,SAAO7Y,MAAM,CAACC,GAAP,CAAW4Y,YAAX,EAAyBC,IAAzB,CAA8B9Y,MAAM,CAACC,GAAP,EAA9B,EAA4C,MAA5C,EAAoD,KAApD,IAA6D,CAApE;AACD;;ACFM,IAAM8Y,yBAAyB,GAA4B;AAChEnhB,EAAAA,EAAE,EAAE;AACFyB,IAAAA,QAAQ,EAAE,EADR;AAEF/B,IAAAA,UAAU,EAAE0hB,gBAAU,CAACxhB;AAFrB,GAD4D;AAKhEK,EAAAA,EAAE,EAAE;AACFwB,IAAAA,QAAQ,EAAE,EADR;AAEF/B,IAAAA,UAAU,EAAE0hB,gBAAU,CAACvhB;AAFrB,GAL4D;AAShEK,EAAAA,EAAE,EAAE;AACFuB,IAAAA,QAAQ,EAAE,EADR;AAEF/B,IAAAA,UAAU,EAAE0hB,gBAAU,CAACvhB;AAFrB,GAT4D;AAahEM,EAAAA,IAAI,EAAE;AACJsB,IAAAA,QAAQ,EAAE,EADN;AAEJ/B,IAAAA,UAAU,EAAE0hB,gBAAU,CAACvhB;AAFnB;AAb0D,CAA3D;;ACUP,SAASwhB,WAAT,CAAqBxK,KAArB,EAA4CnD,IAA5C;MAA4CA;AAAAA,IAAAA,OAAO;;;AACjD,MAAI,CAACmD,KAAL,EAAY;AACV,WAAO6C,SAAP;AACD;;AACD,cAAU7C,KAAV,GAAkBnD,IAAlB;AACD;;AAED,SAASjU,eAAT,CAAuB6hB,YAAvB,EAAiD5hB,UAAjD;AACE,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO4hB,YAAP;AACD;;AAED,UAAQ5hB,UAAR;AACE,SAAK6hB,gBAAY,CAAC1hB,MAAlB;AACE,aAAO,QAAP;;AACF,SAAK0hB,gBAAY,CAAC3hB,IAAlB;AACE,aAAO,MAAP;;AACF;AACE,aAAO,QAAP;AANJ;AAQD;;AAED,SAAgB4hB,cACdzhB,YACA0hB;;;AAEA,SAAO;AACLC,IAAAA,aAAa,EAAE,CAAA3hB,UAAU,QAAV,YAAAA,UAAU,CAAEgI,UAAZ,KAA0B2R,SADpC;AAEL1Z,IAAAA,EAAE,EAAE;AACFyB,MAAAA,QAAQ,EAAE4f,WAAW,CAAC,CAAAthB,UAAU,QAAV,6BAAAA,UAAU,CAAEC,EAAZ,mCAAgByB,QAAhB,MAA4BggB,iBAA5B,4CAA4BA,iBAAiB,CAAEzhB,EAA/C,qBAA4B,qBAAuByB,QAAnD,CAAD,CADnB;AAEF/B,MAAAA,UAAU,EAAED,eAAa,CAAC,MAAD,EAAS,CAAAM,UAAU,QAAV,8BAAAA,UAAU,CAAEC,EAAZ,oCAAgBN,UAAhB,MAA8B+hB,iBAA9B,6CAA8BA,iBAAiB,CAAEzhB,EAAjD,qBAA8B,sBAAuBN,UAArD,CAAT;AAFvB,KAFC;AAMLO,IAAAA,EAAE,EAAE;AACFwB,MAAAA,QAAQ,EAAE4f,WAAW,CAAC,CAAAthB,UAAU,QAAV,8BAAAA,UAAU,CAAEE,EAAZ,oCAAgBwB,QAAhB,MAA4BggB,iBAA5B,6CAA4BA,iBAAiB,CAAExhB,EAA/C,qBAA4B,sBAAuBwB,QAAnD,CAAD,CADnB;AAEF/B,MAAAA,UAAU,EAAED,eAAa,CAAC,QAAD,EAAWgiB,iBAAX,6CAAWA,iBAAiB,CAAExhB,EAA9B,qBAAW,sBAAuBP,UAAlC;AAFvB,KANC;AAULQ,IAAAA,EAAE,EAAE;AACFuB,MAAAA,QAAQ,EAAE4f,WAAW,CAAC,CAAAthB,UAAU,QAAV,8BAAAA,UAAU,CAAEG,EAAZ,oCAAgBuB,QAAhB,MAA4BggB,iBAA5B,6CAA4BA,iBAAiB,CAAEvhB,EAA/C,qBAA4B,sBAAuBuB,QAAnD,CAAD,CADnB;AAEF/B,MAAAA,UAAU,EAAED,eAAa,CAAC,QAAD,EAAW,CAAAM,UAAU,QAAV,8BAAAA,UAAU,CAAEG,EAAZ,oCAAgBR,UAAhB,MAA8B+hB,iBAA9B,6CAA8BA,iBAAiB,CAAEvhB,EAAjD,qBAA8B,sBAAuBR,UAArD,CAAX;AAFvB,KAVC;AAcLS,IAAAA,IAAI,EAAE;AACJsB,MAAAA,QAAQ,EAAE4f,WAAW,CAAC,CAAAthB,UAAU,QAAV,gCAAAA,UAAU,CAAEI,IAAZ,sCAAkBsB,QAAlB,MAA8BggB,iBAA9B,6CAA8BA,iBAAiB,CAAEthB,IAAjD,qBAA8B,sBAAyBsB,QAAvD,CAAD,CADjB;AAEJ/B,MAAAA,UAAU,EAAED,eAAa,CAAC,QAAD,EAAW,CAAAM,UAAU,QAAV,iCAAAA,UAAU,CAAEI,IAAZ,uCAAkBT,UAAlB,MAAgC+hB,iBAAhC,8CAAgCA,iBAAiB,CAAEthB,IAAnD,qBAAgC,uBAAyBT,UAAzD,CAAX;AAFrB;AAdD,GAAP;AAmBD;;AAED,SAASiiB,YAAT,CAAsBC,SAAtB;AACE,MAAI,CAACA,SAAL,EAAgB;AACd,WAAOlI,SAAP;AACD;;AAED,UAAQkI,SAAR;AACE,SAAKC,eAAS,CAACC,IAAf;AACE,aAAO,MAAP;;AACF,SAAKD,eAAS,CAACE,MAAf;AACE,aAAO,QAAP;;AACF,SAAKF,eAAS,CAACG,KAAf;AACE,aAAO,OAAP;;AACF;AAAS;AACP,eAAOtI,SAAP;AACD;AATH;AAWD;;AAED,SAAgBuI,+BAA+BC;AAC7C,MAAQpjB,OAAR,GAA2CojB,aAA3C,CAAQpjB,OAAR;AAAA,MAAiBkJ,SAAjB,GAA2Cka,aAA3C,CAAiBla,SAAjB;AAAA,MAA4BjI,UAA5B,GAA2CmiB,aAA3C,CAA4BniB,UAA5B;AACA,SAAO;AACLjB,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEC,OAAT,KAAoB2a,SADtB;AAEP5T,MAAAA,eAAe,EAAE,CAAAhH,OAAO,QAAP,YAAAA,OAAO,CAAEqjB,sBAAT,KAAmCzI,SAF7C;AAGPxT,MAAAA,cAAc,EAAE,CAAApH,OAAO,QAAP,YAAAA,OAAO,CAAEsW,WAAT,KAAwBsE,SAHjC;AAIP3T,MAAAA,mBAAmB,EAAE,CAAAjH,OAAO,QAAP,YAAAA,OAAO,CAAEsjB,qBAAT,KAAkC1I,SAJhD;AAKPva,MAAAA,IAAI,EAAE;AACJJ,QAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEuG,SAAT,KAAsBqU;AAD3B;AALC,KADJ;AAUL3Z,IAAAA,UAAU,EAAEyhB,aAAa,CAACzhB,UAAD,CAVpB;AAWLiI,IAAAA,SAAS,EAAEA,SAAS,IAAI0R;AAXnB,GAAP;AAaD;AAED,SAAgB2I,wBAAwBC;AACtC,MAAQxjB,OAAR,GAAmDwjB,oBAAnD,CAAQxjB,OAAR;AAAA,MAAiBkI,MAAjB,GAAmDsb,oBAAnD,CAAiBtb,MAAjB;AAAA,MAAyBgB,SAAzB,GAAmDsa,oBAAnD,CAAyBta,SAAzB;AAAA,MAAoCjI,UAApC,GAAmDuiB,oBAAnD,CAAoCviB,UAApC;AACA,SAAO;AACLiI,IAAAA,SAAS,EAAEA,SAAS,IAAI0R,SADnB;AAEL5a,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEC,OAAT,KAAoB2a,SADtB;AAEP5T,MAAAA,eAAe,EAAE,CAAAhH,OAAO,QAAP,YAAAA,OAAO,CAAEyjB,eAAT,KAA4B7I,SAFtC;AAGPxT,MAAAA,cAAc,EAAE,CAAApH,OAAO,QAAP,YAAAA,OAAO,CAAEsW,WAAT,KAAwBsE,SAHjC;AAIP3T,MAAAA,mBAAmB,EAAE,CAAAjH,OAAO,QAAP,YAAAA,OAAO,CAAEsjB,qBAAT,KAAkC1I,SAJhD;AAKPva,MAAAA,IAAI,EAAE;AACJJ,QAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEuG,SAAT,KAAsBqU;AAD3B;AALC,KAFJ;AAWL3Z,IAAAA,UAAU,EAAEyhB,aAAa,CAACzhB,UAAD,CAXpB;AAYLiH,IAAAA,MAAM,EAAE;AACNK,MAAAA,YAAY,EAAEsa,YAAY,CAAC3a,MAAD,oBAACA,MAAM,CAAE4a,SAAT,CADpB;AAENta,MAAAA,eAAe,EAAEqa,YAAY,CAAC3a,MAAD,oBAACA,MAAM,CAAE4a,SAAT,CAFvB;AAGNra,MAAAA,oBAAoB,EAAEoa,YAAY,CAAC3a,MAAD,oBAACA,MAAM,CAAE4a,SAAT,CAH5B;AAIN1a,MAAAA,YAAY,EAAEma,WAAW,CAACra,MAAD,oBAACA,MAAM,CAAEwb,SAAT,CAJnB;AAKNvb,MAAAA,YAAY,EAAEoa,WAAW,CAACra,MAAD,oBAACA,MAAM,CAAEwb,SAAT,CALnB;AAMNrb,MAAAA,UAAU,EAAEka,WAAW,CAACra,MAAD,oBAACA,MAAM,CAAEG,UAAT,CANjB;AAONC,MAAAA,WAAW,EAAEia,WAAW,CAACra,MAAD,oBAACA,MAAM,CAAEI,WAAT;AAPlB;AAZH,GAAP;AAsBD;AAED,SAAgBqb,yBAAyBP;AACvC,MAAQpjB,OAAR,GAA2CojB,aAA3C,CAAQpjB,OAAR;AAAA,MAAiBiB,UAAjB,GAA2CmiB,aAA3C,CAAiBniB,UAAjB;AAAA,MAA6BiI,SAA7B,GAA2Cka,aAA3C,CAA6Bla,SAA7B;AACA,SAAO;AACLlJ,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEC,OAAT,KAAoB2a,SADtB;AAEP5T,MAAAA,eAAe,EAAE,CAAAhH,OAAO,QAAP,YAAAA,OAAO,CAAEyjB,eAAT,KAA4B7I,SAFtC;AAGPxT,MAAAA,cAAc,EAAE,CAAApH,OAAO,QAAP,YAAAA,OAAO,CAAEsW,WAAT,KAAwBsE,SAHjC;AAIPva,MAAAA,IAAI,EAAE;AACJJ,QAAAA,OAAO,EAAE,CAAAD,OAAO,QAAP,YAAAA,OAAO,CAAEuG,SAAT,KAAsBqU;AAD3B,OAJC;AAOP3T,MAAAA,mBAAmB,EAAE,CAAAjH,OAAO,QAAP,YAAAA,OAAO,CAAE4jB,sBAAT,KAAmChJ;AAPjD,KADJ;AAUL3Z,IAAAA,UAAU,EAAEyhB,aAAa,CAACzhB,UAAD,EAAaohB,yBAAb,CAVpB;AAWLnZ,IAAAA,SAAS,EAAEA,SAAS,IAAI0R;AAXnB,GAAP;AAaD;;ACvHD,SAASiJ,8BAAT,CAAwCxC,mBAAxC;;;AACE,MAAInR,iBAAiB,GAAG,IAAxB;AACA,MAAIjC,mBAAmB,GACrB,CAAAoT,mBAAmB,QAAnB,YAAAA,mBAAmB,CAAEpW,IAArB,CAA0B,UAAC6Y,CAAD;AAAA,WAAOA,CAAC,CAAC/B,MAAF,KAAaC,wBAAkB,CAAC+B,OAAvC;AAAA,GAA1B,MAA6E,IAD/E;AAEA,MAAItT,WAAW,2BAAGxC,mBAAH,qBAAG,qBAAqB5J,IAAvC;AACA,MAAM4O,aAAa,GAAG,yBAAAhF,mBAAmB,SAAnB,0BAAqBkU,YAArB,GAClBD,sBAAsB,CAACjU,mBAAmB,CAACkU,YAArB,CADJ,GAElBvH,SAFJ;;AAGA,MAAI,CAACnK,WAAL,EAAkB;AAAA;;AAChBP,IAAAA,iBAAiB,GAAG,KAApB;AACAjC,IAAAA,mBAAmB,GAAG,CAAAoT,mBAAmB,QAAnB,YAAAA,mBAAmB,CAAEpW,IAArB,CAA0B,UAAC6Y,CAAD;AAAA,aAAOA,CAAC,CAAC/B,MAAF,KAAaC,wBAAkB,CAACC,MAAvC;AAAA,KAA1B,MAA4E,IAAlG;AACAxR,IAAAA,WAAW,4BAAGxC,mBAAH,qBAAG,sBAAqB5J,IAAnC;AACD;;AAED,SAAO;AACL4J,IAAAA,mBAAmB,EAAnBA,mBADK;AAELwC,IAAAA,WAAW,EAAXA,WAFK;AAGLP,IAAAA,iBAAiB,EAAjBA,iBAHK;AAIL+C,IAAAA,aAAa,EAAbA;AAJK,GAAP;AAMD;;AAUD,SAAgB+Q,eAAeC,SAAyBC;;;AACtD,aAAwGD,OAAO,IAAI,EAAnH;AAAA,MAAQ3F,KAAR,QAAQA,KAAR;AAAA,MAAelL,QAAf,QAAeA,QAAf;AAAA,MAAyBgQ,aAAzB,QAAyBA,aAAzB;AAAA,MAAwCnT,QAAxC,QAAwCA,QAAxC;AAAA,MAAkDoR,mBAAlD,QAAkDA,mBAAlD;AAAA,MAAuEhM,4BAAvE,QAAuEA,4BAAvE;;AACA,8BACEwO,8BAA8B,CAACxC,mBAAD,CADhC;AAAA,MAAQpT,mBAAR,yBAAQA,mBAAR;AAAA,MAA6BwC,WAA7B,yBAA6BA,WAA7B;AAAA,MAA0CP,iBAA1C,yBAA0CA,iBAA1C;AAAA,MAA6D+C,aAA7D,yBAA6DA,aAA7D;;AAGA,MAAMkR,gBAAgB,GAAG,CAAAlW,mBAAmB,QAAnB,YAAAA,mBAAmB,CAAEkW,gBAArB,KAAyC,EAAlE;AACA,MAAMhS,gCAAgC,GAAGlE,mBAAH,6CAAGA,mBAAmB,CAAEjJ,KAAxB,qBAAG,sBAA4BJ,aAArE;AACA,MAAMwf,iBAAiB,GAAGD,gBAAgB,CAAClZ,IAAjB,CACxB;AAAA,QAAGjB,wBAAH,SAAGA,wBAAH;AAAA,WAAkCA,wBAAwB,KAAKC,8BAAwB,CAACC,SAAxF;AAAA,GADwB,CAA1B;AAGA,MAAMma,sBAAsB,GAAGF,gBAAgB,CAAClZ,IAAjB,CAC7B;AAAA,QAAGjB,wBAAH,SAAGA,wBAAH;AAAA,WAAkCA,wBAAwB,KAAKC,8BAAwB,CAACU,aAAxF;AAAA,GAD6B,CAA/B;AAIA,MAAI2Z,YAAY,GAAkBC,MAAM,CAACjG,KAAD,EAAQ,UAACja,IAAD;AAAA,WAAUA,IAAI,CAACmgB,KAAf;AAAA,GAAR,CAAN,CAAoCtf,GAApC,CAAwC,UAACb,IAAD;;;AACxE,QAAMogB,uBAAuB,GAAGxU,QAAH,6CAAGA,QAAQ,CAAEyU,gBAAb,qBAAG,sBAA4BzZ,IAA5B,CAC9B,UAAC0Z,YAAD;AAAA,aAAkBA,YAAY,CAACC,SAAb,KAA2BvgB,IAAI,CAACwgB,OAAL,CAAajf,EAA1D;AAAA,KAD8B,CAAhC;AAGA,QAAMoM,qBAAqB,GAAG3N,IAAI,CAACuB,EAAL,MAAY6K,WAAZ,oBAAYA,WAAW,CAAE7K,EAAzB,CAA9B;;AAEA,QAAMoK,UAAU,GAAG,SAAbA,UAAa,CAAC8U,oBAAD;;;AACjB,UAAMC,kBAAkB,GAAGX,iBAAH,oBAAGA,iBAAiB,CAAEvZ,iBAA9C;AACA,UAAMma,uBAAuB,GAAGX,sBAAH,oBAAGA,sBAAsB,CAAExZ,iBAAxD;AACA,UAAMoa,2BAA2B,GAAG5gB,IAAI,CAACS,WAAL,CAAiB8I,IAAjB,CAClC,UAAC5I,KAAD;AAAA,eAAWA,KAAK,CAACJ,aAAN,KAAwBkgB,oBAAnC;AAAA,OADkC,CAApC;AAIA,aAAOV,iBAAiB,GACpB,0BAAAA,iBAAiB,CAAC3Z,aAAlB,2CAAiCya,KAAjC,MAA2C7gB,IAAI,CAACuB,EAAhD,KACG,CAACqf,2BAAD,IAAgCF,kBAAkB,CAACngB,aAAnB,KAAqCkgB,oBADxE,CADoB,GAGpBT,sBAAsB,IAAIrS,qBAA1B,GACAgT,uBAAuB,CAACpgB,aAAxB,KAA0CkgB,oBAD1C,GAEA,KALJ;AAMD,KAbD;;AAeA,wBACKzgB,IADL;AAEEgR,MAAAA,4BAA4B,EAAEA,4BAAF,oBAAEA,4BAA4B,CAAEtQ,MAA9B,CAAqC,UAACqQ,UAAD;AAAA,eAAgBA,UAAU,CAAC+P,MAAX,KAAsB9gB,IAAI,CAACuB,EAA3C;AAAA,OAArC,CAFhC;AAGEmM,MAAAA,SAAS,EAAE,CAAC3H,KAAK,CAAC/F,IAAI,CAAC+gB,kBAAN,CAAN,KAAoC,CAACX,uBAAD,IAA4BA,uBAAuB,CAACY,QAAxF,CAHb;AAIErT,MAAAA,qBAAqB,EAArBA,qBAJF;AAKEG,MAAAA,gCAAgC,EAAhCA,gCALF;AAMEmT,MAAAA,cAAc,EAAE,KANlB;AAOErS,MAAAA,aAAa,EAAbA,aAPF;AAQEjD,MAAAA,UAAU,EAAVA,UARF;AASEkF,MAAAA,eAAe,EAAE9B,QATnB;AAUE1J,MAAAA,eAAe,EAAE0a,iBAAiB,IAAIC;AAVxC;AAYD,GAjCiC,CAAlC;;AAkCA,MAAI/F,KAAK,IAAI7N,WAAb,EAA0B;AAAA;;AACxB,QAAM8U,gBAAgB,GAAG9U,WAAW,KAAI6N,KAAJ,mCAAIA,KAAK,CAAErT,IAAP,CAAY,UAACwW,CAAD;AAAA,aAAOA,CAAC,CAAC7b,EAAF,MAAS6K,WAAT,oBAASA,WAAW,CAAE7K,EAAtB,CAAP;AAAA,KAAZ,CAAJ,qBAAI,YAA8C4e,KAAlD,CAApC;;AACA,QAAI,CAACpa,KAAK,CAACmb,gBAAD,CAAV,EAA8B;AAC5BjB,MAAAA,YAAY,GAAGA,YAAY,CAACpf,GAAb,CAA8B,UAACb,IAAD;AAAA,4BACxCA,IADwC;AAE3CgN,UAAAA,sBAAsB,EAAEkU,gBAAgB,GAAGlhB,IAAI,CAACmgB;AAFL;AAAA,OAA9B,CAAf;;AAIA,UAAIN,qBAAJ,EAA2B;AACzBI,QAAAA,YAAY,GAAGA,YAAY,CAACvf,MAAb,CAAoB,UAACV,IAAD;AAAA,iBAAUA,IAAI,CAACmgB,KAAL,IAAce,gBAAxB;AAAA,SAApB,CAAf;AACD;AACF;AACF;;AACD,MAAM/B,oBAAoB,GAAGJ,aAAa,GAAGG,uBAAuB,CAACH,aAAD,CAA1B,GAA4CxI,SAAtF;AAEA,SAAO;AACLnK,IAAAA,WAAW,EAAXA,WADK;AAELxC,IAAAA,mBAAmB,EAAnBA,mBAFK;AAGLiC,IAAAA,iBAAiB,EAAjBA,iBAHK;AAILoO,IAAAA,KAAK,EAAEgG,YAJF;AAKLd,IAAAA,oBAAoB,EAApBA;AALK,GAAP;AAOD;;;;;ICjGYgC,YAAY,gBAAGjjB,cAAK,CAACkjB,aAAN,CAA8C,IAA9C,CAArB;AACPD,YAAY,CAACzhB,WAAb,GAA2B,cAA3B;AAwBA,IAAM2hB,cAAc,GAAG,OAAvB;AAEA,IAAaC,aAAa,GAAoD,SAAjEA,aAAiE;MAC5EC,cAAAA;MACAC,eAAAA;MACAC,mBAAAA;MACAC,kBAAAA;MACAC,kBAAAA;MACAC,qBAAAA;MACAC,kBAAAA;MACArmB,aAAAA;MACA0T,cAAAA;MACA4S,kBAAAA;MACAC,6BAAAA;MACAC,kCAAAA;MACAC,4BAAAA;MACAC,mBAAAA;MACA5kB,gBAAAA;MACA6kB,eAAAA;6BACAC;MAAAA,0CAAaC;gCACbC;MAAAA,gDAAgBC;AAEhB,MAAMC,aAAa,GAAGC,YAAM,CAAClB,MAAD,CAA5B;AACA,MAAMmB,gBAAgB,GAAwB;AAC5CnB,IAAAA,MAAM,EAANA,MAD4C;AAE5CI,IAAAA,UAAU,EAAVA,UAF4C;AAG5CC,IAAAA,aAAa,EAAbA,aAH4C;AAI5CC,IAAAA,UAAU,EAAVA,UAJ4C;AAK5CL,IAAAA,OAAO,EAAPA,OAL4C;AAM5CC,IAAAA,WAAW,EAAXA,WAN4C;AAO5CC,IAAAA,UAAU,EAAVA,UAP4C;AAQ5CO,IAAAA,oBAAoB,EAApBA,oBAR4C;AAS5CH,IAAAA,UAAU,EAAVA,UAT4C;AAU5CC,IAAAA,qBAAqB,EAArBA,qBAV4C;AAW5CC,IAAAA,0BAA0B,EAA1BA,0BAX4C;AAY5CI,IAAAA,UAAU,EAAVA,UAZ4C;AAa5CE,IAAAA,aAAa,EAAbA,aAb4C;AAc5CH,IAAAA,OAAO,EAAPA;AAd4C,GAA9C;;AAgBA,kBAA0BnW,cAAQ,CAAoB;AAAA,WAAO;AAC3DtQ,MAAAA,KAAK,EACHwmB,WADG,WACHA,WADG,GAEHS,cAAK,CAACC,UAAN,cACKF,gBADL;AAEEG,QAAAA,QAAQ,EAAE;AAFZ,SAHyD;AAO3D3T,MAAAA,MAAM,EAAEA,MAAM,IAAImS,cAPyC;AAQ3DyB,MAAAA,aAAa,EAAE,KAR4C;AAS3DtnB,MAAAA,KAAK,EAALA,KAT2D;AAU3DunB,MAAAA,WAAW;AAAA,0EAAE;AAAA;AAAA;AAAA;AAAA;AACXC,kBAAAA,UAAU,CAAC,UAACC,GAAD;AAAA,wCAAeA,GAAf;AAAoBC,sBAAAA,uBAAuB,EAAE,IAAIC,IAAJ;AAA7C;AAAA,mBAAD,CAAV;AADW;AAAA,yBAELF,GAAG,CAACvnB,KAAJ,CAAU0nB,OAAV,EAFK;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAVgD,KAAP;AAAA,GAApB,CAAlC;AAAA,MAAOH,GAAP;AAAA,MAAYD,UAAZ;;AAgBAK,EAAAA,eAAS,CAAC;AACR,QAAIC,SAAS,GAAG,IAAhB;;AAEA,QAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,cAAD;AACrB,UAAIF,SAAJ,EAAe;AACbN,QAAAA,UAAU,CAACQ,cAAD,CAAV;AACD;AACF,KAJD;;AAMA,QAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB;AAAA,aAAMF,cAAc,CAAC,UAACN,GAAD;AAAA,4BAAeA,GAAf;AAAoBS,UAAAA,SAAS,EAAE,IAAIP,IAAJ;AAA/B;AAAA,OAAD,CAApB;AAAA,KAA9B;;AAEA,QAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACjoB,KAAD;AAAA,aACvB6nB,cAAc,CAAC,UAACN,GAAD;AACb,YAAIA,GAAG,CAACvnB,KAAR,EAAe;AACbunB,UAAAA,GAAG,CAACvnB,KAAJ,CAAUkoB,cAAV,CAAyB,qBAAzB,EAAgDH,qBAAhD;AACD;;AACD/nB,QAAAA,KAAK,CAACmoB,WAAN,CAAkB,qBAAlB,EAAyCJ,qBAAzC;AAEA,4BACKR,GADL;AAEEvnB,UAAAA,KAAK,EAALA,KAFF;AAGEonB,UAAAA,aAAa,EAAE,IAHjB;AAIEY,UAAAA,SAAS,EAAE,IAAIP,IAAJ;AAJb;AAMD,OAZa,CADS;AAAA,KAAzB;;AAeA,QAAMW,eAAe;AAAA,iEAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAClB5B,gBAAAA,WADkB,GACJe,GAAG,CAACvnB,KADA;;AAEtB,oBAAI6lB,MAAM,KAAKiB,aAAa,CAACuB,OAA7B,EAAsC;AACpCC,kBAAAA,MAAM,CAACpH,GAAP,CAAW,uBAAX,EAAoC;AAAE2E,oBAAAA,MAAM,EAANA;AAAF,mBAApC;AACAiB,kBAAAA,aAAa,CAACuB,OAAd,GAAwBxC,MAAxB;AACAW,kBAAAA,WAAW,GAAGS,cAAK,CAACC,UAAN,cACTF,gBADS,EAAd;AAGAa,kBAAAA,cAAc,CAAC,UAACN,GAAD;AAAA,wCAAeA,GAAf;AAAoBH,sBAAAA,aAAa,EAAE,KAAnC;AAA0CY,sBAAAA,SAAS,EAAE,IAAIP,IAAJ;AAArD;AAAA,mBAAD,CAAd;AACD;;AATqB;AAAA,uBAUhBjB,WAAW,CAAC+B,qBAAZ,EAVgB;;AAAA;AAWtBN,gBAAAA,gBAAgB,CAACzB,WAAD,CAAhB;;AAXsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAAf4B,eAAe;AAAA;AAAA;AAAA,OAArB;;AAcA,SAAKA,eAAe,EAApB;AAEA,WAAO;AACLR,MAAAA,SAAS,GAAG,KAAZ;AACAL,MAAAA,GAAG,CAACvnB,KAAJ,CAAUkoB,cAAV,CAAyB,qBAAzB,EAAgDH,qBAAhD;AACAR,MAAAA,GAAG,CAACvnB,KAAJ,CAAUwoB,aAAV;AACD,KAJD;AAMD,GAhDQ,EAgDN,CAAC3C,MAAD,CAhDM,CAAT;AAkDA8B,EAAAA,eAAS,CAAC;AACR,QAAMnB,WAAW,GAAGe,GAAG,CAACvnB,KAAxB;;AACA,QAAIimB,UAAJ,EAAgB;AACd,WAAKO,WAAW,CAACiC,aAAZ,CAA0BxC,UAA1B,EAAsCC,aAAtC,EAAqDC,UAArD,CAAL;AACD,KAFD,MAEO;AACLK,MAAAA,WAAW,CAACgC,aAAZ;AACD;;AAEF,GARQ,EAQN,CAACvC,UAAD,EAAaC,aAAb,EAA4BC,UAA5B,CARM,CAAT;AAUAwB,EAAAA,eAAS,CAAC;AACRL,IAAAA,UAAU,CAAC,UAACC,GAAD;AAAA,0BAAeA,GAAf;AAAoBznB,QAAAA,KAAK,EAALA;AAApB;AAAA,KAAD,CAAV;AACD,GAFQ,EAEN,CAACA,KAAD,CAFM,CAAT;AAIA,SACE0C,4BAAA,CAACijB,YAAY,CAACiD,QAAd;AAAuB1Q,IAAAA,KAAK,EAAEuP;GAA9B,EACE/kB,4BAAA,CAACmmB,wBAAD;AAAeC,IAAAA,SAAS,EAAC;AAAUC,IAAAA,cAAc,EAAC;GAAlD,EACGjnB,QADH,CADF,CADF;AAOD,CA5HM;;SCxCSye,gBAAgBvW;AAC9B,aAAqBA,OAAO,IAAI,EAAhC;AAAA,MAAQgf,QAAR,QAAQA,QAAR;;AACA,MAAMvB,GAAG,GAAGwB,gBAAU,CAACtD,YAAD,CAAtB;;AACA,MAAI,CAAC8B,GAAD,IAAQ,CAACuB,QAAb,EAAuB;AACrB,UAAM,IAAIE,KAAJ,CAAU,0FAAV,CAAN;AACD;;AACD,SAAOzB,GAAP;AACD;;SCIe0B;MACdpE,iBAAAA;MACAsB,kBAAAA;MACAhC,6BAAAA;MACA+E,0BAAAA;MACA3H,8BAAAA;;AAEA,yBAA0BlB,eAAe,EAAzC;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;AAAA,MAAewT,MAAf,oBAAeA,MAAf;;AACA,kBAA0DlD,cAAQ,CAAC1F,mBAAa,CAACyB,QAAf,CAAlE;AAAA,MAAOF,qBAAP;AAAA,MAA8Bgd,wBAA9B;;AACA,mBAA8D7Y,cAAQ,CAAkB,EAAlB,CAAtE;AAAA,MAAOmN,uBAAP;AAAA,MAAgC2L,0BAAhC;;AACA,mBAA8B9Y,cAAQ,CAAiB,IAAjB,CAAtC;AAAA,MAAO4T,OAAP;AAAA,MAAgBmF,UAAhB;;AACA,mBAAkC/Y,cAAQ,CAAU,IAAV,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AAEAmX,EAAAA,eAAS,CAAC;AACR,QAAM2B,WAAW;AAAA,iEAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEhB9Y,gBAAAA,YAAY,CAAC,IAAD,CAAZ;AAFgB;AAAA,uBAIVxQ,KAAK,CAACuoB,qBAAN,EAJU;;AAAA;AAAA;AAAA,uBAKYvoB,KAAK,CAACupB,UAAN,CAAiB;AAC3C1E,kBAAAA,SAAS,EAATA,SAD2C;AAE3CsB,kBAAAA,UAAU,EAAVA,UAF2C;AAG3C+C,kBAAAA,kBAAkB,EAAlBA;AAH2C,iBAAjB,CALZ;;AAAA;AAKVM,gBAAAA,aALU;AAAA,wCAU0CnI,qBAAqB,CAC7EmI,aAAa,CAACjL,KAD+D,EAE7EiL,aAAa,CAAClI,mBAF+D,EAG7EC,sBAH6E,CAV/D,EAUR9D,wBAVQ,yBAURA,uBAVQ,EAUiBqE,oBAVjB,yBAUiBA,oBAVjB;AAgBhBuH,gBAAAA,UAAU,CAACG,aAAD,CAAV;AACAJ,gBAAAA,0BAA0B,CAAC3L,wBAAD,CAA1B;AACA0L,gBAAAA,wBAAwB,CAACrH,oBAAD,CAAxB;AAlBgB;AAAA;;AAAA;AAAA;AAAA;AAoBhBwG,gBAAAA,MAAM,CAACjoB,KAAP,6DAAwC,YAAa0gB,OAArD;;AApBgB;AAAA;AAsBhBvQ,gBAAAA,YAAY,CAAC,KAAD,CAAZ;AAtBgB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAAX8Y,WAAW;AAAA;AAAA;AAAA,OAAjB;;AA0BA,SAAKA,WAAW,EAAhB;AACD,GA5BQ,EA4BN,CAACtpB,KAAD,EAAQ6kB,SAAR,EAAmB7kB,KAAK,CAACypB,gBAAzB,EAA2CP,kBAA3C,EAA+D/C,UAA/D,EAA2E5E,sBAA3E,CA5BM,CAAT;AA8BA,MAAMmI,WAAW,GAAGzF,cAAc,CAACC,OAAD,EAAUC,qBAAV,CAAlC;AAEA;AACEjU,IAAAA,QAAQ,EAAE,CAAAgU,OAAO,QAAP,YAAAA,OAAO,CAAEhU,QAAT,KAAqB,IADjC;AAEEK,IAAAA,SAAS,EAATA,SAFF;AAGEpE,IAAAA,qBAAqB,EAArBA,qBAHF;AAIEgd,IAAAA,wBAAwB,EAAxBA,wBAJF;AAKE1L,IAAAA,uBAAuB,EAAvBA,uBALF;AAMEjK,IAAAA,MAAM,EAANA,MANF;AAOE6P,IAAAA,aAAa,EAAEqG,WAAW,CAACjG;AAP7B,KAQKiG,WARL;AAUD;;SCrBeC,2BAA2BC;AACzC,MAAMC,0BAA0B,GAAwB;AACtDpN,IAAAA,aAAa,EAAE,aADuC;AAEtDhM,IAAAA,aAAa,EAAE;AACbK,MAAAA,OAAO,EAAE,SADI;AAEbF,MAAAA,SAAS,EAAE,WAFE;AAGbC,MAAAA,UAAU,EAAE,oBAACvM,IAAD;AAAA;;AAAA,oDAAgCA,IAAI,CAAC+gB,kBAArC,qBAAgC,sBAAyByE,QAAzD;AAAA,OAHC;AAIbnZ,MAAAA,MAAM,EAAE,YAJK;AAKbD,MAAAA,WAAW,EAAE,cALA;AAMbK,MAAAA,QAAQ,EAAE,aANG;AAObC,MAAAA,qBAAqB,EAAE,+BAACnM,aAAD;AACrB,eAAOA,aAAa,KAAK+F,mBAAa,CAACgK,OAAhC,GAA0C,2BAA1C,GAAwE,0BAA/E;AACD,OATY;AAUb3D,MAAAA,qBAAqB,EAAE;AAVV,KAFuC;AActDhM,IAAAA,KAAK,EAAE;AACL+V,MAAAA,iBAAiB,EAAE,WADd;AAELrG,MAAAA,WAAW,EAAE,qBAAC9P,aAAD;AAAA,eAAmCA,aAAa,KAAK+F,mBAAa,CAACgK,OAAhC,GAA0C,SAA1C,GAAsD,QAAzF;AAAA,OAFR;AAGLM,MAAAA,IAAI,EAAE,cAAC7B,QAAD;AAAA,eAAe;AACnBpO,UAAAA,KAAK,GAAKoO,QAAL,oBAAKA,QAAQ,CAAE0W,MAAf;AADc,SAAf;AAAA,OAHD;AAMLpZ,MAAAA,MAAM,EAAE,QANH;AAOL4E,MAAAA,WAAW,EAAE;AAPR;AAd+C,GAAxD;AAwBA,SAAOnM,KAAK,CAACygB,0BAAD,EAA6BD,gBAA7B,CAAZ;AACD;;;;ACvED,IAAMI,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAvB;;AAMA,IAAMnnB,sBAAoB,gBAAG,QAAOC,aAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B;;AAIA,IAAMmnB,oBAAoB;AAAA;AAAA;AAAA,qGAMb;AAAA,MAAGnqB,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBI,WAAlC;AAAA,CANa,wBAOJ;AAAA,MAAGzI,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBgH,eAAnC;AAAA,CAPI,iBAQX;AAAA,MAAGnH,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBC,YAAlC;AAAA,CARW,iBASX;AAAA,MAAGtI,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBE,YAAlC;AAAA,CATW,+BAWd;AAAA,MAAGvI,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAhD;AAAA,CAXc,6kJAA1B;;AAcA,IAAM6iB,cAAc;AAAA;AAAA;AAAA,wBAEX;AAAA,MAAGpqB,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBG,UAAlC;AAAA,CAFW,mnJAApB;;AAOA,IAAM6hB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B;;AAMA,IAAMC,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B;;AAIA,IAAMC,mBAAmB;AAAA;AAAA;AAAA,iCAEN;AAAA,MAAGvqB,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYmI,MAAZ,CAAmBS,mBAAlC;AAAA,CAFM,0EAMb;AAAA,MAAG9I,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAhD;AAAA,CANa,6kJAAzB;;AASA,SAASijB,kBAAT;AACE,SACE9nB,4BAAA,CAACynB,oBAAD,MAAA,EACEznB,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKjB,IAAAA,YAAY,EAAE;GAApC,CADF,EAEE7T,4BAAA,CAACwU,mBAAD;AAAUuT,IAAAA,MAAM;AAACjT,IAAAA,KAAK,EAAE;AAAIrE,IAAAA,MAAM,EAAE;GAApC,CAFF,EAGEzQ,4BAAA,CAACwU,mBAAD;AAAUlV,IAAAA,KAAK,EAAE;AAAE0oB,MAAAA,YAAY,EAAE;AAAhB;AAAsBlT,IAAAA,KAAK,EAAE;AAAKjB,IAAAA,YAAY,EAAE;GAAjE,CAHF,EAKE7T,4BAAA,CAAC2nB,oBAAD,MAAA,EACE3nB,4BAAA,CAACK,sBAAD,MAAA,CADF,EAEEL,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKjB,IAAAA,YAAY,EAAE;GAApC,CAFF,CALF,EASE7T,4BAAA,CAAC2nB,oBAAD,MAAA,EACE3nB,4BAAA,CAACK,sBAAD,MAAA,CADF,EAEEL,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKjB,IAAAA,YAAY,EAAE;GAApC,CAFF,CATF,EAaE7T,4BAAA,CAAC2nB,oBAAD,MAAA,EACE3nB,4BAAA,CAACK,sBAAD,MAAA,CADF,EAEEL,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKjB,IAAAA,YAAY,EAAE;GAApC,CAFF,CAbF,EAkBE7T,4BAAA,CAAC4nB,oBAAD,MAAA,EACE5nB,4BAAA,CAACwU,mBAAD;AAAU/D,IAAAA,MAAM,EAAE;AAAIoD,IAAAA,YAAY,EAAE;GAApC,CADF,CAlBF,CADF;AAwBD;;AAED,SAAgBoU;AACd,SACEjoB,4BAAA,CAACwnB,iBAAD;AAAmBznB,IAAAA,SAAS,EAAC;GAA7B,EACEC,4BAAA,CAAC6nB,mBAAD;AAAqB9nB,IAAAA,SAAS,EAAC;GAA/B,EACEC,4BAAA,CAACwU,mBAAD;AAAUX,IAAAA,YAAY,EAAE;GAAxB,CADF,CADF,EAKE7T,4BAAA,CAAC0nB,cAAD;AAAgB3nB,IAAAA,SAAS,EAAC;GAA1B,EACEC,4BAAA,CAAC8nB,kBAAD,MAAA,CADF,EAEE9nB,4BAAA,CAAC8nB,kBAAD,MAAA,CAFF,EAGE9nB,4BAAA,CAAC8nB,kBAAD,MAAA,CAHF,CALF,CADF;AAaD;;;AC7FM,IAAMI,KAAK,GAAG,SAARA,KAAQ;MAAGC,uBAAAA;AACtB,SACEnoB,4BAAA,CAACooB,YAAD;AACEC,IAAAA,MAAM,EAAEnb,SAAF,80FACFib,eAAe,0LAMoBA,eANpB,6CADb;GADR,CADF;AA4ED,CA7EM;;;;ACaP,IAAMG,eAAe;AAAA;AAAA;AAAA,GACjB;AAAA,MAAG3hB,SAAH,QAAGA,SAAH;AAAA,SACAA,SAAS,IACTuG,SADS,iGAELvG,SAFK,CADT;AAAA,CADiB,q+HAArB;AAYA;;;;;;;;AAMA,SAAgB4hB,cAAcC;AAC5B,yBAAiC3K,eAAe,EAAhD;AAAA,MAAe4K,aAAf,oBAAQnrB,KAAR;;AACA,MAAMorB,WAAW,GAAG9hB,YAAK,CAAC4hB,mBAAD,EAAsBC,aAAtB,CAAzB;AACA,MAAME,aAAa,GAAG/kB,gBAAgB,CAAC8kB,WAAD,CAAtC;AAEA,SAAOC,aAAP;AACD;;AAED,SAASC,qBAAT,CAA+BtrB,KAA/B;AACE,MAAQoB,UAAR,GAAuBpB,KAAvB,CAAQoB,UAAR;AACA,MAAMmqB,YAAY,GAAG,EAArB;AACA,MAAMC,IAAI,GAAG1S,MAAM,CAAC1X,UAAU,CAACI,IAAX,CAAgBsB,QAAhB,CAAyBqR,OAAzB,CAAiC,IAAjC,EAAuC,EAAvC,CAAD,CAAN,GAAqD,EAAlE;AAEA,SAAO;AACL;AACA;AACAsX,IAAAA,OAAO,EAAE,iBAACvY,IAAD;AAAA,aAAcA,IAAI,GAAGqY,YAAR,GAAwBC,IAArC;AAAA,KAHJ;AAILE,IAAAA,cAAc,EAAEtqB,UAAU,CAACgI,UAJtB;AAKLuiB,IAAAA,iBAAiB,EAAEvqB,UAAU,CAACgI,UALzB;AAMLwiB,IAAAA,SAAS,EAAE,CACTxqB,UAAU,CAACC,EAAX,CAAcyB,QADL,EAET1B,UAAU,CAACE,EAAX,CAAcwB,QAFL,EAGT1B,UAAU,CAACG,EAAX,CAAcuB,QAHL,EAIT1B,UAAU,CAACI,IAAX,CAAgBsB,QAJP,EAKT,MALS,EAMT,MANS;AANN,GAAP;AAeD;;AAED,IAAM+oB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC7rB,KAAD;AACvB,SAAO;AACLI,IAAAA,OAAO,EAAE;AACP0rB,MAAAA,IAAI,EAAE9rB,KAAK,CAACG,OAAN,CAAcC;AADb;AADJ,GAAP;AAKD,CAND;;AAQA,AAAO,IAAM2rB,gBAAgB,GAAuD,SAAvEA,gBAAuE;;;MAAGjqB,iBAAAA;MAAUkqB,uBAAAA;AAC/F,MAAMhsB,KAAK,GAAGirB,aAAa,CAACe,cAAD,CAA3B;AACA,MAAMC,UAAU,GAAGJ,gBAAgB,CAAC7rB,KAAD,CAAnC;AACA,MAAMksB,aAAa,GAAGC,kBAAW,CAAC;AAAEhsB,IAAAA,OAAO,EAAE8rB,UAAX;AAAuB/rB,IAAAA,KAAK,EAAEF;AAA9B,GAAD,CAAjC;AAEA;AAEE;AACA0C,IAAAA,4BAAA,CAAC0pB,oBAAD;AAAkBpsB,MAAAA,KAAK,uBAAKqsB,eAAL,IAAgBH,aAAhB;KAAvB,EACExpB,4BAAA,CAAC4pB,mBAAD;AAAetsB,MAAAA,KAAK,EAAE;AAAEE,QAAAA,KAAK,EAAEF;AAAT;KAAtB,EACE0C,4BAAA,CAACsoB,eAAD;AAAiB3hB,MAAAA,SAAS,EAAErJ,KAAK,CAACqJ;KAAlC,EACE3G,4BAAA,CAACkoB,KAAD;AAAOC,MAAAA,eAAe,EAAE7qB,KAAK,CAACoB,UAAN,CAAiB2hB;KAAzC,CADF,EAEErgB,4BAAA,CAAC6pB,sBAAD;AAAqBvsB,MAAAA,KAAK,EAAE;AAAEoB,QAAAA,UAAU,EAAEkqB,qBAAqB,CAACtrB,KAAD;AAAnC;KAA5B,EAA2E8B,QAA3E,CAFF,CADF,CADF;AAHF;AAYD,CAjBM;;SC9DS0qB;MAAoBnG,kBAAAA;MAAYtB,iBAAAA;;AAC9C,yBAA2CxE,eAAe,EAA1D;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;AAAA,MAAewnB,uBAAf,oBAAeA,uBAAf;;AACA,kBAAkClX,cAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAA4CF,cAAQ,EAApD;AAAA,MAAOic,cAAP;AAAA,MAAuBC,iBAAvB;;AAEA7E,EAAAA,eAAS,CAAC;AACR,QAAM8E,kBAAkB;AAAA,iEAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACrBzsB,KAAK,CAACypB,gBADe;AAAA;AAAA;AAAA;;AAAA;AAGrBjZ,gBAAAA,YAAY,CAAC,IAAD,CAAZ;AAHqB;AAAA,uBAIYxQ,KAAK,CAAC0sB,iBAAN,CAAwB;AAAEvG,kBAAAA,UAAU,EAAVA,UAAF;AAActB,kBAAAA,SAAS,EAATA;AAAd,iBAAxB,CAJZ;;AAAA;AAIf8H,gBAAAA,kBAJe;AAKrBH,gBAAAA,iBAAiB,CAACG,kBAAD,CAAjB;AALqB;AAAA;;AAAA;AAAA;AAAA;AAOrBrE,gBAAAA,MAAM,CAACjoB,KAAP,qEAAgD,YAAa0gB,OAA7D;;AAPqB;AAAA;AASrBvQ,gBAAAA,YAAY,CAAC,KAAD,CAAZ;AATqB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAAlBic,kBAAkB;AAAA;AAAA;AAAA,OAAxB;;AAcA,SAAKA,kBAAkB,EAAvB;AACD,GAhBQ,EAgBN,CAACzsB,KAAD,EAAQA,KAAK,CAACypB,gBAAd,EAAgCjC,uBAAhC,EAAyDrB,UAAzD,EAAqEtB,SAArE,CAhBM,CAAT;AAkBA,SAAO;AACL0H,IAAAA,cAAc,EAAdA,cADK;AAELhc,IAAAA,SAAS,EAATA;AAFK,GAAP;AAID;;SClBeqc,kCACdhD;AAEA,MAAMiD,iCAAiC,GAA+B;AACpEC,IAAAA,kBAAkB,EAAE,QADgD;AAEpEC,IAAAA,aAAa,EAAE,OAFqD;AAGpEC,IAAAA,cAAc,EAAE,SAHoD;AAIpEC,IAAAA,kBAAkB,EAAE,YAJgD;AAKpEC,IAAAA,kBAAkB,EAAE,4EALgD;AAMpEC,IAAAA,mBAAmB,EAAE,yCAN+C;AAOpEC,IAAAA,kBAAkB,EAAE,iBAPgD;AAQpEC,IAAAA,WAAW,EAAE,sBARuD;AASpEC,IAAAA,aAAa,EAAE,UATqD;AAUpEC,IAAAA,kBAAkB,EAAE,sBAVgD;AAWpEC,IAAAA,kBAAkB,EAAE,MAXgD;AAYpEC,IAAAA,mBAAmB,EAAE,OAZ+C;AAapEC,IAAAA,iCAAiC,EAAE;AAbiC,GAAtE;AAeA,SAAOtkB,KAAK,CAACyjB,iCAAD,EAAoCjD,gBAApC,CAAZ;AACD;;SCvBe+D,+BACdC,aACAC,eACAC;;;AAEA,MAAMC,0BAA0B,GAAwB;AACtDC,IAAAA,iBAAiB,EAAE,CAAAH,aAAa,QAAb,YAAAA,aAAa,CAAEG,iBAAf,KAAoCJ,WAAW,CAAC3tB,OAAZ,CAAoBK,IAApB,CAAyB2H,SAD1B;AAEtDgmB,IAAAA,aAAa,EAAE,CAAAJ,aAAa,QAAb,YAAAA,aAAa,CAAEI,aAAf,KAAgCL,WAAW,CAAC3tB,OAAZ,CAAoBK,IAApB,CAAyBJ,OAFlB;AAGtDwjB,IAAAA,eAAe,EAAE,CAAAmK,aAAa,QAAb,YAAAA,aAAa,CAAEnK,eAAf,MAAkCoK,mBAAlC,6CAAkCA,mBAAmB,CAAE7tB,OAAvD,qBAAkC,sBAA8ByjB,eAAhE,KAAmF,OAH9C;AAItDnN,IAAAA,WAAW,EAAE,CAAAsX,aAAa,QAAb,YAAAA,aAAa,CAAEtX,WAAf,MAA8BuX,mBAA9B,8CAA8BA,mBAAmB,CAAE7tB,OAAnD,qBAA8B,uBAA8BsW,WAA5D,KAA2E,wBAJlC;AAKtD2X,IAAAA,uBAAuB,EAAE,CAAAL,aAAa,QAAb,YAAAA,aAAa,CAAEnK,eAAf,MAAkCoK,mBAAlC,8CAAkCA,mBAAmB,CAAE7tB,OAAvD,qBAAkC,uBAA8ByjB,eAAhE,KAAmF,OALtD;AAMtDyK,IAAAA,YAAY,EAAE,CAAAN,aAAa,QAAb,YAAAA,aAAa,CAAEM,YAAf,KAA+B,OANS;AAQtD;AACArS,IAAAA,UAAU,EAAE,CAAA+R,aAAa,QAAb,YAAAA,aAAa,CAAE/R,UAAf,MAA6BgS,mBAA7B,8CAA6BA,mBAAmB,CAAE7tB,OAAlD,qBAA6B,uBAA8B6b,UAA3D,KAAyEjB,SAT/B;AAUtDuT,IAAAA,oBAAoB,EAAEP,aAAF,oBAAEA,aAAa,CAAEO;AAViB,GAAxD;AAaA,SAAOL,0BAAP;AACD;;AChBM,IAAMM,qBAAqB,gBAAG7rB,cAAK,CAACkjB,aAAN,CAAuD,IAAvD,CAA9B;AACP2I,qBAAqB,CAACrqB,WAAtB,GAAoC,uBAApC;AAEA,AAAO,IAAMsqB,wBAAwB,GAAG,SAA3BA,wBAA2B;AACtC,MAAM/G,GAAG,GAAGwB,gBAAU,CAACsF,qBAAD,CAAtB;;AACA,MAAI,CAAC9G,GAAL,EAAU;AACR,UAAM,IAAIyB,KAAJ,CACJ,oIADI,CAAN;AAGD;;AACD,SAAOzB,GAAP;AACD,CARM;AAUP,SAAgBgH,sBAAyBC;AACvC,MAAMjH,GAAG,GAAGwB,gBAAU,CAACyF,WAAD,CAAtB;AACA,SAAO,CAAC,CAACjH,GAAT;AACD;AAED,SAAgBkH;MACd7sB,gBAAAA;MACA8sB,qBAAAA;MACA5uB,aAAAA;MACAqmB,kBAAAA;MACAtB,iBAAAA;;AAQA,yBAAoCxE,eAAe,EAAnD;AAAA,MAAQmH,uBAAR,oBAAQA,uBAAR;;AACA,2BAAsC8E,iBAAiB,CAAC;AAAEnG,IAAAA,UAAU,EAAVA,UAAF;AAActB,IAAAA,SAAS,EAATA;AAAd,GAAD,CAAvD;AAAA,MAAQ0H,cAAR,sBAAQA,cAAR;AAAA,MAAwBhc,SAAxB,sBAAwBA,SAAxB;;AACA,MAAM8S,aAAa,GAAGkJ,cAAc,QAAd,IAAAA,cAAc,CAAElJ,aAAhB,GAClBD,8BAA8B,CAACmJ,cAAc,CAAClJ,aAAhB,CADZ,GAElBxI,SAFJ;AAGA,MAAM+S,WAAW,GAAG7C,aAAa,CAAC1H,aAAD,CAAjC;AACA,MAAMsL,mBAAmB,GAAGhB,8BAA8B,CAACC,WAAD,EAAc9tB,KAAd,EAAqBysB,cAArB,oBAAqBA,cAAc,CAAElJ,aAArC,CAA1D;AACA,MAAMuL,qBAAqB,GAAGhC,iCAAiC,CAAC8B,aAAD,CAA/D;AAEA,SACElsB,4BAAA,CAACqpB,gBAAD;AAAkBC,IAAAA,cAAc,EAAEzI;GAAlC,EACE7gB,4BAAA,CAAC6rB,qBAAqB,CAAC3F,QAAvB;AACEtjB,IAAAA,GAAG,EAAEoiB,uBAAF,oBAAEA,uBAAuB,CAAExgB,QAAzB;AACLgR,IAAAA,KAAK,EAAE;AACLuU,MAAAA,cAAc,EAAdA,cADK;AAELhc,MAAAA,SAAS,EAATA,SAFK;AAGLme,MAAAA,aAAa,EAAEE,qBAHV;AAIL9uB,MAAAA,KAAK,EAAE6uB,mBAJF;AAKLxI,MAAAA,UAAU,EAAVA;AALK;GAFT,EASGvkB,QATH,CADF,CADF;AAeD;;IC5CYse,kBAAgB,GAAG,SAAnBA,gBAAmB;MAC9B2E,iBAAAA;MACAsB,kBAAAA;MACA/F,yBAAAA;MACA+D,6BAAAA;MACAuK,qBAAAA;MACAte,sBAAAA;MACAmR,8BAAAA;MACAsN,6BAAAA;MACA3F,0BAAAA;MACAlJ,sBAAAA;MACA7R,8BAAAA;AAEA,MAAM2gB,wBAAwB,GAAGP,qBAAqB,CAACF,qBAAD,CAAtD;AACA,MAAIU,uBAAuB,GAAG,KAA9B;;AACA,MAAID,wBAAJ,EAA8B;AAC5B;AACA,gCAA4DR,wBAAwB,EAApF;AAAA,QAAQ/d,UAAR,yBAAQA,SAAR;AAAA,QAA+Bye,wBAA/B,yBAAmB7I,UAAnB;;AACA4I,IAAAA,uBAAuB,GAAGxe,UAA1B;AACA4V,IAAAA,UAAU,GAAG6I,wBAAb;AACD;;AACD,4BAWI/F,kBAAkB,CAAC;AACrBpE,IAAAA,SAAS,EAATA,SADqB;AAErBsB,IAAAA,UAAU,EAAVA,UAFqB;AAGrBhC,IAAAA,qBAAqB,EAArBA,qBAHqB;AAIrB+E,IAAAA,kBAAkB,EAAlBA,kBAJqB;AAKrB3H,IAAAA,sBAAsB,EAAtBA;AALqB,GAAD,CAXtB;AAAA,MACEhD,KADF,uBACEA,KADF;AAAA,MAEErO,QAFF,uBAEEA,QAFF;AAAA,MAGEhC,mBAHF,uBAGEA,mBAHF;AAAA,MAIEiC,iBAJF,uBAIEA,iBAJF;AAAA,MAKEI,SALF,uBAKEA,SALF;AAAA,MAMEpE,qBANF,uBAMEA,qBANF;AAAA,MAOEgd,wBAPF,uBAOEA,wBAPF;AAAA,MAQE1L,uBARF,uBAQEA,uBARF;AAAA,MASEjK,MATF,uBASEA,MATF;AAAA,MAUE6P,aAVF,uBAUEA,aAVF;;AAkBA,MAAM9e,aAAa,GAAGolB,0BAA0B,CAAC+E,aAAD,CAAhD;;AACA,MAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,CAACpqB,aAAD;AACzBskB,IAAAA,wBAAwB,CAACtkB,aAAD,CAAxB;;AACA,QAAIgqB,qBAAJ,EAA2B;AACzBA,MAAAA,qBAAqB,CAAChqB,aAAD,CAArB;AACD;AACF,GALD;;AAOA,MAAMqqB,SAAS,GACb,CAAC3Q,KAAD,IAAUhO,SAAV,IAAuBwe,uBAAvB,GACEvsB,4BAAA,CAACioB,aAAD,MAAA,CADF,GAGEjoB,4BAAA,CAACmD,OAAD;AACE4Y,IAAAA,KAAK,EAAEA;AACPrO,IAAAA,QAAQ,EAAEA;AACVhC,IAAAA,mBAAmB,EAAEA;AACrB/B,IAAAA,qBAAqB,EAAEA;AACvBqR,IAAAA,sBAAsB,EAAEyR;AACxBxR,IAAAA,uBAAuB,EAAEA;AACzB2C,IAAAA,iBAAiB,EAAEA;AACnBjQ,IAAAA,iBAAiB,EAAEA;AACnBC,IAAAA,cAAc,EAAEA;AAChB7L,IAAAA,aAAa,EAAEA;AACfiP,IAAAA,MAAM,EAAEA;AACRwM,IAAAA,cAAc,EAAEA;AAChB7R,IAAAA,sBAAsB,EAAEA;GAb1B,CAJJ;;AAsBA,MAAI2gB,wBAAJ,EAA8B;AAC5B,WAAOI,SAAP;AACD;;AACD,SAAO1sB,4BAAA,CAACqpB,gBAAD;AAAkBC,IAAAA,cAAc,EAAEzI;GAAlC,EAAkD6L,SAAlD,CAAP;AACD,CAzEM;;AC1BA,IAAMxZ,cAAY,gBAAG,QAAOC,iBAAP;AAAA;AAAA;AAAA,EAAH,oFAOL;AAAA,MAAG7V,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBqH,qBAAnC;AAAA,CAPK,kuBAAlB;;ACHP,IAAI6L,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,4DAA4D;AACnE,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACfK,IAAMgwB,aAAa;AAAA;AAAA;AAAA,qEAKtB;AAAA,MAAGC,cAAH,QAAGA,cAAH;AAAA,SACA,CAACA,cAAD,uEADA;AAAA,CALsB,6rBAAnB;;SCSSC;MAAe3qB,aAAAA;MAAOnC,iBAAAA;MAAWgO,iBAAAA;;AAC/C,8BAAkB+d,wBAAwB,EAA1C;AAAA,MAAQxuB,KAAR,yBAAQA,KAAR;;AAEA,MAAIyQ,SAAJ,EAAe;AACb,WAAO/N,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;KAAjB,CAAP;AACD;;AAED,SACE9U,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,aAAa,EAAElC,KAAK,CAACkuB;AAAmBrtB,IAAAA,OAAO,EAAC;AAAKsB,IAAAA,IAAI;GAA3F,EACGyC,KADH,CADF;AAKD;;AChBD,WAAY4qB;AACVA,EAAAA,kDAAA,wBAAA;AACAA,EAAAA,2CAAA,iBAAA;AACAA,EAAAA,iDAAA,uBAAA;AACD,CAJD,EAAYA,mCAA2B,KAA3BA,mCAA2B,KAAA,CAAvC;;ACUA,IAAMC,cAAc,gBAAG,QAAOC,WAAP;AAAA;AAAA;AAAA,EAAH,iBAEN;AAAA,MAAG1vB,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CAFM,0yEAApB;;AAMA,SAAgBuvB;MACdC,6BAAAA;MACAC,yBAAAA;MACAjB,sBAAAA;AAEA,SACElsB,4BAAA,CAAC2sB,aAAD;AAAe5sB,IAAAA,SAAS,EAAC;;GAAzB,EACEC,4BAAA,CAAC6sB,YAAD;AAAc3qB,IAAAA,KAAK,EAAC;AAAenC,IAAAA,SAAS,EAAC;GAA7C,CADF,EAEG,CAACotB,gBAAD,IACCntB,4BAAA,CAACkT,cAAD;AACEnT,IAAAA,SAAS,EAAC;AACV5B,IAAAA,OAAO,EAAC;AACRiS,IAAAA,OAAO,EAAE;AAAA,aAAM8c,oBAAoB,CAAC;AAAEne,QAAAA,aAAa,EAAE+d,mCAA2B,CAACM;AAA7C,OAAD,CAA1B;AAAA;GAHX,EAIEptB,4BAAA,CAAC+sB,cAAD;AAAgBhtB,IAAAA,SAAS,EAAC;GAA1B,CAJF,EAKEC,4BAAA,CAAChB,UAAD;AACEe,IAAAA,SAAS,EAAC;AACVR,IAAAA,KAAK,EAAC;AACND,IAAAA,KAAK,EAAE;AAAE+tB,MAAAA,UAAU,EAAE;AAAd;AACPlvB,IAAAA,OAAO,EAAC;GAJV,EAKG+tB,aALH,oBAKGA,aAAa,CAAE5B,kBALlB,CALF,CAHJ,CADF;AAoBD;;SC1CegD;AACd,8BAA2BxB,wBAAwB,EAAnD;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;;AACA,MAAMwD,MAAM,GAAGtO,OAAO,CAAC8K,cAAD,oBAACA,cAAc,CAAEyD,aAAjB,EAAgC,UAACtP,YAAD;AAAA,WAAkBA,YAAY,CAACqP,MAA/B;AAAA,GAAhC,CAAtB;;AACA,MAAIE,OAAO,CAACF,MAAD,CAAX,EAAqB;AACnB,WAAO,IAAP;AACD;;AAED,SACEvtB,4BAAA,MAAA;AAAKD,IAAAA,SAAS,EAAC;GAAf,EACGwtB,MAAM,CAAC5qB,GAAP,CAAW,UAAC+qB,KAAD,EAAQC,KAAR;AAAA,WACV3tB,4BAAA,CAAChB,UAAD;AAAY4D,MAAAA,GAAG,EAAE8qB,KAAK,CAACE;AAASvuB,MAAAA,IAAI;AAACU,MAAAA,SAAS,EAAC;AAA6B5B,MAAAA,OAAO,EAAC;KAApF,EACGuvB,KAAK,CAACxkB,QAAN,GAAiB,CAAjB,IAAyBwkB,KAAK,CAACxkB,QAA/B,QADH,EAEGwkB,KAAK,CAAClsB,WAFT,EAGGmsB,KAAK,KAAKJ,MAAM,CAACnqB,MAAP,GAAgB,CAA1B,GAA8B,EAA9B,GAAmC,IAHtC,CADU;AAAA,GAAX,CADH,CADF;AAWD;;ACjBD,IAAMyqB,GAAG;AAAA;AAAA;AAAA,4FAKU;AAAA,MAAGC,YAAH,QAAGA,YAAH;AAAA,wBAAmCA,YAAnC;AAAA,CALV,6yGAAT;;AAaA,SAASC,iBAAT,CAA2BC,sBAA3B;AACE,MAAQxsB,WAAR,GAAuDwsB,sBAAvD,CAAQxsB,WAAR;AAAA,MAAqBtE,UAArB,GAAuD8wB,sBAAvD,CAAqB9wB,UAArB;AAAA,MAAiC+D,iBAAjC,GAAuD+sB,sBAAvD,CAAiC/sB,iBAAjC;;AAEA,MAAIA,iBAAJ,EAAuB;AACrB,0BAAoBO,WAApB;AACD;;AACD,MAAItE,UAAJ,EAAgB;AAAA;;AACd,WAAUsE,WAAV,qCAA2BwsB,sBAAsB,CAAC9wB,UAAlD,qBAA2B,sBAAmCC,cAAnC,EAA3B;AACD;;AAED,SAAOqE,WAAP;AACD;;AAED,SAAgBysB;AACd,8BAAiDnC,wBAAwB,EAAzE;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBmC,aAAxB,yBAAwBA,aAAxB;AAAA,MAAuC5uB,KAAvC,yBAAuCA,KAAvC;;AACA,MAAM4wB,uBAAuB,GAAGnE,cAAH,oBAAGA,cAAc,CAAEmE,uBAAhD;AAEA,SACEluB,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE;AAAlC;GAAZ,EACEnuB,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAC;GAAlB,EAA+B2sB,aAAa,CAACxB,kBAA7C,CADF,EAEE1qB,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE;AAAlC;GAAZ,EACEnuB,4BAAA,CAAC6tB,GAAD;oBAAmBvwB,KAAK,CAACyW;GAAzB,EACE/T,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQsB,IAAAA,IAAI;GAAhC,WAAA,CADF,EAIEO,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQsB,IAAAA,IAAI;GAAhC,mBAAA,CAJF,CADF,EASGyuB,uBATH,oBASGA,uBAAuB,CAAEvrB,GAAzB,CAA6B,UAACqrB,sBAAD,EAAyBL,KAAzB;AAAA,WAC5B3tB,4BAAA,CAAC6tB,GAAD;AAAKjrB,MAAAA,GAAG,EAAKorB,sBAAsB,CAACxsB,WAA5B,SAA2CmsB;sBAAuBrwB,KAAK,CAACyW;KAAhF,EACE/T,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;KAApB,EAA6B4vB,iBAAiB,CAACC,sBAAD,CAA9C,CADF,EAEEhuB,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;AAAQoB,MAAAA,KAAK,EAAC;KAAlC,EACGyuB,sBAAsB,CAACI,OAAvB,GACGrnB,MAAM,CAACC,GAAP,CAAWgnB,sBAAsB,CAACI,OAAlC,EAA2CnnB,MAA3C,CAAkD,cAAlD,CADH,GAEG,MAHN,CAFF,CAD4B;AAAA,GAA7B,CATH,CAFF,CADF;AAyBD;;;AC1DM,IAAMonB,UAAU,gBAAG,QAAOC,IAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;AAMP,AAAO,IAAMC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;AAMP,AAAO,IAAMC,UAAU,gBAAG,QAAOC,GAAP;AAAcrb,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAAjC;AAAA;AAAA;AAAA,EAAH,gCAEP;AAAA,MAAGob,UAAH,QAAGA,UAAH;AAAA,SAAoBA,UAApB;AAAA,CAFO,y7CAAhB;;ACZA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACpvB,KAAD,EAAwCjC,KAAxC;AAC1B,UAAQiC,KAAR;AACE,SAAK,SAAL;AACE,aAAOjC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBJ,OAAhC;;AACF,SAAK,WAAL;AACE,aAAOJ,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyB2H,SAAhC;;AACF;AACE,aAAOlG,KAAP;AANJ;AAQD,CATM;;ACJP,IAAI,EAAE,EAAE,KAAK,CAAC;AACd,SAAS7C,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgBC,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,QAAQ,EAAE,qBAAqB;AACnC,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,+JAA+J;AACtK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgBA,mBAAmB,CAAC,MAAM,EAAE,IAAI,eAAeA,mBAAmB,CAAC,UAAU,EAAE;AACtH,IAAI,EAAE,EAAE,eAAe;AACvB,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,CAAC,EAAE,eAAe;AACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC;;ACvBF,IAAI,KAAK,EAAEgU,OAAK,EAAE,MAAM,CAAC;AACzB,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,sBAAsB,GAAG,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACpE,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgBC,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,4CAA4C;AACnD,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,gBAAgBA,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,qCAAqC;AAC5C,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;AC5BF,IAAIiyB,OAAK,EAAEje,OAAK,EAAEke,QAAM,EAAE,MAAM,CAAC;AACjC,SAASnyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAC1D,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEkyB,OAAK,KAAKA,OAAK,gBAAgBjyB,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,6MAA6M;AACpN,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEkyB,QAAM,KAAKA,QAAM,gBAAgBlyB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE,wEAAwE;AAC/E,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,gBAAgBA,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE,wHAAwH;AAC/H,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACxBF,IAAIiyB,OAAK,EAAEje,OAAK,CAAC;AACjB,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEkyB,OAAK,KAAKA,OAAK,gBAAgBjyB,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,kIAAkI;AACzI,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;AClBF,IAAImyB,IAAE,EAAEC,OAAK,CAAC;AACd,SAASryB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEoyB,IAAE,KAAKA,IAAE,gBAAgBnyB,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,QAAQ,EAAE,0BAA0B;AACxC,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,0EAA0E;AACjF,GAAG,CAAC,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC/C,IAAI,CAAC,EAAE,wLAAwL;AAC/L,GAAG,CAAC,CAAC,CAAC,EAAEoyB,OAAK,KAAKA,OAAK,gBAAgBpyB,mBAAmB,CAAC,MAAM,EAAE,IAAI,eAAeA,mBAAmB,CAAC,UAAU,EAAE;AACtH,IAAI,EAAE,EAAE,oBAAoB;AAC5B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,SAAS,EAAE,iBAAiB;AAChC,IAAI,CAAC,EAAE,eAAe;AACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC;;AC1BF,IAAImyB,IAAE,EAAEC,OAAK,CAAC;AACd,SAASryB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEoyB,IAAE,KAAKA,IAAE,gBAAgBnyB,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,QAAQ,EAAE,yBAAyB;AACvC,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,wSAAwS;AAC/S,GAAG,CAAC,CAAC,CAAC,EAAEoyB,OAAK,KAAKA,OAAK,gBAAgBpyB,mBAAmB,CAAC,MAAM,EAAE,IAAI,eAAeA,mBAAmB,CAAC,UAAU,EAAE;AACtH,IAAI,EAAE,EAAE,mBAAmB;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,SAAS,EAAE,mBAAmB;AAClC,IAAI,CAAC,EAAE,eAAe;AACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC;;ACxBF,IAAIgU,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;AAC5C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,ySAAyS;AAChT,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACbF,IAAIiyB,OAAK,EAAE,MAAM,EAAEje,OAAK,EAAEoe,OAAK,CAAC;AAChC,SAASryB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEkyB,OAAK,KAAKA,OAAK,gBAAgBjyB,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,2BAA2B;AACrC,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,gBAAgBA,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,ilBAAilB;AACxlB,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEoyB,OAAK,KAAKA,OAAK,gBAAgBpyB,mBAAmB,CAAC,MAAM,EAAE,IAAI,eAAeA,mBAAmB,CAAC,gBAAgB,EAAE;AAC3H,IAAI,EAAE,EAAE,qBAAqB;AAC7B,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,aAAa,EAAE,gBAAgB;AACnC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;;AChCF,IAAIgU,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,ykBAAykB;AAChlB,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACfF,IAAIiyB,OAAK,EAAEje,OAAK,EAAEke,QAAM,CAAC;AACzB,SAASnyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,KAAK,EAAE;AAC1E,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEkyB,OAAK,KAAKA,OAAK,gBAAgBjyB,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,4EAA4E;AACnF,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,EAAEkyB,QAAM,KAAKA,QAAM,gBAAgBlyB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE,wBAAwB;AAC/B,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;AC5BF,IAAIgU,OAAK,EAAEke,QAAM,EAAEG,QAAM,CAAC;AAC1B,SAAStyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,EAAEkyB,QAAM,KAAKA,QAAM,gBAAgBlyB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE,uUAAuU;AAC9U,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEqyB,QAAM,KAAKA,QAAM,gBAAgBryB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE,kBAAkB;AACzB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACzBF,IAAIgU,OAAK,EAAEke,QAAM,CAAC;AAClB,SAASnyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACxD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,uHAAuH;AAC9H,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,EAAEkyB,QAAM,KAAKA,QAAM,gBAAgBlyB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,OAAO,EAAE,GAAG;AAChB,IAAI,CAAC,EAAE,0cAA0c;AACjd,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACjBF,IAAI,OAAO,CAAC;AACZ,SAASD,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAC1D,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,gBAAgBC,mBAAmB,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACjBF,IAAIsyB,SAAO,EAAEte,OAAK,CAAC;AACnB,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACxE,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEuyB,SAAO,KAAKA,SAAO,gBAAgBtyB,mBAAmB,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE,IAAI;AACX,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,GAAG;AACpB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,4BAA4B;AACnC,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACvBF,IAAIsyB,SAAO,EAAEte,OAAK,CAAC;AACnB,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,gCAAgC,GAAG,SAAS,gCAAgC,CAAC,KAAK,EAAE;AACxF,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEuyB,SAAO,KAAKA,SAAO,gBAAgBtyB,mBAAmB,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE,IAAI;AACX,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,GAAG;AACpB,GAAG,CAAC,CAAC,EAAEgU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,gCAAgC;AACvC,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACvBF,IAAIgU,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AACtD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,qEAAqE;AAC5E,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACbF,IAAIgU,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,sJAAsJ;AAC7J,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACbF,IAAIgU,OAAK,CAAC;AACV,SAASjU,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,iBAAiB;AACxB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;AChBF,IAAImyB,IAAE,EAAEC,OAAK,CAAC;AACd,SAASryB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,mBAAmB,GAAG,SAAS,mBAAmB,CAAC,KAAK,EAAE;AAC9D,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEoyB,IAAE,KAAKA,IAAE,gBAAgBnyB,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,QAAQ,EAAE,mCAAmC;AACjD,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,wEAAwE;AAC/E,GAAG,CAAC,CAAC,CAAC,EAAEoyB,OAAK,KAAKA,OAAK,gBAAgBpyB,mBAAmB,CAAC,MAAM,EAAE,IAAI,eAAeA,mBAAmB,CAAC,UAAU,EAAE;AACtH,IAAI,EAAE,EAAE,6BAA6B;AACrC,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,CAAC,EAAE,eAAe;AACtB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC;;ACvBF,IAAImyB,IAAE,CAAC;AACP,SAASpyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEoyB,IAAE,KAAKA,IAAE,gBAAgBnyB,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,GAAG;AACpB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,gMAAgM;AACvM,GAAG,CAAC,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC/C,IAAI,CAAC,EAAE,2DAA2D;AAClE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZF,IAAMuyB,WAAW;AAAA;AAAA;AAAA,GACb;AAAA,MAAGC,UAAH,QAAGA,UAAH;AAAA,SACAA,UAAU,IACVjiB,SADU,iIAGEiiB,UAHF,CADV;AAAA,CADa,OASb;AAAA,MAAGC,UAAH,SAAGA,UAAH;AAAA,SACAA,UAAU,IACVliB,SADU,mIAGEkiB,UAHF,CADV;AAAA,CATa,OAkBb;AAAA,MAAGC,YAAH,SAAGA,YAAH;AAAA,SACAA,YAAY,IACZniB,SADY,8HAGEmiB,YAHF,CADZ;AAAA,CAlBa,ysDAAjB;;AAoCA,SAAgBC;MAAOC,aAAAA;MAAMxvB,kBAAAA;MAAWT,cAAAA;MAAOkwB,qBAAAA;MAAcC,qBAAAA;MAAcC,uBAAAA;AACzE,MAAMC,aAAa,GAAIC,WAAmB,CAACL,IAAD,CAA1C;AACA,MAAMjyB,KAAK,GAAGsC,cAAQ,EAAtB;AAEA,SACEI,4BAAA,CAACkvB,WAAD;AACEnvB,IAAAA,SAAS,EAAEA;AACXT,IAAAA,KAAK,EAAEA;kBACKqvB,YAAY,CAACa,YAAD,EAAelyB,KAAf;kBACZqxB,YAAY,CAACc,YAAD,EAAenyB,KAAf;oBACVqxB,YAAY,CAACe,cAAD,EAAiBpyB,KAAjB;GAL5B,EAME0C,4BAAA,CAAC2vB,aAAD,MAAA,CANF,CADF;AAUD;;;AC1DD;AAsBA,SAASE,QAAT,CAAkB3wB,KAAlB;AACE,MAAQE,QAAR,GAAwDF,KAAxD,CAAQE,QAAR;AAAA,MAAkBoW,KAAlB,GAAwDtW,KAAxD,CAAkBsW,KAAlB;AAAA,MAAyBmY,KAAzB,GAAwDzuB,KAAxD,CAAyByuB,KAAzB;AAAA,MAAgCmC,SAAhC,GAAwD5wB,KAAxD,CAAgC4wB,SAAhC;AAAA,MAA8CC,KAA9C,iCAAwD7wB,KAAxD;;AAEA,SACEc,4BAAA,MAAA;AAAKgwB,IAAAA,IAAI,EAAC;AAAWC,IAAAA,MAAM,EAAEza,KAAK,KAAKmY;KAAWoC,MAAlD,EACGva,KAAK,KAAKmY,KAAV,IAAmB3tB,4BAAA,CAACwuB,UAAD;kBAAwBsB;GAAxB,EAAoC1wB,QAApC,CADtB,CADF;AAKD;;AASD,SAAS8wB,QAAT;MAAoBC,kBAAAA;MAAYC,aAAAA;MAAOb,YAAAA;AACrC,MAAMhwB,KAAK,GAAG4wB,UAAU,GAAG,SAAH,GAAe,WAAvC;AACA,SACEnwB,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBE,MAAAA,GAAG,EAAE,CAAxB;AAA2BD,MAAAA,UAAU,EAAE;AAAvC;GAAZ,EACExZ,4BAAA,CAACsvB,IAAD;AAAMC,IAAAA,IAAI,EAAEA;AAAMG,IAAAA,cAAc,EAAEnwB;GAAlC,CADF,EAEES,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAKsB,IAAAA,IAAI,EAAE0wB;AAAY9xB,IAAAA,UAAU,EAAE0hB,2BAAU,CAACsQ;AAAQ9wB,IAAAA,KAAK,EAAEA;GAAjF,EACG6wB,KADH,CAFF,CADF;AAQD;;AAED,SAAgBE;MAAmBvG,uBAAAA;MAAgBwG,uBAAAA;MAAgBrE,sBAAAA;MAAe5uB,cAAAA;AAChF,MAAMkzB,SAAS,GAAGvR,OAAO,CAAC8K,cAAc,CAACyD,aAAhB,EAA+B,UAACtP,YAAD;AAAA,WAAkBA,YAAY,CAACqP,MAA/B;AAAA,GAA/B,CAAzB;;AACA,MAAMkD,eAAe,GAAG,SAAlBA,eAAkB,CAACC,WAAD;AAAA,WACtBH,cADsB,oBACtBA,cAAc,CAAEllB,IAAhB,CAAqB,UAACslB,OAAD;AAAA,aAAaA,OAAO,KAAKD,WAAzB;AAAA,KAArB,CADsB;AAAA,GAAxB;;AAEA,MAAME,UAAU,GAAGJ,SAAS,CAACptB,MAAV,GAAmB,CAAnB,IAAwB,CAACqtB,eAAe,CAAC,QAAD,CAA3D;AACA,MAAMI,cAAc,GAClB9G,cAAc,CAACmE,uBAAf,CAAuC9qB,MAAvC,GAAgD,CAAhD,IAAqD,CAACqtB,eAAe,CAAC,yBAAD,CADvE;;AAEA,kBAA0B3iB,cAAQ,CAAC8iB,UAAU,GAAG,CAAH,GAAO,CAAlB,CAAlC;AAAA,MAAOpb,KAAP;AAAA,MAAcsb,QAAd;;AAEA,MAAMrb,YAAY,GAAG,SAAfA,YAAe,CAACsb,CAAD,EAA0BC,QAA1B;AACnBF,IAAAA,QAAQ,CAACE,QAAD,CAAR;AACD,GAFD;;AAGA,MAAMC,cAAc,GAAGL,UAAU,IAAIC,cAArC;;AAEA,MAAI,CAACI,cAAL,EAAqB;AACnB,WAAO,IAAP;AACD;;AAED,SACEjxB,4BAAA,CAACuuB,UAAD,MAAA,EACEvuB,4BAAA,CAACyuB,GAAD;AAAKzZ,IAAAA,EAAE,EAAE;AAAEkc,MAAAA,YAAY,EAAE,CAAhB;AAAmBnd,MAAAA,WAAW,EAAE;AAAhC;GAAT,EACE/T,4BAAA,CAACquB,UAAD;AAAY7Y,IAAAA,KAAK,EAAEA;AAAOU,IAAAA,QAAQ,EAAET;GAApC,EACGmb,UAAU,GACT5wB,4BAAA,CAACmxB,GAAD;AACEnc,IAAAA,EAAE,EAAE;AAAEoc,MAAAA,aAAa,EAAE;AAAjB;AACJ5b,IAAAA,KAAK,EAAE;AACP4a,IAAAA,KAAK,EAAEpwB,4BAAA,CAACkwB,QAAD;AAAUC,MAAAA,UAAU,EAAE3a,KAAK,KAAK;AAAG4a,MAAAA,KAAK,EAAElE,aAAa,CAAC1B;AAAgB+E,MAAAA,IAAI,EAAC;KAA7E;GAHT,CADS,GAMP,IAPN,EAQGsB,cAAc,GACb7wB,4BAAA,CAACmxB,GAAD;AACEnc,IAAAA,EAAE,EAAE;AAAEoc,MAAAA,aAAa,EAAE;AAAjB;AACJ5b,IAAAA,KAAK,EAAE;AACP4a,IAAAA,KAAK,EAAEpwB,4BAAA,CAACkwB,QAAD;AAAUC,MAAAA,UAAU,EAAE3a,KAAK,KAAK;AAAG4a,MAAAA,KAAK,EAAElE,aAAa,CAACzB;AAAoB8E,MAAAA,IAAI,EAAC;KAAjF;GAHT,CADa,GAMX,IAdN,CADF,CADF,EAmBEvvB,4BAAA,CAAC6vB,QAAD;AAAUra,IAAAA,KAAK,EAAEA;AAAOmY,IAAAA,KAAK,EAAE;AAAGmC,IAAAA,SAAS,EAAExyB,KAAK,CAACquB;GAAnD,EACE3rB,4BAAA,CAACstB,UAAD,MAAA,CADF,CAnBF,EAsBEttB,4BAAA,CAAC6vB,QAAD;AAAUra,IAAAA,KAAK,EAAEA;AAAOmY,IAAAA,KAAK,EAAE;AAAGmC,IAAAA,SAAS,EAAExyB,KAAK,CAACquB;GAAnD,EACE3rB,4BAAA,CAACiuB,UAAD,MAAA,CADF,CAtBF,CADF;AA4BD;;ACjGM,IAAMoD,WAAW,GAAG;AACzBC,EAAAA,EAAE,EAAE,GADqB;AAEzBC,EAAAA,EAAE,EAAE,GAFqB;AAGzBC,EAAAA,EAAE,EAAE,GAHqB;AAIzBC,EAAAA,EAAE,EAAE,IAJqB;AAKzBC,EAAAA,EAAE,EAAE,IALqB;AAMzBC,EAAAA,GAAG,EAAE;AANoB,CAApB;AAaP,AAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,UAAD;AAAA,0BAA2CR,WAAW,CAACQ,UAAD,CAAtD;AAAA,CAAnB;AAEP,AAAO,IAAMC,EAAE,gBAAG1X,MAAM,CAACC,IAAP,CAAYgX,WAAZ,EAAyBrV,MAAzB,CAChB,UAAC+V,GAAD,EAAMF,UAAN;AAAA;;AAAA,sBAA2BE,GAA3B,6BAAiCF,UAAjC,gBAAwDD,UAAU,CAACC,UAAD,CAAlE;AAAA,CADgB,EAEhB,EAFgB,CAAX;;SCZSG,qBAAqBH;AACnC,SAAOI,sBAAgB,CAACL,UAAU,CAACC,UAAD,CAAX,CAAvB;AACD;;;;ACAD,IAAMK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAApB;;AAMA,IAAMC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAxB;;AAMA,SAAgBC;AACd,MAAMC,mBAAmB,GAAGL,oBAAoB,CAAC,IAAD,CAAhD;AACA,SACEhyB,4BAAA,CAACkyB,cAAD;AAAgBnyB,IAAAA,SAAS,EAAC;GAA1B,EACEC,4BAAA,CAACmyB,kBAAD,MAAA,EACEnyB,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;GAAjB,CADF,EAEE9U,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;GAAjB,CAFF,CADF,EAKE9U,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAEud,mBAAmB,GAAG,GAAH,GAAS;AAAK5hB,IAAAA,MAAM,EAAE;GAA1D,CALF,CADF;AASD;;ACXD,SAAS6hB,uCAAT;MAAmDC,sBAAAA;AACjD,MAAQrqB,aAAR,GAA0BqqB,cAA1B,CAAQrqB,aAAR;AACA,SACElI,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAC;GAA3B,EACExZ,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAACwyB,sBAAD;AAAWjzB,IAAAA,KAAK,EAAC;AAAUkR,IAAAA,MAAM,EAAE;AAAI1Q,IAAAA,SAAS,EAAC;GAAjD,CADF,CADF,EAIEC,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;GAAV,EACE7U,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAsC5B,IAAAA,OAAO,EAAC;GAApE,qBAAA,EACmB6B,4BAAA,IAAA,MAAA,EAAIkI,aAAJ,oBAAIA,aAAa,CAAE1G,WAAnB,CADnB,SAAA,CADF,CAJF,CADF;AAYD;;AAED,SAASixB,iDAAT;MAA6DF,uBAAAA;AAC3D,MAAQjqB,iBAAR,GAA8BiqB,cAA9B,CAAQjqB,iBAAR;AACA,MAAQjG,aAAR,GAA0BiG,iBAA1B,CAAQjG,aAAR;AACA,MAAMkgB,oBAAoB,GAAGlgB,aAAa,KAAK+F,mBAAa,CAACgK,OAAhC,GAA0C,UAA1C,GAAuD,SAApF;AACA,MAAMsgB,iBAAiB,GAAGrwB,aAAa,KAAK+F,mBAAa,CAACgK,OAAhC,GAA0C,SAA1C,GAAsD,UAAhF;AAEA,SACEpS,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAC;GAA3B,EACExZ,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAACwyB,sBAAD;AAAWjzB,IAAAA,KAAK,EAAC;AAAUkR,IAAAA,MAAM,EAAE;AAAI1Q,IAAAA,SAAS,EAAC;GAAjD,CADF,CADF,EAIEC,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;GAAV,EACE7U,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAsC5B,IAAAA,OAAO,EAAC;GAApE,mBAAA,EACkBokB,oBADlB,UAAA,EAC6CviB,4BAAA,IAAA,MAAA,EAAI0yB,iBAAJ,CAD7C,kBAAA,CADF,CAJF,CADF;AAYD;;AAED,SAASC,gDAAT;MACEzU,qBAAAA;MACAqU,uBAAAA;AAEA,MAAQjqB,iBAAR,GAA8BiqB,cAA9B,CAAQjqB,iBAAR;AACA,MAAQO,aAAR,GAAqCP,iBAArC,CAAQO,aAAR;AAAA,MAAuBF,SAAvB,GAAqCL,iBAArC,CAAuBK,SAAvB;AACA,MAAMzH,OAAO,GAAGuH,cAAO,CAAC9F,UAAG,CAACub,YAAY,CAAC5b,MAAd,EAAsB,SAAtB,CAAJ,CAAP,CAA6CoG,IAA7C,CAAkD;AAAA,QAAGrF,EAAH,SAAGA,EAAH;AAAA,WAAYA,EAAE,KAAKsF,SAAnB;AAAA,GAAlD,CAAhB;;AAEA,MAAI,CAACzH,OAAL,EAAc;AACZ,WAAO,IAAP;AACD;;AAED,MAAQI,YAAR,GAA6CJ,OAA7C,CAAQI,YAAR;AAAA,MAAsBsH,kBAAtB,GAA6C1H,OAA7C,CAAsB0H,kBAAtB;AACA,MAAMgqB,gBAAgB,GAAG/pB,aAAa,KAAK,CAAlB,GAAsBvH,YAAtB,GAAqCsH,kBAA9D;AAEA,SACE5I,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAC;AAAaqZ,IAAAA,QAAQ,EAAC;GAAjD,EACE7yB,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAACwyB,sBAAD;AAAWjzB,IAAAA,KAAK,EAAC;AAAUkR,IAAAA,MAAM,EAAE;AAAI1Q,IAAAA,SAAS,EAAC;GAAjD,CADF,CADF,EAIEC,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;GAAV,EACE7U,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAsC5B,IAAAA,OAAO,EAAC;GAApE,eAAA,EACa6B,4BAAA,IAAA,MAAA,EAAIsB,YAAJ,CADb,iBAAA,EACgDuH,aADhD,KAAA,EACgE+pB,gBADhE,CADF,CAJF,CADF;AAYD;;AAED,SAAgBE;MACdP,uBAAAA;MACArU,qBAAAA;;AAKA,UAAQqU,cAAc,CAAC9qB,wBAAvB;AACE,SAAKC,8BAAwB,CAACC,SAA9B;AAAyC;AACvC,eAAO3H,4BAAA,CAACsyB,uCAAD;AAAyCC,UAAAA,cAAc,EAAEA;SAAzD,CAAP;AACD;;AAED,SAAK7qB,8BAAwB,CAACU,aAA9B;AAA6C;AAC3C,eAAOpI,4BAAA,CAACyyB,iDAAD;AAAmDF,UAAAA,cAAc,EAAEA;SAAnE,CAAP;AACD;;AAED,SAAK7qB,8BAAwB,CAACc,UAA9B;AAA0C;AACxC,eACExI,4BAAA,CAAC2yB,gDAAD;AAAkDJ,UAAAA,cAAc,EAAEA;AAAgBrU,UAAAA,YAAY,EAAEA;SAAhG,CADF;AAGD;;AAED;AAAS;AACP,eAAO,IAAP;AACD;AAjBH;AAmBD;;;;ACtFD,IAAM6U,wCAAwC,gBAAG,QAAOtE,GAAP;AAAA;AAAA;AAAA,EAAH,mBAC3B;AAAA,MAAGX,YAAH,QAAGA,YAAH;AAAA,wBAAmCA,YAAnC;AAAA,CAD2B,0yOAA9C;;AAQA,IAAMhhB,kBAAgB,gBAAG,QAAOC,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;;AAIA,IAAMimB,iBAAiB,gBAAG,QAAOC,UAAP;AAAA;AAAA;AAAA,EAAH,WACZ;AAAA,MAAG31B,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CADY,iBAGX;AAAA,MAAGJ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CAHW,ksOAAvB;;AAOA,SAASw1B,wBAAT;MAAoChV,qBAAAA;AAClC,MAAQ0D,gBAAR,GAA6B1D,YAA7B,CAAQ0D,gBAAR;AAEA,SACE5hB,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAC;AAAS2Z,IAAAA,cAAc,EAAC;AAAgB1Z,IAAAA,GAAG,EAAE;GAAxE,EACEzZ,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAsC5B,IAAAA,OAAO,EAAC;GAApE,qEAAA,CADF,CADF,CADF,EAQE6B,4BAAA,CAACkU,IAAD,MAAA,EACG,CAAC0N,gBAAgB,IAAI,EAArB,EAAyBjf,GAAzB,CAA6B,UAAC4vB,cAAD;AAAA,WAC5BvyB,4BAAA,CAAC8yB,8BAAD;AACElwB,MAAAA,GAAG,EAAE2vB,cAAc,CAAC9qB;AACpB8qB,MAAAA,cAAc,EAAEA;AAChBrU,MAAAA,YAAY,EAAEA;KAHhB,CAD4B;AAAA,GAA7B,CADH,CARF,CADF;AAoBD;;AAED,SAASkV,qBAAT;MAAiClV,qBAAAA;AAC/B,MAAQ0D,gBAAR,GAA6B1D,YAA7B,CAAQ0D,gBAAR;;AACA,cAA0BA,gBAAgB,IAAI,EAA9C;AAAA,MAAOza,eAAP;;AAEA,8BAAyBD,kCAAkC,CAAC;AAC1DC,IAAAA,eAAe,EAAfA,eAD0D;AAE1DC,IAAAA,kBAAkB,EAAE8W,YAAY,CAAC5b,MAFyB;AAG1D+E,IAAAA,kBAAkB,EAAE6W,YAAY,CAAC7W,kBAHyB;AAI1DC,IAAAA,OAAO,EAAE;AACPE,MAAAA,OAAO,EAAE;AADF;AAJiD,GAAD,CAA3D;AAAA,MAAQS,KAAR,yBAAQA,KAAR;AAAA,MAAeE,KAAf,yBAAeA,KAAf;;AASA,SACEnI,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAC;AAAS2Z,IAAAA,cAAc,EAAC;AAAgB1Z,IAAAA,GAAG,EAAE;GAAxE,EACEzZ,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAgC5B,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAA5E,EACG0I,KADH,CADF,CADF,CADF,EAQGE,KAAK,IACJnI,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAAmC5B,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAA/E,EACG4I,KADH,CADF,CATJ,CADF;AAkBD;;AAED,SAAgBkrB;MACdnV,qBAAAA;MACAoV,iCAAAA;MACAh2B,cAAAA;MACA4tB,0CAAAA;AAEA,MAAMqI,UAAU,GAAG3zB,cAAQ,EAA3B;;AACA,kBAAkCkO,cAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,MAAQ4T,gBAAR,GAA6B1D,YAA7B,CAAQ0D,gBAAR;;AAEA,MAAI,CAACA,gBAAD,IAAqBA,gBAAgB,CAACxe,MAAjB,KAA4B,CAArD,EAAwD;AACtD,WAAO,IAAP;AACD;;AAED,MAAMowB,uBAAuB,GAAG5R,gBAAgB,CAACxe,MAAjB,KAA4B,CAA5D;AAEA,SACEpD,4BAAA,CAAC+yB,wCAAD;oBACgBz1B,KAAK,CAACyW;AACpBhU,IAAAA,SAAS,EAAC;GAFZ,EAGEC,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC4E,IAAAA,UAAU,EAAEga,uBAAuB,GAAG,QAAH,GAAc;AAAc/Z,IAAAA,GAAG,EAAE;GAApF,EACEzZ,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;AAAC0E,IAAAA,OAAO,EAAC;GAAnB,EACEvZ,4BAAA,CAACsvB,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAcC,IAAAA,YAAY,EAAElyB,KAAK,CAACgc;AAAYmW,IAAAA,YAAY,EAAEnyB,KAAK,CAACsuB;GAA7E,CADF,CADF,EAKE5rB,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;AAACN,IAAAA,IAAI,EAAE;GAAjB,EACGif,uBAAuB,GACtBxzB,4BAAA,CAACozB,qBAAD;AAAuBlV,IAAAA,YAAY,EAAEA;GAArC,CADsB,GAGtBle,4BAAA,CAACkzB,wBAAD;AAA0BhV,IAAAA,YAAY,EAAEA;GAAxC,CAJJ,CALF,EAaG,CAAC,CAACoV,wBAAF,IACCtzB,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;GAAV,EACE7U,4BAAA,CAACkT,cAAD;AACE/U,IAAAA,OAAO,EAAC;AACRiS,IAAAA,OAAO,EAAE;AACPpC,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACAqC,MAAAA,OAAO,CAACC,OAAR,CAAgBgjB,wBAAwB,CAACpV,YAAD,CAAxC,aAAgE;AAAA,eAAMlQ,YAAY,CAAC,KAAD,CAAlB;AAAA,OAAhE;AACD;GALH,EAMGD,SAAS,GACR/N,4BAAA,CAAC8M,kBAAD;AAAkByD,IAAAA,OAAO;AAACC,IAAAA,IAAI,EAAE;AAAIjR,IAAAA,KAAK,EAAEg0B,UAAU,CAAC/1B,KAAX,CAAiBC,OAAjB,CAAyBK,IAAzB,CAA8ByC;GAAzE,CADQ,GAGRP,4BAAA,CAACgzB,iBAAD;AACE1zB,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBka,MAAAA,WAAW,EAAE;AAAhC;AACP1zB,IAAAA,SAAS,EAAC;GAFZ,CATJ,EAcEC,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;AAAeQ,IAAAA,SAAS,EAAC;GAA3D,EACGmrB,iCADH,CAdF,CADF,CAdJ,CAHF,CADF;AA0CD;;AC1JM,IAAMwI,gBAAgB;AAAA;AAAA;AAAA,yFAKP;AAAA,MAAGC,gBAAH,QAAGA,gBAAH;AAAA,SAA0BA,gBAA1B;AAAA,CALO,cAMjB;AAAA,MAAG7F,YAAH,SAAGA,YAAH;AAAA,wBAAmCA,YAAnC;AAAA,CANiB,oBASzBgE,EAAE,CAACP,EATsB,qBAYzBO,EAAE,CAACN,EAZsB,qBAezBM,EAAE,CAACL,EAfsB,u+BAAtB;;SCUSmC;MAAoBvxB,qBAAAA;MAAewxB,gBAAAA;MAAUnqB,cAAAA;MAAQmH,gBAAAA;AACnE,SACE7Q,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;GAApB,uBAAA,CADF,EAEE6B,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;GAApB,EAA0ByS,sBAAsB,CAAC;AAAElH,IAAAA,MAAM,EAANA,MAAF;AAAUmH,IAAAA,QAAQ,EAARA,QAAV;AAAoBzT,IAAAA,qBAAqB,EAAE;AAA3C,GAAD,CAAhD,CAFF,EAGE4C,4BAAA,CAAChB,UAAD;AAAYU,IAAAA,EAAE,EAAC;AAAMvB,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAA3C,WAAA,EACU8C,aAAa,KAAK+F,mBAAa,CAACgK,OAAhC,GAA0C,SAA1C,GAAsD,UADhE,OAAA,EAC+E,GAD/E,EAEEpS,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQkB,IAAAA,IAAI;AAACE,IAAAA,KAAK,EAAC;GAAvC,EACGwH,MAAM,CAACC,GAAP,CAAW6sB,QAAX,EAAqB5sB,MAArB,CAA4B,cAA5B,CADH,CAFF,CAHF,EASEjH,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAAlC,oCAAA,CATF,CADF;AAeD;;SCtBeu0B;MAAoBvZ,mBAAAA;AAClC,SACEva,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;GAA/B,oBAAA,CADF,EAIES,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAAlC,EACGgb,WADH,CAJF,CADF;AAUD;;;;ACbD,IAAMwZ,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlC;;AAOA,IAAMC,oBAAoB,gBAAG,QAAOvgB,iBAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B;;AAgBA,SAAgBwgB;MAAyBC,wBAAAA;MAAkB9D,aAAAA;MAAO+D,iBAAAA;AAChE,MAAMC,kBAAkB,GACtBp0B,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAE20B,gBAAgB,GAAG,cAAH,GAAoB;GAAvD,EAAqEC,SAArE,CADF;AAGA,SACEn0B,4BAAA,CAAC+zB,4BAAD;AAA8Bh0B,IAAAA,SAAS,EAAC;GAAxC,EACEC,4BAAA,CAAChB,UAAD;AAAYe,IAAAA,SAAS,EAAC;AAA8BR,IAAAA,KAAK,EAAC;GAA1D,EACG6wB,KADH,CADF,EAIG8D,gBAAgB,GACfl0B,4BAAA,CAACg0B,oBAAD;AACEj0B,IAAAA,SAAS,EAAC;AACVT,IAAAA,KAAK,EAAE;AAAE8xB,MAAAA,aAAa,EAAE;AAAjB;AACPjzB,IAAAA,OAAO,EAAC;AACRiS,IAAAA,OAAO,EAAE8jB;GAJX,EAKGE,kBALH,CADe,GASfA,kBAbJ,CADF;AAkBD;;ACnCD,IAAMC,SAAS;AAAA;AAAA;AAAA,+FAKO;AAAA,MAAG/2B,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBkH,iBAAnC;AAAA,CALP,cAMH;AAAA,MAAGmpB,YAAH,SAAGA,YAAH;AAAA,wBAAmCA,YAAnC;AAAA,CANG,upIAAf;;AAkBA,SAAgBwG;;;MAAkBpW,qBAAAA;MAAc5gB,cAAAA;MAAO4uB,sBAAAA;MAAegI,yBAAAA;AACpE,MAAQ9kB,WAAR,GAAwB8O,YAAxB,CAAQ9O,WAAR;AACA,MAAIwI,OAAJ;AACA,MAAM2c,kBAAkB,oDACtBrW,YAAY,CAAC5b,MADS,qBACtB,qBAAqBiJ,KAArB,CAA2B,UAAC9I,KAAD;AAAA,WAAWA,KAAK,CAAC+xB,YAAN,KAAuBtoB,kBAAY,CAACsG,UAA/C;AAAA,GAA3B,CADsB,oCACmE,IAD3F;AAEA,MAAMiiB,wBAAwB,4BAAGvW,YAAY,CAAC0D,gBAAhB,qBAAG,sBAA+BlZ,IAA/B,CAC/B;AAAA,QAAGjB,wBAAH,SAAGA,wBAAH;AAAA,QAA6BS,aAA7B,SAA6BA,aAA7B;AAAA,WACET,wBAAwB,KAAKC,8BAAwB,CAACC,SAAtD,IACA,CAAAO,aAAa,QAAb,YAAAA,aAAa,CAAEkH,WAAf,MAA+BC,iBAAW,CAACQ,IAF7C;AAAA,GAD+B,CAAjC;;AAMA,MAAIT,WAAW,KAAKC,iBAAW,CAACQ,IAAhC,EAAsC;AACpC+H,IAAAA,OAAO,GAAG5X,4BAAA,CAAC8zB,iBAAD;AAAmBvZ,MAAAA,WAAW,EAAC;KAA/B,CAAV;AACD,GAFD,MAEO,IAAInL,WAAW,KAAKC,iBAAW,CAACuD,IAAhC,EAAsC;AAC3C,QAAI6hB,wBAAwB,IAAIF,kBAAhC,EAAoD;AAClD3c,MAAAA,OAAO,GACL5X,4BAAA,CAAC8zB,iBAAD;AAAmBvZ,QAAAA,WAAW,EAAC;OAA/B,CADF;AAGD,KAJD,MAIO,IAAI2D,YAAY,CAACsB,MAAb,KAAwBC,wBAAkB,CAAC+B,OAA/C,EAAwD;AAC7D5J,MAAAA,OAAO,GACL5X,4BAAA,CAAC8zB,iBAAD;AACEvZ,QAAAA,WAAW,0CAAmC2D,YAAY,CAACwW,QAAhD;OADb,CADF;AAKD,KANM,MAMA;AAAA;;AACL,UAAMryB,aAAa,4BAAG6b,YAAY,CAAC5b,MAAhB,8CAAG,sBAAsB,CAAtB,CAAH,qBAAG,sBAA0BD,aAAhD;AACA,UAAMwxB,QAAQ,4BAAG3V,YAAY,CAAC7W,kBAAhB,qBAAG,sBAAiCS,GAAlD;AACA,UAAM+C,KAAK,4BAAGqT,YAAY,CAACyW,UAAhB,qBAAG,sBAAyB9pB,KAAvC;;AAEA,UAAIxI,aAAa,IAAIwxB,QAAjB,IAA6BhpB,KAAjC,EAAwC;AACtC+M,QAAAA,OAAO,GACL5X,4BAAA,CAAC4zB,iBAAD;AACEvxB,UAAAA,aAAa,EAAEA;AACfwxB,UAAAA,QAAQ,EAAEA;AACVnqB,UAAAA,MAAM,EAAEmB,KAAK,CAACnB;AACdmH,UAAAA,QAAQ,EAAEhG,KAAK,CAACgG;SAJlB,CADF;AAQD;AACF;AACF,GA3BM,MA2BA,IAAIzB,WAAW,KAAKC,iBAAW,CAACC,MAAhC,EAAwC;AAC7CsI,IAAAA,OAAO,GACL5X,4BAAA,CAACi0B,sBAAD;AACEC,MAAAA,gBAAgB,EAAEA;AAClB9D,MAAAA,KAAK,EAAElE,aAAa,CAACvB;AACrBwJ,MAAAA,SAAS,EAAEjI,aAAa,CAACtB;KAH3B,CADF;AAOD;;AAED,SACE5qB,4BAAA,CAACq0B,SAAD;AAAWt0B,IAAAA,SAAS,EAAC;oBAAsDzC,KAAK,CAACyW;GAAjF,EACG6D,OADH,CADF;AAKD;;ACxFD,IAAIjH,OAAK,EAAEke,QAAM,CAAC;AAClB,SAASnyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE;AAChD,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEiU,OAAK,KAAKA,OAAK,gBAAgBhU,mBAAmB,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,2eAA2e;AAClf,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,CAAC,CAAC,EAAEkyB,QAAM,KAAKA,QAAM,gBAAgBlyB,mBAAmB,CAAC,MAAM,EAAE;AACpE,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC,EAAE,8gCAA8gC;AACrhC,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;;;AClBF,AAMO,IAAMi4B,kBAAkB,gBAAG,QAChC;AAAA,MAAGx1B,QAAH,QAAGA,QAAH;AAAA,MAAaW,SAAb,QAAaA,SAAb;AAAA,4BAAwB80B,SAAxB;AAAA,MAAwBA,SAAxB,+BAAoC,KAApC;AAAA,MAA8C31B,KAA9C;;AAAA,SACEc,4BAAA,CAAC80B,gBAAD;AACEC,IAAAA,KAAK;AACLF,IAAAA,SAAS,EAAEA;KACP31B;AACJ81B,IAAAA,OAAO,EAAE;AAAEC,MAAAA,MAAM,EAAEl1B,SAAV;AAAqBm1B,MAAAA,OAAO,EAAE,eAA9B;AAA+CH,MAAAA,KAAK,EAAE;AAAtD;IAJX,EAKE/0B,4BAAA,MAAA,MAAA,EAAMZ,QAAN,CALF,CADF;AAAA,CADgC;AAAA;AAAA;AAAA,GAUhC;AAAA;;AAAA,MAAG9B,KAAH,SAAGA,KAAH;AAAA,6BAAU63B,QAAV;AAAA,MAAUA,QAAV,+BAAqB,CAArB;AAAA,8BAAwBC,SAAxB;AAAA,MAAwBA,SAAxB,gCAAoC,GAApC;AAAA,mCACOC,sBAAc,CAACH,OADtB,IACkC;AAChChU,IAAAA,eAAe,EAAE5jB,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB+H,KADL;AAEhC8vB,IAAAA,QAAQ,EAAEF,SAFsB;AAGhCG,IAAAA,SAAS,EAAEj4B,KAAK,CAACE,KAAN,CAAY6I,OAAZ,CAAoBE,OAHC;AAIhCyN,IAAAA,OAAO,EAAEmhB,QAJuB;AAKhCthB,IAAAA,YAAY,EAAEvW,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MALD;AAMhClH,IAAAA,KAAK,EAAEjC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyBJ;AANA,GADlC,gBASO23B,sBAAc,CAACN,KATtB,IASgC;AAC9Bx1B,IAAAA,KAAK,EAAEjC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoB+H;AADG,GAThC;AAAA,CAVgC,6jDAA3B;;;ACAP,IAAMzH,YAAU,gBAAG4V,iBAAM,CAAC3U,UAAD,CAAT,yQACH;AAAA,MAAGw2B,QAAH,QAAGA,QAAH;AAAA,SAAkBA,QAAlB;AAAA,CADG,EAEQ;AAAA,MAAGC,SAAH,SAAGA,SAAH;AAAA,SAAmBA,SAAnB;AAAA,CAFR,EAOZ;AAAA,MAAGC,UAAH,SAAGA,UAAH;AAAA,SACAA,UAAU,IACVxoB,YADU,qHADV;AAAA,CAPY,EAaZ;AAAA,MAAGyoB,KAAH,SAAGA,KAAH;AAAA,SACAA,KAAK,IACLzoB,YADK,gHADL;AAAA,CAbY,CAAhB;;AAoBA,SAAS0oB,gBAAT,CAA0BC,OAA1B;AACE,SAAOA,OAAO,KAAKA,OAAO,CAACC,YAAR,GAAuBD,OAAO,CAACE,YAA/B,IAA+CF,OAAO,CAACG,WAAR,GAAsBH,OAAO,CAACI,WAAlF,CAAd;AACD;;AAED,AAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAW;MACtBC,mBAAAA;MACA/2B,iBAAAA;MACAjB,gBAAAA;MACAoB,cAAAA;6BACA62B;MAAAA,uCAAW;MACXC,kBAAAA;MACA52B,aAAAA;oCACA62B;MAAAA,sDAAmB;MACnBv2B,kBAAAA;4BACAwZ;MAAAA,qCAAU;MACVja,cAAAA;MACei3B,mBAAf;;AAeA,kBAA0CzoB,cAAQ,CAAC,KAAD,CAAlD;AAAA,MAAO0oB,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAMt3B,GAAG,GAAGolB,YAAM,CAAkB,IAAlB,CAAlB;AACA,MAAM3M,OAAO,GACX5X,4BAAA,CAACjC,YAAD;AACEoB,IAAAA,GAAG,EAAEA;AACLhB,IAAAA,OAAO,EAAEA;AACToB,IAAAA,KAAK,EAAEA;iBACI62B;kBACCC;aACL52B;AACPM,IAAAA,SAAS,EAAEA;gBACDwZ;AACVja,IAAAA,KAAK,EAAEA;mBACMi3B;GAVf,EAWGn3B,QAXH,CADF;;AAiBA+lB,EAAAA,eAAS,CAAC;AACR,QAAIhmB,GAAJ,YAAIA,GAAG,CAAE0mB,OAAT,EAAkB;AAChB,UAAM6Q,YAAW,GAAGd,gBAAgB,CAACz2B,GAAG,CAAC0mB,OAAL,CAApC;;AACA4Q,MAAAA,gBAAgB,CAACC,YAAD,CAAhB;AACD;AACF,GALQ,EAKN,CAACv3B,GAAD,CALM,CAAT;AAOA,MAAMu3B,WAAW,GAAG,CAAAv3B,GAAG,QAAH,YAAAA,GAAG,CAAE0mB,OAAL,KAAgB+P,gBAAgB,CAACz2B,GAAG,CAAC0mB,OAAL,CAApD;AACA,SACE7lB,4BAAA,OAAA,MAAA,EACGw2B,aAAa,IAAIE,WAAjB,GACC12B,4BAAA,CAAC40B,kBAAD;AACEC,IAAAA,SAAS,EAAEyB;AACXH,IAAAA,UAAU,EAAEA;AACZj0B,IAAAA,KAAK,EAAElC,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;KAApB,EAA6BiB,QAA7B;GAHT,EAIGwY,OAJH,CADD,GAQCA,OATJ,CADF;AAcD,CApEM;;;;ACpBP,IAAM+e,YAAY;AAAA;AAAA;AAAA,2EAKI;AAAA,MAAGr5B,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBG,OAAnC;AAAA,CALJ,qwFAAlB;;AAWA,IAAMg5B,UAAU,gBAAG,QAAOC,IAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhB;;AAMA,SAAgBC;MACd5Y,qBAAAA;MACA6Y,wBAAAA;MACA7J,6BAAAA;;AAMA,MAAI,CAAAhP,YAAY,QAAZ,YAAAA,YAAY,CAAEsB,MAAd,MAAyBC,wBAAkB,CAAC+B,OAAhD,EAAyD;AACvD,WAAO,IAAP;AACD;;AAED,SACExhB,4BAAA,CAAC22B,YAAD;AAAc52B,IAAAA,SAAS,EAAC;GAAxB,EACEC,4BAAA,CAACg3B,YAAD;AAAej3B,IAAAA,SAAS,EAAC;GAAzB,CADF,EAGEC,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEiV,MAAAA,IAAI,EAAE,CAAR;AAAWkf,MAAAA,WAAW,EAAE;AAAxB;GAAZ,EACEzzB,4BAAA,CAACk2B,QAAD;AAAU/3B,IAAAA,OAAO,EAAC;AAAQ4B,IAAAA,SAAS,EAAC;AAAsCR,IAAAA,KAAK,EAAC;GAAhF,EACM2e,YAAY,CAAC+Y,kBADnB,+BAEGF,eAAe,iBAAe7Y,YAAY,CAACwW,QAA5B,UAFlB,CADF,CAHF,EAUE10B,4BAAA,CAAC42B,UAAD;AACE72B,IAAAA,SAAS,EAAC;AACVqQ,IAAAA,OAAO,EAAE;AAAA,aAAM8c,oBAAoB,CAAC;AAAEne,QAAAA,aAAa,EAAE+d,mCAA2B,CAACoK;AAA7C,OAAD,CAA1B;AAAA;GAFX,EAGEl3B,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAC;GAAlB,gBAAA,CAHF,CAVF,CADF;AAkBD;;SC5Ce43B;MACdC,wBAAAA;MACAC,yBAAAA;MACAnK,4BAAAA;MACA5vB,aAAAA;AAEA,SACE0C,4BAAA,MAAA;AAAKD,IAAAA,SAAS,EAAC;GAAf,EACEC,4BAAA,CAAChB,UAAD;AACEe,IAAAA,SAAS,EAAC;AACV5B,IAAAA,OAAO,EAAC;AACRqB,IAAAA,aAAa,EAAElC,KAAK,CAACmuB;AACrBnsB,IAAAA,KAAK,EAAE;AAAE4V,MAAAA,SAAS,EAAE;AAAb;GAJT,EAKGkiB,gBAAgB,CAAC1C,QALpB,SAAA,CADF,EASE10B,4BAAA,CAAC82B,UAAD;AACE5Y,IAAAA,YAAY,EAAEmZ;AACdN,IAAAA,eAAe,EAAE,CAAAM,iBAAiB,QAAjB,YAAAA,iBAAiB,CAAE3C,QAAnB,MAAgC0C,gBAAgB,CAAC1C;AAClExH,IAAAA,oBAAoB,EAAEA;GAHxB,CATF,CADF;AAiBD;;AClCM,IAAMoK,kCAAkC,GAAG,EAA3C;AAEP,SAAgBC,mBAAmBC,cAAsBC;AACvD,SAAO9sB,IAAI,CAACC,GAAL,CAASD,IAAI,CAAC+sB,KAAL,CAAYF,YAAY,GAAGC,KAAhB,GAAyB,GAApC,CAAT,EAAmD,GAAnD,CAAP;AACD;AAED,SAAgBE,uBAAuBH;AACrC,MAAIhY,MAAJ;;AAEA,MAAIgY,YAAY,GAAGF,kCAAnB,EAAuD;AACrD9X,IAAAA,MAAM,GAAG,UAAT;AACD,GAFD,MAEO,IAAIgY,YAAY,GAAG,GAAnB,EAAwB;AAC7BhY,IAAAA,MAAM,GAAG,SAAT;AACD,GAFM,MAEA;AACLA,IAAAA,MAAM,GAAG,OAAT;AACD;;AAED,SAAOA,MAAP;AACD;AAED,SAAgBoY,kBAAkB70B;AAChC,MAAI,CAACA,WAAW,CAACtC,WAAb,IAA4B,CAACsC,WAAW,CAAC80B,cAA7C,EAA6D;AAC3D,WAAO,IAAP;AACD;;AAED,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACzlB,IAAD;AACzB,WAAOtL,MAAM,CAACC,GAAP,CAAWjE,WAAW,CAAC80B,cAAvB,EAAuChY,IAAvC,CAA4C9Y,MAAM,CAACC,GAAP,EAA5C,EAA0DqL,IAA1D,CAAP;AACD,GAFD;;AAIA,UAAQtP,WAAW,CAACtC,WAApB;AACE,SAAK,OAAL;AACE,sCAA8Bq3B,kBAAkB,CAAC,MAAD,CAAhD;;AACF,SAAK,MAAL;AACE,qCAA6BA,kBAAkB,CAAC,MAAD,CAA/C;;AACF,SAAK,KAAL;AACE,oCAA4BA,kBAAkB,CAAC,OAAD,CAA9C;;AACF,SAAK,MAAL;AACE,qCAA6BA,kBAAkB,CAAC,SAAD,CAA/C;;AACF;AACE,aAAO,IAAP;AAVJ;AAYD;;ACpCM,IAAMC,oBAAoB,gBAAG,QAAOC,uBAAP;AAAyB5kB,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAA5C;AAAA;AAAA;AAAA,EAAH,iCAIX;AAAA,MAAGhW,KAAH,QAAGA,KAAH;AAAA,SAAeyG,KAAK,CAACzG,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAArB,CAAL,CAAmC6G,KAAnC,CAAyC,GAAzC,EAA8C0zB,MAA9C,EAAf;AAAA,CAJW,6BAOT;MAAGC,wBAAAA;MAAiB56B,cAAAA;;AACtC,UAAQ46B,eAAR;AACE,SAAK,UAAL;AACE,aAAO56B,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAA3B;;AACF,SAAK,SAAL;AACE,aAAOJ,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBG,OAA3B;;AACF,SAAK,OAAL;AACE,aAAON,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBI,KAA3B;;AACF;AACE,aAAOP,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAA3B;AARJ;AAUD,CAlB4B,8pFAA1B;AAsBP,AAAO,IAAMy6B,aAAa,gBAAG,QAAOpjB,SAAP;AAAA;AAAA;AAAA,EAAH,8DAGR;AAAA,MAAGzX,KAAH,SAAGA,KAAH;AAAA,SAAeyG,KAAK,CAACzG,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBqH,qBAArB,CAAL,CAAiDP,KAAjD,CAAuD,GAAvD,EAA4D0zB,MAA5D,EAAf;AAAA,CAHQ,6pFAAnB;AAUP,SAAgBG;MAA0Br1B,oBAAAA;;AACxC,MAAIA,WAAW,CAAC9B,iBAAhB,EAAmC;AACjC,WAAOjB,4BAAA,CAACm4B,aAAD,MAAA,CAAP;AACD;;AAED,MAAME,eAAe,GAAGd,kBAAkB,CAACx0B,WAAW,CAACy0B,YAAZ,IAA4B,CAA7B,EAAgCz0B,WAAW,CAAC7F,UAA5C,CAA1C;AACA,MAAMo7B,oBAAoB,GAAGX,sBAAsB,CAACU,eAAD,CAAnD;AAEA,SACEr4B,4BAAA,CAAC+3B,oBAAD;uBACmBO;AACjBv4B,IAAAA,SAAS,wCAAsCu4B,oBAAoB,CAAC9zB,QAArB;AAC/CrG,IAAAA,OAAO,EAAC;AACRqX,IAAAA,KAAK,EAAE6iB;GAJT,CADF;AAQD;;;AC9CD,IAAMnlB,cAAY,gBAAGS,iBAAM,CAACF,iBAAD,CAAT,6JAAlB;AAgBA,SAAgB8kB;MACdx1B,mBAAAA;MACA7B,eAAAA;MACAgsB,4BAAAA;MACAsL,iBAAAA;MACAC,kBAAAA;MACAC,8BAAAA;MACAC,6BAAAA;;AAEA,MAAIA,qBAAqB,IAAI51B,WAAW,CAAC9B,iBAAzC,EAA4D;AAC1D,WAAO,IAAP;AACD;;AAED,MAAIs2B,kBAAkB,CAACx0B,WAAW,CAACy0B,YAAZ,IAA4B,CAA7B,EAAgCz0B,WAAW,CAAC7F,UAA5C,CAAlB,GAA6Eo6B,kCAAjF,EAAqH;AACnH,WAAO,IAAP;AACD;;AAED,MAAImB,UAAJ,EAAgB;AACd,WAAOD,SAAS,GACdx4B,4BAAA,CAACkT,cAAD;AAAc/U,MAAAA,OAAO,EAAC;AAAOiS,MAAAA,OAAO,EAAE;AAAA,eAAMooB,SAAS,CAACt3B,OAAD,EAAU6B,WAAV,CAAf;AAAA;KAAtC,EACE/C,4BAAA,CAAChB,UAAD;AAAYO,MAAAA,KAAK,EAAC;KAAlB,YAAA,CADF,CADc,GAIZ,IAJJ;AAKD;;AAED,MAAIm5B,sBAAJ,EAA4B;AAC1B,WAAOxL,oBAAoB,GACzBltB,4BAAA,CAACkT,cAAD;AACE/U,MAAAA,OAAO,EAAC;AACRiS,MAAAA,OAAO,EAAE;AAAA,eAAM8c,oBAAoB,CAAC;AAAEne,UAAAA,aAAa,EAAE+d,mCAA2B,CAAC5d;AAA7C,SAAD,CAA1B;AAAA;KAFX,EAGElP,4BAAA,CAAChB,UAAD;AAAYO,MAAAA,KAAK,EAAC;KAAlB,WAAA,CAHF,CADyB,GAMvB,IANJ;AAOD;;AAED,SAAO,IAAP;AACD;;SCtCeq5B;;;MACdlvB,cAAAA;MACAmH,gBAAAA;MACA0B,iBAAAA;MACAxP,mBAAAA;MACA7B,eAAAA;MACA23B,uBAAAA;MACAL,iBAAAA;MACAtL,4BAAAA;MACAwL,8BAAAA;MACAC,6BAAAA;AAEA,SACE34B,4BAAA,MAAA;AACED,IAAAA,SAAS,qDAAmDgD,WAAW,CAAC7B,OAAZ,CAAqByhB;AACjFrjB,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE,QAAlC;AAA4C1U,MAAAA,GAAG,EAAE;AAAjD;GAFT,EAGEzZ,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4Z,MAAAA,cAAc,EAAE,eAAnC;AAAoD1Z,MAAAA,GAAG,EAAE;AAAzD;GAAZ,EACEzZ,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBE,MAAAA,GAAG,EAAE;AAAxB;GAAZ,EACEzZ,4BAAA,CAACk2B,QAAD;AAAU/3B,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAAhC,EACG2B,OAAO,CAACM,WADX,CADF,EAIG,CAACq3B,eAAD,IACC74B,4BAAA,CAACk2B,QAAD;AAAU/3B,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAAhC,EACGqR,sBAAsB,CAAC;AAAElH,IAAAA,MAAM,EAANA,MAAF;AAAUmH,IAAAA,QAAQ,EAARA;AAAV,GAAD,CADzB,SAAA,EACsD0B,SAAS,GAAMA,SAAN,SAAqB,EADpF,EAEGA,SAAS,GAAGrR,OAAO,CAAC0H,kBAAX,GAAgC1H,OAAO,CAACI,YAFpD,CALJ,CADF,EAaEtB,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBE,MAAAA,GAAG,EAAE;AAAxB;GAAZ,EACEzZ,4BAAA,CAACu4B,oBAAD;AACEx1B,IAAAA,WAAW,EAAEA;AACb7B,IAAAA,OAAO,EAAEA;AACTu3B,IAAAA,UAAU;AACVD,IAAAA,SAAS,EAAEA;AACXtL,IAAAA,oBAAoB,EAAEA;AACtBwL,IAAAA,sBAAsB,EAAEA;AACxBC,IAAAA,qBAAqB,EAAEA;GAPzB,CADF,EAUE34B,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;AAAUD,IAAAA,KAAK,EAAE;AAAEw5B,MAAAA,UAAU,EAAE;AAAd;GAAnD,EACG/1B,WAAW,CAAC9B,iBAAZ,4BACG8B,WAAW,CAACy0B,YADf,qBACG,sBAA0Br6B,cAA1B,EADH,8BAEM4F,WAAW,CAACy0B,YAFlB,qBAEM,uBAA0Br6B,cAA1B,EAFN,uCAEuD4F,WAAW,CAAC7F,UAFnE,qBAEuD,sBAAwBC,cAAxB,EAFvD,CADH,CAVF,CAbF,CAHF,EAkCE6C,4BAAA,CAACo4B,uBAAD;AAAyBr1B,IAAAA,WAAW,EAAEA;GAAtC,CAlCF,CADF;AAsCD;;SC1Deg2B;MACd7a,oBAAAA;MACApb,oBAAAA;MACA01B,iBAAAA;MACAtL,4BAAAA;MACAyL,6BAAAA;MACAD,8BAAAA;AAEA,MAAMM,oBAAoB,GAAGC,YAAK,CAACn2B,YAAD,EAAe,eAAf,CAAlC;AAEA,MAAMo2B,0BAA0B,GAAGhb,YAAY,CAAC5b,MAAb,CAAoBE,MAApB,CACjC;AAAA,QAAGtB,OAAH,SAAGA,OAAH;AAAA,QAAYuB,KAAZ,SAAYA,KAAZ;AAAA,WAAwB,CAAC,CAACvB,OAAF,IAAa83B,oBAAoB,CAAC93B,OAAO,CAACyhB,KAAT,CAAjC,IAAoD,CAAC,CAAClgB,KAA9E;AAAA,GADiC,CAAnC;;AAIA,MAAI,CAACy2B,0BAA0B,CAAC91B,MAAhC,EAAwC;AACtC,WAAO,IAAP;AACD;;AAED,SACEpD,4BAAA,MAAA;AAAKD,IAAAA,SAAS,EAAC;AAAoBT,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE,QAAlC;AAA4C1U,MAAAA,GAAG,EAAE,EAAjD;AAAqDvE,MAAAA,SAAS,EAAE;AAAhE;GAA1C,EACGgkB,0BAA0B,CAACv2B,GAA3B,CAA+B;QAAGzB,gBAAAA;QAASuB,cAAAA;QAAO8P,kBAAAA;QAAWiiB,qBAAAA;;AAC5D,QAAI,CAACtzB,OAAD,IAAY,CAACuB,KAAjB,EAAwB;AACtB,aAAO,IAAP;AACD;;AAED,QAAMM,WAAW,GAAGi2B,oBAAoB,CAAC93B,OAAO,CAACyhB,KAAT,CAAxC;;AAEA,QAAI,CAAC5f,WAAD,IAAgB,CAACA,WAAW,CAAC7B,OAAjC,EAA0C;AACxC,aAAO,IAAP;AACD;;AAED,WACElB,4BAAA,CAAC44B,UAAD;AACEh2B,MAAAA,GAAG,EAAE1B,OAAO,CAACyhB;AACb5f,MAAAA,WAAW,EAAEA;AACb7B,MAAAA,OAAO,EAAE6B,WAAW,CAAC7B;AACrBwI,MAAAA,MAAM,EAAEjH,KAAK,CAACiH;AACd6I,MAAAA,SAAS,EAAEA;AACX1B,MAAAA,QAAQ,EAAEpO,KAAK,CAACoO;AAChBgoB,MAAAA,eAAe,EAAErE,YAAY,KAAKtoB,kBAAY,CAACC;AAC/CqsB,MAAAA,SAAS,EAAEA;AACXtL,MAAAA,oBAAoB,EAAEA;AACtBwL,MAAAA,sBAAsB,EAAEA;AACxBC,MAAAA,qBAAqB,EAAEA;KAXzB,CADF;AAeD,GA1BA,CADH,CADF;AA+BD;;SCzCeQ;MACdjM,4BAAAA;MACAsL,iBAAAA;MACAlF,gCAAAA;MACAY,wBAAAA;MACA3D,sBAAAA;MACArF,yCAAAA;;AAEA,8BAA4DY,wBAAwB,EAApF;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBhc,SAAxB,yBAAwBA,SAAxB;AAAA,MAAmCme,aAAnC,yBAAmCA,aAAnC;AAAA,MAAkD5uB,KAAlD,yBAAkDA,KAAlD;;AACA,MAAM87B,aAAa,GAAGrrB,SAAS,IAAI,CAACgc,cAApC;;AACA,cAAgEA,cAAc,IAAI,EAAlF;AAAA,MAAQyD,aAAR,SAAQA,aAAR;AAAA,MAAuB1qB,YAAvB,SAAuBA,YAAvB;AAAA,MAAqC41B,sBAArC,SAAqCA,sBAArC;;AAEA,MAAMnZ,kBAAkB,GAAGiO,aAAH,oBAAGA,aAAa,CAAE9kB,IAAf,CAAoB;AAAA,QAAG8W,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,KAAKC,wBAAkB,CAACC,MAA9C;AAAA,GAApB,CAA3B;AACA,MAAM2X,iBAAiB,GAAG7J,aAAH,oBAAGA,aAAa,CAAE9kB,IAAf,CAAoB;AAAA,QAAG8W,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,KAAKC,wBAAkB,CAAC+B,OAA9C;AAAA,GAApB,CAA1B;AACA,MAAMmX,qBAAqB,GAAG,CAAApZ,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEnQ,WAApB,MAAoCC,iBAAW,CAACC,MAA9E;AACA,MAAM8nB,gBAAgB,GAAG7X,kBAAkB,IAAI8X,iBAA/C;AAEA,SACEr3B,4BAAA,CAAC0zB,gBAAD;AACE3zB,IAAAA,SAAS,EAAC;wBACQzC,KAAK,CAAC4jB;oBACV5jB,KAAK,CAACyW;GAHtB,EAIG,CAACqlB,aAAD,IAAkB7Z,kBAAlB,IAAwCA,kBAAkB,CAACqC,gBAA3D,IACC5hB,4BAAA,CAACqzB,iCAAD;AACE/1B,IAAAA,KAAK,EAAEA;AACP4gB,IAAAA,YAAY,EAAEqB;AACd+T,IAAAA,wBAAwB,EAAEA;AAC1BpI,IAAAA,iCAAiC,EAAEA;GAJrC,CALJ,EAaGkO,aAAa,IAAI,CAAChC,gBAAlB,GACCp3B,4BAAA,CAACoyB,0BAAD,MAAA,CADD,GAGCpyB,4BAAA,MAAA;AACED,IAAAA,SAAS,EAAC;AACVT,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBC,MAAAA,UAAU,EAAE,YAA/B;AAA6CC,MAAAA,GAAG,EAAE,EAAlD;AAAsDoZ,MAAAA,QAAQ,EAAE;AAAhE;GAFT,EAGE7yB,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE,QAAlC;AAA4C5Z,MAAAA,IAAI,EAAE;AAAlD;GAAZ,EACEvU,4BAAA,CAACitB,2BAAD;AACEC,IAAAA,oBAAoB,EAAEA;AACtBC,IAAAA,gBAAgB,EAAEwL;AAClBzM,IAAAA,aAAa,EAAEA;GAHjB,CADF,EAOElsB,4BAAA,CAACm3B,gBAAD;AACEC,IAAAA,gBAAgB,EAAEA;AAClBC,IAAAA,iBAAiB,EAAEA;AACnB/5B,IAAAA,KAAK,EAAEA;AACP4vB,IAAAA,oBAAoB,EAAEA;GAJxB,CAPF,EAcG3N,kBAAkB,IAAIzc,YAAtB,IACC9C,4BAAA,CAAC+4B,UAAD;AACE7a,IAAAA,YAAY,EAAEqB;AACdzc,IAAAA,YAAY,EAAEA;AACd01B,IAAAA,SAAS,EAAEA;AACXtL,IAAAA,oBAAoB,EAAEA;AACtBwL,IAAAA,sBAAsB,EAAE,CAAC,CAACA;AAC1BC,IAAAA,qBAAqB,EAAEA;GANzB,CAfJ,EAyBE34B,4BAAA,CAACswB,gBAAD;AAAA;AACE;AACAvG,IAAAA,cAAc,EAAEA;AAChBwG,IAAAA,cAAc,EAAEA;AAChBrE,IAAAA,aAAa,EAAEA;AACf5uB,IAAAA,KAAK,EAAEA;GALT,CAzBF,CAHF,EAqCE0C,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4U,MAAAA,aAAa,EAAE,QAAlC;AAA4CrZ,MAAAA,KAAK,EAAE,GAAnD;AAAwD2E,MAAAA,GAAG,EAAE;AAA7D;GAAZ,EACEzZ,4BAAA,CAACs0B,eAAD;AACEpW,IAAAA,YAAY,EAAEkZ;AACd95B,IAAAA,KAAK,EAAEA;AACP42B,IAAAA,gBAAgB,EAAEA;AAClBhI,IAAAA,aAAa,EAAEA;GAJjB,CADF,CArCF,CAhBJ,CADF;AAkED;;;;ACvGD,IAAMmN,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAhC;;AAQA,SAAgBC;MAAuB1c,qBAAAA;AACrC,SACE5c,4BAAA,CAACq5B,0BAAD;AAA4Bt5B,IAAAA,SAAS,EAAC;GAAtC,EACEC,4BAAA,CAAC0c,cAAD;AAAgBC,IAAAA,MAAM,EAAC;AAAkBC,IAAAA,aAAa,EAAEA;GAAxD,CADF,CADF;AAKD;;;;ACZD,IAAM2c,gBAAgB,gBAAG,QAAOv6B,UAAP;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;;AAIA,IAAMw6B,QAAQ,gBAAG,QAAOC,yBAAP;AAAA;AAAA;AAAA,EAAH,WACH;AAAA,MAAGn8B,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CADG,q8CAAd;;AAUA,SAAgBg8B;MAAqB57B,aAAAA;MAAM67B,YAAAA;MAAK55B,kBAAAA;;AAC9C,MAAMqQ,OAAO,GAAG,SAAVA,OAAU;AACd4M,IAAAA,MAAM,CAACG,IAAP,CAAYwc,GAAZ,EAAiB,QAAjB;AACD,GAFD;;AAIA,SACE35B,4BAAA,CAACkT,cAAD;AACEnT,IAAAA,SAAS,EAAEA;AACX5B,IAAAA,OAAO,EAAC;AACRy7B,IAAAA,SAAS,EAAE55B,4BAAA,CAACw5B,QAAD;AAAUhpB,MAAAA,IAAI,EAAE;AAAIqpB,MAAAA,WAAW,EAAE;KAAjC;AACXzpB,IAAAA,OAAO,EAAEA;GAJX,EAKEpQ,4BAAA,CAACu5B,gBAAD;AAAkBh6B,IAAAA,KAAK,EAAC;GAAxB,EAAwCzB,IAAxC,CALF,CADF;AASD;;;AC7BM,IAAMg8B,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA9B;;AAQP,IAAMC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAxB;;AAmBA,SAAgBC;MAAkB93B,aAAAA;MAAO+3B,YAAAA;AACvC,SACEj6B,4BAAA,CAAC85B,wBAAD,MAAA,EACE95B,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAKoB,IAAAA,KAAK,EAAC;AAAYlB,IAAAA,UAAU,EAAE0hB,2BAAU,CAACsQ;GAAlE,EACGnuB,KADH,CADF,EAIG+3B,IAAI,CAACt3B,GAAL,CAAS;AAAA,QAAGu3B,eAAH,SAAGA,eAAH;AAAA,QAAoB9J,KAApB,SAAoBA,KAApB;AAAA,QAA2B5a,KAA3B,SAA2BA,KAA3B;AAAA,QAAkC2kB,oBAAlC,SAAkCA,oBAAlC;AAAA,QAAwDC,oBAAxD,SAAwDA,oBAAxD;AAAA,WACRp6B,4BAAA,CAAC+5B,kBAAD;AAAoBn3B,MAAAA,GAAG,EAAEwtB;KAAzB,EACEpwB,4BAAA,CAAChB,UAAD;AACEe,MAAAA,SAAS,EAAKm6B,eAAL;AACT/7B,MAAAA,OAAO,EAAC;AACRoB,MAAAA,KAAK,EAAC;AACND,MAAAA,KAAK,EAAE;AAAEwV,QAAAA,KAAK,EAAE;AAAT;OACHqlB,qBALN,EAMG/J,KANH,CADF,EASEpwB,4BAAA,CAAChB,UAAD;AAAYe,MAAAA,SAAS,EAAKm6B,eAAL;AAA6B/7B,MAAAA,OAAO,EAAC;AAAQoB,MAAAA,KAAK,EAAC;OAAgB66B,qBAAxF,EACG5kB,KADH,CATF,CADQ;AAAA,GAAT,CAJH,CADF;AAsBD;;SCpDe6kB;AACd,SAAOr6B,4BAAA,CAACwU,mBAAD;AAAUM,IAAAA,KAAK,EAAE;AAAKrE,IAAAA,MAAM,EAAE;GAA9B,CAAP;AACD;;ACQM,IAAM2G,YAAU,GAAG,GAAnB;AAEP,SAAgBkjB;AACd,8BAA4DxO,wBAAwB,EAApF;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBhc,SAAxB,yBAAwBA,SAAxB;AAAA,MAAmCme,aAAnC,yBAAmCA,aAAnC;AAAA,MAAkD5uB,KAAlD,yBAAkDA,KAAlD;;AACA,MAAM+0B,mBAAmB,GAAGL,oBAAoB,CAAC,IAAD,CAAhD;;AACA,aAA+BjI,cAAc,IAAI,EAAjD;AAAA,MAAQwQ,kBAAR,QAAQA,kBAAR;;AACA,MAAMnB,aAAa,GAAG,CAACmB,kBAAD,IAAuBxsB,SAA7C;AAEA,MAAMysB,KAAK,GAAmB,EAA9B;;AAEA,MAAIpB,aAAJ,EAAmB;AACjBoB,IAAAA,KAAK,CAAChwB,IAAN,OAAAgwB,KAAK,EACA,CACDx6B,4BAAA,CAAC85B,wBAAD;AAA0Bl3B,MAAAA,GAAG,EAAC;KAA9B,EACE5C,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CADF,EAEEzQ,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CAFF,EAGEzQ,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CAHF,CADC,EAMDzQ,4BAAA,CAAC+U,SAAD;AACEnS,MAAAA,GAAG,EAAC;AACJ63B,MAAAA,WAAW,EAAC;AACZn7B,MAAAA,KAAK,EAAE;AAAEuW,QAAAA,SAAS,EAAE,EAAb;AAAiB0D,QAAAA,OAAO,EAAE8Y,mBAAmB,GAAG,OAAH,GAAa;AAA1D;KAHT,CANC,EAWDryB,4BAAA,CAAC85B,wBAAD;AAA0Bl3B,MAAAA,GAAG,EAAC;KAA9B,EACE5C,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CADF,EAEEzQ,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CAFF,EAGEzQ,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CAHF,CAXC,CADA,CAAL;AAmBD,GApBD,MAoBO;AACL+pB,IAAAA,KAAK,CAAChwB,IAAN,CACExK,4BAAA,CAACg6B,eAAD;AACEp3B,MAAAA,GAAG,EAAC;AACJV,MAAAA,KAAK,EAAC;AACN+3B,MAAAA,IAAI,EAAE,CACJ;AACEC,QAAAA,eAAe,EAAE,qBADnB;AAEE9J,QAAAA,KAAK,EAAE,MAFT;AAGE5a,QAAAA,KAAK,EAAE,CAAA+kB,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEG,IAApB,KAA4BtjB,YAHrC;AAIEgjB,QAAAA,oBAAoB,EAAEG,kBAAkB,QAAlB,IAAAA,kBAAkB,CAAEG,IAApB,GAA2B,EAA3B,GAAgC;AAAEn7B,UAAAA,KAAK,EAAE;AAAT;AAJxD,OADI,EAOJ;AACE26B,QAAAA,eAAe,EAAE,sBADnB;AAEE9J,QAAAA,KAAK,EAAE,OAFT;AAGE5a,QAAAA,KAAK,EAAE,CAAA+kB,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEI,KAApB,KAA6BvjB,YAHtC;AAIEgjB,QAAAA,oBAAoB,EAAEG,kBAAkB,QAAlB,IAAAA,kBAAkB,CAAEI,KAApB,GAA4B,EAA5B,GAAiC;AAAEp7B,UAAAA,KAAK,EAAE;AAAT;AAJzD,OAPI;KAHR,CADF;;AAqBA,QACEg7B,kBAAkB,QAAlB,IAAAA,kBAAkB,CAAEK,sBAApB,IACAL,kBAAkB,CAACM,+BADnB,IAEAN,kBAAkB,CAACO,6BAFnB,IAGAP,kBAAkB,CAACQ,4BAJrB,EAKE;AACAP,MAAAA,KAAK,CAACQ,OAAN,CACEh7B,4BAAA,CAAC+U,SAAD;AACEnS,QAAAA,GAAG,EAAC;AACJ63B,QAAAA,WAAW,EAAC;AACZn7B,QAAAA,KAAK,EAAE;AAAEuW,UAAAA,SAAS,EAAE,EAAb;AAAiB0D,UAAAA,OAAO,EAAE8Y,mBAAmB,GAAG,OAAH,GAAa;AAA1D;OAHT,CADF;AAOAmI,MAAAA,KAAK,CAACQ,OAAN,CACEh7B,4BAAA,CAACg6B,eAAD;AACEp3B,QAAAA,GAAG,EAAC;AACJV,QAAAA,KAAK,EAAC;AACN+3B,QAAAA,IAAI,EAAE,CACJ;AACEC,UAAAA,eAAe,EAAE,mBADnB;AAEE9J,UAAAA,KAAK,EAAE,MAFT;AAGE5a,UAAAA,KAAK,iBAAe+kB,kBAAkB,CAACM;AAHzC,SADI,EAMJ;AACEX,UAAAA,eAAe,EAAE,8BADnB;AAEE9J,UAAAA,KAAK,EAAE,SAFT;AAGE5a,UAAAA,KAAK,EAAKylB,eAAQ,CAACV,kBAAkB,CAACO,6BAAnB,CAAiDt2B,QAAjD,EAAD,EAA8D,CAA9D,EAAiE,GAAjE,CAAb,SACH+1B,kBAAkB,CAACQ;AAJvB,SANI;OAHR,CADF;AAoBD;AACF;;AAED,MACE,CAAC3B,aAAD,IACA,EAACmB,kBAAD,YAACA,kBAAkB,CAAEG,IAArB,CADA,IAEA,EAACH,kBAAD,YAACA,kBAAkB,CAAEI,KAArB,CAFA,IAGA,EAACJ,kBAAD,YAACA,kBAAkB,CAAEK,sBAArB,CAJF,EAKE;AACA,WAAO,IAAP;AACD;;AAED,MAAMM,UAAU,GAAG9B,aAAa,GAC9Bp5B,4BAAA,CAACq6B,cAAD,MAAA,CAD8B,GAE5BtQ,cAAc,QAAd,IAAAA,cAAc,CAAEoR,gBAAhB,GACFn7B,4BAAA,CAAC05B,kBAAD;AACEC,IAAAA,GAAG,EAAE5P,cAAc,CAACoR;AACpBr9B,IAAAA,IAAI,EAAEouB,aAAa,CAAClB;AACpBjrB,IAAAA,SAAS,EAAC;GAHZ,CADE,GAMA,IARJ;AAUA,SACEC,4BAAA,CAAC0zB,gBAAD;AACE3zB,IAAAA,SAAS,EAAC;wBACQzC,KAAK,CAAC4jB;oBACV5jB,KAAK,CAACyW;GAHtB,EAIE/T,4BAAA,CAAC2sB,aAAD;AAAe5sB,IAAAA,SAAS,EAAC;GAAzB,EACEC,4BAAA,CAAC6sB,YAAD;AACE9e,IAAAA,SAAS,EAAEqrB;AACXr5B,IAAAA,SAAS,EAAC;AACVmC,IAAAA,KAAK,EAAC;GAHR,CADF,EAMGg5B,UANH,CAJF,EAaEl7B,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBC,MAAAA,UAAU,EAAE,SAA/B;AAA0CC,MAAAA,GAAG,EAAE4Y,mBAAmB,GAAG,EAAH,GAAQ,EAA1E;AAA8EQ,MAAAA,QAAQ,EAAE;AAAxF;GAAZ,EACG2H,KADH,CAbF,CADF;AAmBD;;ACvIM,IAAMY,2BAA2B,gBAAG,QAAO1H,gBAAP;AAAA;AAAA;AAAA,EAAH,sWAyBnCrX,yBAzBmC,u4CAAjC;;ACSA,IAAMgf,qBAAqB,gBAAGr7B,cAAK,CAACf,UAAN,CACnC,gBAAgDE,GAAhD;MAAGm8B,wBAAAA;MAAkBh+B,aAAAA;MAAO4E,aAAAA;MAAO6L,iBAAAA;;AACjC,MAAI,CAACutB,gBAAL,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,SACEt7B,4BAAA,CAACo7B,2BAAD;AACEr7B,IAAAA,SAAS,EAAC;AACVZ,IAAAA,GAAG,EAAEA;wBACa7B,KAAK,CAAC4jB;oBACV5jB,KAAK,CAACyW;GAJtB,EAKE/T,4BAAA,CAAC2sB,aAAD;AAAe5sB,IAAAA,SAAS,EAAC;GAAzB,EACEC,4BAAA,CAAC6sB,YAAD;AAAc9e,IAAAA,SAAS,EAAEA;AAAWhO,IAAAA,SAAS,EAAC;AAA8CmC,IAAAA,KAAK,EAAEA;GAAnG,CADF,CALF,EASGo5B,gBATH,CADF;AAaD,CAnBkC,CAA9B;;;;ACXP,AAAO,IAAMC,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B;AAWP,AAAO,IAAMC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA5B;;SCVSC,0BACdC,oBACAp6B,cACAsH;AAEA,MAAI,CAACtH,YAAD,IAAiB,CAACsH,kBAAtB,EAA0C;AACxC,WAAO8yB,kBAAP;AACD;;AAED,MAAMC,oBAAoB,GAAGC,SAAS,CAACF,kBAAD,CAAtC;;AACA,MACEC,oBAAoB,KAAKC,SAAS,CAACt6B,YAAY,IAAI,EAAjB,CAAlC,IACAq6B,oBAAoB,KAAKC,SAAS,CAAChzB,kBAAkB,IAAI,EAAvB,CAFpC,EAGE;AACA,WAAO8yB,kBAAP;AACD;;AAED,SAAUA,kBAAV,UAAiC9yB,kBAAjC;AACD;AAED,SAAgBizB,sBAAsB36B;AACpC,SAAOu6B,yBAAyB,CAACv6B,OAAO,CAACM,WAAT,EAAsBN,OAAO,CAACI,YAA9B,EAA4CJ,OAAO,CAAC0H,kBAApD,CAAhC;AACD;;ACvBM,IAAMkzB,qBAAqB;AAAA;AAAA;AAAA,8DAItB;AAAA,MAAGhO,YAAH,QAAGA,YAAH;AAAA,wBAAmCA,YAAnC;AAAA,CAJsB,mDAS9B;AAAA,MAAGxwB,KAAH,SAAGA,KAAH;AAAA,MAAUy+B,UAAV,SAAUA,UAAV;AAAA,SAA2BA,UAAU,2BAAyBz+B,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBkH,iBAAlF;AAAA,CAT8B,y1BAA3B;;SCwBSq3B;;;MACdj5B,mBAAAA;MACAiJ,yBAAAA;MACAkhB,4BAAAA;MACAsL,iBAAAA;MACAG,6BAAAA;MACAD,8BAAAA;;AAEA,8BAAkB5M,wBAAwB,EAA1C;AAAA,MAAQxuB,KAAR,yBAAQA,KAAR;;AAEA,MAAM2+B,eAAe,GAAG,CAACl5B,WAAW,CAAC9B,iBAAb,IAAkC8B,WAAW,CAACy0B,YAAZ,GAA4Bz0B,WAAW,CAAC7F,UAAlG;;AAEA,MAAI,CAAC6F,WAAW,CAAC7B,OAAjB,EAA0B;AACxB,WAAO,IAAP;AACD;;AAED,SACElB,4BAAA,CAAC87B,qBAAD;kBAAmC,CAAC,CAAC9vB;oBAAiC1O,KAAK,CAACyW;GAA5E,EACE/T,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmBC,MAAAA,UAAU,EAAE,QAA/B;AAAyC2Z,MAAAA,cAAc,EAAE,eAAzD;AAA0E1Z,MAAAA,GAAG,EAAE;AAA/E;GAAZ,EACEzZ,4BAAA,CAACk2B,QAAD;AAAU/3B,IAAAA,OAAO,EAAC;GAAlB,EAA2B4E,WAAW,CAAC7B,OAAZ,IAAuB26B,qBAAqB,CAAC94B,WAAW,CAAC7B,OAAb,CAAvE,CADF,EAEG8K,iBAAiB,IAChBhM,4BAAA,CAAC40B,kBAAD;AACE1yB,IAAAA,KAAK,EACHlC,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;KAApB,EACG6N,iBAAiB,CAACwoB,YAAlB,KAAmCtoB,kBAAY,CAACC,OAAhD,GACG,4BADH,GAEG,yBAHN;GAFJ,EAQEnM,4BAAA,CAACsvB,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAaG,IAAAA,cAAc,EAAEpyB,KAAK,CAACgc;GAA9C,CARF,CAHJ,CADF,EAiBEtZ,4BAAA,MAAA;AAAKV,IAAAA,KAAK,EAAE;AAAEia,MAAAA,OAAO,EAAE,MAAX;AAAmB4Z,MAAAA,cAAc,EAAE,eAAnC;AAAoD3Z,MAAAA,UAAU,EAAE,QAAhE;AAA0EC,MAAAA,GAAG,EAAE;AAA/E;GAAZ,EACEzZ,4BAAA,CAACk2B,QAAD;AACE/3B,IAAAA,OAAO,EAAC;AACRoB,IAAAA,KAAK,EAAE08B,eAAe,GAAG,OAAH,GAAa;4DACRl5B,WAAW,CAAC7B,4BAAZ,qBAAqByhB;GAHlD,2BAIG5f,WAAW,CAACy0B,YAJf,qBAIG,sBAA0Br6B,cAA1B,EAJH,EAKG,CAAC4F,WAAW,CAAC9B,iBAAb,sCACO8B,WAAW,CAAC7F,UADnB,qBACO,sBAAwBC,cAAxB,EADP,WACoDo6B,kBAAkB,CACnEx0B,WAAW,CAACy0B,YAAZ,IAA4B,CADuC,EAEnEz0B,WAAW,CAAC7F,UAFuD,CADtE,OALH,CADF,EAaE8C,4BAAA,CAACu4B,oBAAD;AACEx1B,IAAAA,WAAW,EAAEA;AACb7B,IAAAA,OAAO,EAAE6B,WAAW,CAAC7B;AACrBs3B,IAAAA,SAAS,EAAEA;AACXC,IAAAA,UAAU,EAAE,CAAC,CAACzsB;AACdkhB,IAAAA,oBAAoB,EAAEA;AACtBwL,IAAAA,sBAAsB,EAAEA;AACxBC,IAAAA,qBAAqB,EAAEA;GAPzB,CAbF,CAjBF,EAyCE34B,4BAAA,CAACo4B,uBAAD;AAAyBr1B,IAAAA,WAAW,EAAEA;GAAtC,CAzCF,EA2CG,CAACA,WAAW,CAAC9B,iBAAb,IACD,CAACi7B,WAAW,CAACn5B,WAAW,CAAC7F,UAAb,CADX,IAED,CAACg/B,WAAW,CAACn5B,WAAW,CAACy0B,YAAb,CAFX,IAGDz0B,WAAW,CAACtC,WAHX,IAIDsC,WAAW,CAAC80B,cAJX,GAKC73B,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAC;GAAlB,EAA+Bq4B,iBAAiB,CAAC70B,WAAD,CAAhD,CALD,GAMG,IAjDN,EAkDGA,WAAW,CAAC9B,iBAAZ,IAAiCjB,4BAAA,CAAChB,UAAD;AAAYO,IAAAA,KAAK,EAAC;GAAlB,6BAAA,CAlDpC,CADF;AAsDD;;;ACzFM,IAAM48B,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAZ;AAIP,SAAgBC;AACd,MAAMC,UAAU,GAAGrK,oBAAoB,CAAC,IAAD,CAAvC;AACA,SACEhyB,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC0nB,IAAAA,OAAO,EAAE;AAAGv8B,IAAAA,SAAS,EAAC;AAA2CiV,IAAAA,EAAE,EAAE;AAAE6d,MAAAA,QAAQ,EAAE;AAAZ;GAArF,EACG0J,YAAK,CAAC,CAAD,CAAL,CAAS55B,GAAT,CAAa,UAACkS,IAAD;AAAA,WACZ7U,4BAAA,CAACkU,IAAD;AAAMtR,MAAAA,GAAG,EAAEiS;AAAMA,MAAAA,IAAI;AAACyc,MAAAA,EAAE,EAAE+K,UAAU,GAAG,CAAH,GAAO;KAA3C,EACEr8B,4BAAA,CAACwU,mBAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;KAA9B,CADF,CADY;AAAA,GAAb,CADH,CADF;AASD;;ACND,IAAM+rB,SAAS,GAAG,CAAlB;AAQA,SAAgBC;MAAoBvP,4BAAAA;MAAsBsL,iBAAAA;MAAWkE,0BAAAA;;AACnE,kBAA8B5uB,cAAQ,CAAC,KAAD,CAAtC;AAAA,MAAO6uB,OAAP;AAAA,MAAgBC,UAAhB;;AACA,MAAMP,UAAU,GAAGrK,oBAAoB,CAAC,IAAD,CAAvC;;AAEA,8BAA4DlG,wBAAwB,EAApF;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBhc,SAAxB,yBAAwBA,SAAxB;AAAA,MAAmCme,aAAnC,yBAAmCA,aAAnC;AAAA,MAAkD5uB,KAAlD,yBAAkDA,KAAlD;;AACA,MAAM87B,aAAa,GAAGrrB,SAAS,IAAI,CAACgc,cAApC;;AACA,cAAwCA,cAAc,IAAI,EAA1D;AAAA,MAAQjnB,YAAR,SAAQA,YAAR;AAAA,MAAsB0qB,aAAtB,SAAsBA,aAAtB;;AACA,MAAMqP,mBAAmB,GAAG/5B,YAAH,oBAAGA,YAAY,CAAEN,MAAd,CAC1B,UAACO,WAAD;AAAA;;AAAA,WACE,yBAAAA,WAAW,CAAC7B,OAAZ,0CAAqB47B,SAArB,MAAmCC,eAAS,CAACC,WAA7C,IACA,0BAAAj6B,WAAW,CAAC7B,OAAZ,2CAAqB47B,SAArB,MAAmCC,eAAS,CAACE,WAF/C;AAAA,GAD0B,CAA5B;AAKA,MAAM1d,kBAAkB,GAAGiO,aAAH,oBAAGA,aAAa,CAAE9kB,IAAf,CAAoB;AAAA,QAAG8W,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,KAAKC,wBAAkB,CAACC,MAA9C;AAAA,GAApB,CAA3B;AACA,MAAMiZ,qBAAqB,GAAG,CAAApZ,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEnQ,WAApB,MAAoCC,iBAAW,CAACC,MAA9E;AACA,MAAMopB,sBAAsB,GAAG,CAAC,EAAC3O,cAAD,YAACA,cAAc,CAAE2O,sBAAjB,CAAhC;AAEA,MAAMwE,0BAA0B,GAAGjE,YAAK,CAAC1Z,kBAAD,oBAACA,kBAAkB,CAAEjd,MAArB,EAA6B,eAA7B,CAAxC;AACA,MAAM02B,oBAAoB,GAAGC,YAAK,CAAC4D,mBAAD,EAAsB,eAAtB,CAAlC;;AAGA,MAAMM,iBAAiB,GAAG10B,cAAO,CAC/B8W,kBAD+B,oBAC/BA,kBAAkB,CAAEjd,MAApB,CAA2BK,GAA3B,CACE,UAACqJ,iBAAD;AAAA,WAAuBA,iBAAiB,CAAC9K,OAAlB,IAA6B83B,oBAAoB,CAAChtB,iBAAiB,CAAC9K,OAAlB,CAA0ByhB,KAA3B,CAAxE;AAAA,GADF,CAD+B,CAAjC;AAKA,MAAMya,iBAAiB,GAAG30B,cAAO,CAC/Bo0B,mBAD+B,oBAC/BA,mBAAmB,CAAEr6B,MAArB,CAA4B,UAACO,WAAD;AAAA,WAAiB,CAACm6B,0BAA0B,CAACn6B,WAAW,CAAC7B,OAAZ,CAAqByhB,KAAtB,CAA5C;AAAA,GAA5B,CAD+B,CAAjC;AAGA,MAAM0a,kBAAkB,aAAOF,iBAAP,EAA6BC,iBAA7B,CAAxB;AAEA,MAAME,oBAAoB,GAAGZ,kBAAkB,GAAGA,kBAAkB,CAACW,kBAAD,CAArB,GAA4CA,kBAA3F;;AAGA,MAAM/L,EAAE,GAAG+K,UAAU,GAAIiB,oBAAoB,CAACl6B,MAArB,GAA8B,CAA9B,GAAkC,CAAlC,GAAsC,CAA1C,GAA+C,EAApE;AAEA,MAAMm6B,kBAAkB,GAAGZ,OAAO,GAAGW,oBAAH,GAA0BA,oBAAoB,CAACE,KAArB,CAA2B,CAA3B,EAA8BhB,SAA9B,CAA5D;;AAEA,MAAMiB,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WAAMb,UAAU,CAAC,UAACrkB,SAAD;AAAA,aAAe,CAACA,SAAhB;AAAA,KAAD,CAAhB;AAAA,GAAtB;;AAEA,MAAI,CAAC6gB,aAAD,IAAkB,EAACyD,mBAAD,YAACA,mBAAmB,CAAEz5B,MAAtB,CAAtB,EAAoD;AAClD,WAAO,IAAP;AACD;;AAED,SACEpD,4BAAA,CAAC0zB,gBAAD;AACE3zB,IAAAA,SAAS,EAAC;wBACQzC,KAAK,CAAC4jB;oBACV5jB,KAAK,CAACyW;GAHtB,EAIE/T,4BAAA,CAAC2sB,aAAD,MAAA,EACE3sB,4BAAA,CAAC6sB,YAAD;AACE3qB,IAAAA,KAAK,EAAEgqB,aAAa,CAAC3B;AACrBxqB,IAAAA,SAAS,EAAC;AACVgO,IAAAA,SAAS,EAAEqrB;GAHb,CADF,CAJF,EAYGA,aAAa,GACZp5B,4BAAA,CAACo8B,mBAAD,MAAA,CADY,GAGZp8B,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC0nB,IAAAA,OAAO,EAAE;GAAzB,EACGiB,kBAAkB,CAAC56B,GAAnB,CAAuB,UAACI,WAAD;AAAA,WACtB/C,4BAAA,CAACkU,IAAD;AACEnU,MAAAA,SAAS,+BAA6BgD,WAAW,CAAC7B,OAAZ,CAAqByhB;AAC3D/f,MAAAA,GAAG,EAAEG,WAAW,CAAC7B,OAAZ,CAAqByhB;AAC1B9N,MAAAA,IAAI;AACJyc,MAAAA,EAAE,EAAEA;KAJN,EAKEtxB,4BAAA,CAACg8B,YAAD;AACEp5B,MAAAA,GAAG,EAAEG,WAAW,CAAC7B,OAAZ,CAAqByhB;AAC1B3W,MAAAA,iBAAiB,EAAEkxB,0BAA0B,CAACn6B,WAAW,CAAC7B,OAAZ,CAAqByhB,KAAtB;AAC7C5f,MAAAA,WAAW,EAAEA;AACbmqB,MAAAA,oBAAoB,EAAEA;AACtBsL,MAAAA,SAAS,EAAEA;AACXG,MAAAA,qBAAqB,EAAEA;AACvBD,MAAAA,sBAAsB,EAAEA;KAP1B,CALF,CADsB;AAAA,GAAvB,CADH,CADF,EAqBG4E,oBAAoB,CAACl6B,MAArB,GAA8Bo5B,SAA9B,IACCx8B,4BAAA,CAACm8B,MAAD,MAAA,EACEn8B,4BAAA,CAACkT,cAAD;AACEnT,IAAAA,SAAS,EAAC;AACV5B,IAAAA,OAAO,EAAC;AACRy7B,IAAAA,SAAS,EAAE+C,OAAO,GAAG38B,4BAAA,CAAC09B,kBAAD,MAAA,CAAH,GAAe19B,4BAAA,CAAC29B,iBAAD,MAAA;AACjCvtB,IAAAA,OAAO,EAAEqtB;GAJX,EAKGd,OAAO,GAAG,WAAH,GAAiB,WAL3B,CADF,CAtBJ,CAfJ,CADF;AAoDD;;SCzGeiB;MACd1Q,4BAAAA;MACAsL,iBAAAA;MACAlF,gCAAAA;MACAY,wBAAAA;MACAoH,wBAAAA;MACA/K,sBAAAA;MACAmM,0BAAAA;;AAEA,yBAAkB7e,eAAe,EAAjC;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;;AACA,8BAA4DsuB,wBAAwB,EAApF;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBmC,aAAxB,yBAAwBA,aAAxB;AAAA,MAAuC5uB,KAAvC,yBAAuCA,KAAvC;AAAA,MAA8CyQ,SAA9C,yBAA8CA,SAA9C;;AACA,MAAM8vB,wBAAwB,GAAGtZ,YAAM,CAAiB,IAAjB,CAAvC;;AAEA,MAAMuZ,aAAa,GAAkB,SAA/BA,aAA+B;QAAG/uB,sBAAAA;;AACtC,QAAIme,oBAAJ,EAA0B;AAAA;;AACxB,WAAKA,oBAAoB,CAAC;AACxBne,QAAAA,aAAa,EAAbA,aADwB;AAExBgvB,QAAAA,qBAAqB,2BAAEhU,cAAF,oBAAEA,cAAc,CAAEyD,aAAlB,oCAAmC;AAFhC,OAAD,CAAzB;AAID,KALD,MAKO;AAAA;;AACLqQ,MAAAA,wBAAwB,QAAxB,qCAAAA,wBAAwB,CAAEhY,OAA1B,2CAAmCmY,cAAnC,CAAkD;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAlD;AACD;AACF,GATD;;AAWA,MAAMC,eAAe,GAAG,EAAC3N,cAAD,YAACA,cAAc,CAAEllB,IAAhB,CAAqB,UAACslB,OAAD;AAAA,WAAaA,OAAO,KAAK,OAAzB;AAAA,GAArB,CAAD,CAAxB;AACA,MAAMwN,wBAAwB,GAAG,EAAC5N,cAAD,YAACA,cAAc,CAAEllB,IAAhB,CAChC,UAACslB,OAAD;AAAA,WAAaA,OAAO,KAAK,gBAAZ,IAAgCA,OAAO,KAAK,oBAAzD;AAAA,GADgC,CAAD,CAAjC;AAGA,MAAMyN,kBAAkB,GAAG,EAAC7N,cAAD,YAACA,cAAc,CAAEllB,IAAhB,CAC1B,UAACslB,OAAD;AAAA,WAAaA,OAAO,KAAK,UAAZ,IAA0BA,OAAO,KAAK,oBAAnD;AAAA,GAD0B,CAAD,CAA3B;AAIA,SACE3wB,4BAAA,CAACu7B,oBAAD;AAAsBx7B,IAAAA,SAAS,EAAC;GAAhC,EACEC,4BAAA,CAACs5B,oBAAD;AAAsB1c,IAAAA,aAAa,EAAEpf,KAAK,CAAC6gB,wBAAN,IAAkC,CAAC,CAAC0L;GAAzE,CADF,EAEE/pB,4BAAA,CAACw7B,sBAAD;AAAwBz7B,IAAAA,SAAS,EAAC;GAAlC,EACEC,4BAAA,CAACm5B,qBAAD;AACE7F,IAAAA,wBAAwB,EAAEA;AAC1BkF,IAAAA,SAAS,EAAEA;AACXtL,IAAAA,oBAAoB,EAAE4Q;AACtB5J,IAAAA,gBAAgB,EAAEA;AAClB3D,IAAAA,cAAc,EAAEA;AAChBrF,IAAAA,iCAAiC,EAAEgB,aAAa,CAAChB;GANnD,CADF,EASGgT,eAAe,IACdl+B,4BAAA,CAACy8B,iBAAD;AACEvP,IAAAA,oBAAoB,EAAE4Q;AACtBtF,IAAAA,SAAS,EAAEA;AACXkE,IAAAA,kBAAkB,EAAEA;GAHtB,CAVJ,EAgBE18B,4BAAA,CAACq7B,qBAAD;AACEl8B,IAAAA,GAAG,EAAE0+B;AACLvC,IAAAA,gBAAgB,EAAEA;AAClBh+B,IAAAA,KAAK,EAAEA;AACP4E,IAAAA,KAAK,EAAEgqB,aAAa,CAACjB;AACrBld,IAAAA,SAAS,EAAE,CAACgc,cAAD,IAAmBhc;GALhC,CAhBF,EAuBGowB,wBAAwB,IAAIn+B,4BAAA,CAACs6B,qBAAD,MAAA,CAvB/B,EAwBG8D,kBAAkB,IAAIp+B,4BAAA,CAACq+B,eAAD,MAAA,CAxBzB,CAFF,CADF;AA+BD;;;AC7ED,SA+BgBC;MAAiBpS,qBAAAA;MAAe5uB,aAAAA;MAAOqmB,kBAAAA;MAAYtB,iBAAAA;MAAc1gB;;AAC/E,SACE3B,4BAAA,CAACisB,sBAAD;AAAwBC,IAAAA,aAAa,EAAEA;AAAe5uB,IAAAA,KAAK,EAAEA;AAAOqmB,IAAAA,UAAU,EAAEA;AAAYtB,IAAAA,SAAS,EAAEA;GAAvG,EACEriB,4BAAA,CAAC49B,uBAAD,oBAA6Bj8B,UAA7B,CADF,CADF;AAKD;;SC7Be08B;AACd,8BAA4DvS,wBAAwB,EAApF;AAAA,MAAQ/B,cAAR,yBAAQA,cAAR;AAAA,MAAwBhc,SAAxB,yBAAwBA,SAAxB;AAAA,MAAmCme,aAAnC,yBAAmCA,aAAnC;AAAA,MAAkD5uB,KAAlD,yBAAkDA,KAAlD;;AACA,MAAM87B,aAAa,GAAG,CAACrP,cAAD,IAAmBhc,SAAzC;AAEA,MAAMwwB,wBAAwB,GAAGnF,aAAa,GAC5Cp5B,4BAAA,CAACq6B,cAAD,MAAA,CAD4C,GAE1CtQ,cAAc,QAAd,IAAAA,cAAc,CAAEoR,gBAAhB,GACFn7B,4BAAA,CAAC05B,kBAAD;AACEC,IAAAA,GAAG,EAAE5P,cAAc,CAACoR;AACpBr9B,IAAAA,IAAI,EAAEouB,aAAa,CAACnB;AACpBhrB,IAAAA,SAAS,EAAC;GAHZ,CADE,GAMA,IARJ;;AAUA,MAAI,CAACq5B,aAAD,IAAkB,EAACrP,cAAD,YAACA,cAAc,CAAEoR,gBAAjB,CAAtB,EAAyD;AACvD,WAAO,IAAP;AACD;;AAED,SACEn7B,4BAAA,CAAC0zB,gBAAD;AACE3zB,IAAAA,SAAS,EAAC;wBACQzC,KAAK,CAAC4jB;oBACV5jB,KAAK,CAACyW;GAHtB,EAIE/T,4BAAA,CAAC2sB,aAAD;AAAe5sB,IAAAA,SAAS,EAAC;GAAzB,EACEC,4BAAA,CAAC6sB,YAAD;AACE9e,IAAAA,SAAS,EAAEqrB;AACXr5B,IAAAA,SAAS,EAAC;AACVmC,IAAAA,KAAK,EAAEgqB,aAAa,CAACpB;GAHvB,CADF,EAMGyT,wBANH,CAJF,CADF;AAeD;;AChCM,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACjR,MAAD;AACxB,SAAOvL,MAAM,CAACuL,MAAD,EAAS,aAAT,CAAb;AACD,CAFM;AAIP,AAAO,IAAMkR,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAClR,MAAD;AACpC,SAAOvL,MAAM,CAACuL,MAAD,EAAS,mBAAT,CAAb;AACD,CAFM;;AAIP,SAASmR,qCAAT,CAA+ChR,KAA/C,EAA6DrrB,aAA7D;AACE,SAAOqrB,KAAK,CAACnrB,WAAN,CAAkB8I,IAAlB,CAAuB,UAACwH,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAAvB,CAAP;AACD;;AAED,SAASs8B,uCAAT;MACEjR,aAAAA;MACA7c,gBAAAA;MACA6V,0BAAAA;AAMA,sBACKgH,KADL;AAEEnrB,IAAAA,WAAW,EAAEmrB,KAAK,CAACnrB,WAAN,CAAkBC,MAAlB,CACX,UAACqQ,UAAD;AAAA,aACEA,UAAU,CAAChC,QAAX,KAAwBA,QAAxB,KACC6V,kBAAkB,GAAG7T,UAAU,CAAC6T,kBAAX,KAAkCA,kBAArC,GAA0D,IAD7E,CADF;AAAA,KADW;AAFf;AAQD;;AAED,SAAgBkY;;;MACdrR,eAAAA;MACAlrB,sBAAAA;MACAqkB,2BAAAA;MACA7V,iBAAAA;AAEA,SACE,CAAA0c,MAAM,QAAN,8BAAAA,MAAM,CACF/qB,MADJ,CACW,UAACkrB,KAAD;AAAA,WAAWgR,qCAAqC,CAAChR,KAAD,EAAQrrB,aAAR,CAAhD;AAAA,GADX,qCAEIM,GAFJ,CAEQ,UAAC+qB,KAAD;AAAA,WAAWiR,uCAAuC,CAAC;AAAEjR,MAAAA,KAAK,EAALA,KAAF;AAAS7c,MAAAA,QAAQ,EAARA,QAAT;AAAmB6V,MAAAA,kBAAkB,EAAlBA;AAAnB,KAAD,CAAlD;AAAA,GAFR,MAEwG,EAH1G;AAKD;AAED,SAAgBmY;;;MACdtR,eAAAA;MACAlrB,sBAAAA;MACAqkB,2BAAAA;MACA7V,iBAAAA;AAEA,SACE,CAAA0c,MAAM,QAAN,+BAAAA,MAAM,CACF/qB,MADJ,CACW,UAACkrB,KAAD;AAAA,WAAWgR,qCAAqC,CAAChR,KAAK,CAACA,KAAP,EAAcrrB,aAAd,CAAhD;AAAA,GADX,sCAEIM,GAFJ,CAEQ,UAAC+qB,KAAD;AAAA,wBACDA,KADC;AAEJA,MAAAA,KAAK,EAAEiR,uCAAuC,CAAC;AAAEjR,QAAAA,KAAK,EAAEA,KAAK,CAACA,KAAf;AAAsB7c,QAAAA,QAAQ,EAARA,QAAtB;AAAgC6V,QAAAA,kBAAkB,EAAlBA;AAAhC,OAAD;AAF1C;AAAA,GAFR,MAKS,EANX;AAQD;;SC3CeoY;;;MACdvf,0BAAAA;MACAzd,YAAAA;MACAO,qBAAAA;MACAqkB,0BAAAA;AAEA,MAAI6G,MAAM,GAAwB,EAAlC;AACA,MAAM1c,QAAQ,GAAG,CAAA/O,IAAI,QAAJ,iCAAAA,IAAI,CAAES,WAAN,6DAAoB,CAApB,yCAAwBsO,QAAxB,KAAoCC,cAAQ,CAACC,GAA9D;AACA,MAAMguB,eAAe,GAAGP,UAAU,CAChCI,YAAY,CAAC;AACXrR,IAAAA,MAAM,EAAEzrB,IAAF,oBAAEA,IAAI,CAAEk9B,gBADH;AAEX38B,IAAAA,aAAa,EAAbA,aAFW;AAGXqkB,IAAAA,kBAAkB,EAAlBA,kBAHW;AAIX7V,IAAAA,QAAQ,EAARA;AAJW,GAAD,CADoB,CAAlC;AASA,MAAMouB,wBAAwB,GAAGJ,wBAAwB,CAAC;AACxDtR,IAAAA,MAAM,EAAEhO,kBAAF,oBAAEA,kBAAkB,CAAEgO,MAD4B;AAExDlrB,IAAAA,aAAa,EAAbA,aAFwD;AAGxDqkB,IAAAA,kBAAkB,EAAlBA,kBAHwD;AAIxD7V,IAAAA,QAAQ,EAARA;AAJwD,GAAD,CAAzD;;AAOA,MAAIouB,wBAAwB,QAAxB,IAAAA,wBAAwB,CAAE77B,MAA1B,IAAoC27B,eAApC,YAAoCA,eAAe,CAAE37B,MAAzD,EAAiE;AAC/DmqB,IAAAA,MAAM,GAAGkR,sBAAsB,CAC7BQ,wBAAwB,CAACz8B,MAAzB,CAAgC,UAACkrB,KAAD;AAAA,aAAWqR,eAAe,CAAC1zB,IAAhB,CAAqB,UAAC6zB,SAAD;AAAA,eAAeA,SAAS,CAAC77B,EAAV,KAAiBqqB,KAAK,CAACA,KAAN,CAAYrqB,EAA5C;AAAA,OAArB,CAAX;AAAA,KAAhC,CAD6B,CAA/B;AAGD;;AAED,SAAO;AAAEkqB,IAAAA,MAAM,EAANA,MAAF;AAAU4R,IAAAA,aAAa,EAAEC,SAAS,CAAC7R,MAAD,CAAlC;AAA4CwR,IAAAA,eAAe,EAAfA;AAA5C,GAAP;AACD;;AAED,SAASM,WAAT;AACE,4BAAqBC,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAAC7R,KAAD,EAAexkB,QAAf;AAAA,WACLq2B,QAAQ,CAAC,UAACC,KAAD;AACP,UAAMC,aAAa,GAAGD,KAAK,CAACE,UAAN,CAAiBnS,MAAjB,CAAwB7kB,IAAxB,CAA6B,UAACi3B,YAAD;AAAA,eAAkBA,YAAY,CAACjS,KAAb,CAAmBrqB,EAAnB,KAA0BqqB,KAAK,CAACrqB,EAAlD;AAAA,OAA7B,CAAtB;;AAEA,UAAIo8B,aAAJ,EAAmB;AACjBA,QAAAA,aAAa,CAACv2B,QAAd,GAAyBA,QAAzB;AACD,OAFD,MAEO;AACLs2B,QAAAA,KAAK,CAACE,UAAN,CAAiBnS,MAAjB,CAAwB/iB,IAAxB,CAA6B;AAAEkjB,UAAAA,KAAK,EAALA,KAAF;AAASxkB,UAAAA,QAAQ,EAARA;AAAT,SAA7B;AACAs2B,QAAAA,KAAK,CAACE,UAAN,CAAiBnS,MAAjB,GAA0BkR,sBAAsB,CAACe,KAAK,CAACE,UAAN,CAAiBnS,MAAlB,CAAhD;AACD;AACF,KATO,CADH;AAAA,GAAP;AAWD;;AAED,SAASqS,cAAT;AACE,6BAAqBN,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAAC3R,OAAD;AAAA,WACL2R,QAAQ,CAAC,UAACC,KAAD;AACPK,MAAAA,MAAM,CAACL,KAAK,CAACE,UAAN,CAAiBnS,MAAlB,EAA0B,UAACG,KAAD;AAAA,eAAWA,KAAK,CAACA,KAAN,CAAYrqB,EAAZ,KAAmBuqB,OAA9B;AAAA,OAA1B,CAAN;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAASkS,cAAT;AACE,6BAAyBR,kBAAkB,EAA3C;AAAA,MAASI,UAAT,2BAASA,UAAT;;AACA,SAAOA,UAAP;AACD;;AAED,SAAgBK;AACd,MAAMC,KAAK,GAAGF,cAAc,EAA5B;AAEA,sBACKE,KADL;AAEEC,IAAAA,QAAQ,EAAEZ,WAAW,EAFvB;AAGEa,IAAAA,WAAW,EAAEN,cAAc;AAH7B;AAKD;;ACvFD,SAASO,gBAAT;AACE,4BAA0Db,kBAAkB,EAA5E;AAAA;AAAA,MAASc,QAAT,wBAASA,QAAT;AAAA,MAAmBC,WAAnB,wBAAmBA,WAAnB;AAAA,MAAgCC,oBAAhC,wBAAgCA,oBAAhC;;AACA,SAAO;AAAEC,IAAAA,aAAa,EAAEH,QAAjB;AAA2BC,IAAAA,WAAW,EAAXA,WAA3B;AAAwCC,IAAAA,oBAAoB,EAApBA;AAAxC,GAAP;AACD;;AAED,SAASE,oBAAT;AACE,6BAAqBlB,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACkB,QAAD;AAAA,WACLlB,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACa,WAAN,CAAkBI,QAAlB,GAA6BA,QAA7B;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAASC,aAAT;AACE,6BAAqBpB,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACoB,OAAD;AAAA,WACLpB,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACa,WAAN,CAAkBM,OAAlB,GAA4BA,OAA5B;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAAgBC;AACd,0BAA6DT,gBAAgB,EAA7E;AAAA,MAAQI,aAAR,qBAAQA,aAAR;AAAA,MAAuBF,WAAvB,qBAAuBA,WAAvB;AAAA,MAAoCC,oBAApC,qBAAoCA,oBAApC;;AAEA,SAAO;AACLC,IAAAA,aAAa,EAAbA,aADK;AAELF,IAAAA,WAAW,EAAXA,WAFK;AAGLC,IAAAA,oBAAoB,EAApBA,oBAHK;AAILO,IAAAA,iBAAiB,EAAEL,oBAAoB,EAJlC;AAKLM,IAAAA,UAAU,EAAEJ,aAAa;AALpB,GAAP;AAOD;;SC5BeK;MAAkBne,cAAAA;MAAQe,kBAAAA;MAAY+C,0BAAAA;MAAoBsa,2BAAAA;;AACxE,yBAAkBnjB,eAAe,EAAjC;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;;AACA,kBAAkCsQ,cAAQ,CAAC,IAAD,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAAgCF,cAAQ,EAAxC;AAAA,MAAOsyB,QAAP;AAAA,MAAiBa,WAAjB;;AAEA9b,EAAAA,eAAS,CAAC;AACR,QAAM+b,YAAY;AAAA,iEAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEM1jC,KAAK,CAAC2jC,gBAAN,CAAuB;AAAEve,kBAAAA,MAAM,EAANA,MAAF;AAAUe,kBAAAA,UAAU,EAAVA,UAAV;AAAsB+C,kBAAAA,kBAAkB,EAAlBA;AAAtB,iBAAvB,CAFN;;AAAA;AAEX0Z,gBAAAA,SAFW;AAGjBa,gBAAAA,WAAW,CAACb,SAAD,CAAX;AAHiB;AAAA;;AAAA;AAAA;AAAA;AAKjBta,gBAAAA,MAAM,CAACjoB,KAAP,8DAAyC,YAAa0gB,OAAtD;;AALiB;AAAA;AAOjBvQ,gBAAAA,YAAY,CAAC,KAAD,CAAZ;AAPiB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAAZkzB,YAAY;AAAA;AAAA;AAAA,OAAlB;;AAWA,QAAIF,mBAAJ,EAAyB;AACvBhzB,MAAAA,YAAY,CAAC,KAAD,CAAZ;AACAizB,MAAAA,WAAW,CAACD,mBAAmB,CAAC;AAAEpe,QAAAA,MAAM,EAANA,MAAF;AAAUe,QAAAA,UAAU,EAAVA,UAAV;AAAsB+C,QAAAA,kBAAkB,EAAlBA;AAAtB,OAAD,CAApB,CAAX;AACA;AACD;;AAED,QAAIlpB,KAAK,CAACypB,gBAAV,EAA4B;AAC1BjZ,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACA,WAAKkzB,YAAY,EAAjB;AACD;AACF,GAtBQ,EAsBN,CAAC1jC,KAAD,EAAQA,KAAK,CAACypB,gBAAd,EAAgCtD,UAAhC,EAA4Cf,MAA5C,EAAoD8D,kBAApD,EAAwEsa,mBAAxE,CAtBM,CAAT;AAwBA,SAAO;AACLZ,IAAAA,QAAQ,EAARA,QADK;AAELryB,IAAAA,SAAS,EAATA;AAFK,GAAP;AAID;;AC5CM,IAAMqzB,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC3+B,KAAD,EAAeyG,QAAf;AACnC,MAAIzG,KAAK,CAAC5F,eAAN,IAAyBqM,QAAQ,GAAGzG,KAAK,CAAC5F,eAA9C,EAA+D;AAC7D,WAAO4F,KAAK,CAAC5F,eAAb;AACD;;AACD,MAAI4F,KAAK,CAAC3F,eAAN,IAAyBoM,QAAQ,GAAGzG,KAAK,CAAC3F,eAA9C,EAA+D;AAC7D,WAAO2F,KAAK,CAAC3F,eAAb;AACD;;AACD,SAAOoM,QAAP;AACD,CARM;;ACCA,IAAMm4B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACv/B,IAAD;AAAA,SAC9B,CAAC,EAACA,IAAD,YAACA,IAAI,CAAES,WAAN,CAAkB8I,IAAlB,CAAuB,UAACwH,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6B+F,iBAAa,CAACgK,OAA3D;AAAA,GAAvB,CAAD,CAD6B;AAAA,CAAzB;AAGP,AAAO,IAAMkvB,eAAe,GAAG,SAAlBA,eAAkB,CAACx/B,IAAD;AAAA,SAC7B,CAAC,EAACA,IAAD,YAACA,IAAI,CAAES,WAAN,CAAkB8I,IAAlB,CAAuB,UAACwH,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6B+F,iBAAa,CAACyB,QAA3D;AAAA,GAAvB,CAAD,CAD4B;AAAA,CAAxB;AAGP,AAAO,IAAM03B,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACz/B,IAAD;AAAA,SAAiBu/B,gBAAgB,CAACv/B,IAAD,CAAhB,IAA0Bw/B,eAAe,CAACx/B,IAAD,CAA1D;AAAA,CAAlC;;ACcP,IAAM0/B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACn/B,aAAD,EAA+Bg/B,gBAA/B,EAA2DC,eAA3D;AACvB,MAAIj/B,aAAa,KAAK+F,iBAAa,CAACgK,OAAhC,IAA2CivB,gBAA/C,EAAiE;AAC/D,WAAOh/B,aAAP;AACD;;AACD,MAAIA,aAAa,KAAK+F,iBAAa,CAACyB,QAAhC,IAA4Cy3B,eAAhD,EAAiE;AAC/D,WAAOj/B,aAAP;AACD;;AACD,SAAO,IAAP;AACD,CARD;;AAUA,IAAMo/B,2BAA2B,GAAG,SAA9BA,2BAA8B;MAAGx1B,oBAAAA;AACrC,SAAOA,YAAY,KAAKC,kBAAY,CAACC,OAArC;AACD,CAFD;;AAIA,SAASu1B,mBAAT,CACEC,6BADF,EAEE9vB,UAFF,EAGE0N,kBAHF;;;AAKE,MAAI,CAAC1N,UAAL,EAAiB,OAAO,EAAP;AAEjB,MAAM+vB,kCAAkC,GAAG3I,KAAK,CAAC0I,6BAAD,EAAgC,WAAhC,CAAhD;AAEA,MAAME,mBAAmB,GAAG5I,KAAK,CAC/BxwB,OAAO,CACL8W,kBADK,6CACLA,kBAAkB,CAAEjd,MADf,qBACL,sBAA4BK,GAA5B,CAAgC,UAACm/B,MAAD;AAC9B,QAAQ5gC,OAAR,GAAoB4gC,MAApB,CAAQ5gC,OAAR;;AACA,QAAI,CAACA,OAAD,IAAY,CAACugC,2BAA2B,CAACK,MAAD,CAA5C,EAAsD;AACpD,aAAO,IAAP;AACD;;AAED,WAAO;AACLn5B,MAAAA,SAAS,EAAEzH,OAAO,CAACyH,SADd;AAELO,MAAAA,QAAQ,EAAEhI,OAAO,CAAC6H,YAAR,IAAwB;AAF7B,KAAP;AAID,GAVD,CADK,CADwB,EAc/B,WAd+B,CAAjC;AAiBA,SAAON,OAAO,CACZoJ,UADY,oBACZA,UAAU,CAAElP,GAAZ,CAAgB,UAACF,KAAD;;;AACd,QAAMkG,SAAS,qBAAGlG,KAAK,CAACvB,OAAT,qBAAG,eAAeyH,SAAjC;;AACA,QAAI,CAACA,SAAD,IAAc,CAAC84B,2BAA2B,CAACh/B,KAAD,CAA9C,EAAuD;AACrD,aAAO,IAAP;AACD;;AAED,QAAIyG,QAAJ;AACA,QAAM64B,qBAAqB,GACzB,0BAAAH,kCAAkC,CAACj5B,SAAD,CAAlC,2CAA+CO,QAA/C,+BAA2D24B,mBAAmB,CAACl5B,SAAD,CAA9E,qBAA2D,sBAAgCO,QAA3F,CADF;AAGAA,IAAAA,QAAQ,GAAGk4B,qBAAqB,CAAC3+B,KAAD,EAAQs/B,qBAAqB,IAAI,CAAjC,CAAhC;;AAEA,QAAIt/B,KAAK,CAACoJ,aAAN,IAAuB,CAACT,oBAAoB,CAAC3I,KAAK,CAACwG,KAAP,CAAhD,EAA+D;AAC7D,UAAMO,IAAI,GAAGR,iBAAiB,CAACvG,KAAK,CAACwG,KAAP,EAAeC,QAAf,CAA9B;AACAA,MAAAA,QAAQ,GAAGM,IAAI,CAACD,IAAhB;AACD;;AAED,WAAO;AACLZ,MAAAA,SAAS,EAATA,SADK;AAELO,MAAAA,QAAQ,EAARA;AAFK,KAAP;AAID,GArBD,CADY,CAAd;AAwBD;;AAED,SAAS84B,oBAAT;;;MACElgC,aAAAA;MACAyd,2BAAAA;MACAR,+BAAAA;AAMA,MAAMkjB,cAAc,GAAGZ,gBAAgB,CAACv/B,IAAD,CAAvC;AACA,MAAMogC,aAAa,GAAGZ,eAAe,CAACx/B,IAAD,CAArC;;AAEA,MAAIid,sBAAJ,EAA4B;AAC1B,QAAM1c,aAAa,GAAGm/B,gBAAgB,CAACziB,sBAAD,EAAyBkjB,cAAzB,EAAyCC,aAAzC,CAAtC;;AACA,QAAI7/B,aAAJ,EAAmB;AACjB,aAAOA,aAAP;AACD;AACF;;AAED,MAAM8/B,QAAQ,GAAG,CAAA5iB,kBAAkB,QAAlB,sCAAAA,kBAAkB,CAAEzd,IAApB,4CAA0BuB,EAA1B,OAAiCvB,IAAjC,oBAAiCA,IAAI,CAAEuB,EAAvC,CAAjB;;AACA,MAAI8+B,QAAJ,EAAc;AAAA;;AACZ,WAAO,CAAA5iB,kBAAkB,QAAlB,sCAAAA,kBAAkB,CAAE9c,KAApB,4CAA2BJ,aAA3B,KAA4C+F,iBAAa,CAACgK,OAAjE;AACD;;AAED,MAAImN,kBAAkB,QAAlB,IAAAA,kBAAkB,CAAEjd,MAApB,IAA8B,CAAAid,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEjd,MAApB,CAA2Bc,MAA3B,IAAoC,CAAtE,EAAyE;AACvE,QAAMf,cAAa,GAAGm/B,gBAAgB,CAACjiB,kBAAD,oBAACA,kBAAkB,CAAEjd,MAApB,CAA2B,CAA3B,EAA8BD,aAA/B,EAA8C4/B,cAA9C,EAA8DC,aAA9D,CAAtC;;AACA,QAAI7/B,cAAJ,EAAmB;AACjB,aAAOA,cAAP;AACD;AACF;;AAED,SAAO6/B,aAAa,GAAG95B,iBAAa,CAACyB,QAAjB,GAA4BzB,iBAAa,CAACgK,OAA9D;AACD;;AAED,SAAgBgwB;MACdrjB,+BAAAA;MACAjd,aAAAA;MACAyd,2BAAAA;MACAmH,2BAAAA;MACAib,sCAAAA;AAEA,MAAMt/B,aAAa,GAAG2/B,oBAAoB,CAAC;AAAElgC,IAAAA,IAAI,EAAJA,IAAF;AAAQyd,IAAAA,kBAAkB,EAAlBA,kBAAR;AAA4BR,IAAAA,sBAAsB,EAAtBA;AAA5B,GAAD,CAA1C;AACA,MAAMlN,UAAU,GAAG/P,IAAH,oBAAGA,IAAI,CAAES,WAAN,CAAkBC,MAAlB,CAAyB,UAACqQ,UAAD;AAAA,WAAgBA,UAAU,CAACxQ,aAAX,KAA6BA,aAA7C;AAAA,GAAzB,CAAnB;AACA,MAAM4b,gBAAgB,GAAGyjB,mBAAmB,CAACC,6BAAD,EAAgC9vB,UAAhC,EAA4C0N,kBAA5C,CAA5C;AAEA,SAAO;AACLld,IAAAA,aAAa,EAAbA,aADK;AAEL4b,IAAAA,gBAAgB,EAAhBA,gBAFK;AAGLyI,IAAAA,kBAAkB,EAAlBA;AAHK,GAAP;AAKD;;AAED,SAAS2b,YAAT;AACE,4BAAuB/C,kBAAkB,EAAzC;AAAA,MAASgD,QAAT,0BAASA,QAAT;;AACA,SAAOA,QAAP;AACD;;AAED,SAASC,qBAAT;AACE,6BAAqBjD,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAAC52B,SAAD,EAAoBO,QAApB;AAAA,WACLq2B,QAAQ,CAAC,UAACC,KAAD;AACP,UAAMgD,eAAe,GAAGhD,KAAK,CAAC8C,QAAN,CAAerkB,gBAAf,CAAgCvV,IAAhC,CACtB,UAAC85B,eAAD;AAAA,eAAqBA,eAAe,CAAC75B,SAAhB,KAA8BA,SAAnD;AAAA,OADsB,CAAxB;;AAIA,UAAI65B,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAACt5B,QAAhB,GAA2BA,QAA3B;AACD,OAFD,MAEO;AACLs2B,QAAAA,KAAK,CAAC8C,QAAN,CAAerkB,gBAAf,CAAgCzT,IAAhC,CAAqC;AAAE7B,UAAAA,SAAS,EAATA,SAAF;AAAaO,UAAAA,QAAQ,EAARA;AAAb,SAArC;AACD;AACF,KAVO,CADH;AAAA,GAAP;AAYD;;AAED,SAASu5B,mBAAT;AACE,6BAAqBnD,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACl9B,aAAD;AAAA,WACLk9B,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAAC8C,QAAN,CAAejgC,aAAf,GAA+BA,aAA/B;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAAgBqgC;AACd,MAAM1C,KAAK,GAAGqC,YAAY,EAA1B;AAEA,sBACKrC,KADL;AAEE2C,IAAAA,gBAAgB,EAAEF,mBAAmB,EAFvC;AAGEG,IAAAA,kBAAkB,EAAEL,qBAAqB;AAH3C;AAKD;;AC9KD,IAAYM,eAAZ;;AAAA,WAAYA;AACVA,EAAAA,uBAAA,SAAA;AACAA,EAAAA,yBAAA,WAAA;AACAA,EAAAA,0BAAA,YAAA;AACD,CAJD,EAAYA,eAAe,KAAfA,eAAe,KAAA,CAA3B;;AAWA,IAAMC,cAAc,GAAmB,CACrC;AAAElgC,EAAAA,GAAG,EAAEigC,eAAe,CAACE,IAAvB;AAA6B3S,EAAAA,KAAK,EAAE;AAApC,CADqC,EAErC;AAAExtB,EAAAA,GAAG,EAAEigC,eAAe,CAACG,MAAvB;AAA+B5S,EAAAA,KAAK,EAAE;AAAtC,CAFqC,EAGrC;AAAExtB,EAAAA,GAAG,EAAEigC,eAAe,CAACI,OAAvB;AAAgC7S,EAAAA,KAAK,EAAE;AAAvC,CAHqC,CAAvC;AAaA,IAAM8S,aAAa,GAAqB;AACtCC,EAAAA,UAAU,EAAE,CAD0B;AAEtCC,EAAAA,cAAc,EAAE,EAFsB;AAGtCC,EAAAA,KAAK,EAAEP,cAH+B;AAItC3yB,EAAAA,UAAU,EAAE;AAJ0B,CAAxC;;AAiBA,IAAMmzB,eAAe,GAAG,SAAlBA,eAAkB,CACtBxhC,IADsB,EAEtByhC,gBAFsB,EAGtB5B,6BAHsB,EAItB5iB,sBAJsB;AAMtB;AACA,MAAIwiB,yBAAyB,CAACz/B,IAAD,CAAzB,IAAmC,CAACid,sBAAxC,EAAgE;AAC9D,WAAO,KAAP;AACD;;AAED,MAAMykB,mBAAmB,GAAGD,gBAAgB,CAAC5gC,GAAjB,CAAqB,UAACm/B,MAAD;AAAA,WAAYA,MAAM,CAACn5B,SAAnB;AAAA,GAArB,CAA5B;AACA,MAAM86B,uBAAuB,GAAG9B,6BAA6B,CAACh/B,GAA9B,CAAkC,UAACm/B,MAAD;AAAA,WAAYA,MAAM,CAACn5B,SAAnB;AAAA,GAAlC,CAAhC;;AAGA,MACE66B,mBAAmB,CAACpgC,MAApB,KAA+BqgC,uBAAuB,CAACrgC,MAAvD,IACA,CAACogC,mBAAmB,CAACj4B,KAApB,CAA0B,UAACu2B,MAAD;AAAA,WAAY2B,uBAAuB,CAACxgC,QAAxB,CAAiC6+B,MAAjC,CAAZ;AAAA,GAA1B,CAFH,EAGE;AACA,WAAO,KAAP;AACD;;AAED,SAAO,IAAP;AACD,CAvBD;;AAyBA,SAAgB4B;MACd31B,iBAAAA;MACA41B,yBAAAA;MACA7hC,YAAAA;MACAi9B,uBAAAA;MACAwE,wBAAAA;MACAxkB,8BAAAA;MACA4iB,qCAAAA;;AAEA,MAAI5zB,SAAS,IAAI,CAACjM,IAAlB,EAAwB;AACtB,WAAOohC,aAAP;AACD;;AAED,MAAMU,aAAa,GAAsB,EAAzC;;AAEA,MACED,iBAAiB,CAAC1gC,QAAlB,CAA2B,MAA3B,KACAqgC,eAAe,CAACxhC,IAAD,EAAOyhC,gBAAP,EAAyB5B,6BAAzB,EAAwD5iB,sBAAxD,CAFjB,EAGE;AACA6kB,IAAAA,aAAa,CAACp5B,IAAd,CAAmBq4B,eAAe,CAACE,IAAnC;AACD;;AAED,MAAI,CAAAhE,eAAe,QAAf,YAAAA,eAAe,CAAE37B,MAAjB,MAA4B,CAA5B,IAAiCugC,iBAAiB,CAAC1gC,QAAlB,CAA2B,QAA3B,CAArC,EAA2E;AACzE2gC,IAAAA,aAAa,CAACp5B,IAAd,CAAmBq4B,eAAe,CAACG,MAAnC;AACD;;AAED,sBAAYE,aAAZ;AAA2BG,IAAAA,KAAK,EAAEP,cAAc,CAACtgC,MAAf,CAAsB,UAACqhC,IAAD;AAAA,aAAU,CAACD,aAAa,CAAC3gC,QAAd,CAAuB4gC,IAAI,CAACjhC,GAA5B,CAAX;AAAA,KAAtB;AAAlC;AACD;;AAED,SAASkhC,mBAAT;AACE,4BAA0BxE,kBAAkB,EAA5C;AAAA,MAASyE,WAAT,0BAASA,WAAT;;AACA,SAAOA,WAAP;AACD;;AAED,SAASC,gBAAT;AACE,6BAAqB1E,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AACA,SAAO,UAAC0E,UAAD;AAAA,WACL1E,QAAQ,CAAC;UAAGwE,oBAAAA;AACVA,MAAAA,WAAW,CAACZ,UAAZ,GAAyBc,UAAzB;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AACD,SAASC,sBAAT;AACE,6BAAqB5E,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AACA,SAAO,UAAC0E,UAAD;AAAA,WACL1E,QAAQ,CAAC;UAAGwE,oBAAAA;AACVA,MAAAA,WAAW,CAACX,cAAZ,CAA2B54B,IAA3B,CAAgCy5B,UAAhC;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAASE,kBAAT,CAA4BJ,WAA5B;AACE,SAAOA,WAAW,CAACX,cAAZ,CAA2BhgC,MAA3B,IAAqC2gC,WAAW,CAACV,KAAZ,CAAkBjgC,MAAlB,GAA2B,CAAvE;AACD;;AAED,SAASghC,SAAT;AACE,6BAAqB9E,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AACA,SAAO;AAAA,WACLA,QAAQ,CAAC;UAAGwE,oBAAAA;;AACV,UAAIA,WAAW,CAAC5zB,UAAhB,EAA4B;AAC1B;AACD;;AAED,UAAI,CAAC4zB,WAAW,CAACX,cAAZ,CAA2BngC,QAA3B,CAAoC8gC,WAAW,CAACZ,UAAhD,CAAL,EAAkE;AAChEY,QAAAA,WAAW,CAACX,cAAZ,CAA2B54B,IAA3B,CAAgCu5B,WAAW,CAACZ,UAA5C;AACD;;AAED,UAAIY,WAAW,CAACZ,UAAZ,GAAyBY,WAAW,CAACV,KAAZ,CAAkBjgC,MAAlB,GAA2B,CAAxD,EAA2D;AACzD2gC,QAAAA,WAAW,CAACZ,UAAZ,IAA0B,CAA1B;AACD;AACF,KAZO,CADH;AAAA,GAAP;AAcD;;AAED,SAASkB,gBAAT;AACE,6BAAqB/E,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AACA,SAAO,UAACpvB,UAAD;AAAA,WACLovB,QAAQ,CAAC;UAAGwE,oBAAAA;AACVA,MAAAA,WAAW,CAAC5zB,UAAZ,GAAyB,CAAC,CAACA,UAA3B;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAAgBm0B;AACd,MAAMC,gBAAgB,GAAGT,mBAAmB,EAA5C;AACA,MAAMU,WAAW,GAAGD,gBAAgB,CAAClB,KAAjB,CAAuBkB,gBAAgB,CAACpB,UAAxC,CAApB;AAEA,SAAO;AACLqB,IAAAA,WAAW,EAAXA,WADK;AAELD,IAAAA,gBAAgB,EAAhBA,gBAFK;AAGLE,IAAAA,UAAU,EAAEF,gBAAgB,CAACpB,UAAjB,KAAgCoB,gBAAgB,CAAClB,KAAjB,CAAuBjgC,MAAvB,GAAgC,CAHvE;AAIL+gC,IAAAA,kBAAkB,EAAEA,kBAAkB,CAACI,gBAAD,CAJjC;AAKLG,IAAAA,aAAa,EAAEV,gBAAgB,EAL1B;AAMLW,IAAAA,mBAAmB,EAAET,sBAAsB,EANtC;AAOLU,IAAAA,MAAM,EAAER,SAAS,EAPZ;AAQLS,IAAAA,aAAa,EAAER,gBAAgB;AAR1B,GAAP;AAUD;;SC1JeS;AACd,4BAA+DxF,kBAAkB,EAAjF;AAAA;AAAA,MAASgD,QAAT,wBAASA,QAAT;AAAA,MAAmB5C,UAAnB,wBAAmBA,UAAnB;AAAA,MAA+BqF,aAA/B,wBAA+BA,aAA/B;AAAA,MAA8CC,WAA9C,wBAA8CA,WAA9C;;AAEA,sBACK1C,QADL;AAEE/U,IAAAA,MAAM,EAAEmS,UAAU,CAACnS,MAFrB;AAGEwX,IAAAA,aAAa,EAAbA,aAHF;AAIEE,IAAAA,cAAc,EAAED,WAAW,CAACC,cAJ9B;AAKEC,IAAAA,aAAa,EAAEF,WAAW,CAACE;AAL7B;AAOD;;ACZD,SAASC,qBAAT;MACEF,sBAAAA;MACAC,qBAAAA;;AAKA,MAAI,CAACD,cAAD,IAAmB,CAACC,aAAxB,EAAuC;AACrC,WAAO,EAAP;AACD;;AAED,SAAO;AACL3K,IAAAA,kBAAkB,eACZ0K,cAAc,GAAG;AAAEA,MAAAA,cAAc,EAAdA;AAAF,KAAH,GAAwB,EAD1B,EAEZC,aAAa,GAAG;AAAEA,MAAAA,aAAa,EAAbA;AAAF,KAAH,GAAuB,EAFxB;AADb,GAAP;AAMD;;AAcD,IAAME,mBAAmB;AAAA,0EAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAC1B5nC,YAAAA,KAD0B,SAC1BA,KAD0B,EAE1BimB,UAF0B,SAE1BA,UAF0B,EAG1Bb,MAH0B,SAG1BA,MAH0B,EAI1Be,UAJ0B,SAI1BA,UAJ0B,EAK1BohB,aAL0B,SAK1BA,aAL0B,EAM1BxX,MAN0B,SAM1BA,MAN0B,EAO1BtP,gBAP0B,SAO1BA,gBAP0B,EAQ1ByI,kBAR0B,SAQ1BA,kBAR0B,EAS1BrkB,aAT0B,SAS1BA,aAT0B,EAU1B4iC,cAV0B,SAU1BA,cAV0B,EAW1BC,aAX0B,SAW1BA,aAX0B,EAY1BG,qBAZ0B,SAY1BA,qBAZ0B;AAcpBC,YAAAA,cAdoB,GAcH/X,MAAM,CAAC5qB,GAAP,CAAW;AAAA,kBAAG+qB,KAAH,SAAGA,KAAH;AAAA,kBAAUxkB,QAAV,SAAUA,QAAV;AAAA,qBAA0B;AAAE0kB,gBAAAA,OAAO,EAAEF,KAAK,CAACrqB,EAAjB;AAAqB6F,gBAAAA,QAAQ,EAARA;AAArB,eAA1B;AAAA,aAAX,CAdG;AAetBq8B,YAAAA,mBAfsB,GAe8B,IAf9B;AAgBtBC,YAAAA,YAhBsB,GAgBQ,IAhBR;AAAA;;AAAA,kBAmBpB/hB,UAAU,IAAIb,MAnBM;AAAA;AAAA;AAAA;;AAoBhB6iB,YAAAA,wBApBgB;AAqBpBhiB,cAAAA,UAAU,EAAVA,UArBoB;AAsBpBb,cAAAA,MAAM,EAANA,MAtBoB;AAuBpBe,cAAAA,UAAU,EAAVA,UAvBoB;AAwBpB+C,cAAAA,kBAAkB,EAAlBA,kBAxBoB;AAyBpB6G,cAAAA,MAAM,EAAE+X,cAzBY;AA0BpBjjC,cAAAA,aAAa,EAAbA,aA1BoB;AA2BpB0iC,cAAAA,aAAa,EAAbA,aA3BoB;AA4BpB9mB,cAAAA,gBAAgB,EAAEwP,OAAO,CAACxP,gBAAD,CAAP,GAA4B5F,SAA5B,GAAwC4F;AA5BtC,eA6BjBknB,qBAAqB,CAAC;AAAEF,cAAAA,cAAc,EAAdA,cAAF;AAAkBC,cAAAA,aAAa,EAAbA;AAAlB,aAAD,CA7BJ;;AAAA,iBAgCAG,qBAhCA;AAAA;AAAA;AAAA;;AAAA,0BAiClBA,qBAAqB,CAACI,wBAAD,CAjCH;AAAA;AAAA;;AAAA;AAAA;AAAA,mBAkCZjoC,KAAK,CAAC4nC,mBAAN,CAA0BK,wBAA1B,CAlCY;;AAAA;AAAA;;AAAA;AAgCtBF,YAAAA,mBAhCsB;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,oBAqCF,8DAAehnB,OAAf,oCAAwBmnB,KAAxB,CAA8B,QAA9B,MAA2C,EArCzC,EAqCfC,QArCe;AAuCxBH,YAAAA,YAAY,GAAGG,QAAH,oBAAGA,QAAQ,CAAEC,IAAV,EAAf;;AAvCwB;AAAA,6CA0CnB;AAAEL,cAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBC,cAAAA,YAAY,EAAZA;AAAvB,aA1CmB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAnBJ,mBAAmB;AAAA;AAAA;AAAA,GAAzB;;AA6CA,AAAO,IAAMS,4BAA4B,GAAG,SAA/BA,4BAA+B;iCAA0D;MAAvDR,8BAAAA;;AAC7C,yBAAkBxnB,eAAe,EAAjC;AAAA,MAAQrgB,KAAR,oBAAQA,KAAR;;AACA,MAAM0gB,YAAY,GAAG4mB,oBAAoB,EAAzC;;AACA,4BAAyBxF,kBAAkB,EAA3C;AAAA,MAAS3b,UAAT,0BAASA,UAAT;;AACA,0BAAuCid,gBAAgB,EAAvD;AAAA,MAAQL,aAAR,qBAAQA,aAAR;AAAA,MAAuBF,WAAvB,qBAAuBA,WAAvB;;AACA,cAA2BE,aAAa,IAAI,EAA5C;AAAA,MAAQz+B,IAAR,SAAQA,IAAR;AAAA,MAAc4L,QAAd,SAAcA,QAAd;;AAEA,MAAMo4B,yBAAyB,GAAG9nB,iBAAW;AAAA,+DAC3C;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA8D,EAA9D,WAAS+mB,aAAT,SAASA,aAAT;;AAAA,kBACO1E,WAAW,CAACM,OADnB;AAAA;AAAA;AAAA;;AAAA,gDAEW;AAAE4E,gBAAAA,mBAAmB,EAAE,IAAvB;AAA6BC,gBAAAA,YAAY,EAAE;AAA3C,eAFX;;AAAA;AAAA,gDAKSJ,mBAAmB,CAAC;AACzB5nC,gBAAAA,KAAK,EAALA,KADyB;AAEzBimB,gBAAAA,UAAU,EAAE/V,QAAF,oBAAEA,QAAQ,CAAErK,EAFG;AAGzBuf,gBAAAA,MAAM,EAAE9gB,IAAF,oBAAEA,IAAI,CAAEuB,EAHW;AAIzBsgB,gBAAAA,UAAU,EAAVA,UAJyB;AAKzB4J,gBAAAA,MAAM,EAAErP,YAAY,CAACqP,MALI;AAMzBtP,gBAAAA,gBAAgB,EAAEC,YAAY,CAACD,gBANN;AAOzByI,gBAAAA,kBAAkB,EAAExI,YAAY,CAACwI,kBAPR;AAQzBrkB,gBAAAA,aAAa,EAAE6b,YAAY,CAAC7b,aARH;AASzB4iC,gBAAAA,cAAc,EAAE/mB,YAAY,CAAC+mB,cATJ;AAUzBC,gBAAAA,aAAa,EAAEhnB,YAAY,CAACgnB,aAVH;AAWzBH,gBAAAA,aAAa,EAAEA,aAAF,WAAEA,aAAF,GAAmB7mB,YAAY,CAAC6mB,aAXpB;AAYzBM,gBAAAA,qBAAqB,EAArBA;AAZyB,eAAD,CAL5B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAD2C;;AAAA;AAAA;AAAA;AAAA,OAqB3C,CACE7nC,KADF,EAEEkQ,QAFF,oBAEEA,QAAQ,CAAErK,EAFZ,EAGEvB,IAHF,oBAGEA,IAAI,CAAEuB,EAHR,EAIEsgB,UAJF,EAKEzF,YAAY,CAACqP,MALf,EAMErP,YAAY,CAACD,gBANf,EAOEC,YAAY,CAACwI,kBAPf,EAQExI,YAAY,CAAC7b,aARf,EASE6b,YAAY,CAAC+mB,cATf,EAUE/mB,YAAY,CAACgnB,aAVf,EAWEhnB,YAAY,CAAC6mB,aAXf,EAYE1E,WAAW,CAACM,OAZd,EAaE0E,qBAbF,CArB2C,CAA7C;AAsCA,SAAO;AAAES,IAAAA,yBAAyB,EAAzBA;AAAF,GAAP;AACD,CA9CM;AAgDP,IAAMC,kCAAkC,GAAG,GAA3C;AAEA,AAAO,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB;mCAA0D;MAAvDX,+BAAAA;;AACvC,kBAAsDv3B,cAAQ,CAA+B,IAA/B,CAA9D;AAAA,MAAOy3B,mBAAP;AAAA,MAA4BU,sBAA5B;;AACA,mBAA0En4B,cAAQ,CAAC,KAAD,CAAlF;AAAA,MAAOo4B,6BAAP;AAAA,MAAsCC,gCAAtC;;AAEA,8BAAsCN,4BAA4B,CAAC;AAAER,IAAAA,qBAAqB,EAArBA;AAAF,GAAD,CAAlE;AAAA,MAAQS,yBAAR,yBAAQA,yBAAR;;AAEA3gB,EAAAA,eAAS,CAAC;AACR,QAAMihB,oBAAoB;AAAA,kEAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACWN,yBAAyB,EADpC;;AAAA;AAAA;AACnBP,gBAAAA,mBADmB,yBACnBA,mBADmB;;AAE3B,oBAAIA,mBAAJ,EAAyB;AACvBU,kBAAAA,sBAAsB,CAACV,mBAAD,CAAtB;AACD;;AAEDY,gBAAAA,gCAAgC,CAAC,KAAD,CAAhC;;AAN2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAApBC,oBAAoB;AAAA;AAAA;AAAA,OAA1B;;AASAD,IAAAA,gCAAgC,CAAC,IAAD,CAAhC;AAEA,QAAME,KAAK,GAAGC,UAAU,CAAC;AACvBH,MAAAA,gCAAgC,CAAC,IAAD,CAAhC;AACA,WAAKC,oBAAoB,EAAzB;AACD,KAHuB,EAGrBL,kCAHqB,CAAxB;AAKA,WAAO;AACLQ,MAAAA,YAAY,CAACF,KAAD,CAAZ;AACD,KAFD;AAGD,GApBQ,EAoBN,CAACP,yBAAD,CApBM,CAAT;AAsBA,SAAO;AAAEP,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBW,IAAAA,6BAA6B,EAA7BA;AAAvB,GAAP;AACD,CA7BM;;SCvHSM;MACd94B,gBAAAA;MACAw3B,qBAAAA;AAEA,SAAO;AACLuB,IAAAA,mBAAmB,EAAE,EAAC/4B,QAAD,YAACA,QAAQ,CAAEg5B,oBAAX,CADhB;AAELxB,IAAAA,aAAa,EAAbA;AAFK,GAAP;AAID;;AAED,SAASyB,yBAAT;AACE,4BAAqBrH,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACkH,mBAAD;AAAA,WACLlH,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACwF,WAAN,CAAkByB,mBAAlB,GAAwCA,mBAAxC;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAASG,kBAAT;AACE,6BAAqBtH,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACiG,YAAD;AAAA,WACLjG,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACwF,WAAN,CAAkBQ,YAAlB,GAAiCA,YAAjC;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAASqB,oBAAT;AACE,6BAAqBvH,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAAC0F,cAAD;AAAA,WACL1F,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACwF,WAAN,CAAkBC,cAAlB,GAAmCA,cAAnC;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAAS6B,eAAT;AACE,6BAA0BxH,kBAAkB,EAA5C;AAAA,MAAS0F,WAAT,2BAASA,WAAT;;AACA,SAAOA,WAAP;AACD;;AAED,SAAgB+B;AACd,MAAM/G,KAAK,GAAG8G,eAAe,EAA7B;AAEA,sBACK9G,KADL;AAEEgH,IAAAA,sBAAsB,EAAEL,yBAAyB,EAFnD;AAGEM,IAAAA,eAAe,EAAEL,kBAAkB,EAHrC;AAIEM,IAAAA,iBAAiB,EAAEL,oBAAoB;AAJzC;AAMD;;SCPeM,4BACd/f;AAEA,MAAMggB,2BAA2B,GAAyB;AACxDC,IAAAA,UAAU,EAAE,QAD4C;AAExDC,IAAAA,mBAAmB,EAAE,eAFmC;AAGxDC,IAAAA,YAAY,EAAE,KAH0C;AAIxDC,IAAAA,oBAAoB,EAAE,oBAJkC;AAKxDC,IAAAA,mCAAmC,EAAE,iBALmB;AAMxDC,IAAAA,yBAAyB,EAAE,gBAN6B;AAOxDC,IAAAA,OAAO,EAAE;AACPzlC,MAAAA,KAAK,EAAE,eADA;AAEPwyB,MAAAA,QAAQ,EAAE;AAAA,YAAG5yB,IAAH,QAAGA,IAAH;AAAA,eAAiBA,IAAI,CAACN,WAAtB;AAAA,OAFH;AAGPomC,MAAAA,iBAAiB,EAAE,oBAHZ;AAIPC,MAAAA,eAAe,EAAE,gBAJV;AAKPC,MAAAA,kBAAkB,EAAE,SALb;AAMPC,MAAAA,qBAAqB,EAAE,WANhB;AAOPC,MAAAA,kBAAkB,EAAE,iBAPb;AAQPC,MAAAA,YAAY,EAAE,YARP;AASPC,MAAAA,oBAAoB,EAAE,uBATf;AAUPC,MAAAA,cAAc,EAAE;AAAA,eAAM,aAAN;AAAA,OAVT;AAWPC,MAAAA,SAAS,EAAE,OAXJ;AAYPC,MAAAA,YAAY,EAAE,iBAZP;AAaPC,MAAAA,sBAAsB,EAAE;AAAA,YAAGjmC,aAAH,SAAGA,aAAH;AAAA,2BAAiCA,aAAa,CAACwV,WAAd,EAAjC;AAAA,OAbjB;AAcP0wB,MAAAA,mBAAmB,EAAE,iBAdd;AAePC,MAAAA,wBAAwB,EAAE;AAAA,YAAGC,OAAH,SAAGA,OAAH;AAAA,+DACsBA,OADtB;AAAA,OAfnB;AAiBPC,MAAAA,YAAY,EAAE;YAAGC,wBAAAA;YAAiB93B,iBAAAA;AAChC,YAAI63B,YAAY,GAAG,EAAnB;;AACA,YAAIC,eAAe,CAACjzB,IAAhB,KAAyBkzB,kBAAY,CAACC,UAA1C,EAAsD;AACpDH,UAAAA,YAAY,GAAMC,eAAe,CAACnzB,KAAtB,UAAZ;AACD,SAFD,MAEO;AACLkzB,UAAAA,YAAY,QAAM93B,sBAAsB,CAAC;AAAElH,YAAAA,MAAM,EAAEi/B,eAAe,CAACnzB,KAA1B;AAAiC3E,YAAAA,QAAQ,EAARA;AAAjC,WAAD,CAAxC;AACD;;AAED,YAAIi4B,mBAAmB,GAAG,EAA1B;;AACA,gBAAQH,eAAe,CAACI,YAAxB;AACE,eAAKC,0BAAoB,CAACC,IAA1B;AAAgC;AAC9BH,cAAAA,mBAAmB,GAAG,OAAtB;AACA;AACD;;AACD,eAAKE,0BAAoB,CAACE,SAA1B;AAAqC;AACnC,kBAAMC,MAAM,GAAGR,eAAe,CAACjzB,IAAhB,KAAyBkzB,kBAAY,CAACQ,KAAtC,GAA8C,YAA9C,GAA6D,EAA5E;AACAN,cAAAA,mBAAmB,GAAMK,MAAN,aAAoBR,eAAe,CAACU,gBAApC,YAAnB;AAEA;AACD;;AAED,eAAKL,0BAAoB,CAACM,OAA1B;AACA;AAAS;AACPR,cAAAA,mBAAmB,GAAG,EAAtB;AACD;AAfH;;AAkBA,oBAAUJ,YAAV,GAAyBI,mBAAzB;AACD,OA7CM;AA8CPS,MAAAA,QAAQ,EAAE;AAAA,YAAGC,UAAH,SAAGA,UAAH;AAAA,0BAA4BA,UAA5B,oBAA4BA,UAAU,CAAEC,UAAxC;AAAA,OA9CH;AA+CPC,MAAAA,oCAAoC,EAAE;AAAA,YAAGC,gBAAH,SAAGA,gBAAH;AAAA,8FACyC5iC,MAAM,CAAC4iC,gBAAD,CAAN,CAAyB1iC,MAAzB,CAC3E,cAD2E,CADzC;AAAA,OA/C/B;AAmDP2iC,MAAAA,mBAAmB,EAAE,iBAnDd;AAoDPC,MAAAA,qBAAqB,EAAE;AApDhB,KAP+C;AA6DxDC,IAAAA,cAAc,EAAE;AACdC,MAAAA,QAAQ,EAAE,MADI;AAEdC,MAAAA,aAAa,EAAE,YAFD;AAGdC,MAAAA,UAAU,EAAE,qBAHE;AAIdC,MAAAA,mBAAmB,EAAE,qBAJP;AAKdC,MAAAA,WAAW,EAAE;AALC,KA7DwC;AAoExDC,IAAAA,eAAe,EAAE;AACfC,MAAAA,SAAS,EAAE;AAAA;AAAA,OADI;AAEfC,MAAAA,cAAc,EAAE;AAAA,eAAM,UAAN;AAAA,OAFD;AAGfC,MAAAA,YAAY,EAAE;AAAA,YAAGzoC,IAAH,SAAGA,IAAH;AAAA,oBAAiBA,IAAI,CAACN,WAAtB;AAAA,OAHC;AAIfgpC,MAAAA,iBAAiB,EAAE;AAAA,eAAM,MAAN;AAAA,OAJJ;AAKfC,MAAAA,cAAc,EAAE;AAAA,eAAM,cAAN;AAAA,OALD;AAMfC,MAAAA,YAAY,EAAE;AAAA,YAAG5oC,IAAH,SAAGA,IAAH;AAAA,oBAAiBA,IAAI,CAACN,WAAtB;AAAA,OANC;AAOfmpC,MAAAA,iBAAiB,EAAE;AAAA,YAAGtoC,aAAH,SAAGA,aAAH;AAAA,8BACLA,aAAa,iBAAeA,aAAa,CAACwV,WAAd,EAAf,GAA+C,EADvD;AAAA;AAPJ;AApEuC,GAA1D;AAgFA,SAAOjR,KAAK,CAACwgC,2BAAD,EAA8BhgB,gBAA9B,CAAZ;AACD;;ACjID,IAAMwjB,oBAAoB,GAAkB;AAC1CltC,EAAAA,OAAO,EAAE,mBADiC;AAE1CsG,EAAAA,SAAS,EAAE,iBAF+B;AAG1Ckd,EAAAA,eAAe,EAAE,oBAHyB;AAI1CnN,EAAAA,WAAW,EAAE,oBAJ6B;AAK1CsN,EAAAA,sBAAsB,EAAE;AALkB,CAA5C;AAQA,SAAgBwpB,yBACdzf,aACAC;AAEAyf;AAEA,aAAmC1f,WAAW,IAAI,EAAlD;AAAA,MAAiB2f,aAAjB,QAAQttC,OAAR;;AAEA,SAAO;AACLC,IAAAA,OAAO,EAAE,CAAA2tB,aAAa,QAAb,YAAAA,aAAa,CAAE3tB,OAAf,MAA0BqtC,aAA1B,oBAA0BA,aAAa,CAAErtC,OAAzC,KAAoDktC,oBAAoB,CAACltC,OAD7E;AAELsG,IAAAA,SAAS,EAAE,CAAAqnB,aAAa,QAAb,YAAAA,aAAa,CAAErnB,SAAf,MAA4B+mC,aAA5B,oBAA4BA,aAAa,CAAEjtC,IAAf,CAAoBJ,OAAhD,KAA2DktC,oBAAoB,CAAC5mC,SAFtF;AAGLkd,IAAAA,eAAe,EACb,CAAAmK,aAAa,QAAb,YAAAA,aAAa,CAAEnK,eAAf,MAAkC6pB,aAAlC,oBAAkCA,aAAa,CAAEtmC,eAAjD,KAAoEmmC,oBAAoB,CAAC1pB,eAJtF;AAKLnN,IAAAA,WAAW,EAAE,CAAAsX,aAAa,QAAb,YAAAA,aAAa,CAAEtX,WAAf,MAA8Bg3B,aAA9B,oBAA8BA,aAAa,CAAElmC,cAA7C,KAA+D+lC,oBAAoB,CAAC72B,WAL5F;AAMLsN,IAAAA,sBAAsB,EACpB,CAAAgK,aAAa,QAAb,YAAAA,aAAa,CAAEhK,sBAAf,MACA0pB,aADA,oBACAA,aAAa,CAAErmC,mBADf,KAEAkmC,oBAAoB,CAACvpB,sBATlB;AAUL2pB,IAAAA,2BAA2B,EAAE3f,aAAF,oBAAEA,aAAa,CAAE2f,2BAVvC;AAWLC,IAAAA,uBAAuB,EAAE5f,aAAF,oBAAEA,aAAa,CAAE4f,uBAXnC;AAYLC,IAAAA,wBAAwB,EAAE7f,aAAF,oBAAEA,aAAa,CAAE6f;AAZpC,GAAP;AAcD;;ACNM,IAAMC,eAAe,gBAAGnrC,cAAK,CAACkjB,aAAN,CAE7B,IAF6B,CAAxB;AAIPioB,eAAe,CAAC3pC,WAAhB,GAA8B,iBAA9B;AAEA,AAAO,IAAM89B,kBAAkB,GAAG,SAArBA,kBAAqB;AAChC,MAAMva,GAAG,GAAGwB,gBAAU,CAAC4kB,eAAD,CAAtB;;AACA,MAAI,CAACpmB,GAAL,EAAU;AACR,UAAM,IAAIyB,KAAJ,CACJ,gHADI,CAAN;AAGD;;AACD,SAAOzB,GAAP;AACD,CARM;;AAUP,IAAMqmB,uBAAuB,GAAgF,SAAvGA,uBAAuG;MAC3GhsC,gBAAAA;MACAisC,oBAAAA;;AAEA,kBAA+Bv9B,cAAQ,CAACu9B,YAAD,CAAvC;AAAA,MAAOrL,KAAP;AAAA,MAAcsL,aAAd;;AAEAnmB,EAAAA,eAAS,CAAC;AACRmmB,IAAAA,aAAa,CAACD,YAAD,CAAb;AACD,GAFQ,EAEN,CAACA,YAAD,CAFM,CAAT;AAIA,MAAM9L,QAAQ,GAAGvhB,iBAAW,CAC1B,UAACutB,OAAD;AAAA,WAAoDD,aAAa,CAAC,UAACE,GAAD;AAAA,aAASC,aAAO,CAACD,GAAD,EAAM,UAAChM,KAAD;AAAA,eAAW+L,OAAO,CAAC/L,KAAD,CAAlB;AAAA,OAAN,CAAhB;AAAA,KAAD,CAAjE;AAAA,GAD0B,EAE1B,CAAC8L,aAAD,CAF0B,CAA5B;;AAKA,iBAAwCntB,aAAO,CAAC;AAAA,WAAM,CAAC6hB,KAAD,EAAQT,QAAR,CAAN;AAAA,GAAD,EAA0B,CAACA,QAAD,EAAWS,KAAX,CAA1B,CAA/C;AAAA,MAAO0L,YAAP;AAAA,MAAqBC,eAArB;;AAEA,SAAO3rC,4BAAA,CAACmrC,eAAe,CAACjlB,QAAjB;AAA0B1Q,IAAAA,KAAK,EAAE,CAACk2B,YAAD,EAAeC,eAAf;GAAjC,EAAmEvsC,QAAnE,CAAP;AACD,CAlBD;;AAiCA,SAAgBwsC;;;MACdxsC,iBAAAA;MACA8sB,sBAAAA;MACA5uB,cAAAA;MACAyhB,+BAAAA;MACAd,yBAAAA;MACA0F,mBAAAA;MACAf,eAAAA;MACA8D,2BAAAA;MACA6T,2BAAAA;MACAyG,4BAAAA;MACA2C,0BAAAA;;AAIA,yBAAgC5C,eAAe,CAAC;AAAEpd,IAAAA,UAAU,EAAVA,UAAF;AAAcf,IAAAA,MAAM,EAANA,MAAd;AAAsB8D,IAAAA,kBAAkB,EAAlBA,kBAAtB;AAA0Csa,IAAAA,mBAAmB,EAAnBA;AAA1C,GAAD,CAA/C;AAAA,MAAQZ,QAAR,oBAAQA,QAAR;AAAA,MAAkBryB,SAAlB,oBAAkBA,SAAlB;;AACA,MAAM8S,aAAa,GAAoBuf,QAAQ,QAAR,IAAAA,QAAQ,CAAEvf,aAAV,GACnCO,wBAAwB,CAACgf,QAAQ,CAACvf,aAAV,CADW,GAEnC;AAAEniB,IAAAA,UAAU,EAAEyhB,aAAa,CAACL,yBAAD;AAA3B,GAFJ;AAGA,MAAMsL,WAAW,GAAe7C,aAAa,CAAC1H,aAAD,CAA7C;AAEA,MAAMwqB,YAAY,GAAGltB,aAAO,CAAC;;;AAC3B,QAAM0tB,aAAa,GAAGhB,wBAAwB,CAACzf,WAAD,EAAc9tB,KAAd,AAAA,CAA9C;AACA,QAAMgjC,oBAAoB,GAAG6G,2BAA2B,CAACjb,aAAD,CAAxD;AACA,QAAMoW,QAAQ,GAAGF,uBAAuB,CAAC;AACvCrjB,MAAAA,sBAAsB,EAAtBA,sBADuC;AAEvCjd,MAAAA,IAAI,EAAEs+B,QAAF,oBAAEA,QAAQ,CAAEt+B,IAFuB;AAGvCyd,MAAAA,kBAAkB,EAAE6gB,QAAF,oBAAEA,QAAQ,CAAE7gB,kBAHS;AAIvCmH,MAAAA,kBAAkB,EAAlBA,kBAJuC;AAKvCib,MAAAA,6BAA6B,EAAE1jB,gBAAF,WAAEA,gBAAF,GAAsB;AALZ,KAAD,CAAxC;AAOA,QAAMyhB,UAAU,GAAGZ,yBAAyB,CAAC;AAC3Ch9B,MAAAA,IAAI,EAAEs+B,QAAF,oBAAEA,QAAQ,CAAEt+B,IAD2B;AAE3CO,MAAAA,aAAa,EAAEigC,QAAQ,CAACjgC,aAFmB;AAG3Ckd,MAAAA,kBAAkB,EAAE6gB,QAAF,oBAAEA,QAAQ,CAAE7gB;AAHa,KAAD,CAA5C;AAKA,QAAMylB,WAAW,GAAGwB,0BAA0B,CAAC;AAC7C94B,MAAAA,QAAQ,EAAE0yB,QAAF,oBAAEA,QAAQ,CAAE1yB,QADyB;AAE7Cw3B,MAAAA,aAAa,EAAE3K,kBAAF,6CAAEA,kBAAkB,CAAEiP,UAAtB,qBAAE,sBAAgCtE;AAFF,KAAD,CAA9C;AAIA,QAAMnB,WAAW,GAAGL,0BAA0B,CAAC;AAC7C31B,MAAAA,SAAS,EAATA,SAD6C;AAE7C41B,MAAAA,iBAAiB,EAAEA,iBAAF,WAAEA,iBAAF,GAAuB,EAFK;AAG7C7hC,MAAAA,IAAI,EAAEs+B,QAAF,oBAAEA,QAAQ,CAAEt+B,IAH6B;AAI7Ci9B,MAAAA,eAAe,EAAEW,UAAU,CAACX,eAJiB;AAK7CwE,MAAAA,gBAAgB,EAAEjB,QAAQ,CAACrkB,gBALkB;AAM7Cc,MAAAA,sBAAsB,EAAtBA,sBAN6C;AAO7C4iB,MAAAA,6BAA6B,EAAE1jB,gBAAF,WAAEA,gBAAF,GAAsB;AAPN,KAAD,CAA9C;AAUA,QAAMotB,YAAY,GAAyB;AACzCjL,MAAAA,QAAQ,EAARA,QADyC;AAEzCE,MAAAA,oBAAoB,EAApBA,oBAFyC;AAGzC/M,MAAAA,UAAU,EAAEnI,WAH6B;AAIzC9tB,MAAAA,KAAK,EAAEuuC,aAJkC;AAKzC9H,MAAAA,WAAW,EAAXA,WALyC;AAMzCzB,MAAAA,QAAQ,EAARA,QANyC;AAOzC5C,MAAAA,UAAU,EAAVA,UAPyC;AAQzCsF,MAAAA,WAAW,EAAXA,WARyC;AASzCrhB,MAAAA,UAAU,EAAEyc,QAAF,0CAAEA,QAAQ,CAAE0L,QAAZ,qBAAE,mBAAoBzoC,EATS;AAUzCg9B,MAAAA,WAAW,EAAE;AAAEI,QAAAA,QAAQ,EAAE,KAAZ;AAAmBE,QAAAA,OAAO,EAAE,IAA5B;AAAkCoL,QAAAA,qBAAqB,EAAEh+B;AAAzD;AAV4B,KAA3C;AAaA,WAAOs9B,YAAP;AAED,GA5C2B,EA4CzB,CACDtsB,sBADC,EAED2H,kBAFC,EAGD0Z,QAHC,EAIDryB,SAJC,EAKD41B,iBALC,EAMDpJ,kBANC,8CAMDA,kBAAkB,CAAEiP,UANnB,qBAMD,uBAAgCtE,aAN/B,CA5CyB,CAA5B;AAqDA,SACEllC,4BAAA,CAACqpB,gBAAD;AAAkBzmB,IAAAA,GAAG,EAAEw9B,QAAF,oBAAEA,QAAQ,CAAEt+B,IAAV,CAAeuB;AAAIimB,IAAAA,cAAc,EAAEzI;GAA1D,EACE7gB,4BAAA,CAACorC,uBAAD;AAAyBC,IAAAA,YAAY,EAAEA;GAAvC,EAAsDjsC,QAAtD,CADF,CADF;AAKD;;ACnKM,IAAM4sC,cAAc;AAAA;AAAA;AAAA,6IASL;AAAA,MAAG1uC,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBgH,eAAnC;AAAA,CATK,cAUf;AAAA,MAAGnH,KAAH,SAAGA,KAAH;AAAA,wBAA4BA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH,cAAhD;AAAA,CAVe,oDAiBvBitB,EAAE,CAACN,EAjBoB,0wDAApB;AAuBP,AAAO,IAAMya,eAAe,gBAAG,QAAOxd,GAAP;AAAA;AAAA;AAAA,EAAH,kGAQxBqD,EAAE,CAACN,EARqB,quDAArB;AAaP,AAAO,IAAM0a,aAAa,gBAAG,QAAOzd,GAAP;AAAA;AAAA;AAAA,EAAH,gEAOtBqD,EAAE,CAACN,EAPmB,6tDAAnB;;ACnCA,IAAM2a,cAAc,gBAAG,QAAOnU,uBAAP;AAAyB5kB,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAA5C;AAAA;AAAA;AAAA,GAE3B;AAAA;;AAAA,MAAGhW,KAAH,QAAGA,KAAH;AAAA,MAAU2P,SAAV,QAAUA,SAAV;AAAA,kCACKm/B,oCAAqB,CAACC,IAD3B,IACoC;AACnCx4B,IAAAA,YAAY,EAAEvW,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MADE;AAEnCya,IAAAA,eAAe,EAAE5jB,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBoH;AAFF,GADpC,gBAKMunC,oCAAqB,CAACE,GAL5B,IAKoC;AACnCprB,IAAAA,eAAe,EAAEjU,SAAS,GAAG3P,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBE,YAAvB,GAAsCL,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC;AADjD,GALpC;AAAA,CAF2B,ynEAAvB;AAYP,AAAO,IAAM6uC,gBAAgB,gBAAG,QAAO94B,iBAAP;AAAA;AAAA;AAAA,GAAe;AAAA;;AAAA,kCACvC+4B,sBAAa,CAACH,IADyB,IAChB;AAC3Bjb,IAAAA,aAAa,EAAE,MADY;AAE3Bna,IAAAA,UAAU,EAAE,SAFe;AAG3Bkc,IAAAA,cAAc,EAAE,YAHW;AAI3Bnf,IAAAA,OAAO,EAAE;AAJkB,GADgB;AAAA,CAAf,ynEAAzB;AASP,AAAO,IAAMy4B,UAAU,gBAAG,QAAOnd,IAAP;AAAelc,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAAlC;AAAA;AAAA;AAAA,GAGvB;AAAA,MAAGhW,KAAH,SAAGA,KAAH;AAAA,MAAU2P,SAAV,SAAUA,SAAV;AAAA,MAAqBy/B,WAArB,SAAqBA,WAArB;AAAA,SAAwC;AACzC3kB,IAAAA,MAAM,EAAE;AACN4kB,MAAAA,MAAM,EAAE1/B,SAAS,GAAG3P,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBE,YAAvB,GAAsCL,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OADrE;AAENkvC,MAAAA,IAAI,EAAEF,WAAW,GAAIz/B,SAAS,GAAG3P,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBE,YAAvB,GAAsCL,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAvE,GAAkF2a;AAF7F;AADiC,GAAxC;AAAA,CAHuB,6nEAAnB;;ACfA,IAAMw0B,mBAAmB,GAAG,SAAtBA,mBAAsB;AACjC,6BAAyDvI,mBAAmB,EAA5E;AAAA,MAAQC,gBAAR,wBAAQA,gBAAR;AAAA,MAA0BG,aAA1B,wBAA0BA,aAA1B;AAAA,MAAyCF,WAAzC,wBAAyCA,WAAzC;;AACA,0BAAwB5D,gBAAgB,EAAxC;AAAA,MAAQP,WAAR,qBAAQA,WAAR;;AACA,MAAMhO,mBAAmB,GAAGL,oBAAoB,CAAC,IAAD,CAAhD;AACA,MAAM8a,YAAY,GAAGvoB,YAAM,EAA3B;AACA,MAAQkc,QAAR,GAA4CJ,WAA5C,CAAQI,QAAR;AAAA,MAAkBsL,qBAAlB,GAA4C1L,WAA5C,CAAkB0L,qBAAlB;;AACA,aAA8CxH,gBAAgB,IAAI,EAAlE;AAAA,MAAQpB,UAAR,QAAQA,UAAR;AAAA,MAAoBC,cAApB,QAAoBA,cAApB;AAAA,MAAoCC,KAApC,QAAoCA,KAApC;;AACA,MAAM0J,QAAQ,GAAI,CAAC5J,UAAU,GAAG,CAAd,IAAmB,GAApB,GAA2BE,KAAK,CAACjgC,MAAlD;;AAEA,wBAAwCpD,cAAK,CAAC8N,QAAN,CAAe02B,WAAf,CAAxC;AAAA,MAAOwI,YAAP;AAAA,MAAqBC,eAArB;;AACA9nB,EAAAA,eAAS,CAAC;AACR,QAAI,CAACkN,mBAAL,EAA0B;AACxB,UAAIya,YAAY,CAACjnB,OAAb,IAAwB2e,WAAW,KAAKwI,YAA5C,EAA0D;AACxDF,QAAAA,YAAY,CAACjnB,OAAb,CAAqBmY,cAArB,CAAoC;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SAApC;AACD;AACF;;AACDgP,IAAAA,eAAe,CAACzI,WAAD,CAAf;AACD,GAPQ,EAON,CAACA,WAAD,EAAcnS,mBAAd,EAAmC2a,YAAnC,EAAiDC,eAAjD,CAPM,CAAT;;AASA,MAAI1I,gBAAgB,CAAClB,KAAjB,CAAuBjgC,MAAvB,KAAkC,CAAtC,EAAyC;AACvC,WAAO,IAAP;AACD;;AAED,SACEpD,4BAAA,CAACyuB,GAAD;AAAK1uB,IAAAA,SAAS,EAAC;AAAoCiV,IAAAA,EAAE,EAAE;AAAEF,MAAAA,KAAK,EAAE,MAAT;AAAiBo4B,MAAAA,EAAE,EAAE;AAArB;AAA0B/tC,IAAAA,GAAG,EAAE2tC;GAAtF,EACE9sC,4BAAA,CAACmsC,cAAD;AAAgBhuC,IAAAA,OAAO,EAAC;AAAcqX,IAAAA,KAAK,EAAEu3B;iBAAqBtM;GAAlE,CADF,EAEEzgC,4BAAA,CAACkU,IAAD;AAAMU,IAAAA,SAAS;AAAC2E,IAAAA,OAAO,EAAC;GAAxB,EACG8pB,KAAK,CAAC1gC,GAAN,CAAU,iBAAiBgrB,KAAjB;QAAG/qB,YAAAA;QAAKwtB,cAAAA;AACjB,QAAM+c,WAAW,GAAG/J,cAAc,CAACngC,QAAf,CAAwB0qB,KAAxB,CAApB;AACA,QAAMxd,UAAU,GACdswB,QAAQ,IACP9S,KAAK,GAAGwV,UAAR,IAAsB,CAACgK,WAAvB,IAAsC,CAAC/J,cAAc,CAACngC,QAAf,CAAwB0qB,KAAK,GAAG,CAAhC,CADxC,IAECwV,UAAU,KAAKxV,KAAf,IAAwB4W,gBAAgB,CAACp0B,UAH5C;AAIA,QAAMiL,WAAW,GAAUjL,UAAU,GAAG,+BAAH,GAAqC,uBAA1E;AAEA,WACEnQ,4BAAA,CAACkU,IAAD;AACEtR,MAAAA,GAAG,EAAEA;AACLiS,MAAAA,IAAI;AACJ0E,MAAAA,OAAO,EAAC;AACR4U,MAAAA,aAAa,EAAC;AACd5Z,MAAAA,IAAI,EAAE8d,mBAAmB,GAAG,CAAH,GAAO;AAChCc,MAAAA,cAAc,EAAC;KANjB,EAOG4Y,qBAAqB,GACpB/rC,4BAAA,CAACwU,QAAD;AAAUM,MAAAA,KAAK,EAAE;AAAKrE,MAAAA,MAAM,EAAE;AAAInR,MAAAA,KAAK,EAAE;AAAE4V,QAAAA,SAAS,EAAE;AAAb;KAAzC,CADoB,GAGpBlV,4BAAA,CAACusC,gBAAD;AAAkBn8B,MAAAA,OAAO,EAAE;AAAA,eAAMs0B,aAAa,CAAC/W,KAAD,CAAnB;AAAA;AAA4B/X,MAAAA,SAAS;AAACrV,MAAAA,QAAQ,EAAE4P;KAA3E,EACEnQ,4BAAA,CAACkU,IAAD;AAAMW,MAAAA,IAAI;AAAC0E,MAAAA,OAAO,EAAC;AAAO4U,MAAAA,aAAa,EAAC;AAAM3U,MAAAA,UAAU,EAAC;AAASC,MAAAA,GAAG,EAAE;KAAvE,EACEzZ,4BAAA,CAACotC,QAAD;AACE7d,MAAAA,IAAI,EACFvvB,4BAAA,CAACysC,UAAD;AACEld,QAAAA,IAAI,EAAE4d,WAAW,GAAG/xB,WAAH,GAAiB;qBACvBjL;uBACEg9B;OAHf;KAFJ,CADF,EAWEntC,4BAAA,CAAChB,UAAD;AAAYb,MAAAA,OAAO,EAAC;AAAKoB,MAAAA,KAAK,EAAE4Q,UAAU,GAAG,oBAAH,GAA0B;KAApE,EACGigB,KADH,CAXF,CADF,CAVJ,CADF;AA+BD,GAvCA,CADH,CAFF,CADF;AA+CD,CAtEM;;ACNP,IAAMid,2BAA2B,GAAG,CAACnhC,kBAAY,CAACohC,OAAd,EAAuBphC,kBAAY,CAACC,OAApC,EAA6CD,kBAAY,CAACsG,UAA1D,CAApC;AAEA,AAAO,IAAM+6B,WAAW,GAAG,SAAdA,WAAc,CAACC,OAAD;AACzB,SAAOxrB,MAAM,CAACwrB,OAAD,EAAU,CACrB,UAAC1L,MAAD;AAAA,WAAYuL,2BAA2B,CAACI,OAA5B,CAAoC3L,MAAM,CAAC71B,YAA3C,CAAZ;AAAA,GADqB,EAErB,UAAC61B,MAAD;AAAA;;AAAA,8BAAYA,MAAM,CAAC5gC,OAAnB,qBAAY,gBAAgBM,WAA5B;AAAA,GAFqB,CAAV,CAAb;AAID,CALM;AAOP,AAAO,IAAMksC,cAAc,GAAG,SAAjBA,cAAiB,CAACF,OAAD;AAC5B,SAAOrvB,aAAO,CAAC;AAAA,WAAMovB,WAAW,CAACC,OAAD,CAAjB;AAAA,GAAD,EAA6B,CAACA,OAAD,CAA7B,CAAd;AACD,CAFM;;ACRP,SAASG,qBAAT;AACE,4BAA4BrO,kBAAkB,EAA9C;AAAA,MAASyF,aAAT,0BAASA,aAAT;;AACA,SAAOA,aAAP;AACD;;AAED,SAAS6I,mBAAT;AACE,6BAAqBtO,kBAAkB,EAAvC;AAAA,MAASC,QAAT;;AAEA,SAAO,UAACwF,aAAD;AAAA,WACLxF,QAAQ,CAAC,UAACC,KAAD;AACPA,MAAAA,KAAK,CAACuF,aAAN,GAAsBA,aAAtB;AACD,KAFO,CADH;AAAA,GAAP;AAID;;AAED,SAAgB8I;AACd,MAAM9I,aAAa,GAAG4I,qBAAqB,EAA3C;AAEA,SAAO;AACL5I,IAAAA,aAAa,EAAbA,aADK;AAEL+I,IAAAA,gBAAgB,EAAEF,mBAAmB;AAFhC,GAAP;AAID;;AC3BD,IAAI9e,IAAE,CAAC;AACP,SAASpyB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACnV,AACA,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,oBAAoBC,mBAAmB,CAAC,KAAK,EAAED,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAEoyB,IAAE,KAAKA,IAAE,gBAAgBnyB,mBAAmB,CAAC,GAAG,EAAE;AAC/D,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,GAAG,eAAeA,mBAAmB,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,kCAAkC;AACzC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;;ACTF,IAAMoxC,cAAc,gBAAG,QAAOC,WAAP;AAAmB56B,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAU,CAACA,IAAI,CAACC,UAAL,CAAgB,GAAhB,CAAX;AAAA,GAAtC;AAAA;AAAA;AAAA,EAAH,kCAGN;AAAA,MAAGhW,KAAH,QAAGA,KAAH;AAAA,MAAU2P,SAAV,QAAUA,SAAV;AAAA,SAA2BA,SAAS,GAAG3P,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBK,IAApB,CAAyByC,QAA5B,GAAuCjD,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAA/F;AAAA,CAHM,kjEAApB;;AAaA,AAAO,IAAMuwC,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,MAAGC,UAAH,SAAGA,UAAH;AAAA,MAAe5N,oBAAf,SAAeA,oBAAf;AAAA,MAAqC//B,QAArC,SAAqCA,QAArC;AAAA,SACpCP,4BAAA,CAACyT,MAAD;AACElT,IAAAA,QAAQ,EAAEA;AACVqV,IAAAA,SAAS;AACT7V,IAAAA,SAAS,EAAC;AACViV,IAAAA,EAAE,EAAE;AACFoc,MAAAA,aAAa,EAAE,MADb;AAEF+B,MAAAA,cAAc,EAAE,YAFd;AAGF5zB,MAAAA,KAAK,EAAEgB,QAAQ,GAAG,eAAH,GAAqB;AAHlC;AAKJpC,IAAAA,OAAO,EAAC;AACRqS,IAAAA,IAAI,EAAC;AACLJ,IAAAA,OAAO,EAAE89B;GAXX,EAYEluC,4BAAA,CAAC+tC,cAAD;iBAA2BxtC;AAAUR,IAAAA,SAAS,EAAC;GAA/C,CAZF,EAaEC,4BAAA,CAAChB,UAAD;AACEe,IAAAA,SAAS,EAAC;AACVR,IAAAA,KAAK,EAAEgB,QAAQ,GAAG,UAAH,GAAgB;AAC/BjB,IAAAA,KAAK,EAAE;AAAE2X,MAAAA,UAAU,EAAE;AAAd;AACP9Y,IAAAA,OAAO,EAAC;GAJV,EAKGmiC,oBAAoB,CAACqH,OAArB,CAA6BC,iBALhC,CAbF,CADoC;AAAA,CAA/B;;ACPP,IAAMuG,mBAAmB,gBAAG,QAAO16B,MAAP;AAAA;AAAA;AAAA,EAAH,oDAGN;AAAA,MAAGnW,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MAAlC;AAAA,CAHM,6zJAAzB;;AAQA,AAAO,IAAM2nC,gBAAgB,GAAG,SAAnBA,gBAAmB;MAC9B7tC,iBAAAA;MACA+/B,6BAAAA;MACA+E,8BAAAA;;AAEA,8BAAmDwI,qBAAqB,EAAxE;AAAA,MAA0BQ,oBAA1B,yBAAQP,gBAAR;;AACA,kBAAkChgC,cAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOwgC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,wBAA0CvuC,cAAK,CAAC8N,QAAN,CAAe,EAAf,CAA1C;AAAA,MAAOi3B,aAAP;AAAA,MAAsB+I,gBAAtB;;AACA,yBAAkC9tC,cAAK,CAAC8N,QAAN,CAAe,KAAf,CAAlC;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,yBAAwChO,cAAK,CAAC8N,QAAN,CAAe,EAAf,CAAxC;AAAA,MAAO03B,YAAP;AAAA,MAAqByB,eAArB;;AACA,8BAAsCpB,4BAA4B,CAAC;AAAER,IAAAA,qBAAqB,EAArBA;AAAF,GAAD,CAAlE;AAAA,MAAQS,yBAAR,yBAAQA,yBAAR;;AAEA,MAAM0I,mBAAmB;AAAA,+DAAG;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAC1BxgC,cAAAA,YAAY,CAAC,IAAD,CAAZ;AACAi5B,cAAAA,eAAe,CAAC,EAAD,CAAf;AAF0B;AAAA,qBAI0BnB,yBAAyB,CAAC;AAAEf,gBAAAA,aAAa,EAAbA;AAAF,eAAD,CAJnD;;AAAA;AAAA;AAIlBQ,cAAAA,mBAJkB,yBAIlBA,mBAJkB;AAIGC,cAAAA,YAJH,yBAIGA,YAJH;;AAM1B,kBAAI,CAACA,YAAD,IAAiBD,mBAAjB,qCAAiBA,mBAAmB,CAAEkJ,gBAAtC,aAAiB,sBAAuC9F,eAA5D,EAA6E;AAC3E0F,gBAAAA,oBAAoB,CAACtJ,aAAa,CAAC2J,WAAd,EAAD,CAApB;AACAH,gBAAAA,YAAY,CAAC,KAAD,CAAZ;AACD,eAHD,MAGO,IAAI/I,YAAJ,EAAkB;AACvByB,gBAAAA,eAAe,CAACzB,YAAD,CAAf;AACD;;AACDx3B,cAAAA,YAAY,CAAC,KAAD,CAAZ;;AAZ0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAnBwgC,mBAAmB;AAAA;AAAA;AAAA,KAAzB;;AAeA,MAAI,CAACF,SAAL,EAAgB;AACd,WACEtuC,4BAAA,CAACiuC,sBAAD;AACE1tC,MAAAA,QAAQ,EAAEA;AACV2tC,MAAAA,UAAU,EAAE;AAAA,eAAMK,YAAY,CAAC,IAAD,CAAlB;AAAA;AACZjO,MAAAA,oBAAoB,EAAEA;KAHxB,CADF;AAOD;;AAED,SACEtgC,4BAAA,CAACkU,IAAD,MAAA,EACElU,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAEimC,YAAY,GAAG,OAAH,GAAajlC,QAAQ,GAAG,UAAH,GAAgB;GAApF,EACG+/B,oBAAoB,CAACqH,OAArB,CAA6BE,eADhC,CADF,EAKE7nC,4BAAA,CAAC0T,UAAD;AACEnT,IAAAA,QAAQ,EAAEA;AACVouC,IAAAA,SAAS;AACTxwC,IAAAA,OAAO,EAAC;AACRyX,IAAAA,SAAS;AACT/X,IAAAA,KAAK,EAAE,CAAC,CAAC2nC;AACThwB,IAAAA,KAAK,EAAEuvB;AACP7uB,IAAAA,QAAQ,EAAE,kBAACd,CAAD;AACR04B,MAAAA,gBAAgB,CAAC14B,CAAC,CAACC,MAAF,CAASG,KAAV,CAAhB;AACD;AACDo5B,IAAAA,UAAU,EAAE;AAAEC,MAAAA,SAAS,EAAE;AAAb;AACZC,IAAAA,SAAS,EAAE,mBAAC15B,CAAD;AACT,UAAIA,CAAC,CAACxS,GAAF,KAAU,OAAd,EAAuB;AACrB,aAAK4rC,mBAAmB,EAAxB;AACAp5B,QAAAA,CAAC,CAAC25B,cAAF;AACD;AACF;AACD;AACAj5B,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EACV/V,4BAAA,CAACmuC,mBAAD;AACEhwC,QAAAA,OAAO,EAAC;AACRoC,QAAAA,QAAQ,EAAEA;AACV6P,QAAAA,OAAO,EAAE;AACP,eAAKo+B,mBAAmB,EAAxB;AACD;OALH,EAMGzgC,SAAS,GACR/N,4BAAA,CAACgvC,gBAAD;AAAkBx+B,QAAAA,IAAI,EAAE;AAAIwE,QAAAA,EAAE,EAAE;AAAEzV,UAAAA,KAAK,EAAE;AAAT;OAAhC,CADQ,GAGRS,4BAAA,CAACsvB,IAAD;AAAMhwB,QAAAA,KAAK,EAAE;AAAEia,UAAAA,OAAO,EAAE;AAAX;AAAqBgW,QAAAA,IAAI,EAAC;OAAvC,CATJ;AAFQ;GAlBd,CALF,EAwCG,CAAC,CAACiW,YAAF,IACCxlC,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;GAAlC,EACGimC,YADH,CAzCJ,CADF;AAgDD,CArFM;;ACfP,IAAMyJ,sBAAsB,gBAAG,QAAO/6B,IAAP;AAAA;AAAA;AAAA,EAAH,gHAOT;AAAA,MAAG5W,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYgJ,MAAZ,CAAmBC,MAAlC;AAAA,CAPS,wBAQN;AAAA,MAAGnJ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CARM,i6EAA5B;;AAWA,AAAO,IAAM+uC,YAAU,gBAAG,QAAOnd,IAAP;AAAelc,EAAAA,iBAAiB,EAAE,2BAACC,IAAD;AAAA,WAAUA,IAAI,KAAK,OAAnB;AAAA,GAAlC;AAAA;AAAA;AAAA,EAAH,2BAIT;AAAA,MAAG/V,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAnC;AAAA,CAJS,kBAQX;AAAA,MAAGJ,KAAH,SAAGA,KAAH;AAAA,MAAUovC,WAAV,SAAUA,WAAV;AAAA,SAA6BA,WAAW,GAAGpvC,KAAK,CAACE,KAAN,CAAYC,OAAZ,CAAoBC,OAAvB,GAAiC2a,SAAzE;AAAA,CARW,s6EAAhB;AAiBP,AAAO,IAAM62B,oBAAoB,GAAG,SAAvBA,oBAAuB;AAAA,MAAGnK,aAAH,SAAGA,aAAH;AAAA,MAAkBoK,oBAAlB,SAAkBA,oBAAlB;AAAA,SAClCnvC,4BAAA,CAACivC,sBAAD;AAAwBr6B,IAAAA,SAAS;GAAjC,EACE5U,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;AAAC0E,IAAAA,OAAO,EAAC;AAAOE,IAAAA,GAAG,EAAE;AAAGD,IAAAA,UAAU,EAAC;GAA7C,EACExZ,4BAAA,CAACysC,YAAD;AAAYld,IAAAA,IAAI,EAAC;GAAjB,CADF,EAEEvvB,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;AAAQoB,IAAAA,KAAK,EAAC;AAAe0X,IAAAA,UAAU,EAAC;GAA5D,EACG8tB,aADH,CAFF,CADF,EAOE/kC,4BAAA,CAACkU,IAAD;AAAMW,IAAAA,IAAI;GAAV,EACE7U,4BAAA,CAACyT,MAAD;AAAQtV,IAAAA,OAAO,EAAC;AAAO6W,IAAAA,EAAE,EAAE;AAAEo6B,MAAAA,QAAQ,EAAE,OAAZ;AAAqBp7B,MAAAA,OAAO,EAAE;AAA9B;AAAmC5D,IAAAA,OAAO,EAAE++B;GAAvE,EACEnvC,4BAAA,CAACysC,YAAD;AAAYld,IAAAA,IAAI,EAAC;;GAAjB,CADF,CADF,CAPF,CADkC;AAAA,CAA7B;;;;AC3BP,IAAM8f,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAnC;;AAUA,AAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB;MAClC/uC,gBAAAA;MACA+/B,4BAAAA;MACA+E,6BAAAA;;AAEA,8BAA4CwI,qBAAqB,EAAjE;AAAA,MAAQ9I,aAAR,yBAAQA,aAAR;AAAA,MAAuB+I,gBAAvB,yBAAuBA,gBAAvB;;AAEA,MAAMqB,oBAAoB,GAAG,SAAvBA,oBAAuB;AAC3BrB,IAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACD,GAFD;;AAIA,MAAMl2B,OAAO,GAAGmtB,aAAa,GAC3B/kC,4BAAA,CAACkvC,oBAAD;AAAsBnK,IAAAA,aAAa,EAAEA;AAAeoK,IAAAA,oBAAoB,EAAEA;GAA1E,CAD2B,GAG3BnvC,4BAAA,CAACouC,gBAAD;AACE7tC,IAAAA,QAAQ,EAAEA;AACV+/B,IAAAA,oBAAoB,EAAEA;AACtB+E,IAAAA,qBAAqB,EAAEA;GAHzB,CAHF;AAUA,SAAOrlC,4BAAA,CAACqvC,6BAAD,MAAA,EAAgCz3B,OAAhC,CAAP;AACD,CAtBM;;;SCTS23B;;;MACdC,8BAAAA;MACAC,0BAAAA;;AAEA,0BAAgF7O,gBAAgB,EAAhG;AAAA,MAAQL,aAAR,qBAAQA,aAAR;AAAA,MAAuBD,oBAAvB,qBAAuBA,oBAAvB;AAAA,MAA6CD,WAA7C,qBAA6CA,WAA7C;AAAA,MAA0DQ,iBAA1D,qBAA0DA,iBAA1D;;AACA,6BAA8BkG,mBAAmB,EAAjD;AAAA,MAAQG,iBAAR,wBAAQA,iBAAR;;AACA,cAAoC3G,aAAa,IAAI,EAArD;AAAA,MAAQ7yB,QAAR,SAAQA,QAAR;AAAA,MAAkBmT,aAAlB,SAAkBA,aAAlB;;AACA,MAAQ4f,QAAR,GAAqBJ,WAArB,CAAQI,QAAR;AACA,MAAMiP,wBAAwB,GAAG,CAAC,EAAED,kBAAF,WAAEA,kBAAF,GAAwB5uB,aAAxB,6CAAwBA,aAAa,CAAEjJ,OAAvC,qBAAwB,sBAAwB63B,kBAAhD,CAAlC;;AAEA,MAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,IAAD;AAC1B,QAAI,CAACA,IAAI,CAACC,QAAV,EAAoB;AAClB;AACD;;AAED,8BAAsDD,IAAI,CAACp6B,KAAL,CAAWs6B,OAAjE;AAAA,QAAqBC,UAArB,uBAAQC,WAAR;AAAA,QAAoCC,aAApC;;AACA,QAAMhL,cAAc;AAClB8K,MAAAA,UAAU,EAAVA;AADkB,OAEfE,aAFe,CAApB;;AAKApP,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAqG,IAAAA,iBAAiB,CAACjC,cAAD,CAAjB;;AAEA,QAAIuK,sBAAJ,EAA4B;AAC1B,UAAMU,iCAAiC;AAAA,mEAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAClCV,sBAAsB,CAAC;AAAEvK,oBAAAA,cAAc,EAAdA;AAAF,mBAAD,CADY;;AAAA;AAExCpE,kBAAAA,iBAAiB,CAAC,KAAD,CAAjB;;AAFwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAH;;AAAA,wBAAjCqP,iCAAiC;AAAA;AAAA;AAAA,SAAvC;;AAKA,WAAKA,iCAAiC,EAAtC;AACD,KAPD,MAOO;AACLrP,MAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD;AACF,GAxBD;;AA0BA,SACE7gC,4BAAA,CAACkU,IAAD;AAAMia,IAAAA,aAAa,EAAC;AAASvZ,IAAAA,SAAS;AAAC6E,IAAAA,GAAG,EAAE;AAAGzF,IAAAA,OAAO,EAAC;AAAOgB,IAAAA,EAAE,EAAE;AAAEm7B,MAAAA,aAAa,EAAE1P,QAAQ,GAAG,MAAH,GAAYpoB;AAArC;GAAlE,EACErY,4BAAA,CAACkU,IAAD;AAAMia,IAAAA,aAAa,EAAC;AAASvZ,IAAAA,SAAS;AAAC6E,IAAAA,GAAG,EAAE;GAA5C,EACEzZ,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;GAApB,EAA0BmiC,oBAAoB,CAACmH,mCAA/C,CADF,EAEEznC,4BAAA,CAACowC,4BAAD;AACEl6B,IAAAA,QAAQ,EAAEy5B;AACVroC,IAAAA,OAAO,EAAE;AACP+oC,MAAAA,IAAI,EAAE,SADC;AAEPC,MAAAA,MAAM,EAAE;AAAEC,QAAAA,KAAK,EAAEb,wBAAwB,GAAG,QAAH,GAAc;AAA/C,OAFD;AAGPc,MAAAA,aAAa,eACP,CAAA9iC,QAAQ,QAAR,YAAAA,QAAQ,CAAEgtB,IAAV,KAAkB;AAAEA,QAAAA,IAAI,EAAEhtB,QAAQ,CAACgtB;AAAjB,OADX;AAHN;GAFX,CAFF,CADF,EAcE16B,4BAAA,CAACkU,IAAD;AAAMia,IAAAA,aAAa,EAAC;AAASvZ,IAAAA,SAAS;AAAC6E,IAAAA,GAAG,EAAE;GAA5C,EACEzZ,4BAAA,CAAChB,UAAD;AAAYb,IAAAA,OAAO,EAAC;GAApB,EAA0BmiC,oBAAoB,CAACoH,yBAA/C,CADF,EAEE1nC,4BAAA,CAACywC,4BAAD;AACEv6B,IAAAA,QAAQ,EAAE;AACVw6B,IAAAA,OAAO,EAAE;AACTppC,IAAAA,OAAO,EAAE;AACPm5B,MAAAA,QAAQ,EAARA,QADO;AAEPkQ,MAAAA,KAAK,EAAE;AAAEC,QAAAA,IAAI,EAAE;AAAR,OAFA;AAGPJ,MAAAA,aAAa,EAAE;AACbK,QAAAA,cAAc,eACR,CAAAnjC,QAAQ,QAAR,YAAAA,QAAQ,CAAEgtB,IAAV,KAAkB;AAAEA,UAAAA,IAAI,EAAEhtB,QAAQ,CAACgtB;AAAjB,SADV,EAER,CAAAhtB,QAAQ,QAAR,YAAAA,QAAQ,CAAEitB,KAAV,KAAmB;AAAEA,UAAAA,KAAK,EAAEjtB,QAAQ,CAACitB;AAAlB,SAFX;AADD;AAHR;GAHX,CAFF,CAdF,CADF;AAkCD;;SCxEemW;AACd,kBAA0ChjC,cAAQ,CAAgC,IAAhC,CAAlD;AAAA,MAAOijC,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,0BAA0BpQ,gBAAgB,EAA1C;AAAA,MAAQL,aAAR,qBAAQA,aAAR;;AACA,aAA4CA,aAAa,IAAI,EAA7D;AAAA,MAAQ0Q,kBAAR,QAAQA,kBAAR;AAAA,MAA4BC,WAA5B,QAA4BA,WAA5B;;AAEA/rB,EAAAA,eAAS,CAAC;AACR,QAAI8rB,kBAAJ,EAAwB;AACtB,UAAQE,iBAAR,GAA2CF,kBAA3C,CAAQE,iBAAR;AAAA,UAA2BC,WAA3B,GAA2CH,kBAA3C,CAA2BG,WAA3B;;AACA,UAAID,iBAAiB,KAAKE,6BAAuB,CAACC,MAAlD,EAA0D;AACxD7yB,QAAAA,OAAO,CAAC5gB,KAAR,CAAc,gDAAd;AACA;AACD;;AAED,UAAQ0zC,SAAR,GAAiCH,WAAjC,CAAQG,SAAR;AAAA,UAAmBC,SAAnB,GAAiCJ,WAAjC,CAAmBI,SAAnB;AACAR,MAAAA,gBAAgB,CAACS,mBAAU,CAACD,SAAD,EAAY;AAAEE,QAAAA,aAAa,EAAEH;AAAjB,OAAZ,CAAX,CAAhB;AACD;AACF,GAXQ,EAWN,CAACN,kBAAD,CAXM,CAAT;AAaA,SAAO;AAAEF,IAAAA,aAAa,EAAbA,aAAF;AAAiBY,IAAAA,uBAAuB,EAAET;AAA1C,GAAP;AACD;;SCrBeU;AACd,MAAM1zB,YAAY,GAAG4mB,oBAAoB,EAAzC;;AACA,4BAAyBxF,kBAAkB,EAA3C;AAAA,MAAS3b,UAAT,0BAASA,UAAT;;AACA,0BAA0Bid,gBAAgB,EAA1C;AAAA,MAAQL,aAAR,qBAAQA,aAAR;;AACA,aAAiBA,aAAa,IAAI,EAAlC;AAAA,MAAQz+B,IAAR,QAAQA,IAAR;;AACA,MAAMyrB,MAAM,GAAGrP,YAAY,CAACqP,MAAb,CAAoB5qB,GAApB,CAAwB;AAAA,QAAG+qB,KAAH,SAAGA,KAAH;AAAA,QAAUxkB,QAAV,SAAUA,QAAV;AAAA,WAA0B;AAAE0kB,MAAAA,OAAO,EAAEF,KAAK,CAACrqB,EAAjB;AAAqB6F,MAAAA,QAAQ,EAARA;AAArB,KAA1B;AAAA,GAAxB,CAAf;;AAEA,MAAI,EAACpH,IAAD,YAACA,IAAI,CAAEuB,EAAP,CAAJ,EAAe;AACb,WAAOgV,SAAP;AACD;;AAED,SAAO;AACLsL,IAAAA,UAAU,EAAVA,UADK;AAELf,IAAAA,MAAM,EAAE9gB,IAAI,CAACuB,EAFR;AAGLhB,IAAAA,aAAa,EAAE6b,YAAY,CAAC7b,aAHvB;AAIL4b,IAAAA,gBAAgB,EAAEC,YAAY,CAACD,gBAJ1B;AAKLsP,IAAAA,MAAM,EAANA,MALK;AAMLwX,IAAAA,aAAa,EAAE7mB,YAAY,CAAC6mB,aANvB;AAOLre,IAAAA,kBAAkB,EAAExI,YAAY,CAACwI;AAP5B,GAAP;AASD;;ACjBD,IAAMmrB,kCAAkC,GAAG,CAACC,uBAAiB,CAACC,MAAnB,EAA2BD,uBAAiB,CAACE,UAA7C,CAA3C;AAEA,SAAsBC,2BAAtB;AAAA;AAAA;;;gFAAO;AAAA;;AAAA;AAAA;AAAA;AAAA;AAA6CC,YAAAA,QAA7C,QAA6CA,QAA7C;;AAAA,gBACAA,QADA;AAAA;AAAA;AAAA;;AAEG1M,YAAAA,YAFH,GAEkB,iCAFlB;AAGH/mB,YAAAA,OAAO,CAAC5gB,KAAR,CAAc2nC,YAAd;AAHG,6CAII;AAAElgC,cAAAA,OAAO,EAAE,KAAX;AAAkBkgC,cAAAA,YAAY,EAAZA;AAAlB,aAJJ;;AAAA;AAAA;AAAA,mBAOkC0M,QAAQ,CAACC,MAAT,EAPlC;;AAAA;AAAA;AAOUC,YAAAA,aAPV,yBAOGv0C,KAPH;;AAAA,iBASDu0C,aATC;AAAA;AAAA;AAAA;;AAUH3zB,YAAAA,OAAO,CAACC,GAAR,CAAY0zB,aAAa,CAAC7zB,OAA1B;AAVG,6CAWI;AAAEjZ,cAAAA,OAAO,EAAE,KAAX;AAAkBkgC,cAAAA,YAAY,EAAE4M,aAAa,CAAC7zB,OAAd,IAAyB;AAAzD,aAXJ;;AAAA;AAAA,6CAcE;AAAEjZ,cAAAA,OAAO,EAAE;AAAX,aAdF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAiBP,SAAsB+sC,sBAAtB;AAAA;AAAA;;;2EAAO;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AACLC,YAAAA,wBADK,SACLA,wBADK,EAELC,MAFK,SAELA,MAFK;AAOCr0B,YAAAA,YAPD,GAOgBo0B,wBAPhB,oBAOgBA,wBAAwB,CAAEp0B,YAP1C;AAQCs0B,YAAAA,yBARD,GAQ6Bt0B,YAR7B,6CAQ6BA,YAAY,CAAEu0B,aAR3C,qBAQ6B,sBAA6BC,aAR1D;AASCC,YAAAA,iBATD,GASqBz0B,YATrB,oBASqBA,YAAY,CAAEy0B,iBATnC;;AAAA,kBAWDJ,MAAM,IAAIC,yBAAV,IAAuCG,iBAAiB,KAAKb,uBAAiB,CAACc,cAX9E;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAYsCL,MAAM,CAACM,gBAAP,CAAwB;AAAEC,cAAAA,YAAY,EAAEN;AAAhB,aAAxB,CAZtC;;AAAA;AAAA;AAYYO,YAAAA,eAZZ,yBAYKl1C,KAZL;;AAAA,iBAaCk1C,eAbD;AAAA;AAAA;AAAA;;AAAA,8CAcM;AAAEvN,cAAAA,YAAY,EAAEuN,eAAe,CAACx0B,OAAhB,IAA2B;AAA3C,aAdN;;AAAA;AAAA;AAAA;;AAAA;AAAA,kBAgBMo0B,iBAAiB,IAAId,kCAAkC,CAAC5uC,QAAnC,CAA4C0vC,iBAA5C,CAhB3B;AAAA;AAAA;AAAA;;AAAA,8CAiBI;AAAEnN,cAAAA,YAAY,EAAE,CAAAtnB,YAAY,QAAZ,sCAAAA,YAAY,CAAEu0B,aAAd,4CAA6BjN,YAA7B,KAA6C;AAA7D,aAjBJ;;AAAA;AAAA,8CAoBE;AAAEtnB,cAAAA,YAAY,EAAZA;AAAF,aApBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;SAuBQ80B;;;;;sEAAf;AAAA;;AAAA;AAAA;AAAA;AAAA;AACET,YAAAA,MADF,SACEA,MADF,EAEEL,QAFF,SAEEA,QAFF,EAGEY,YAHF,SAGEA,YAHF;AAAA;AAAA,mBAYsCP,MAAM,CAACU,YAAP,CAAoB;AACtDf,cAAAA,QAAQ,EAARA,QADsD;AAEtDgB,cAAAA,aAAa,EAAE;AAAEC,gBAAAA,UAAU,EAAEn2B,MAAM,CAACC,QAAP,CAAgBm2B;AAA9B,eAFuC;AAGtDC,cAAAA,QAAQ,EAAE;AAH4C,aAApB,CAZtC;;AAAA;AAAA;AAYiBC,YAAAA,UAZjB,yBAYUz1C,KAZV;;AAAA,iBAkBMy1C,UAlBN;AAAA;AAAA;AAAA;;AAmBI,gBAAIA,UAAU,CAAC59B,IAAX,KAAoB,YAApB,IAAoC49B,UAAU,CAAC59B,IAAX,KAAoB,kBAA5D,EAAgF;AAC9E,kBAAI49B,UAAU,CAAC59B,IAAX,KAAoB,YAAxB,EAAsC;AACpC;AACA69B,gBAAAA,iBAAiB,GAAGD,UAAU,CAAC/0B,OAAX,IAAsB,EAA1C;AACD;AACF,aALD,MAKO;AACLg1B,cAAAA,iBAAiB,GAAG,+BAApB;AACD;;AA1BL;AAAA;;AAAA;AAAA;AAAA;AAAA,mBA6BoChB,MAAM,CAACiB,mBAAP,CAA2BV,YAA3B,CA7BpC;;AAAA;AAAA;AA6BcW,YAAAA,WA7Bd,yBA6BcA,WA7Bd;;AA8BM,gBAAIA,WAAJ,YAAIA,WAAW,CAAEC,cAAjB,EAAiC;AAC/BC,cAAAA,kBAAkB,GAAGF,WAAW,CAACC,cAAjC;AACD;;AAhCP;AAAA;;AAAA;AAAA;AAAA;AAkCMH,YAAAA,iBAAiB,GAAG,+BAApB;AACA90B,YAAAA,OAAO,CAAC5gB,KAAR;;AAnCN;AAAA,8CAuCS;AAAE81C,cAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBJ,cAAAA,iBAAiB,EAAjBA;AAAtB,aAvCT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AA0CA,SAAsBK,sBAAtB;AAAA;AAAA;;;2EAAO;AAAA;;AAAA;AAAA;AAAA;AAAA;AACLrB,YAAAA,MADK,SACLA,MADK,EAELL,QAFK,SAELA,QAFK,EAGLP,uBAHK,SAGLA,uBAHK;;AAAA,kBASD,CAACY,MAAD,IAAW,CAACL,QAAZ,IAAwB,CAACP,uBATxB;AAAA;AAAA;AAAA;;AAAA,8CAUI;AAAErsC,cAAAA,OAAO,EAAE;AAAX,aAVJ;;AAAA;AAAA;AAAA,mBAasC2sC,2BAA2B,CAAC;AAAEC,cAAAA,QAAQ,EAARA;AAAF,aAAD,CAbjE;;AAAA;AAaC2B,YAAAA,4BAbD;;AAAA,gBAcAA,4BAA4B,CAACvuC,OAd7B;AAAA;AAAA;AAAA;;AAAA,8CAeI;AAAEA,cAAAA,OAAO,EAAE,KAAX;AAAkBkgC,cAAAA,YAAY,EAAEqO,4BAA4B,CAACrO;AAA7D,aAfJ;;AAAA;AAAA;AAAA,mBAkBmDwN,iBAAiB,CAAC;AACxET,cAAAA,MAAM,EAANA,MADwE;AAExEL,cAAAA,QAAQ,EAARA,QAFwE;AAGxEY,cAAAA,YAAY,EAAEnB;AAH0D,aAAD,CAlBpE;;AAAA;AAAA;AAkBGgC,YAAAA,kBAlBH,yBAkBGA,kBAlBH;AAkBuBJ,YAAAA,iBAlBvB,yBAkBuBA,iBAlBvB;;AAAA,kBAwBDA,iBAAiB,IAAI,CAACI,kBAxBrB;AAAA;AAAA;AAAA;;AAAA,8CAyBI;AAAEruC,cAAAA,OAAO,EAAE,KAAX;AAAkBkgC,cAAAA,YAAY,EAAE+N;AAAhC,aAzBJ;;AAAA;AAAA,8CA4BE;AAAEjuC,cAAAA,OAAO,EAAE,IAAX;AAAiBwuC,cAAAA,eAAe,EAAEH;AAAlC,aA5BF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|