@let isLoading = loading; @let passwordManagerPlans = this.passwordManagerPlans; @let secretsManagerPlans = this.secretsManagerPlans; @let upgradingFromPremium = this.canUpgradeFromPremium(); @if (isLoading) { {{ "loading" | i18n }} } @if (createOrganization() && selfHosted) { } @if (!isLoading && !selfHosted && passwordManagerPlans && secretsManagerPlans) {

{{ "chooseYourPlan" | i18n }}

@for (selectableProduct of selectableProducts(); track $index) { @let pm = selectableProduct.PasswordManager; @let tier = selectableProduct.productTier; @let hasSelfHost = selectableProduct.hasSelfHost; @let hasSso = selectableProduct.hasSso; @let hasPolicies = selectableProduct.hasPolicies; @let hasGroups = selectableProduct.hasGroups; @let hasApi = selectableProduct.hasApi; @let hasDirectory = selectableProduct.hasDirectory; @let usersGetPremium = selectableProduct.usersGetPremium; @let trialPeriodDays = selectableProduct.trialPeriodDays; @let effectiveTrial = trialLength() ?? trialPeriodDays; @let showTrialOffer = tier != productTypes.Free && effectiveTrial && createOrganization() && !upgradingFromPremium;
{{ selectableProduct.nameLocalizationKey | i18n }} {{ selectableProduct.descriptionLocalizationKey | i18n: "1" }} @if (tier === productTypes.Enterprise) {
  • {{ "includeAllTeamsFeatures" | i18n }}
  • @if (hasSelfHost) {
  • {{ "onPremHostingOptional" | i18n }}
  • } @if (hasSso) {
  • {{ "includeSsoAuthentication" | i18n }}
  • } @if (hasPolicies) {
  • {{ "includeEnterprisePolicies" | i18n }}
  • } @if (showTrialOffer) {
  • {{ "xDayFreeTrial" | i18n: effectiveTrial }}
  • }
} @else { @if (tier === productTypes.Teams && teamsStarterPlanIsAvailable()) {
  • {{ "includeAllTeamsStarterFeatures" | i18n }}
  • {{ "chooseMonthlyOrAnnualBilling" | i18n }}
  • {{ "abilityToAddMoreThanNMembers" | i18n: 10 }}
  • @if (showTrialOffer) {
  • {{ "xDayFreeTrial" | i18n: effectiveTrial }}
  • }
} @else {
    @if (tier == productTypes.Free) {
  • {{ "limitedUsers" | i18n: pm.maxSeats }}
  • } @if ( tier != productTypes.Free && tier != productTypes.TeamsStarter && pm.maxSeats ) {
  • {{ "addShareLimitedUsers" | i18n: pm.maxSeats }}
  • } @if (!pm.maxSeats) {
  • {{ "addShareUnlimitedUsers" | i18n }}
  • } @if (pm.maxCollections) {
  • {{ "limitedCollections" | i18n: pm.maxCollections }}
  • } @if (pm.maxAdditionalSeats) {
  • {{ "addShareLimitedUsers" | i18n: pm.maxAdditionalSeats }}
  • } @if (!pm.maxCollections) {
  • {{ "createUnlimitedCollections" | i18n }}
  • } @if (pm.baseStorageGb) {
  • {{ "gbEncryptedFileStorage" | i18n: pm.baseStorageGb + " GB" }}
  • } @if (hasGroups) {
  • {{ "controlAccessWithGroups" | i18n }}
  • } @if (hasApi) {
  • {{ "trackAuditLogs" | i18n }}
  • } @if (hasDirectory) {
  • {{ "syncUsersFromDirectory" | i18n }}
  • } @if (hasSelfHost) {
  • {{ "onPremHostingOptional" | i18n }}
  • } @if (usersGetPremium) {
  • {{ "usersGetPremium" | i18n }}
  • } @if (tier != productTypes.Free) {
  • {{ "priorityCustomerSupport" | i18n }}
  • } @if (showTrialOffer) {
  • {{ "xDayFreeTrial" | i18n: effectiveTrial }}
  • }
} }
@if (tier != productTypes.Free) { @if (pm.basePrice && !acceptingSponsorship()) { {{ (selectableProduct.isAnnual ? pm.basePrice / 12 : pm.basePrice) | currency: "$" }} /{{ "month" | i18n }}, {{ "includesXUsers" | i18n: pm.baseSeats }} @if (pm.hasAdditionalSeatsOption) { {{ ("additionalUsers" | i18n).toLowerCase() }} {{ (selectableProduct.isAnnual ? pm.seatPrice / 12 : pm.seatPrice) | currency: "$" }} /{{ "month" | i18n }} } } } @if (!pm.basePrice && pm.hasAdditionalSeatsOption) { {{ "costPerUser" | i18n : ((selectableProduct.isAnnual ? pm.seatPrice / 12 : pm.seatPrice) | currency: "$") }} /{{ "month" | i18n }} } @if (tier == productTypes.Free) { {{ "freeForever" | i18n }} }
}
@if (formGroup.value.productTier !== productTypes.Free) { @let plan = selectedPlan(); @if ( plan.PasswordManager.hasAdditionalSeatsOption && !plan.PasswordManager.baseSeats && !upgradingFromPremium ) {

{{ "users" | i18n }}

{{ "userSeats" | i18n }} {{ "userSeatsHowManyDesc" | i18n }}
} @if (!upgradingFromPremium) {

{{ "addons" | i18n }}

@if (plan.PasswordManager.hasAdditionalSeatsOption && plan.PasswordManager.baseSeats) {
{{ "additionalUserSeats" | i18n }} {{ "userSeatsAdditionalDesc" | i18n : plan.PasswordManager.baseSeats : (seatPriceMonthly(plan) | currency: "$") }}
}
{{ "additionalStorageGb" | i18n }} {{ "additionalStorageIntervalDesc" | i18n : `${plan.PasswordManager.baseStorageGb} GB` : (additionalStoragePriceMonthly(plan) | currency: "$") : ("month" | i18n) }}
} @if (plan.PasswordManager.hasPremiumAccessOption) {
{{ "premiumAccess" | i18n }} {{ "premiumAccessDesc" | i18n: (3.33 | currency: "$") : ("month" | i18n) }}
}
@if (!upgradingFromPremium) {

{{ "summary" | i18n }}

@for (selectablePlan of selectablePlans(); track $index) { @let pm = selectablePlan.PasswordManager; @let isAnnual = selectablePlan.isAnnual; {{ (isAnnual ? "annually" : "monthly") | i18n }} @if (isAnnual) { @if (pm.basePrice) {

{{ "basePrice" | i18n }}: {{ (isAnnual ? pm.basePrice / 12 : pm.basePrice) | currency: "$" }} × 12 {{ "monthAbbr" | i18n }} = @if (acceptingSponsorship()) { {{ pm.basePrice | currency: "$" }} {{ "freeWithSponsorship" | i18n }} } @else { {{ pm.basePrice | currency: "$" }} /{{ "year" | i18n }} }

} @if (pm.hasAdditionalSeatsOption) {

@if (pm.baseSeats) { {{ "additionalUsers" | i18n }}: } @else { {{ "users" | i18n }}: } {{ formGroup.controls.additionalSeats.value || 0 }} × {{ (isAnnual ? pm.seatPrice / 12 : pm.seatPrice) | currency: "$" }} × 12 {{ "monthAbbr" | i18n }} = {{ passwordManagerSeatTotal( selectablePlan, formGroup.value.additionalSeats ) | currency: "$" }} /{{ "year" | i18n }}

} @if (pm.hasAdditionalStorageOption) {

{{ "additionalStorageGb" | i18n }}: {{ formGroup.controls.additionalStorage.value || 0 }} × {{ (isAnnual ? pm.additionalStoragePricePerGb / 12 : pm.additionalStoragePricePerGb ) | currency: "$" }} × 12 {{ "monthAbbr" | i18n }} = {{ additionalStorageTotal(selectablePlan) | currency: "$" }} /{{ "year" | i18n }}

}
} @else { @if (pm.basePrice) {

{{ "basePrice" | i18n }}: {{ pm.basePrice | currency: "$" }} {{ "monthAbbr" | i18n }} = {{ pm.basePrice | currency: "$" }} /{{ "month" | i18n }}

} @if (pm.hasAdditionalSeatsOption) {

@if (pm.baseSeats) { {{ "additionalUsers" | i18n }}: } @else { {{ "users" | i18n }}: } {{ formGroup.controls.additionalSeats.value || 0 }} × {{ pm.seatPrice | currency: "$" }} {{ "monthAbbr" | i18n }} = {{ passwordManagerSeatTotal( selectablePlan, formGroup.value.additionalSeats ) | currency: "$" }} /{{ "month" | i18n }}

} @if (pm.hasAdditionalStorageOption) {

{{ "additionalStorageGb" | i18n }}: {{ formGroup.controls.additionalStorage.value || 0 }} × {{ pm.additionalStoragePricePerGb | currency: "$" }} {{ "monthAbbr" | i18n }} = {{ additionalStorageTotal(selectablePlan) | currency: "$" }} /{{ "month" | i18n }}

}
}
}
}
} @if (planOffersSecretsManager() && !hasProvider() && !upgradingFromPremium) { } @if (formGroup.value.productTier !== productTypes.Free) {

{{ (createOrganization() ? "paymentInformation" : "billingInformation") | i18n }}

{{ paymentDesc }}

@if (createOrganization() || upgradeRequiresPaymentMethod) { }
} @if (singleOrgPolicyBlock) { {{ "singleOrgBlockCreateMessage" | i18n }} } @if (showCancel()) { }
}