{"version":3,"file":"contentweb/mntv-app-contentweb.4c7554ac.js","mappings":"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1D,qBAAsB,CACpBv7D,GAAI,2CACJc,eAAgB,8BAChB2B,KAAM,CACJzC,GAAI,2CACJ+F,QAAU,GAAE+xD,2BACZ9xD,QAASC,MCpGf,IACE,CACEu1D,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,YACA,gBACA,yBACA,2BACA,mBACA,cACA,mBAGJ,CACE0vC,SAAU76D,GAAAA,gBACVmrB,SAAU,CAAC,iBAAkB,kBAAmB,oBAAqB,yBAEvE,CACE0vC,SAAU76D,GAAAA,0BACVmrB,SAAU,CACR,kBACA,gBACA,kBACA,iBACA,kBACA,sBACA,+BACA,kBAGJ,CACE0vC,SAAU76D,GAAAA,oBACVmrB,SAAU,CACR,sBACA,wBACA,sBACA,6BACA,yBACA,mBACA,wBACA,0BACA,oBACA,aACA,8BACA,6BAGJ,CACE0vC,SAAU76D,GAAAA,aACVmrB,SAAU,CAAC,gBAAiB,yBAA0B,gBAAiB,6BAEzE,CACE0vC,SAAU76D,GAAAA,eACVmrB,SAAU,CACR,2BACA,0BACA,aACA,4BACA,2BACA,mBACA,oBACA,uBACA,wBACA,uBACA,8BACA,sBACA,uBACA,mCACA,cACA,4BACA,sBACA,cACA,+BACA,cACA,wBACA,eACA,eACA,iBACA,kCACA,yBAGJ,CACE0vC,SAAU76D,GAAAA,uBACVmrB,SAAU,CACR,eACA,kBACA,sBACA,8BACA,iBACA,iCACA,8BACA,0CACA,2CACA,0BACA,wBACA,gBACA,kCACA,+BACA,mCACA,gCACA,qBAGJ,CACE0vC,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,oBACA,gBACA,mBACA,aACA,yBACA,2BACA,0BACA,qBACA,qBACA,YACA,qCACA,yBACA,+BACA,uBACA,yBACA,kBACA,8BACA,0BACA,4BACA,yBAGJ,CACE0vC,SAAU76D,GAAAA,oBACVmrB,SAAU,CACR,iBACA,kBACA,2BACA,sBACA,6BACA,kCACA,qBACA,2BAGJ,CACE0vC,SAAU76D,GAAAA,kBACVmrB,SAAU,CAAC,sBAAuB,uBAEpC,CACE0vC,SAAU76D,GAAAA,qBACVmrB,SAAU,CACR,eACA,+BACA,wCACA,eACA,kBCzJN,IACE,CACE0vC,SAAU76D,GAAAA,oBACVmrB,SAAU,CACR,sBACA,wBACA,sBACA,6BACA,yBACA,mBACA,wBACA,0BACA,oBACA,aACA,8BACA,6BAGJ,CACE0vC,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,YACA,yBACA,2BACA,mBACA,cACA,mBAGJ,CACE0vC,SAAU76D,GAAAA,aACVmrB,SAAU,CAAC,gBAAiB,yBAA0B,kBAExD,CACE0vC,SAAU76D,GAAAA,gBACVmrB,SAAU,CAAC,iBAAkB,kBAAmB,yBAElD,CACE0vC,SAAU76D,GAAAA,eACVmrB,SAAU,CACR,2BACA,0BACA,aACA,4BACA,2BACA,mBACA,oBACA,uBACA,8BACA,sBACA,uBACA,mCACA,cACA,4BACA,sBACA,cACA,+BACA,cACA,wBACA,iBACA,eACA,eACA,oCAGJ,CACE0vC,SAAU76D,GAAAA,uBACVmrB,SAAU,CACR,eACA,kBACA,sBACA,8BACA,iBACA,iCACA,8BACA,0CACA,wBACA,gBACA,kCACA,+BACA,mCACA,kCAGJ,CACE0vC,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,oBACA,gBACA,yBACA,2BACA,mBACA,aACA,0BACA,+BACA,uBACA,yBACA,kBACA,qBACA,qBACA,uBACA,yBACA,gCAGJ,CACE0vC,SAAU76D,GAAAA,oBACVmrB,SAAU,CACR,iBACA,kBACA,2BACA,sBACA,6BACA,kCACA,yBACA,uBAGJ,CACE0vC,SAAU76D,GAAAA,kBACVmrB,SAAU,CAAC,sBAAuB,uBAEpC,CACE0vC,SAAU76D,GAAAA,qBACVmrB,SAAU,CAAC,eAAgB,+BAAgC,wCAAyC,kBC3HxG,IACE,CACE0vC,SAAUC,GAAAA,mCACV3vC,SAAU,CACR,gCACA,sCACA,sBACA,6BACA,yBACA,mBACA,wBACA,0BACA,8BACA,uBACA,8BACA,6BAGJ,CACE0vC,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,YACA,yBACA,2BACA,mBACA,cACA,mBAGJ,CACE0vC,SAAU76D,GAAAA,aACVmrB,SAAU,CAAC,gBAAiB,yBAA0B,kBAExD,CACE0vC,SAAU76D,GAAAA,gBACVmrB,SAAU,CAAC,iBAAkB,kBAAmB,yBAElD,CACE0vC,SAAUC,GAAAA,yBACV3vC,SAAU,CACR,2BACA,0BACA,aACA,4BACA,2BACA,mBACA,oBACA,uBACA,gBACA,8BACA,sBACA,uBACA,mCACA,cACA,4BACA,sBACA,cACA,+BACA,cACA,wBACA,iBACA,eACA,eACA,oCAGJ,CACE0vC,SAAU76D,GAAAA,uBACVmrB,SAAU,CACR,eACA,kBACA,sBACA,8BACA,iBACA,iCACA,8BACA,0CACA,wBACA,gBACA,kCACA,+BACA,mCACA,kCAGJ,CACE0vC,SAAU76D,GAAAA,mBACVmrB,SAAU,CACR,oBACA,gBACA,yBACA,2BACA,mBACA,aACA,0BACA,+BACA,mCACA,uBACA,yBACA,kBACA,qBACA,qBACA,uBACA,yBACA,gCAGJ,CACE0vC,SAAU76D,GAAAA,oBACVmrB,SAAU,CACR,iBACA,kBACA,2BACA,sBACA,6BACA,kCACA,yBACA,uBAGJ,CACE0vC,SAAU76D,GAAAA,kBACVmrB,SAAU,CAAC,sBAAuB,uBAEpC,CACE0vC,SAAU76D,GAAAA,qBACVmrB,SAAU,CAAC,eAAgB,+BAAgC,wCAAyC,kBCvGxG,GAlB4C,CAC1C,CAACte,GAAYoB,OAAQ,CACnB2N,QAASm/C,IAEX,CAACluD,GAAYysD,SAAU,CACrB19C,QAASm/C,IAEX,CAACluD,GAAYmB,YAAa,CACxB4N,QAASo/C,GACT,CAACnnD,GAAuBI,gBAAgBC,YAAa+mD,GACrD,CAACpnD,GAAuBI,gBAAgBE,YAAa8mD,GACrD,CAACpnD,GAAuBO,mBAAmBL,WAAYknD,IAEzD,CAACpuD,GAAYqB,aAAc,CACzB0N,QAASo/C,KChBb,IAAe7sD,EAAAA,GAAAA,KAAgB,EAAG6O,QAAAA,EAASk+C,QAAAA,EAAS7xC,UAAAA,EAAWvM,eAAAA,MAAsC,CACnG0L,YAAa,CACX/K,gBAAiBA,EAAGrK,YAAAA,KAClBA,EAAco0C,GAAc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","sources":["/app/apps/contentweb/node_modules/@sm/webassets/dist/locales/translated|lazy|/^/.//.*$/|chunkName: i18n/webassets/[request]|groupOptions: {}|namespace object","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/UsedInOrgs/getLocalizedLogos/images|lazy|/^/.//.*/-/-lg/.png$/|groupOptions: {}|namespace object","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/UsedInOrgs/getLocalizedLogos/images|lazy|/^/.//.*/.png$/|groupOptions: {}|namespace object","/app/apps/contentweb/src/locales/translated|lazy|/^/.//.*$/|chunkName: i18n/[request]|groupOptions: {}|namespace object","/app/apps/contentweb/src/app/helpers/fragmentTypes.js","/app/apps/contentweb/src/app/pages/LinkBlocked/index.js","/app/apps/contentweb/src/shared/hooks/usePricingExperiments.tsx","/app/apps/contentweb/src/shared/hooks/usePricingExperience.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/actions.ts","/app/apps/contentweb/src/shared/actions/index.ts","/app/apps/contentweb/src/shared/reducers/packageReducer.ts","/app/apps/contentweb/src/app/pages/Pricing/constants/project.ts","/app/apps/contentweb/src/app/pages/Pricing/copy.ts","/app/apps/contentweb/src/shared/constants/pricing.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/reducer.ts","/app/apps/contentweb/src/shared/state/index.ts","/app/apps/contentweb/src/shared/hooks/usePricingState.tsx","/app/apps/contentweb/src/app/pages/Pricing/lib/HelmetWrapper/HelmetWrappers.tsx","/app/apps/contentweb/src/app/pages/Pricing/lib/HelmetWrapper/index.ts","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/types.ts","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/links.ts","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/SEO.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/SeoHeadTags.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/HrefLangsTags.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/SEO/copy.ts","/app/apps/contentweb/src/shared/types/pricing/package.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/constants.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Layout/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Layout/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/hooks/useScripts.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useTrackingDetails.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useStarterEnabled.ts","/app/apps/contentweb/src/shared/util.ts","/app/apps/contentweb/src/app/pages/Pricing/pages/shared/utilities/pageEvents.ts","/app/apps/contentweb/src/server/routes/Pricing/experimentsConfig.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/lib-helpers.ts","/app/apps/contentweb/src/shared/hooks/usePackages.tsx","/app/apps/contentweb/src/app/pages/Pricing/hocs/withPageHandler.tsx","/app/apps/contentweb/src/app/pages/Pricing/hooks/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useCta.ts","/app/apps/contentweb/src/shared/constants/sizes.ts","/app/apps/contentweb/src/shared/media-query.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackageCta/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackageCta/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PackageHeader/PackageByline.tsx","/app/apps/contentweb/src/app/pages/Pricing/lib/packages/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/packages/packageDefs.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackagePrice/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackagePrice/index.tsx","/app/apps/contentweb/src/app/styles/pricing/pricing-theme.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Ribbon/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Ribbon/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PackageHeader/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/usePriceDisplay/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/usePriceDisplay/index.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackageHeader/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PackageHeader/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/Summary/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/FeatureSet/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Tooltip/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Tooltip/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/FeatureSet/uniqueFeatureNameMap.ts","/app/apps/contentweb/src/app/pages/Pricing/components/FeatureSet/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/summary/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/details/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/tooltipCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/details/tooltipCopyOverrides.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/copy/experimentSummaryCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/summary/experimentCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/copy/experimentDetailsCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/details/experimentCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/copy/experimentTooltipCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/experimentTooltipCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/constants.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/index.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/transformers/summary/featureRules.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/experiments/featureRules.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/rules/featureRules.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/defaultIndividualsFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/defaultTeamsFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/summaryFeatureMap.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/transformers/summary/featureRulesMap.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/summaryFeaturesTransformer.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/classes/SummaryTransformer.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/classes/PlanTransformers.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment1/transformers/summary/features/index.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/transformers/summary/features/index.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/premierAnnualFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/standardMonthlyFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/starterAnnualFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/flexPlanFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/advantageAnnualFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/enterpriseFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/teamPremierFeatureList.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/features/index.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/summary/index.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useSummaryDisplayFeatures.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useFeatureSet.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Summary/Package.tsx","/app/apps/contentweb/src/app/pages/Pricing/hooks/useTreatment/constants.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/assets/EnterpriseFeaturesCopy.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/useStyles.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/components/mrxSection.js","/app/apps/contentweb/src/app/pages/Pricing/pages/Enterprise/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/types.ts","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/Validation.ts","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/helpers.ts","/app/apps/contentweb/src/app/pages/Pricing/hooks/useHubSpotAPI.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/helpers.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/components/NotifyInterestModal.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/components/testimonialSection.js","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/HubSpotErrorBanner.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/HubspotInput.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/HubSpotForm/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/components/addOnSection.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/EnterpriseFeatures.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/index.js","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2427_social_proof/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2427_social_proof/Logos.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2427_social_proof/SocialProof.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2427_social_proof/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/theme/grow2529-theme.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PackageCta/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PackageCta/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PackageHeader/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/Ribbon/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/Ribbon/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/constants.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/ToggleSwitch/billingToggleCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/ToggleSwitch/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/ToggleSwitch/index.tsx","/app/apps/contentweb/src/shared/hooks/eduContext.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PackageHeader/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment1/Package/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment1/Package/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/DetailsPackageHeader/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/DetailsPackageHeader/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/components/FAQ.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/components/FAQAnswer.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PricingFooter/experimentCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/PricingFooter/MoreAbout.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment1/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/Package/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/FeatureSet/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/FeatureSet/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/Package/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/treatment2/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/hooks/useTreatment/treatments.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2629_forms_packages/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/hooks/useTreatment/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/config/disclaimers.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/config/features.ts","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/components/EnabledCheckMark.js","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/components/DisabledCheckMark.js","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/PricingFeatures.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/MoreAbout.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/PricingFooter/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/MainHeading/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/MainHeading/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/Navigation/routes.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Navigation/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/Navigation/NavItem.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/Navigation/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Summary/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DiscountBanner/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DiscountBanner/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DiscountBanner/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Summary/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/BackToSummary/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/BackToSummary/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/PackageHeader/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/PackageHeader/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/Categories/copy.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/Categories/IncludedLink.tsx","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/details/cellCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/helpers.tsx","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/rules/defaultRules.tsx","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/transformers/details/featureRules.tsx","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/rules/index.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/experimentFeatures.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/transformers/details/fakeFeatures.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/marketingFeatures.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/combinedFeatures.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/index.ts","/app/apps/contentweb/src/app/pages/Pricing/lib/PackageFeatures/details/categoryCopy.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/groupings/teams.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/groupings/individual.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/transformers/details/groupings/individual.ts","/app/apps/contentweb/src/app/pages/Pricing/transformers/details/groupings/index.ts","/app/apps/contentweb/src/app/pages/Pricing/experiments/grow_2529_forms/components/DetailsCategories/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsPackagesView/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/Categories/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/Categories/FeatureCell.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsTable/Categories/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/components/DetailsPackagesView/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Details/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Enterprise/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/pages/Enterprise/ContactUs.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Enterprise/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/Educational/useStyles.ts","/app/apps/contentweb/src/app/pages/Pricing/pages/Educational/index.tsx","/app/apps/contentweb/src/app/pages/Pricing/pages/index.ts","/app/apps/contentweb/src/app/pages/Pricing/PricingRoutes.tsx","/app/apps/contentweb/src/app/pages/Pricing/router.tsx","/app/apps/contentweb/src/app/pages/Pricing/index.tsx","/app/apps/contentweb/src/app/pages/AppsDirectory/components/SearchBox/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/components/JumboHeader/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppLink/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/components/AppsGrid/AppsGrid.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/components/AppsGrid/AppsGridSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/components/AppsGrid/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/NavBar/SideBarSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/LinkWithSearch/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/NavBar/index.js","/app/apps/contentweb/src/app/pages/components/UCSModule/UCSModuleLoaders/index.js","/app/apps/contentweb/src/app/pages/components/UCSModule/index.js","/app/apps/contentweb/src/app/helpers/getCanonicalUrlOrNoIndex.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppDirNavHeader/switchAccountsUrl.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppDirNavHeader/AppDirNavHeaderDesktop.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppDirNavHeader/AppDirNavHeaderMobile.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppDirNavHeader/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/ModernHeader/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/AppDirectoryBasePage.js","/app/apps/contentweb/src/app/helpers/waitForUsabilla.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppListingList/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppListingList/AppListingSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/Categories.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/ListingsBasePage.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/Featured.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/MostPopular.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/RecentlyAdded.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Search/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/RemoveApp/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/MyApps/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/AppDirectoryAppDetailsSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/UCSModule/UCSModuleLoaders/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/UCSModule/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/MediaCarousel.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/AppDetailsItem.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/JumboHeader/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/JumboHeader/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/SearchContext/constants.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/SearchContext/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/CategoriesContext/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/FilterNav/FilterNavSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/FilterNav/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppListingContext/AppListingSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppListingContext/AppListingContext.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppCard/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppCard/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppsGrid/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppsGrid/AppsGrid.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/CategorySection/CategorySectionSkeleton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/CategorySection/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/CategorySection/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppListingSort/AppListingSort.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/NoResultsCard/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/Listings.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/Layouts/LeftNavLayout.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/SearchBox/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/styles.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/components/ResponsiveImage.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/AppDetailsMedia.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/components/AppDetailsActionButton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/components/UninstallButton.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/AppDetails.js","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/DetailsV2/index.js","/app/apps/contentweb/src/app/pages/AppsDirectory/index.js","/app/apps/contentweb/src/app/pages/MRX/enums.js","/app/apps/contentweb/src/app/pages/MRX/helpers/useBrowser.js","/app/apps/contentweb/src/app/pages/MRX/helpers/getClickHandlers.js","/app/apps/contentweb/src/app/pages/MRX/helpers/useIsomorphicLayoutEffect.js","/app/apps/contentweb/src/app/pages/MRX/helpers/getLinkWithParams.js","/app/apps/contentweb/src/app/pages/MRX/helpers/logging.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/helpers/enums.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/helpers/scrollListener.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/helpers/logger.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/helpers/copy.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/helpers/menuConfig.js","/app/apps/contentweb/src/app/pages/MRX/propTypes.js","/app/apps/contentweb/src/app/pages/MRX/helpers/useCursor.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/ExpandableMenu/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/NavForDesktop.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/NavForTablet.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/NavForIE/DesktopNavForIE.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/NavForIE/MobileNavForIE.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/NavForIE/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/MRXNav/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXPage/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/MRXHeader/index.js","/app/apps/contentweb/src/app/pages/MRX/helpers/swipe.js","/app/apps/contentweb/src/app/pages/MRX/sharedComponents/MRXCarousel/index.js","/app/apps/contentweb/src/app/pages/MRX/sharedComponents/Anchor.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/ProductCategory/ProductTile/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/ProductCategory/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/HereToHelp/index.js","/app/apps/contentweb/src/app/pages/MRX/sharedComponents/CustomScreen/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/UsedInOrgs/getLocalizedLogos/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/UsedInOrgs/index.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/filter.js","/app/apps/contentweb/src/app/pages/MRX/helpers/SynchronousQueryStream.js","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/index.js","/app/apps/contentweb/src/app/pages/CreateWizard/CreateWizardConfigContext.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/questionTypes.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/MultipleChoice/ChoiceOptions.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/MultipleChoice/SurveyChoice.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/MultipleChoice/QuizChoice.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/MultipleChoice/index.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/helper.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/actionTypes.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/questions.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/questionTransformer/questionFromApi.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/questionTransformer/questionToApi.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/inputConfig.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/NewSurvey/index.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/IconWrapper/IconPoll.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/IconWrapper/IconSurvey.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/IconWrapper/IconTemplate.js","/app/apps/contentweb/src/app/pages/CreateWizard/components/IconWrapper/IconQuiz.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/Home/index.js","/app/apps/contentweb/src/app/pages/CreateWizard/pages/Templates/index.js","/app/apps/contentweb/src/app/pages/CreateWizard/DefaultCreateWizardConfig.js","/app/apps/contentweb/src/app/pages/CreateWizard/index.js","/app/apps/contentweb/src/app/helpers/makeLinksStatic.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/components/DeveloperWebNavHeader/DeveloperWebNavHeaderDesktop.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/components/DeveloperWebNavHeader/DeveloperWebNavHeaderMobile.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/components/DeveloperWebNavHeader/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/components/ModernHeader/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/DeveloperWebBasePage.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/Home/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/Docs/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/components/AppTable/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/FAQ/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/TOU/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/BuildAPrivateApp/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/BuildAPublicApp/index.js","/app/apps/contentweb/src/app/pages/DeveloperWeb/index.js","/app/apps/contentweb/src/app/App.js","/app/apps/contentweb/src/app/entry.js","/app/apps/contentweb/src/app/helpers/fragmentMatcher.js","/app/apps/contentweb/src/app/pages/AppsDirectory/components/AppDirNavHeader/AppDirNavHeader.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/components/CategoriesContext/CategoriesContext.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/components/NavBar/NavBar.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/components/RemoveApp/remove-app.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/components/SearchBox/SearchBox.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/preview-application-listing-details.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Details/published-application-listing-details.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Home/components/AppsGrid/AppsGrid.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/HomeV2/components/AppListingContext/AppListings.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Listings/listings.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/MyApps/myApps.graphql","/app/apps/contentweb/src/app/pages/AppsDirectory/pages/Search/search.graphql","/app/apps/contentweb/src/app/pages/DeveloperWeb/pages/Home/home.graphql","/app/apps/contentweb/src/app/pages/MRX/MRXSolutions/solutions.graphql","/app/apps/contentweb/src/app/pages/Pricing/experiments/EnterpriseFeaturesGp69/UserInfo.graphql","/app/apps/contentweb/external var \"jsdom\""],"sourcesContent":["var map = {\n\t\"./da-DK\": [\n\t\t833,\n\t\t495\n\t],\n\t\"./da-DK.json\": [\n\t\t833,\n\t\t495\n\t],\n\t\"./de-DE\": [\n\t\t963,\n\t\t495\n\t],\n\t\"./de-DE.json\": [\n\t\t963,\n\t\t495\n\t],\n\t\"./es-LA\": [\n\t\t6137,\n\t\t495\n\t],\n\t\"./es-LA.json\": [\n\t\t6137,\n\t\t495\n\t],\n\t\"./fi-FI\": [\n\t\t1049,\n\t\t495\n\t],\n\t\"./fi-FI.json\": [\n\t\t1049,\n\t\t495\n\t],\n\t\"./fr-FR\": [\n\t\t3798,\n\t\t495\n\t],\n\t\"./fr-FR.json\": [\n\t\t3798,\n\t\t495\n\t],\n\t\"./it-IT\": [\n\t\t6977,\n\t\t495\n\t],\n\t\"./it-IT.json\": [\n\t\t6977,\n\t\t495\n\t],\n\t\"./ja-JP\": [\n\t\t8572,\n\t\t495\n\t],\n\t\"./ja-JP.json\": [\n\t\t8572,\n\t\t495\n\t],\n\t\"./ko-KR\": [\n\t\t7602,\n\t\t495\n\t],\n\t\"./ko-KR.json\": [\n\t\t7602,\n\t\t495\n\t],\n\t\"./nl-NL\": [\n\t\t4742,\n\t\t495\n\t],\n\t\"./nl-NL.json\": [\n\t\t4742,\n\t\t495\n\t],\n\t\"./no-NO\": [\n\t\t7813,\n\t\t495\n\t],\n\t\"./no-NO.json\": [\n\t\t7813,\n\t\t495\n\t],\n\t\"./pt-BR\": [\n\t\t8815,\n\t\t495\n\t],\n\t\"./pt-BR.json\": [\n\t\t8815,\n\t\t495\n\t],\n\t\"./ru-RU\": [\n\t\t7962,\n\t\t495\n\t],\n\t\"./ru-RU.json\": [\n\t\t7962,\n\t\t495\n\t],\n\t\"./sv-SE\": [\n\t\t9207,\n\t\t495\n\t],\n\t\"./sv-SE.json\": [\n\t\t9207,\n\t\t495\n\t],\n\t\"./tr-TR\": [\n\t\t8314,\n\t\t495\n\t],\n\t\"./tr-TR.json\": [\n\t\t8314,\n\t\t495\n\t],\n\t\"./zh-TW\": [\n\t\t2729,\n\t\t495\n\t],\n\t\"./zh-TW.json\": [\n\t\t2729,\n\t\t495\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 8686;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./allbirds_logo--lg.png\": [\n\t\t8287,\n\t\t287\n\t],\n\t\"./ibm_logo--lg.png\": [\n\t\t6450,\n\t\t450\n\t],\n\t\"./just_logo--lg.png\": [\n\t\t3508,\n\t\t508\n\t],\n\t\"./rj_logo--lg.png\": [\n\t\t6612,\n\t\t612\n\t],\n\t\"./tweezerman_logo--lg.png\": [\n\t\t3397,\n\t\t397\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 5428;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./allbirds_logo--lg.png\": [\n\t\t8287,\n\t\t287\n\t],\n\t\"./allbirds_logo.png\": [\n\t\t3479,\n\t\t479\n\t],\n\t\"./ibm_logo--lg.png\": [\n\t\t6450,\n\t\t450\n\t],\n\t\"./ibm_logo.png\": [\n\t\t1659,\n\t\t659\n\t],\n\t\"./just_logo--lg.png\": [\n\t\t3508,\n\t\t508\n\t],\n\t\"./just_logo.png\": [\n\t\t3320,\n\t\t320\n\t],\n\t\"./rj_logo--lg.png\": [\n\t\t6612,\n\t\t612\n\t],\n\t\"./rj_logo.png\": [\n\t\t2585,\n\t\t585\n\t],\n\t\"./tweezerman_logo--lg.png\": [\n\t\t3397,\n\t\t397\n\t],\n\t\"./tweezerman_logo.png\": [\n\t\t639,\n\t\t639\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 394;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./da-DK\": [\n\t\t9302,\n\t\t2\n\t],\n\t\"./da-DK.json\": [\n\t\t9302,\n\t\t2\n\t],\n\t\"./de-DE\": [\n\t\t9125,\n\t\t750\n\t],\n\t\"./de-DE.json\": [\n\t\t9125,\n\t\t750\n\t],\n\t\"./es-LA\": [\n\t\t4547,\n\t\t597\n\t],\n\t\"./es-LA.json\": [\n\t\t4547,\n\t\t597\n\t],\n\t\"./fi-FI\": [\n\t\t3989,\n\t\t675\n\t],\n\t\"./fi-FI.json\": [\n\t\t3989,\n\t\t675\n\t],\n\t\"./fr-FR\": [\n\t\t3836,\n\t\t821\n\t],\n\t\"./fr-FR.json\": [\n\t\t3836,\n\t\t821\n\t],\n\t\"./it-IT\": [\n\t\t2546,\n\t\t174\n\t],\n\t\"./it-IT.json\": [\n\t\t2546,\n\t\t174\n\t],\n\t\"./ja-JP\": [\n\t\t5340,\n\t\t93\n\t],\n\t\"./ja-JP.json\": [\n\t\t5340,\n\t\t93\n\t],\n\t\"./ko-KR\": [\n\t\t3097,\n\t\t890\n\t],\n\t\"./ko-KR.json\": [\n\t\t3097,\n\t\t890\n\t],\n\t\"./nl-NL\": [\n\t\t1212,\n\t\t574\n\t],\n\t\"./nl-NL.json\": [\n\t\t1212,\n\t\t574\n\t],\n\t\"./no-NO\": [\n\t\t2883,\n\t\t244\n\t],\n\t\"./no-NO.json\": [\n\t\t2883,\n\t\t244\n\t],\n\t\"./pt-BR\": [\n\t\t3924,\n\t\t319\n\t],\n\t\"./pt-BR.json\": [\n\t\t3924,\n\t\t319\n\t],\n\t\"./ru-RU\": [\n\t\t6917,\n\t\t484\n\t],\n\t\"./ru-RU.json\": [\n\t\t6917,\n\t\t484\n\t],\n\t\"./sv-SE\": [\n\t\t7570,\n\t\t130\n\t],\n\t\"./sv-SE.json\": [\n\t\t7570,\n\t\t130\n\t],\n\t\"./tr-TR\": [\n\t\t8016,\n\t\t580\n\t],\n\t\"./tr-TR.json\": [\n\t\t8016,\n\t\t580\n\t],\n\t\"./zh-TW\": [\n\t\t1515,\n\t\t10\n\t],\n\t\"./zh-TW.json\": [\n\t\t1515,\n\t\t10\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 4067;\nmodule.exports = webpackAsyncContext;","// TODO: This needs to be updated whenever we add new INTERFACE types and should be automated in the future\n// https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher\n\n// Manual update steps: https://code.corp.surveymonkey.com/thomask/GQLFragmentMatcher\n\nconst introspectionQueryResultData = {\n __schema: {\n types: [\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestion',\n possibleTypes: [\n { name: 'PresentationQuestion' },\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n { name: 'MatrixQuestion' },\n { name: 'DemographicQuestion' },\n { name: 'ClickMapQuestion' },\n { name: 'DatetimeQuestion' },\n { name: 'BasicQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'BaseQuestionHeader',\n possibleTypes: [{ name: 'SurveyQuestionHeader' }, { name: 'VideoStimuliSurveyQuestionHeader' }],\n },\n {\n kind: 'INTERFACE',\n name: 'PaginatedList',\n possibleTypes: [\n { name: 'AnalysisStandardViewList' },\n { name: 'RespondentList' },\n { name: 'SurveyRespondentResultsList' },\n { name: 'SurveyQuestionColumnChoiceList' },\n { name: 'SurveyQuestionList' },\n { name: 'CollaboratorList' },\n { name: 'CollectorList' },\n { name: 'CrossTabReportList' },\n { name: 'AnalysisResultsDashboardList' },\n { name: 'SurveyPageList' },\n { name: 'AnalysisSharedViewList' },\n { name: 'SurveyQuestionRowList' },\n { name: 'SurveyQuestionOptionList' },\n { name: 'WordCloudTagList' },\n { name: 'SurveyOtherResponseList' },\n { name: 'TeamImageAssetsList' },\n { name: 'ApplicationListingList' },\n { name: 'LibraryAssetsList' },\n { name: 'SurveyList' },\n { name: 'AnalysisExportJobList' },\n { name: 'SurveyTemplateList' },\n { name: 'SurveyCategoryList' },\n { name: 'SurveyCategoryIdList' },\n { name: 'SurveyTemplateCategoryList' },\n { name: 'SurveyTemplateAttributesList' },\n { name: 'TeamSurveyList' },\n { name: 'SurveyQuestionTemplateList' },\n { name: 'BillingInvoiceList' },\n { name: 'SurveyQuestionColumnList' },\n { name: 'NotificationPreferenceList' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'AnalysisStandardViewFilterRule',\n possibleTypes: [\n { name: 'QnAFilter' },\n { name: 'CollectorFilter' },\n { name: 'QuizScoreBucketsFilter' },\n { name: 'TimePeriodFilter' },\n { name: 'CompletenessFilter' },\n { name: 'RandomAssignmentFilter' },\n { name: 'RelativeTimePeriodFilter' },\n { name: 'ResponseQualityFilter' },\n { name: 'SinceLastInviteFilter' },\n { name: 'TagFilter' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'AnalysisStandardViewCompareRule',\n possibleTypes: [{ name: 'QuestionAndAnswerCompare' }, { name: 'RandomAssignmentCompare' }],\n },\n {\n kind: 'UNION',\n name: 'SurveyRespondentAnswer',\n possibleTypes: [\n { name: 'SurveyChoiceResponse' },\n { name: 'SurveyImageChoiceResponse' },\n { name: 'SurveyOtherResponse' },\n { name: 'SurveyOpenEndedResponse' },\n { name: 'SurveyMatrixResponse' },\n { name: 'SurveyMatrixOtherResponse' },\n { name: 'SurveyMatrixDropDownResponse' },\n { name: 'SurveyMatrixOpenEndedResponse' },\n { name: 'SurveyFileUploadResponse' },\n { name: 'SurveyPaymentResponse' },\n { name: 'SurveyPresentationImageResponse' },\n { name: 'SurveyPresentationTextResponse' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionOption',\n possibleTypes: [\n { name: 'SurveyQuestionRow' },\n { name: 'SurveyQuestionOther' },\n { name: 'SurveyQuestionColumn' },\n { name: 'SurveyQuestionColumnChoice' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'Project',\n possibleTypes: [{ name: 'ConceptTestingProject' }],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectVariableConfiguration',\n possibleTypes: [\n { name: 'DefaultConfiguration' },\n { name: 'ImageStimuliVariableConfiguration' },\n { name: 'TextStimuliVariableConfiguration' },\n { name: 'VideoStimuliVariableConfiguration' },\n { name: 'ProductStimuliVariableConfiguration' },\n { name: 'NormsVariableConfiguration' },\n { name: 'AttributesVariableConfiguration' },\n { name: 'StimuliComparisonQuestionVariableConfiguration' },\n { name: 'CustomQuestionsBeforeStimuliVariableConfiguration' },\n { name: 'CustomQuestionsAfterStimuliVariableConfiguration' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectVariableAnswer',\n possibleTypes: [\n { name: 'QuestionVariableAnswer' },\n { name: 'QuestionBankVariableAnswer' },\n { name: 'ValueVariableAnswer' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ConceptTestingStimulus',\n possibleTypes: [{ name: 'ConceptTestingTextStimulus' }, { name: 'ConceptTestingImageStimulus' }],\n },\n {\n kind: 'UNION',\n name: 'AttributeQuestion',\n possibleTypes: [\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'QuestionResponseSummary',\n possibleTypes: [\n { name: 'OneDimensionalResponseSummary' },\n { name: 'TwoDimensionalResponseSummary' },\n { name: 'ThreeDimensionalResponseSummary' },\n ],\n },\n {\n kind: 'UNION',\n name: 'MultipleComparisonQuestion',\n possibleTypes: [{ name: 'MultipleChoiceQuestion' }, { name: 'SingleChoiceQuestion' }],\n },\n {\n kind: 'UNION',\n name: 'CustomQuestion',\n possibleTypes: [\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectEntity',\n possibleTypes: [{ name: 'ProjectAudienceCollectorEntity' }, { name: 'ProjectSurveyEntity' }],\n },\n {\n kind: 'INTERFACE',\n name: 'AudienceTargetingCriteria',\n possibleTypes: [\n { name: 'AudienceRangeCriteria' },\n { name: 'AudienceCategoricalCriteria' },\n { name: 'AudienceHouseholdIncomeRangeCriteria' },\n ],\n },\n {\n kind: 'UNION',\n name: 'AudienceCriteriaSelection',\n possibleTypes: [\n { name: 'AudienceCategoricalCriteriaSelection' },\n { name: 'AudienceRangeCriteriaSelection' },\n { name: 'AudienceHouseholdIncomeRangeCriteriaSelection' },\n ],\n },\n {\n kind: 'UNION',\n name: 'CustomQuestionResponseSummary',\n possibleTypes: [\n { name: 'CustomQuestionAggregateResponseSummary' },\n { name: 'CustomQuestionStimuliResponseSummary' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ImageAsset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'TeamAsset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'Asset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'LibraryAsset',\n possibleTypes: [\n { name: 'LibraryImage' },\n { name: 'LibraryTheme' },\n { name: 'LibraryCustomQuestion' },\n { name: 'LibrarySurveyTemplate' },\n { name: 'LibraryDocument' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'WelcomeFlowQuestion',\n possibleTypes: [\n { name: 'WelcomeFlowSingleChoiceQuestion' },\n { name: 'WelcomeFlowMultipleChoiceQuestion' },\n { name: 'WelcomeFlowFlagQuestion' },\n { name: 'WelcomeFlowNumberQuestion' },\n { name: 'WelcomeFlowTextQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionTemplate',\n possibleTypes: [\n { name: 'BasicQuestionTemplate' },\n { name: 'SingleChoiceQuestionTemplate' },\n { name: 'MatrixQuestionTemplate' },\n { name: 'OpenEndedQuestionTemplate' },\n { name: 'DemographicQuestionTemplate' },\n { name: 'MultipleChoiceQuestionTemplate' },\n { name: 'ClickMapQuestionTemplate' },\n { name: 'DatetimeQuestionTemplate' },\n { name: 'PresentationQuestionTemplate' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'QuestionVariableAnswerData',\n possibleTypes: [\n { name: 'DefaultQuestionVariableAnswerData' },\n { name: 'ABQuestionVariableAnswerData' },\n { name: 'VideoABQuestionVariableAnswerData' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionTemplateOption',\n possibleTypes: [\n { name: 'SurveyQuestionTemplateRow' },\n { name: 'SurveyQuestionTemplateOther' },\n { name: 'SurveyQuestionTemplateColumn' },\n { name: 'SurveyQuestionTemplateColumnChoice' },\n ],\n },\n ],\n },\n};\n\nexport default introspectionQueryResultData;\n","import React from 'react';\nimport { Typography, Button } from '@sm/wds-react';\nimport { BasePage, Helmet, LogoWithText } from '@sm/webassets';\nimport { defineMessages, T } from '@sm/intl';\nimport { generateMetricsAttribute } from '@sm/metrics';\nimport './link-blocked.scss';\n\nconst COPY = defineMessages({\n LINK_BLOCKED_MAIN_MESSAGE: {\n id: 'LinkBlocked.MainMessage',\n defaultMessage: \"The link you clicked was blocked due to a violation of SurveyMonkey's Terms of Use.\",\n description: '[Type: Link][Vis.: Low] - The link blocked page main message',\n },\n LINK_BLOCKED_PAGE_TITLE: {\n id: 'LinkBlocked.PageTitle',\n defaultMessage: 'Link blocked',\n description: '[Type: Link][Vis.: Low] - The link blocked page title',\n },\n LINK_BLOCKED_SIGN_UP_BLURB: {\n id: 'LinkBlocked.SignUpBlurb',\n defaultMessage: 'Want to create your own survey?',\n description: '[Type: Link][Vis.: Low] - A blurb for a link that will direct users to the sign up page',\n },\n LINK_BLOCKED_SIGN_UP: {\n id: 'LinkBlocked.SignUp',\n defaultMessage: 'Sign Up FREE',\n description: '[Type: Link][Vis.: Low] - A link that will direct users to the sign up page',\n },\n LINK_BLOCKED_HOME: {\n id: 'LinkBlocked.SMHome',\n defaultMessage: 'SurveyMonkey Home',\n description: '[Type: Link][Vis.: Low] - A link that will direct users to the homepage',\n },\n LINK_BLOCKED_TERMS_OF_USE: {\n id: 'LinkBlocked.TermsofUse',\n defaultMessage: 'Terms of Use',\n description: '[Type: Link][Vis.: Low] - A link that will direct users to the Terms of Use page',\n },\n});\n\nconst LinkBlocked = () => (\n \n \n {T(COPY.LINK_BLOCKED_MAIN_MESSAGE)}\n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n
\n
\n
\n);\n\nexport default LinkBlocked;\n","import React, { useContext, createContext } from 'react';\nimport { PricingExperiments } from '~shared/types/pricing/experiments';\nimport { PricingConfigStaticData } from '~shared/types/pricing/load-cache';\n\nconst BOOTSTRAP_CONTEXT: PricingExperiments = {\n priceExperiment: {\n hasAssignment: false,\n experimentName: null,\n treatmentName: null,\n },\n featureExperiment: {\n hasAssignment: false,\n experimentName: null,\n treatmentName: null,\n },\n uiExperiment: {\n hasAssignment: false,\n experimentName: null,\n treatmentName: null,\n },\n};\n\n// attempt to grab the cached experiments response to rehydrate when we make it to the browser\nconst win = typeof window !== 'undefined' ? window : undefined;\nconst payloadCache: PricingConfigStaticData | undefined =\n win && (win?.SM?.__LOAD_PAYLOAD_CACHE__ as PricingConfigStaticData);\nconst defaultContextValue = payloadCache?.experiments || BOOTSTRAP_CONTEXT;\n\nexport const PricingExperimentContext = createContext(defaultContextValue);\n\nexport const PricingExperimentProvider = ({\n experiments,\n children,\n}: {\n experiments: PricingExperiments | undefined;\n children: React.ReactNode;\n}): React.ReactElement => (\n \n {children}\n \n);\n\nexport function usePricingExperiments(): PricingExperiments {\n return useContext(PricingExperimentContext);\n}\n","import React, { useContext, createContext } from 'react';\n\nimport { PricingConfigStaticData } from '~shared/types/pricing/load-cache';\nimport { PricingExperience } from '~shared/types/pricing/pricingsvc';\n\n// attempt to grab the cached experiments response to rehydrate when we make it to the browser\nconst win = typeof window !== 'undefined' ? window : undefined;\nconst payloadCache: PricingConfigStaticData | undefined =\n win && (win?.SM?.__LOAD_PAYLOAD_CACHE__ as PricingConfigStaticData);\nconst initialPricingExperience = (payloadCache?.pricingExperience || {}) as PricingExperience;\n\n// NOOP API so the page doesn't explode on initial render\nexport const PackageDataContext = createContext(initialPricingExperience);\n\nexport const PackageDataProvider = ({\n pricingExperience,\n children,\n}: {\n pricingExperience?: PricingExperience;\n children: React.ReactNode;\n}): React.ReactElement => {\n return (\n \n {children}\n \n );\n};\n\nexport const usePricingExperience = (): PricingExperience => useContext(PackageDataContext);\n","enum GROW2529_ACTIONS {\n FORMS_TOGGLE_SWITCH = 'FORMS_TOGGLE_SWITCH',\n FORMS_RESET_TOGGLE_SWITCH = 'FORMS_RESET_TOGGLE_SWITCH',\n}\n\nexport default GROW2529_ACTIONS;\n","import GROW2529_ACTIONS from '~app/pages/Pricing/experiments/grow_2529_forms/actions';\n\nexport enum PACKAGE_ACTIONS {\n SWITCH_PACKAGES = 'SWITCH_PACKAGES',\n UPDATE_PACKAGES = 'UPDATE_PACKAGES',\n UPDATE_PACKAGES_TO_DISPLAY = 'UPDATE_PACKAGES_TO_DISPLAY',\n}\n\nconst ACTIONS = { ...PACKAGE_ACTIONS, ...GROW2529_ACTIONS };\n\nexport default ACTIONS;\n","import { PackageStateType } from '~shared/types/pricing/state';\nimport { PackageActions } from '~shared/types/pricing/actions';\nimport ACTIONS from '~shared/actions';\nimport { PricingPackage } from '~shared/types/pricing/pricingsvc';\n\nexport default function packageReducer(state: PackageStateType, action: PackageActions): PackageStateType {\n const { type, payload } = action;\n\n if (type === ACTIONS.UPDATE_PACKAGES) {\n return {\n ...state,\n allPackages: payload?.allPackages ? payload.allPackages : state.allPackages,\n displayPackages: payload?.displayPackages,\n };\n }\n\n if (type === ACTIONS.UPDATE_PACKAGES_TO_DISPLAY) {\n return {\n ...state,\n packagesToDisplayState: payload?.packagesToDisplay,\n };\n }\n\n if (type === ACTIONS.SWITCH_PACKAGES) {\n const replacementPackage = state?.allPackages.find(pkg => Number(pkg?.id) === payload.replacedWith);\n const newPackages = state?.displayPackages?.map(pkg =>\n Number(pkg?.id) === payload?.packageToBeReplaced ? replacementPackage : pkg\n ) as PricingPackage[];\n\n return {\n ...state,\n displayPackages: newPackages ?? state.displayPackages,\n };\n }\n\n return state;\n}\n","const PROJECT_NAME = 'PricingWeb';\n\nexport default PROJECT_NAME;\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\n/**\n * Shared copy file between all the pages\n */\n\nconst COPY = defineMessages({\n MAIN_HEADING: {\n id: 'Pricing.copy.SharedPagesHeading',\n defaultMessage: 'Choose a plan that works for you',\n desc: {\n id: 'Pricing.copy.SharedPagesHeading',\n message: '[Type: header][Vis: high] - Primary header for pricing summary page',\n project: PROJECT_NAME,\n },\n },\n DETAILS_HEADING: {\n id: 'Pricing.copy.SharedPagesDetailsHeading',\n defaultMessage: 'Compare our full set of features',\n desc: {\n id: 'Pricing.copy.SharedPagesDetailsHeading',\n message: '[Type: header][Vis: high] - Primary header for pricing details page',\n project: PROJECT_NAME,\n },\n },\n EDUCATIONAL_HEADING: {\n id: 'Pricing.copy.SharedPagesEnterpriseHeading',\n defaultMessage: 'Discounts for Students and Educators',\n desc: {\n id: 'Pricing.copy.SharedPagesEnterpriseHeading',\n message: '[Type: header][Vis: high] - Primary header for pricing educational page',\n project: PROJECT_NAME,\n },\n },\n EDUCATIONAL_SUBHEADING: {\n id: 'Pricing.copy.SharedPagesSubHeading',\n defaultMessage:\n 'You must have a valid student, staff, or faculty ID to qualify for discounted pricing. Not eligible for this discount?',\n desc: {\n id: 'Pricing.copy.SharedPagesSubHeading',\n message: '[Type: header][Vis: high] - Subheader for pricing educational page',\n project: PROJECT_NAME,\n },\n },\n VIEW_PRICING: {\n id: 'Pricing.copy.SharedPagesLink',\n defaultMessage: 'View pricing',\n desc: {\n id: 'Pricing.copy.SharedPagesLink',\n message: '[Type: Link][Vis: high] - Link to pricing page',\n project: PROJECT_NAME,\n },\n },\n TEAM_PLANS: {\n id: 'Pricing.copy.SharedPagesTeamPlans',\n defaultMessage: 'Team Plans',\n desc: {\n id: 'Pricing.copy.SharedPagesTeamPlans',\n message: '[Type: Link][Vis.: high] - A link that will direct the user to the Team Plans Pricing Summary page',\n project: PROJECT_NAME,\n },\n },\n INDIVIDUAL_PLANS: {\n id: 'Pricing.copy.SharedPagesIndividualPlans',\n defaultMessage: 'Individual Plans',\n desc: {\n id: 'Pricing.copy.SharedPagesIndividualPlans',\n message:\n '[Type: Link][Vis.: high] - A link that will direct the user to the Individual Plans Pricing Summary page',\n project: PROJECT_NAME,\n },\n },\n ENTERPRISE: {\n id: 'Pricing.copy.SharedPagesEnterprise',\n defaultMessage: 'Enterprise',\n desc: {\n id: 'Pricing.copy.SharedPagesEnterprise',\n message: '[Type: Link][Vis.: high] - A link that will direct the user to the Enterprise Pricing page',\n project: PROJECT_NAME,\n },\n },\n BACK_TO_SUMMARY: {\n id: 'Pricing.copy.SharedPagesBackToSummary',\n defaultMessage: 'Back to pricing summary',\n desc: {\n id: 'Pricing.copy.SharedPagesBackToSummary',\n message: '[Type: Link][Vis.: high] - A link that will direct the user to back to the pricing summary page',\n project: PROJECT_NAME,\n },\n },\n EXPAND_ALL: {\n id: 'Pricing.copy.SharedPagesExpandAll',\n defaultMessage: 'Expand all',\n desc: {\n id: 'Pricing.copy.SharedPagesExpandAll',\n message: '[Type: Link][Vis.: high] - A button discription to Expand all accordions',\n project: PROJECT_NAME,\n },\n },\n COLLAPSE_ALL: {\n id: 'Pricing.copy.SharedPagesCollapseAll',\n defaultMessage: 'Collapse all',\n desc: {\n id: 'Pricing.copy.SharedPagesCollapseAll',\n message: '[Type: Link][Vis.: high] - A button discription to Collapse all accordions',\n project: PROJECT_NAME,\n },\n },\n BASIC: {\n id: 'Pricing.copy.SharedPagesBasic',\n defaultMessage: 'Basic',\n desc: {\n id: 'Pricing.copy.SharedPagesBasic',\n message: '[Type: Heading][Vis.: high] - Basic package name heading',\n project: PROJECT_NAME,\n },\n },\n STANDARD_MONTHLY: {\n id: 'Pricing.copy.SharedPagesStandardMonthly',\n defaultMessage: 'Standard Monthly',\n desc: {\n id: 'Pricing.copy.SharedPagesStandardMonthly',\n message: '[Type: Heading][Vis.: high] - Standard Monthly package name heading',\n project: PROJECT_NAME,\n },\n },\n STANDARD_ANNUAL: {\n id: 'Pricing.copy.SharedPagesStandardAnnual',\n defaultMessage: 'Standard Annual',\n desc: {\n id: 'Pricing.copy.SharedPagesStandardAnnual',\n message: '[Type: Heading][Vis.: high] - Standard Annual package name heading',\n project: PROJECT_NAME,\n },\n },\n STARTER_MONTHLY: {\n id: 'Pricing.copy.SharedPagesStarterMonthly',\n defaultMessage: 'Starter Monthly',\n desc: {\n id: 'Pricing.copy.SharedPagesStarterMonthly',\n message: '[Type: Heading][Vis.: high] - Starter Monthly package name heading',\n project: PROJECT_NAME,\n },\n },\n STARTER_ANNUAL: {\n id: 'Pricing.copy.SharedPagesStarterAnnual',\n defaultMessage: 'Starter Annual',\n desc: {\n id: 'Pricing.copy.SharedPagesStarterAnnual',\n message: '[Type: Heading][Vis.: high] - Starter Annual package name heading',\n project: PROJECT_NAME,\n },\n },\n ADVANTAGE_MONTHLY: {\n id: 'Pricing.copy.SharedPagesAdvantageMonthly',\n defaultMessage: 'Advantage',\n desc: {\n id: 'Pricing.copy.SharedPagesAdvantageMonthly',\n message: '[Type: Heading][Vis.: high] - Advantage Monthly package name heading',\n project: PROJECT_NAME,\n },\n },\n ADVANTAGE_ANNUAL: {\n id: 'Pricing.copy.SharedPagesAdvantageAnnual',\n defaultMessage: 'Advantage Annual',\n desc: {\n id: 'Pricing.copy.SharedPagesAdvantageAnnual',\n message: '[Type: Heading][Vis.: high] - Advantage Annual package name heading',\n project: PROJECT_NAME,\n },\n },\n PREMIER_MONTHLY: {\n id: 'Pricing.copy.SharedPagesPremierMonthly',\n defaultMessage: 'Premier Monthly',\n desc: {\n id: 'Pricing.copy.SharedPagesPremierMonthly',\n message: '[Type: Heading][Vis.: high] - Premier Monthly package name heading',\n project: PROJECT_NAME,\n },\n },\n PREMIER_ANNUAL: {\n id: 'Pricing.copy.SharedPagesPremierAnnual',\n defaultMessage: 'Premier Annual',\n desc: {\n id: 'Pricing.copy.SharedPagesPremierAnnual',\n message: '[Type: Heading][Vis.: high] - Premier Annual package name heading',\n project: PROJECT_NAME,\n },\n },\n TEAM_ADVANTAGE: {\n id: 'Pricing.copy.SharedPagesTeamAdvantage',\n defaultMessage: 'Team Advantage',\n desc: {\n id: 'Pricing.copy.SharedPagesTeamAdvantage',\n message: '[Type: Heading][Vis.: high] - Team Advantage package name heading',\n project: PROJECT_NAME,\n },\n },\n TEAM_PREMIER: {\n id: 'Pricing.copy.SharedPagesTeamPremier',\n defaultMessage: 'Team Premier',\n desc: {\n id: 'Pricing.copy.SharedPagesTeamPremier',\n message: '[Type: Heading][Vis.: high] - Team Premier package name heading',\n project: PROJECT_NAME,\n },\n },\n ENT_PLATINUM: {\n id: 'Pricing.copy.EnterprisePlatinum',\n defaultMessage: 'Enterprise',\n desc: {\n id: 'Pricing.copy.EnterprisePlatinum',\n message: '[Type: Heading][Vis.: high] - Enterprise package name heading',\n project: PROJECT_NAME,\n },\n },\n FLEX: {\n id: 'Pricing.copy.SharedPagesFlex',\n defaultMessage: 'Flex',\n desc: {\n id: 'Pricing.copy.SharedPagesFlex',\n message: '[Type: Heading][Vis.: high] - Flex package name heading',\n project: PROJECT_NAME,\n },\n },\n FORMS: {\n id: 'Pricing.copy.SharedPagesForms',\n defaultMessage: 'Forms',\n desc: {\n id: 'Pricing.copy.SharedPagesForms',\n message: '[Type: Heading][Vis.: high] - Forms package name heading',\n project: PROJECT_NAME,\n },\n },\n PLAN_FEATURES: {\n id: 'Pricing.copy.SharedPlanFeaturesLink',\n defaultMessage: 'See all plan features',\n desc: {\n id: 'Pricing.copy.SharedPlanFeaturesLink',\n message: '[Type: Heading][Vis.: high] - See all plans features link',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { Desc } from '@sm/intl';\n\nimport COPY from '~pricing/copy';\n\nexport enum Sources {\n PRICINGWEB = 'pricingweb',\n}\n\nexport enum Packages {\n Basic = 'BASIC',\n\n StandardMonthly = 'STANDARD_MONTHLY',\n StandardAnnual = 'STANDARD_ANNUAL', // This is preserve because of canonical name (which it may never change)\n\n StarterMonthly = 'STARTER_MONTHLY',\n StarterAnnual = 'STANDARD_ANNUAL',\n\n AdvantageMonthly = 'ADVANTAGE_MONTHLY',\n AdvantageAnnual = 'ADVANTAGE_ANNUAL',\n\n PremierMonthly = 'PREMIER_MONTHLY',\n PremierAnnual = 'PREMIER_ANNUAL',\n\n TeamAdvantage = 'TEAM_ADVANTAGE_ANNUAL',\n TeamPremier = 'TEAM_PREMIER_ANNUAL',\n\n Enterprise = 'ENT_PLATINUM',\n Flex = 'ANALYZE_MONTHLY',\n\n FormsMonthly = 'FORMS_MONTHLY',\n FormsAnnual = 'FORMS_ANNUAL',\n}\n\nexport const PackageIds: Record = {\n [Packages.Basic]: 1,\n [Packages.StandardMonthly]: 31,\n [Packages.StandardAnnual]: 32, // See Packages\n\n [Packages.StarterMonthly]: 31,\n [Packages.StarterAnnual]: 32,\n\n [Packages.AdvantageMonthly]: 33,\n [Packages.AdvantageAnnual]: 34,\n\n [Packages.PremierMonthly]: 35,\n [Packages.PremierAnnual]: 36,\n\n [Packages.TeamAdvantage]: 134,\n [Packages.TeamPremier]: 136,\n\n [Packages.Enterprise]: 26,\n [Packages.Flex]: 37,\n\n [Packages.FormsMonthly]: 41,\n [Packages.FormsAnnual]: 42,\n};\n\nexport const ComparePlanIds: string[] = [\n Packages.Basic,\n Packages.StandardMonthly,\n Packages.StarterAnnual,\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n Packages.TeamAdvantage,\n Packages.TeamPremier,\n Packages.Enterprise,\n];\n\nexport enum LanguageCodes {\n PT = 'pt',\n EN = 'en-US',\n GB = 'en-GB',\n FR = 'fr',\n ES = 'es',\n}\n\nexport enum SkuTypes {\n CoreSeat = 'SUBSCRIPTION_CORE_SEAT',\n AdditionalSeat = 'SUBSCRIPTION_ADDITIONAL_SEAT',\n ResponseOverage = 'RESPONSES',\n}\n\n/**\n * Localization should only happen in the L10nProvider\n * See https://github.com/pages/mntv-webplatform/smweb/#/pages/webs/localization?id=ltl10nprovidergt-t-and-lttgt\n */\nexport const PackageDisplayNames: Record = {\n [Packages.Basic]: COPY.BASIC,\n [Packages.StandardMonthly]: COPY.STANDARD_MONTHLY,\n [Packages.StandardAnnual]: COPY.STANDARD_ANNUAL, // In the process of decommissioning but who knows, maybe never\n [Packages.StarterMonthly]: COPY.STARTER_MONTHLY,\n [Packages.StarterAnnual]: COPY.STARTER_ANNUAL,\n [Packages.AdvantageMonthly]: COPY.ADVANTAGE_MONTHLY,\n [Packages.AdvantageAnnual]: COPY.ADVANTAGE_ANNUAL,\n [Packages.PremierMonthly]: COPY.PREMIER_MONTHLY,\n [Packages.PremierAnnual]: COPY.PREMIER_ANNUAL,\n [Packages.TeamAdvantage]: COPY.TEAM_ADVANTAGE,\n [Packages.TeamPremier]: COPY.TEAM_PREMIER,\n [Packages.Enterprise]: COPY.ENT_PLATINUM,\n [Packages.Flex]: COPY.STANDARD_MONTHLY,\n [Packages.FormsMonthly]: COPY.FORMS,\n [Packages.FormsAnnual]: COPY.FORMS,\n};\n","import ACTIONS from '~shared/actions';\nimport { Grow2529Actions, Grow2529StateType } from './types';\nimport { Packages } from '~shared/constants/pricing';\n\nexport const grow2529State: Grow2529StateType = {\n toggleChecked: [Packages.FormsAnnual, Packages.StarterAnnual],\n};\n\nexport default function Grow2529Reducer(state: Grow2529StateType, action: Grow2529Actions): Grow2529StateType {\n const { type, payload } = action;\n\n if (type === ACTIONS.FORMS_TOGGLE_SWITCH) {\n const newState = state.toggleChecked.filter(pkg => pkg !== payload.packageToBeReplaced);\n newState.push(payload.replacedWith);\n\n return {\n ...state,\n toggleChecked: newState,\n };\n }\n\n if (type === ACTIONS.FORMS_RESET_TOGGLE_SWITCH) {\n return {\n ...state,\n toggleChecked: [Packages.FormsAnnual, Packages.StarterAnnual],\n };\n }\n\n return state;\n}\n","import { PackageStateType } from '~shared/types/pricing/state';\nimport { grow2529State } from '~app/pages/Pricing/experiments/grow_2529_forms/reducer';\n\nexport const packageState: PackageStateType = {\n allPackages: [],\n displayPackages: [],\n packagesToDisplayState: [],\n};\n\nexport const combinedStates = {\n packages: packageState,\n grow2529: grow2529State,\n};\n","import React, { createContext, useContext, useReducer, useMemo, Dispatch } from 'react';\nimport useCombinedReducers from 'use-combined-reducers';\nimport packageReducer from '~shared/reducers/packageReducer';\nimport Grow2529Reducer, { grow2529State } from '~app/pages/Pricing/experiments/grow_2529_forms/reducer';\nimport { combinedStates, packageState } from '~shared/state';\n\nimport { RootPricingProviderStateType, CombinedStates } from '~shared/types/pricing/state';\nimport { CombinedActions } from '~shared/types/pricing/actions';\n\nexport const PricingStateContext = createContext<{ state: CombinedStates; dispatch: Dispatch }>({\n state: combinedStates,\n dispatch: () => {},\n});\n\nexport function PricingStateProvider({ children }: { children: React.ReactNode }): JSX.Element {\n const [state, dispatch] = useCombinedReducers({\n packages: useReducer(packageReducer, packageState),\n grow2529: useReducer(Grow2529Reducer, grow2529State),\n });\n\n const value = useMemo(() => {\n return { state, dispatch };\n }, [dispatch, state]);\n\n return {children};\n}\n\nexport const usePricingState = (): RootPricingProviderStateType => useContext(PricingStateContext);\n","import React from 'react';\nimport { Helmet } from '@sm/webassets';\nimport { HelmetProps } from './types';\n\n/**\n * To appease TS and extend Helmet which does not accept direct JSX.Element component instead as a function,\n * This wrapper is needed to extend the basic Helmet component to accept children as optional\n * See this thread https://github.com/nfl/react-helmet/issues/646#issuecomment-1398700719\n */\n\nexport default function HelmetWithChildren({ children, ...rest }: HelmetProps): JSX.Element {\n return {children};\n}\n","import HelmetWithChildren from './HelmetWrappers';\n\nexport default HelmetWithChildren;\n","export type Links = {\n lang: string;\n href?: string;\n};\n\nexport enum ORDER {\n First = 2,\n Last = 1,\n None = 0,\n Skipped = 3,\n}\n\ntype LanguageDetails = {\n langCode: string;\n order: ORDER;\n};\n\nexport type Language = {\n [key: string]: LanguageDetails;\n};\n\nexport type HrefLangsTagsProps = {\n hrefLangs: Links[];\n path: string;\n};\n\nexport type SeoProps = {\n canonicalPath?: string;\n children?: React.ReactNode;\n};\n","import { Language, Links, ORDER } from './types';\n\nconst languages: Required = Object.freeze({\n 'x-default': {\n langCode: '',\n order: ORDER.None,\n },\n 'en-US': {\n langCode: '',\n order: ORDER.None,\n },\n 'en-GB': {\n langCode: 'co.uk',\n order: ORDER.Last,\n },\n de: {\n langCode: 'de',\n order: ORDER.Last,\n },\n ru: {\n langCode: 'ru',\n order: ORDER.Skipped,\n },\n es: {\n langCode: 'es',\n order: ORDER.First,\n },\n pt: {\n langCode: 'pt',\n order: ORDER.First,\n },\n nl: {\n langCode: 'nl',\n order: ORDER.First,\n },\n fr: {\n langCode: 'fr',\n order: ORDER.First,\n },\n it: {\n langCode: 'fr',\n order: ORDER.First,\n },\n da: {\n langCode: 'da',\n order: ORDER.First,\n },\n sv: {\n langCode: 'sv',\n order: ORDER.First,\n },\n ja: {\n langCode: 'ja',\n order: ORDER.First,\n },\n ko: {\n langCode: 'ko',\n order: ORDER.First,\n },\n zh: {\n langCode: 'zh',\n order: ORDER.First,\n },\n tr: {\n langCode: 'tr',\n order: ORDER.First,\n },\n no: {\n langCode: 'no',\n order: ORDER.First,\n },\n fi: {\n langCode: 'fr',\n order: ORDER.First,\n },\n});\n\nexport const LINKS: Links[] = [\n {\n lang: 'x-default',\n },\n {\n lang: 'en-US',\n },\n {\n lang: 'en-GB',\n },\n {\n lang: 'de',\n },\n {\n lang: 'ru',\n },\n {\n lang: 'es',\n },\n {\n lang: 'pt',\n },\n {\n lang: 'nl',\n },\n {\n lang: 'fr',\n },\n {\n lang: 'it',\n },\n {\n lang: 'da',\n },\n {\n lang: 'sv',\n },\n {\n lang: 'ja',\n },\n {\n lang: 'ko',\n },\n {\n lang: 'zh',\n },\n {\n lang: 'tr',\n },\n {\n lang: 'no',\n },\n {\n lang: 'fi',\n },\n];\n\nexport function getLinks(domain: string, path: string): (Links | undefined)[] {\n const tempLinks = LINKS.map(({ lang }: Links): Links | undefined => {\n const language = languages[lang].langCode;\n if (languages[lang].order === ORDER.None) {\n return {\n lang,\n href: `https://www.${domain}.com${path}`,\n };\n }\n if (languages[lang].order === ORDER.First) {\n return {\n lang,\n href: `https://www.${language}.${domain}.com${path}`,\n };\n }\n if (languages[lang].order === ORDER.Last) {\n return {\n lang,\n href: `https://www.${domain}.${language}${path}`,\n };\n }\n return undefined;\n });\n return tempLinks.filter(links => links);\n}\n","import React, { useContext, useMemo } from 'react';\nimport { StaticContext } from '@sm/webassets';\n\nimport HelmetWithChildren from '~pricing/lib/HelmetWrapper';\nimport { SeoHeadTags, HrefLangsTags } from '~pricing/components/SEO';\n\nimport { getLinks } from './links';\nimport { SeoProps, Links } from './types';\n\nexport default function Seo({ canonicalPath = '', children }: SeoProps): JSX.Element {\n const {\n environment: { domain },\n url,\n } = useContext(StaticContext);\n const path = canonicalPath || url;\n const hrefLangs = useMemo(() => getLinks(domain, path) as Links[], [domain, path]);\n return (\n <>\n \n {/*\n these need to be referenced as function calls because of Helmet's requirements for children:\n https://github.com/nfl/react-helmet/issues/326\n */}\n {SeoHeadTags()}\n {HrefLangsTags({ hrefLangs, path })}\n \n {children}\n \n );\n}\n","import * as React from 'react';\nimport { t } from '@sm/intl';\n\nimport COPY from './copy';\n\nexport default function SeoHeadTags(): JSX.Element {\n return (\n <>\n {t(COPY.pageTitle)}\n \n \n \n );\n}\n","import * as React from 'react';\nimport { HrefLangsTagsProps } from './types';\n\nexport default function HrefLangsTags({ hrefLangs, path }: HrefLangsTagsProps): JSX.Element {\n return (\n <>\n \n {hrefLangs?.map(({ lang, href }) => (\n \n ))}\n \n );\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n pageTitle: {\n id: 'Pricing.copy.pageTitle',\n defaultMessage: 'SurveyMonkey Plans and Pricing',\n desc: {\n id: 'Pricing.copy.pageTitle',\n message: '[Type: Label][Vis: med] - Page title for Pricing pages',\n project: PROJECT_NAME,\n },\n },\n pageDescription: {\n id: 'Pricing.copy.pageDescription',\n defaultMessage:\n 'Create and publish online surveys in minutes, and view results graphically and in real time. SurveyMonkey provides free online questionnaire and survey software.',\n desc: {\n id: 'Pricing.copy.pageDescription',\n message: '[Type: Label][Vis: med] - Page meta description for pricing pages',\n project: PROJECT_NAME,\n },\n },\n pageKeywords: {\n id: 'Pricing.copy.pageKeywords',\n defaultMessage:\n 'questionnaire, questionnaires, questionaire, questionaires, free online survey, free online surveys',\n desc: {\n id: 'Pricing.copy.pageKeywords',\n message: '[Type: Label][Vis: med] - Page meta keywords for pricing pages. Includes deliberate misspellings',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { Packages } from '~shared/constants/pricing';\nimport { FeatureSet } from '~shared/types/pricing/features';\nimport { DiscountInfo, PackageList, PricingPackage } from '~shared/types/pricing/pricingsvc';\n\nexport enum PackageType {\n Individual = 'individual',\n Teams = 'teams',\n Educational = 'educational',\n Enterprise = 'enterprise',\n Details = 'details', // `pricing/details` is a valid route that renders the teams details page\n}\n\ntype Currency = {\n code: string;\n};\n\nexport type PackageSkuCost = {\n skuType: string;\n cost: number;\n currency: Currency;\n};\n\nexport type PackageSkuCosts = PackageSkuCost[];\n\nexport enum PACKAGE_PRICE_TYPE {\n SUMMARY = 'Summary',\n DETAIL = 'Detail',\n COMPARISON = 'Comparison',\n}\n\nexport type PACKAGE_PRICE_TYPE_KEYS = keyof typeof PACKAGE_PRICE_TYPE;\nexport type PACKAGE_PRICE_TYPE_VALUES = `${PACKAGE_PRICE_TYPE}`;\nexport type DisplayString = React.ReactElement | string | undefined;\nexport type PackageData = PricingPackage;\nexport type PackageDataSet = PackageData[];\nexport type PackageSet = Packages[];\n\nexport type PackagesHook = {\n allPackages: PricingPackage[];\n userPackage: PricingPackage;\n displayPackages: PricingPackage[];\n discountInfo: DiscountInfo | undefined;\n showEduDiscount: boolean;\n packagesToDisplay: Packages[];\n comparePlans: boolean;\n overageCost: PackageSkuCost | undefined;\n getPackageById(packageId: number | string): PricingPackage;\n};\n\nexport type PackageMap = Record;\n\nexport type PackagesProviderProps = {\n packagesToDisplay: PackageList;\n showEduDiscount: boolean;\n comparePlans: boolean;\n children: React.ReactNode;\n};\n\nexport type PackageProps = {\n packageName: Packages;\n skuCost: PackageSkuCosts;\n comparisonSkuCost: PackageSkuCosts;\n ribbonText?: string | boolean | null;\n features: FeatureSet;\n comparePlans: boolean;\n isLastPackage: boolean;\n discountInfo?: DiscountInfo;\n};\n\nexport type RoutePackageMap = {\n [x: string]: PackageSet;\n};\n","import { GBCountryCodes, USTerritoryCountryCodes } from '@sm/locale/dist/localeSets';\n\nimport { Packages } from '~shared/constants/pricing';\nimport { PackageSet, PackageType, RoutePackageMap } from '~shared/types/pricing/package';\n\nexport const EXTERNAL_SCRIPTS: readonly string[] = Object.freeze(['https://js.stripe.com/v3/']);\n\nexport const MONTHLY_PACKAGES: PackageSet = [\n Packages.StandardMonthly,\n Packages.AdvantageMonthly,\n Packages.PremierMonthly,\n Packages.FormsMonthly,\n Packages.Flex,\n];\n\nexport const INDIVIDUAL_PACKAGES: PackageSet = [\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n Packages.StandardMonthly,\n Packages.Basic,\n];\n\nexport const INDIVIDUAL_PACKAGES_WITH_STARTER: PackageSet = [\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n Packages.StarterAnnual,\n Packages.StandardMonthly,\n Packages.Basic,\n];\n\nexport const INDIVIDUAL_PACKAGES_WITH_FORMS: PackageSet = [\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n Packages.StarterAnnual,\n Packages.FormsAnnual,\n Packages.Basic,\n];\n\nexport const INDIVIDUAL_PACKAGES_WITH_FORMS_REVERSED: PackageSet = [\n Packages.Basic,\n Packages.FormsAnnual,\n Packages.StarterAnnual,\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n];\n\nexport const INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL: PackageSet = [\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n Packages.StandardMonthly,\n Packages.FormsAnnual,\n Packages.Basic,\n];\n\nexport const INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL_REVERSED: PackageSet = [\n Packages.Basic,\n Packages.FormsAnnual,\n Packages.StandardMonthly,\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n];\n\n// For now, the educational package set is identical to what we show for\n// individual details. That may change some day, though, so making an explicitly\n// named set here in case that ever changes. The shallow copy is to prevent any\n// unexpected results when doing equality checks elsewhere\nexport const EDUCATIONAL_PACKAGES: PackageSet = [...INDIVIDUAL_PACKAGES];\n\nexport const TEAMS_PACKAGES: PackageSet = [Packages.TeamAdvantage, Packages.TeamPremier, Packages.Enterprise];\n\nexport const SUITE_PRICING_PACKAGES: PackageSet = [\n Packages.AdvantageAnnual,\n Packages.TeamAdvantage,\n Packages.TeamPremier,\n];\n\n// As of 2023/05/09, only annual packages are eligible for stripe checkout\nexport const STRIPE_ELIGIBLE_PACKAGES: PackageSet = [\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n Packages.TeamAdvantage,\n Packages.TeamPremier,\n];\n\nexport const GUAC_COUNTRY_CODES = Object.freeze(['GB', 'US', 'AU', 'CA']);\nexport const STARTER_ENABLED_COUNTRIES = Object.freeze([...USTerritoryCountryCodes, ...GBCountryCodes, 'AU']);\n\nexport const COMPARISON_PACKAGES: Partial> = {\n [Packages.TeamAdvantage]: Packages.AdvantageAnnual,\n [Packages.TeamPremier]: Packages.PremierAnnual,\n};\n\n// A list of packages that should display highlighted\nexport const HIGHLIGHTED_PACKAGES = [Packages.AdvantageAnnual];\n\n// these domains do not get hreflang tags added to their \nexport const SKIP_HREF_LANG_TAGS = Object.freeze({\n 'de.surveymonkey.com': true,\n 'ru.surveymonkey.com': true,\n});\n\n// Package type(route) and comparison packages mapping\nexport const ROUTE_PACKAGE_MAP: RoutePackageMap = {\n [PackageType.Individual]: INDIVIDUAL_PACKAGES,\n [PackageType.Teams]: TEAMS_PACKAGES,\n [PackageType.Educational]: EDUCATIONAL_PACKAGES,\n};\n","import { createUseStyles } from 'react-jss';\n\nconst useMainStyles = createUseStyles(() => ({\n Main: {\n maxWidth: 1400,\n margin: [0, 'auto'],\n },\n}));\n\nexport default useMainStyles;\n","import React from 'react';\nimport { BasePage } from '@sm/webassets';\nimport { useLocation } from 'react-router-dom';\nimport SEO from '~pricing/components/SEO';\nimport useScript from '~pricing/hooks/useScripts';\nimport { EXTERNAL_SCRIPTS } from '~pricing/lib/constants';\nimport useMainStyles from './useStyles';\n\nexport default function Layout({ children }: { children: React.ReactElement }): JSX.Element {\n useScript(EXTERNAL_SCRIPTS);\n // GP-69 Needs full page width so having the 1400px max-width from Main breaks the ui\n const routerLocation = useLocation();\n const { Main } = useMainStyles();\n return (\n \n \n
{children}
\n
\n
\n );\n}\n","import { useEffect, useRef } from 'react';\n\n/**\n * This hook creates a script tag that is appended to the body of an HTML page\n * e.g. the Stripe fraud detection script.\n * @param {string[]} urls\n * @returns void\n */\n\nexport default function useScript(urls: readonly string[]): void {\n const scriptElements = useRef([]);\n\n useEffect(() => {\n scriptElements.current = urls.map((url: string): HTMLScriptElement => {\n const existingScriptElement = document.querySelector(`script[src=\"${url}\"]`) as HTMLScriptElement;\n if (!existingScriptElement) {\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.type = 'text/javascript';\n script.setAttribute('data-status', 'loading');\n document.body.appendChild(script);\n return script;\n }\n return existingScriptElement;\n });\n\n return () => {\n // cleanup\n scriptElements.current?.forEach(\n (scriptElement: HTMLScriptElement) => scriptElement && document.body.removeChild(scriptElement)\n );\n };\n }, [urls]);\n}\n","import { useLocation } from 'react-router';\nimport { TrackingDetails } from './types';\n\n/**\n * We need to send exactly what is sent in prod now so we do not mess up existing dashboards.\n * For now, details & summary will suffice (we do not track enterprise page).\n * Do not change the object mapping without approval\n */\nconst PAGE_NAME_MAP: Record = Object.freeze({\n pricing: 'pricing summary canonical',\n 'pricing-teams': 'pricing summary teams',\n 'pricing-individual': 'pricing summary individual',\n 'pricing-details': 'pricing details canonical',\n 'pricing-teams-details': 'pricing details teams',\n 'pricing-individual-details': 'pricing details individual',\n 'pricing-educational': 'pricing educational',\n});\n\n/**\n * Similar to the above, a map of generated page names to the ut_source\n * parameter that will be attached to outgoing links\n */\nconst UT_SOURCE_MAP: Record = Object.freeze({\n pricing: 'pricing-teams-summary',\n 'pricing-teams': 'pricing-teams-summary',\n 'pricing-details': 'pricing-teams-details',\n 'pricing-individual': 'pricing-indv-summary',\n 'pricing-teams-details': 'pricing-teams-details',\n 'pricing-individual-details': 'pricing-indv-details',\n 'pricing-educational': 'pricing-indv-details',\n 'pricing-enterprise': 'pricing-teams-summary', // for now we are replicating legacy billweb\n 'pricing-enterprise-details': 'pricing-teams-summary',\n});\n\n/**\n * This hook returns the tracking info we need for either @sm/metrics or amplitude.\n * This hook can be extended to support all required tracking information in the near future\n * If display name is not provided, we fall back to the route.\n * @returns TrackingDetails\n */\nexport default function useTrackingDetails(): TrackingDetails {\n const { pathname, search } = useLocation();\n const utSource = new URLSearchParams(search).get('ut_source');\n // strips and replaces beginning and ending forward slash in the pathname\n const pageName = pathname\n ?.replace(/\\//g, '-')\n .replace(/^\\W+|\\W+$/gm, '')\n .trim();\n\n return {\n utSource,\n pageName: PAGE_NAME_MAP[pageName],\n pageUtSource: UT_SOURCE_MAP[pageName],\n };\n}\n","import { useContext, useMemo, useState } from 'react';\nimport { StaticContext } from '@sm/webassets';\n\nimport { PackageIds } from '~shared/constants/pricing';\nimport { STARTER_ENABLED_COUNTRIES } from '~pricing/lib/constants';\n\nimport { StarterEnabled } from './types';\n\n/**\n * Given an authenticated user and the country they live in, check to see if\n * that country is in the list of countries that qualify for Standard Annual.\n * @returns {StarterEnabled} A boolean flag: { isStarterEnabled: boolean; }\n */\nexport default function useStarterEnabled(): StarterEnabled {\n const [isStarterEnabled, setIsStarterEnabled] = useState(false);\n const {\n user: {\n package: packageID,\n isAuthenticated,\n subscribedAt,\n billingCountry, // see https://momentiveai.atlassian.net/browse/GROW-2417\n },\n } = useContext(StaticContext);\n\n useMemo(() => {\n const convertedPackageID = parseInt(packageID, 10);\n const isQualifiedBasedOnAuthAndCountry = isAuthenticated && STARTER_ENABLED_COUNTRIES.includes(billingCountry);\n // if the user package_id is 32 then there is no need to check subscription status\n if (isQualifiedBasedOnAuthAndCountry && convertedPackageID === PackageIds.STANDARD_ANNUAL) {\n setIsStarterEnabled(true);\n } else {\n setIsStarterEnabled(isQualifiedBasedOnAuthAndCountry && convertedPackageID === PackageIds.BASIC && !subscribedAt);\n }\n }, [packageID, billingCountry, isAuthenticated, subscribedAt]);\n return {\n isStarterEnabled,\n };\n}\n","import { Response } from 'express';\nimport { Packages } from '~shared/constants/pricing';\nimport { ExpCookie, ExpResult } from '~shared/types/pricing/experiments';\n/**\n * Checks if we are in a browser\n * @returns boolean\n */\nexport const EMPTY_STRING = '';\n\n/**\n * Check if we are in the DOM or browser\n * @returns boolean\n */\nexport const isBrowser = (): boolean => typeof window === 'object';\n\n/**\n * See https://docs.google.com/document/d/1a6JLyH4V7C6Wipl28lJa84yeaqqvUINfrBLmUQ3lNLA/\n * See https://momentiveai.atlassian.net/wiki/spaces/GROW/pages/977240306/Amplitude+Naming+Conventions\n */\nexport const AMPLITUDE_PAGE_EVENTS: Record = Object.freeze({\n pageView: 'page viewed',\n selectedPlans: 'pricing selected plan',\n experimentEvent: 'experiment event',\n});\n\n/**\n * https://momentiveai.atlassian.net/browse/GROW-2234\n * Some canonical name does not match what amplitude tracking expects\n * The object mapping resolves anything that is different from the canonical name\n * This can also serve as an override to existing packages. Please do so with authorazation\n */\nexport const AMPLITUDE_SELECTED_PACKAGE_MAP: Partial> = Object.freeze({\n [Packages.Enterprise]: 'enterprise_platinum',\n});\n\n/**\n * A utility function that converts arrays to object like\n * @param keys\n * @returns object\n */\n\nexport function convertToObject(...keys: K[]): { [T in K]: string } {\n const tempObject = {} as { [T in K]: string };\n return keys.reduce((a, v) => ({ ...a, [v]: v }), tempObject);\n}\n\n/**\n * This is a modified clone of\n * https://github.com/mntv-webplatform/smpackages/blob/97fcc41a6808c4e2b867dc35d54b2b5abc21279c/packages/metrics/src/utils.ts#L9\n * @param cname\n * @param defaultValue\n * @returns The cookie value we are interested in\n */\nexport function getCookieValue(cname: string): string {\n if (!isBrowser()) return '';\n const name = `${cname}=`;\n let cookieValue = '';\n const decodedCookie = decodeURIComponent(document.cookie);\n const decodedCookies = decodedCookie.split(';');\n\n decodedCookies?.forEach((c: string) => {\n let cSub = c;\n while (cSub.startsWith(' ')) {\n cSub = c.substring(1);\n }\n if (cSub.startsWith(name)) {\n cookieValue = c.substring(name.length + 1, c.length);\n }\n });\n return cookieValue;\n}\n/**\n * We need to set smexp cookie for logged-out experiments to ensure smooth experience from page to page\n * The smexp cookie value has the format {experiment_id}.{treatment_id}.{datetime_created}|{experiment_id2}.{treatment_id2}.{datetime_created2}\n * Since we don't want to take any chances we will set every cookie expsvc returns except the preview cookie.\n * @param res\n * @param cookies\n */\nexport function setExperimentCookies(res: Response, cookies: ExpCookie[] | undefined, hostname: string): void {\n const remappedCookies = cookies?.reduce((acc: ExpResult, { name, value, age }: ExpCookie) => {\n return {\n ...acc,\n [name]: {\n value: acc[name]?.value ? `${acc[name]?.value}|${value}` : value,\n age,\n },\n };\n }, {});\n if (remappedCookies) {\n Object.keys(remappedCookies).forEach((name: string) => {\n const { value, age } = remappedCookies[name];\n const removeDeDupsCookieValue = Array.from(new Set(value.split('|'))).join('|');\n res.cookie(name, removeDeDupsCookieValue, {\n domain: hostname?.replace('www', ''), // surveymonkey ttld is preversed with this approach\n expires: new Date(age * 1000 + Date.now()),\n secure: true,\n path: '/',\n encode: tempValue => tempValue,\n });\n });\n }\n}\n\nexport { convertToObject as default };\n","import { MetricsTracker, USER_EVENTS, generateMetricsAttribute } from '@sm/metrics';\nimport { AMPLITUDE_PAGE_EVENTS, AMPLITUDE_SELECTED_PACKAGE_MAP } from '~shared/util';\nimport { Sources } from '~shared/constants/pricing';\nimport { AmplitudeProps, CTAClickEventType, PageEventLoadType } from './types';\n\n/**\n * Function to create an amplitude event to log the pricing page being loaded\n *\n * @param {string} pageName Name of page being loaded\n * @param {string} utSource utSource params\n * @returns void\n */\nexport function logPricingPageLoad({ pageName, utSource }: PageEventLoadType): void {\n if (!pageName) {\n return;\n }\n\n // async this to not block main thread\n setTimeout(() => {\n MetricsTracker.track({\n name: USER_EVENTS.PAGE_VIEW,\n data: {\n actionType: USER_EVENTS.PAGE_VIEW,\n actionFlow: pageName,\n amplitudeEvent: AMPLITUDE_PAGE_EVENTS.pageView,\n pageName,\n upgradeTriggerSource: utSource,\n source: Sources.PRICINGWEB,\n },\n });\n }, 0);\n}\n\n/**\n * Function to create an amplitude event to log a CTA button being clicked\n *\n * @param {string} pageName Name of page being loaded\n * @param {string} packageId ID of package where CTA was clicked\n * @param {string} packageName Name of package where CTA was clicked\n * @returns String\n */\nexport function generateCTAMetricsAttribute({ pageName, packageId, packageName }: CTAClickEventType): String {\n return generateMetricsAttribute({\n name: USER_EVENTS.ELEMENT_INTERACTION,\n data: {\n actionType: USER_EVENTS.ELEMENT_INTERACTION,\n actionFlow: pageName,\n amplitudeEvent: AMPLITUDE_PAGE_EVENTS.selectedPlans,\n pageName,\n selectedPackageId: packageId,\n selectedPackageName: AMPLITUDE_SELECTED_PACKAGE_MAP[packageName] ?? packageName.toLowerCase(),\n source: Sources.PRICINGWEB,\n },\n });\n}\n\n/**\n * A generic function to log amplitude events\n */\nexport function logAmplitudeEvent({\n eventName,\n pageName,\n amplitudeEvent = AMPLITUDE_PAGE_EVENTS.pageView,\n source = Sources.PRICINGWEB,\n userEvent = USER_EVENTS.ELEMENT_INTERACTION,\n otherData = {},\n}: AmplitudeProps): void {\n // async this to not block main thread\n setTimeout(() => {\n MetricsTracker.track({\n name: userEvent,\n data: {\n pageName,\n amplitudeEvent,\n eventName,\n source,\n ...otherData,\n },\n });\n }, 0);\n}\n","import { ExperimentList, TreatmentExperimentMap, ExperimentIdentifier } from '~shared/types/pricing/experiments';\n\nexport const EXPERIMENT_IDENTIFIERS: ExperimentIdentifier = {\n GROW_2197: {\n name: 'grow_2197_row_starter_annual_v2',\n treatment: 'grow_2197_row_starter_annual_v2_treatment',\n },\n ENTERPRISE_FEATURES_GP69: {\n name: 'gp_69_pnp_sme_features',\n treatment: 'gp_69_pnp_sme_treatment',\n },\n GROW_2529_FORMS: {\n name: 'grow_2529_forms_pricing_page',\n treatment1: 'grow_2529_forms_pricing_page_treatment1',\n treatment2: 'grow_2529_forms_pricing_page_treatment2',\n },\n GROW_2629_FORMS_V2: {\n name: 'grow_2629_forms_pricing_page_marketing',\n treatment: 'grow_2629_forms_pricing_page_marketing_treatment',\n },\n GROW_2427: {\n name: 'grow_2427_pnp_social_proof',\n treatment: 'grow_2427_pnp_social_proof_treatment',\n },\n GROW_2763: {\n name: 'grow_2763_gb_ca_and_edu_price_test',\n treatment: 'grow_2763_gb_ca_and_edu_price_test_treatment',\n },\n};\n\n// A map of `price_test` treatment names to the original experiment\n// identifier. Only experiments that have been added to experimentsvc\n// as a \"managed experiment\" should be added here.\n// ALL TREATMENTS INCLUDING CONTROL MUST BE ADDED\n//\n// This step is needed since we get price tests with the magical experiment\n// identifier \"price_test\", which hands us a treatment but not the original\n// experiment identifier.\n//\n// Price tests are generally used to test package price changes, but some times\n// also make changes to displayed features or some other UI change. If this is\n// the case for your test, be sure to add it to `FEATURE_EXPERIMENTS` or\n// `UI_EXPERIMENTS` below so other experiments will not be considered\nexport const PRICE_TEST_TREATMENTS: TreatmentExperimentMap = {\n grow_2197_row_starter_annual_v2_control: EXPERIMENT_IDENTIFIERS.GROW_2197.name,\n grow_2197_row_starter_annual_v2_treatment: EXPERIMENT_IDENTIFIERS.GROW_2197.name,\n grow_2629_forms_pricing_page_marketing_control: EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name,\n grow_2629_forms_pricing_page_marketing_treatment: EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name,\n grow_2529_forms_pricing_page_control: EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name,\n grow_2529_forms_pricing_page_treatment1: EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name,\n grow_2529_forms_pricing_page_treatment2: EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name,\n grow_2763_gb_ca_and_edu_price_test_control: EXPERIMENT_IDENTIFIERS.GROW_2763.name,\n grow_2763_gb_ca_and_edu_price_test_treatment: EXPERIMENT_IDENTIFIERS.GROW_2763.name,\n};\n\n// same situation as above, but for \"feature_test\"\nexport const FEATURE_TEST_TREATMENTS: TreatmentExperimentMap = {};\n\n// A list of experiments that may change the display of prices. If your experiment\n// is listed in PRICE_TEST_TREATMENTS above, you do not need to add it again! If\n// a user is not assigned to any running price_test, we will start checking\n// for assignments against this list of experiment identifiers\nexport const PRICE_EXPERIMENTS: ExperimentList = [\n EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name, // order matters for these forms experiment\n EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name,\n];\n\n// A list of experiments that may change the display of features. This can include\n// an experiment being run as a price_test, but if your experiment is already in\n// FEATURE_TEST_TREATMENTS, DO NOT ADD IT HERE\nexport const FEATURE_EXPERIMENTS: ExperimentList = [];\n\n// A list of experiments that will alter the UI of the page and are siginificant\n// enough that they should not overlay with each other. If you have a price test or\n// feature test above that makes changes to the UI, you should add them here so the\n// user isn't added to a different UI experiment\nexport const UI_EXPERIMENTS: ExperimentList = [\n EXPERIMENT_IDENTIFIERS.ENTERPRISE_FEATURES_GP69.name,\n EXPERIMENT_IDENTIFIERS.GROW_2197.name,\n EXPERIMENT_IDENTIFIERS.GROW_2427.name,\n EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name, // order matters for these forms experiment\n EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name,\n];\n","import { FormattedNumber } from '@sm/intl';\n\nimport { ComparePlanIds, PackageIds, Packages, SkuTypes } from '~shared/constants/pricing';\nimport {\n INDIVIDUAL_PACKAGES_WITH_FORMS,\n INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL,\n INDIVIDUAL_PACKAGES_WITH_FORMS_REVERSED,\n INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL_REVERSED,\n INDIVIDUAL_PACKAGES_WITH_STARTER,\n ROUTE_PACKAGE_MAP,\n TEAMS_PACKAGES,\n} from './constants';\n\nimport { FeatureSetMap } from '~pricing/transformers/types';\nimport {\n PackageData,\n PackageDataSet,\n PackageSet,\n PackageSkuCost,\n PackageSkuCosts,\n PackageType,\n} from '~shared/types/pricing/package';\nimport { DiscountInfo, Feature } from '~shared/types/pricing/pricingsvc';\nimport { PlaceHolderType } from './types';\nimport { ExperimentAssignment } from '~shared/types/pricing/experiments';\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\n/**\n * Creates a className friendly string from a package label\n *\n * @param {PlaceHolderType} packageObj The package object to create the class name from\n * @return {string} The label name, ready to be used as a className\n */\nexport function packageLabelToClassName(packageObj: PlaceHolderType): string {\n return packageObj.label.trim().replace(/\\s/g, '-').toLowerCase();\n}\n\n/**\n * Returns a package's SKU cost object for a particular SKU type\n *\n * @param skuCosts The package's SKU costs\n * @param skuType The type of SKU to find\n * @returns The SkuCost object of the requested type or undefined if not found\n */\nexport function getSkuCostByType(skuCosts: PackageSkuCosts, skuType: SkuTypes): PackageSkuCost | undefined {\n return skuCosts.find(sku => sku?.skuType === skuType);\n}\n\n/**\n *\n * @param skuCosts\n * @returns The package set cost information based on the subscription type\n */\nexport function getCoreCostFromSkus(skuCosts: PackageSkuCosts): PackageSkuCost | undefined {\n return getSkuCostByType(skuCosts, SkuTypes.CoreSeat);\n}\n\n/**\n *\n * @param packages\n * @returns The package set cost information replicated from one of the other comparison packages\n */\n\nexport function getCoreCostReplicaForBasicPackage(packages: PackageDataSet): PackageSkuCost | undefined {\n const referencePackageSkuCost = packages.find(packageData => packageData?.skuCost.length)?.skuCost[0];\n return referencePackageSkuCost\n ? {\n skuType: referencePackageSkuCost?.skuType,\n cost: 0,\n currency: referencePackageSkuCost?.currency,\n }\n : undefined;\n}\n\n/**\n * Given two skuCosts, returns the rounded percentage savings between them\n *\n * @param {object} skuCostOriginal The originally priced skuCost object\n * @param {object} skuCostDiscounted The discounted priced skuCost object\n */\nexport function calculateSavingsPercent(skuCostOriginal: PackageSkuCost, skuCostDiscounted: PackageSkuCost): number {\n let retVal = 0;\n const costDifference = skuCostOriginal?.cost - skuCostDiscounted?.cost;\n\n // If the \"discounted\" price is greater, we'll just ignore that...\n if (costDifference > 0) {\n retVal = Math.floor((costDifference / skuCostOriginal?.cost) * 100);\n }\n\n return retVal;\n}\n\nexport function formatCostInSkuCurrency(\n value: number,\n skuCost: PackageSkuCost,\n minimumFractionDigits = 0\n): React.ReactElement | string {\n return FormattedNumber({\n value,\n formatStyle: 'currency',\n currency: skuCost?.currency?.code,\n currencyDisplay: 'symbol',\n minimumFractionDigits,\n });\n}\n\nexport function formatCostInLocaleCurrency(\n skuCost: PackageSkuCost,\n minimumFractionDigits = 0\n): React.ReactElement | string {\n return formatCostInSkuCurrency(skuCost.cost / 100, skuCost, minimumFractionDigits);\n}\n\nexport function monthlyCostInDollars(skuCost: PackageSkuCost): number {\n return skuCost.cost / 100 / 12;\n}\n\nexport function formatMonthlyCostInLocaleCurrency(skuCost: PackageSkuCost): React.ReactElement | string {\n const monthlyCost = monthlyCostInDollars(skuCost);\n return formatCostInSkuCurrency(monthlyCost, skuCost);\n}\n\nexport function getDiscountedSkuCost(skuCost: PackageSkuCost, discountInfo: DiscountInfo): PackageSkuCost {\n const tempSkuCost = { ...skuCost };\n tempSkuCost.cost = (skuCost.cost * (100 - discountInfo.discountPercentage)) / 100;\n return tempSkuCost;\n}\n\nexport function createPackagesList(packages: PackageDataSet, packageSet: PackageSet): PackageDataSet {\n // The provided package list is both the filter and determines the order\n return packages\n .filter((packageObj: PackageData) => packageSet.includes(packageObj.packageName))\n .sort((a, b) => packageSet.indexOf(a.packageName) - packageSet.indexOf(b.packageName));\n}\n\nexport function convertFeatureSetToMap(featureSet: Feature[]): FeatureSetMap {\n return featureSet.reduce((acc: FeatureSetMap, feature: Feature) => {\n acc[feature.name] = feature;\n return acc;\n }, {});\n}\n\n/**\n * Get PackageSet based on package type (route) and if starter is enabled for user\n * @param packageType\n * @param isStarterEnabled (optional)\n * @returns PackageSet\n */\n\nexport function getPackageSetBasedOnPath(\n packageType: string,\n isForms?: ExperimentAssignment | null,\n isStarterEnabled = false\n): PackageSet {\n if (isForms && packageType === PackageType.Individual) {\n if (isStarterEnabled) {\n return isForms?.hasAssignment && isForms.treatmentName === EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2\n ? INDIVIDUAL_PACKAGES_WITH_FORMS_REVERSED\n : INDIVIDUAL_PACKAGES_WITH_FORMS;\n }\n return isForms?.hasAssignment && isForms.treatmentName === EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2\n ? INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL_REVERSED\n : INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL;\n }\n if (isStarterEnabled && packageType === PackageType.Individual) {\n return INDIVIDUAL_PACKAGES_WITH_STARTER;\n }\n return ROUTE_PACKAGE_MAP[packageType] ?? TEAMS_PACKAGES;\n}\n\nexport function getPackagesBasedOnQueryStringIds(ids: string, packageType: string): PackageSet {\n const packages = ids\n .split(',')\n .map(id => {\n return Object.keys(PackageIds).find((key: string): boolean => {\n return PackageIds[key as keyof typeof PackageIds] === Number(id);\n });\n })\n .filter(packageName => packageName && ComparePlanIds.includes(packageName)) as PackageSet;\n\n return packages?.length ? packages : getPackageSetBasedOnPath(packageType);\n}\n\nexport function isPaidUser(pkg: number | string): boolean {\n return Number(pkg) !== PackageIds[Packages.Basic];\n}\n","import { StaticContext } from '@sm/webassets';\nimport React, { createContext, useMemo, useContext, useCallback, useState, useEffect } from 'react';\nimport { PackageIds, SkuTypes } from '~shared/constants/pricing';\nimport { PricingPackage } from '~shared/types/pricing/pricingsvc';\nimport { PackageSkuCost, PackagesProviderProps, PackagesHook, PackageMap } from '~shared/types/pricing/package';\nimport { usePricingExperience } from './usePricingExperience';\nimport { usePricingState } from './usePricingState';\nimport ACTIONS from '~shared/actions';\nimport { CombinedActions } from '~shared/types/pricing/actions';\n\nconst NULL_PACKAGE = {} as PricingPackage;\nconst ANONYMOUS_PACKAGE = 1;\n\n// NOOP API so the page doesn't explode on initial render\nexport const PackagesContext = createContext({\n allPackages: [],\n userPackage: NULL_PACKAGE,\n displayPackages: [],\n discountInfo: undefined,\n showEduDiscount: false,\n packagesToDisplay: [],\n comparePlans: false,\n overageCost: undefined,\n getPackageById: packageId => NULL_PACKAGE,\n});\n\nexport function PackagesProvider({\n packagesToDisplay,\n showEduDiscount,\n comparePlans,\n children,\n}: PackagesProviderProps): JSX.Element {\n const { packages, discountInfo } = usePricingExperience();\n const {\n state: {\n packages: { displayPackages, packagesToDisplayState },\n },\n dispatch,\n } = usePricingState();\n\n const [packagesForExperience, setPackagesForExperience] = useState(packages);\n const [packageIdToPackageMap, setPackageIdToPackageMap] = useState({});\n\n const { user } = useContext(StaticContext);\n\n // this will reformat the data from pricingsvc to match whether we are displaying\n // the educational discount or not. since the OG data contains _all_ the information,\n // we just need to fake what gets disseminated to the page components at this point\n useMemo(() => {\n const updatedPackageMap: PackageMap = {};\n const updatedPackages = packages.map(pkg => {\n const newPackage = {\n ...pkg,\n\n // `comparisonSkuCosts` is the OG pricing data, so if this isn't EDU pricing,\n // we'll slip that in as the normal `skuCost`\n skuCost: showEduDiscount || !pkg.comparisonSkuCost?.length ? pkg.skuCost : pkg.comparisonSkuCost,\n\n // in normal view, don't send the comparison costs down\n comparisonSkuCost: showEduDiscount ? pkg.comparisonSkuCost : undefined,\n };\n updatedPackageMap[parseInt(newPackage.id, 10)] = newPackage;\n return newPackage;\n });\n\n setPackagesForExperience(updatedPackages);\n setPackageIdToPackageMap(updatedPackageMap);\n }, [showEduDiscount, packages, setPackagesForExperience, setPackageIdToPackageMap]);\n\n const getPackageById = useCallback(\n packageId => packageIdToPackageMap[parseInt(packageId, 10)],\n [packageIdToPackageMap]\n );\n\n const userPackage = useMemo(\n () => getPackageById(user.package || ANONYMOUS_PACKAGE),\n [user, getPackageById]\n );\n\n const overageCost = useMemo(() => {\n // From the implementation of BILLING-18548, overage cost is package agnostic, so we'll\n // pull the overage SKU cost from team premier\n const teamPremier = getPackageById(PackageIds.TEAM_PREMIER_ANNUAL);\n return teamPremier?.skuCost.find(skuCost => skuCost.skuType === SkuTypes.ResponseOverage);\n }, [getPackageById]);\n\n const displayedPackages = useMemo(\n () => packagesToDisplay.map(packageName => packageIdToPackageMap[PackageIds[packageName]]),\n [packagesToDisplay, packageIdToPackageMap]\n );\n\n useEffect(() => {\n if (!displayPackages?.length) {\n dispatch({\n type: ACTIONS.UPDATE_PACKAGES,\n payload: { displayPackages: displayedPackages, allPackages: packagesForExperience },\n } as CombinedActions);\n }\n }, [dispatch, displayPackages, displayedPackages, packagesForExperience]);\n\n useEffect(() => {\n if (packagesToDisplay !== packagesToDisplayState) {\n // GROW-2629\n dispatch({ type: ACTIONS.FORMS_RESET_TOGGLE_SWITCH } as CombinedActions);\n // ALL\n dispatch({ type: ACTIONS.UPDATE_PACKAGES_TO_DISPLAY, payload: { packagesToDisplay } } as CombinedActions);\n dispatch({ type: ACTIONS.UPDATE_PACKAGES, payload: { displayPackages: displayedPackages } } as CombinedActions);\n }\n }, [dispatch, displayedPackages, packagesToDisplay, packagesToDisplayState]);\n\n const hookApi = useMemo(\n () => ({\n allPackages: packagesForExperience,\n displayPackages: displayedPackages,\n discountInfo,\n userPackage,\n showEduDiscount,\n packagesToDisplay: packagesToDisplayState,\n comparePlans,\n overageCost,\n getPackageById,\n }),\n [\n packagesForExperience,\n displayedPackages,\n discountInfo,\n userPackage,\n showEduDiscount,\n packagesToDisplayState,\n comparePlans,\n overageCost,\n getPackageById,\n ]\n );\n\n return {children};\n}\n\nexport const usePackages = (): PackagesHook => useContext(PackagesContext);\n","import React, { useMemo } from 'react';\nimport { useParams, useLocation } from 'react-router';\n\nimport { FiveHundredErrorPage } from '@sm/webassets';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport useStarterEnabled from '~pricing/hooks/useStarterEnabled';\nimport { usePricingExperience } from '~shared/hooks/usePricingExperience';\nimport { PackageType } from '~shared/types/pricing/package';\nimport { logPricingPageLoad } from '~pricing/pages/shared/index';\nimport { getPackagesBasedOnQueryStringIds, getPackageSetBasedOnPath } from '~pricing/lib/lib-helpers';\nimport { PackagesProvider } from '~shared/hooks/usePackages';\nimport { MatchParams } from './types';\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\nexport function withPageHandler

(WrappedComponent: React.ComponentType

): React.ComponentType

{\n return props => {\n const { canonicalPath = PackageType.Teams } = useParams();\n const { search } = useLocation();\n const query = new URLSearchParams(search);\n const comparePlans = query.get('compare_plans');\n\n const { pageName, utSource } = useTrackingDetails();\n useMemo(() => {\n logPricingPageLoad({ pageName, utSource });\n }, [pageName, utSource]);\n\n const { packages } = usePricingExperience();\n const { isStarterEnabled } = useStarterEnabled();\n const { uiExperiment } = usePricingExperiments();\n\n // GROW-2197\n const isROWStarterAnnualEnabled =\n uiExperiment.hasAssignment && uiExperiment.treatmentName === 'grow_2197_row_starter_annual_v2_treatment';\n // END GROW-2197\n\n // GROW-2529 Forms, GROW-2629 v2 Forms, price_test with major UI changes\n const isForms =\n uiExperiment.hasAssignment &&\n [\n EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.treatment,\n EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1,\n EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2,\n ].includes(uiExperiment.treatmentName)\n ? uiExperiment\n : null;\n // END GROW-2529, GROW-2629\n\n // no data is no page\n const error = !Array.isArray(packages) || !packages.length;\n\n return (\n \n {/* if there was an issue loading the data from pricingsvc, we've got nothing to show. bail */}\n \n \n \n \n \n \n \n \n \n );\n };\n}\n\nexport default withPageHandler;\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n SELECT: {\n id: 'Pricing.copy.Select',\n defaultMessage: 'SELECT',\n desc: {\n id: 'Pricing.copy.Select',\n message: '[Type: Button][Vis.: high] - A button/link text for an authenticated user',\n project: PROJECT_NAME,\n },\n },\n SIGN_UP: {\n id: 'Pricing.copy.SignUp',\n defaultMessage: 'SIGN UP',\n desc: {\n id: 'Pricing.copy.SignUp',\n message: '[Type: Button][Vis.: high] - A button/link text for an unauthenticated user',\n project: PROJECT_NAME,\n },\n },\n YOUR_PLAN: {\n id: 'Pricing.copy.YourPlan',\n defaultMessage: 'YOUR PLAN',\n desc: {\n id: 'Pricing.copy.YourPlan',\n message: '[Type: Button][Vis.: high] - A button/link text for an purchased user',\n project: PROJECT_NAME,\n },\n },\n CONTACT_US: {\n id: 'Pricing.copy.ContactUs',\n defaultMessage: 'CONTACT US',\n desc: {\n id: 'Pricing.copy.ContactUs',\n message: '[Type: Button][Vis.: high] - A button/link text to contact the sales team',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { useContext, useMemo, useState } from 'react';\nimport { t } from '@sm/intl';\nimport { StaticContext } from '@sm/webassets';\n\nimport { STRIPE_ELIGIBLE_PACKAGES } from '~pricing/lib/constants';\nimport { Packages } from '~shared/constants/pricing';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { PricingPackage } from '~shared/types/pricing/pricingsvc';\n\nimport COPY from './copy';\nimport useTrackingDetails from './useTrackingDetails';\nimport { CtaHook } from './types';\n\n/**\n * Given a user's details & the package they've signed up for,\n * returns the relevant CTA label and URL for signup/upgrade\n * @param {PricingPackage} pricingPackage Details of the pricing and features available in a package\n * @returns CtaHook\n */\nexport default function useCta(pricingPackage: PricingPackage): CtaHook {\n const { user } = useContext(StaticContext);\n const { userPackage, showEduDiscount } = usePackages();\n const [isEnabled, setIsEnabled] = useState(true);\n const [isUserPackage, setIsUserPackage] = useState(false);\n const [ctaUrl, setCtaUrl] = useState('');\n const [ctaLabel, setCtaLabel] = useState('');\n const { pageUtSource } = useTrackingDetails();\n\n useMemo(() => {\n /* if we don't have the user's package details (because they're in a package that's\n not part of the standard pricingweb loadout), default to allowing the CTA\n TODO: at the server side, if the user's package is not returned in the pricingsvc\n call, we need to do a separate fetch to retrieve it so we can reflect this CTA correctly */\n const isUpgradeable = userPackage?.details ? userPackage.details.tier < pricingPackage?.details.tier : true;\n const packageIsUserPackage = userPackage?.packageName === pricingPackage?.packageName;\n const { isAuthenticated, isStripeEligible } = user;\n const useStripeCheckout = isStripeEligible && STRIPE_ELIGIBLE_PACKAGES.includes(pricingPackage?.packageName);\n let newCtaUrl = '';\n\n if (packageIsUserPackage) {\n /* Since all users start with a basic package, we check if they are authenticated or not\n and set the correct cta label and sign up URL */\n if (!isAuthenticated) {\n setCtaLabel(t(COPY.SIGN_UP));\n newCtaUrl = `/user/sign-up/?ut_source=${pageUtSource}`;\n } else {\n setCtaLabel(t(COPY.YOUR_PLAN));\n }\n } else if (isUpgradeable) {\n // Labels first; simpler logic\n if (pricingPackage?.packageName === Packages.Enterprise) {\n setCtaLabel(t(COPY.CONTACT_US));\n } else {\n setCtaLabel(t(isAuthenticated ? COPY.SELECT : COPY.SIGN_UP));\n }\n\n // And URLs\n if (pricingPackage?.packageName === Packages.Enterprise) {\n const utSource2 = pageUtSource?.includes('details') ? 'teams_details' : 'teams';\n newCtaUrl = `/mp/contact-sales/?ut_source=${pageUtSource}&ut_source2=${utSource2}&ut_source3=primary_contact_cta&package_id=${pricingPackage?.id}`;\n } else if (showEduDiscount) {\n if (isAuthenticated && userPackage?.packageName === Packages.Basic) {\n newCtaUrl = `/billing/pw/discount/verify?package_id=${pricingPackage?.id}&ut_source=${pageUtSource}`;\n } else if (isAuthenticated) {\n newCtaUrl = `/upgrade?package_id=${pricingPackage?.id}&e=edu_faq&ut_source=${pageUtSource}`;\n } else {\n newCtaUrl = `/user/sign-up/?e=edu_faq&sm=${pricingPackage?.encryptedEduParam}&ut_source=${pageUtSource}`;\n }\n } else if (isAuthenticated) {\n if (userPackage?.packageName === Packages.Basic) {\n newCtaUrl = `/billing/checkout?package_id=${pricingPackage?.id}&ut_source=${pageUtSource}`;\n } else {\n newCtaUrl = `/upgrade?package_id=${pricingPackage?.id}&ut_source=${pageUtSource}`;\n }\n } else {\n newCtaUrl = `/user/sign-up/?sm=${pricingPackage?.encryptedCtaParam}&ut_source=${pageUtSource}`;\n }\n }\n\n /* if this is good to go for stripe checkout, make the URL swap here; it's a pretty easy find/replace scenario on the path.\n GROW-2426: if it's the user-subscribed package and using stripe do not set the url\n Setting the url renders a link, see https://code.corp.surveymonkey.com/wrench/wrench/blob/master/packages/button/Button.tsx */\n if (useStripeCheckout && !packageIsUserPackage && !showEduDiscount) {\n newCtaUrl = `/checkout${newCtaUrl.replace('/billing/checkout', '').replace('/upgrade', '')}`;\n }\n\n setCtaUrl(newCtaUrl);\n setIsEnabled(!isAuthenticated || isUpgradeable);\n setIsUserPackage(packageIsUserPackage);\n }, [\n user,\n userPackage,\n pricingPackage,\n showEduDiscount,\n pageUtSource,\n setIsEnabled,\n setIsUserPackage,\n setCtaLabel,\n setCtaUrl,\n ]);\n\n return {\n isEnabled,\n isUserPackage,\n ctaUrl,\n ctaLabel,\n };\n}\n","import { WrenchTheme } from '@wds/styles';\nimport { convertToObject } from '~shared/util';\n\nconst DISPLAY_SIZE_OPTIONS_DATA = Object.freeze(['default', 'sm', 'mds-sm', 'md', 'lg', 'xl', 'xs', 'none']);\n\nexport const SIZE_OPTIONS: { [key: string]: string } = convertToObject(...DISPLAY_SIZE_OPTIONS_DATA);\n\nexport type DisplaySizeOption = (typeof DISPLAY_SIZE_OPTIONS_DATA)[number];\nexport type DisplaySizeOptions = Record;\n\nconst DISPLAY_SIZE_OPTIONS: Required = {\n default: 'default',\n sm: WrenchTheme.breakpoints.sm,\n 'mds-sm': 320,\n md: WrenchTheme.breakpoints.md,\n lg: WrenchTheme.breakpoints.lg,\n xl: WrenchTheme.breakpoints.xl,\n xs: WrenchTheme.breakpoints.xs,\n none: 'none',\n};\n\nexport default DISPLAY_SIZE_OPTIONS;\n","import DISPLAY_SIZE_OPTIONS, { SIZE_OPTIONS } from '~shared/constants/sizes';\n\n// CSS Constants\n/**\n * Breakpoints to delineate special handling\n */\n// If mixing lowerBPMediaQUery with upperBPMediaQuery at same WrenchTheme.breakpoints[size],\n// most recent (in sequence) or most specific css rules would apply.\n// For MDS_MOBILE (768 and below rule) in conjunction with MDS_TABLET(768 and above rule), place\n// MDS_MOBILE first, followed by MDS_TABLET\nconst lowerBPMediaQuery = (size: string | number, overrideSize?: number): string => {\n return `@media only screen and (min-width: ${overrideSize ?? DISPLAY_SIZE_OPTIONS[size]}px)`;\n};\n\n/**\n * This set of media queries are designed to work with Wrench's breakpoints.\n * In particular, use alongside GridPlus/Wrench Grid and other

s (e.g., FlexContainer).\n *\n * NOTE: media queries cascade from small to large.\n * Thus specify in the following order for ease of use, ease of understanding, and to leverage CSS\n * cascading and rule specificity precedence.\n * XS_MEDIA_QUERY, SM_MEDIA_QUERY, MD_MEDIA_QUERY, LG_MEDIA_QUERY, XL_MEDIA_QUERY.\n\n* All browser widths > WrenchTheme.breakpoints.xl conform to XL_MEDIA_QUERY.\n * Similarly, if XS_MEDIA_QUERY is not stated and others are stated, e.g., SM_MEDIA_QUERY,\n * then widths from 0 to < WrenchTheme.breakpoints.sm use default CSS rules.\n */\n// Wrench.breakpoints - lg: '992px'\nexport const LG_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS.lg);\n// Wrench.breakpoints - md: '768px'\nexport const MD_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS.md);\n// Wrench.breakpoints - sm: '576px'\nexport const SM_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS.sm);\n// MDS_SMALL_BREAKPOINT = '320px'\nexport const SM_MOBILE_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS['mds-sm']);\n// Wrench.breakpoints - xs: '0'\nexport const XS_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS.xs);\n// Wrench.breakpoints - xl: '1200px'\nexport const XL_MEDIA_QUERY = lowerBPMediaQuery(SIZE_OPTIONS.xl);\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps, StyleRules } from './types';\n\nexport default createUseStyles(\n ({ pricingPalette, packageTheme, spacing }: PricingAppTheme) => ({\n CTAMargin: {\n marginTop: spacing[3],\n [MD_MEDIA_QUERY]: {\n marginTop: 'auto',\n },\n },\n CTA: {\n extend: 'CTAMargin',\n display: 'flex',\n padding: [0, spacing[4]],\n '& a': {\n borderRadius: 2,\n flex: 1,\n backgroundColor: ({ packageName }: StyleProps) => packageTheme[packageName]?.primary,\n border: 'none',\n '&:hover, &:focus': {\n backgroundColor: ({ packageName }: StyleProps) => packageTheme[packageName]?.primary,\n },\n },\n },\n noCTA: {\n extend: 'CTAMargin',\n display: 'flex',\n justifyContent: 'center',\n background: 'none',\n border: 'none',\n '& button': {\n color: pricingPalette.colors.black,\n },\n },\n })\n);\n","import React from 'react';\nimport { Button } from '@wds/button';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\n\nimport useCta from '~pricing/hooks/useCta';\nimport { generateCTAMetricsAttribute } from '~pricing/pages/shared/index';\nimport { PackageIds } from '~shared/constants/pricing';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { PackageCTAProps } from './types';\n\nimport useStyles from './useStyles';\n\nconst PackageCta = ({ packageName, isSummaryPage = false }: PackageCTAProps): JSX.Element => {\n const { getPackageById } = usePackages();\n const { CTA, noCTA } = useStyles({ packageName });\n const packageId = PackageIds[packageName];\n const { pageName } = useTrackingDetails();\n const { isEnabled, ctaUrl, ctaLabel } = useCta(getPackageById(packageId));\n\n return (\n
\n \n {ctaLabel}\n \n
\n );\n};\n\nexport default PackageCta;\n","import React from 'react';\nimport { Typography } from '@wds/typography';\nimport { BylineProps } from './types';\n\nexport default function PackageByline({ byline }: BylineProps): JSX.Element {\n if (!byline) {\n return <>;\n }\n return (\n \n {byline}\n \n );\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n ALWAYS_FREE: {\n id: 'Pricing.copy.AlwaysFreeByline',\n defaultMessage: 'Always free',\n desc: {\n id: 'Pricing.copy.AlwaysFreeByline',\n message: '[Type: Text][Vis: high] - Always free byline',\n project: PROJECT_NAME,\n },\n },\n PER_MONTH: {\n id: 'Pricing.copy.PricePerMonthByline',\n defaultMessage: '/ month',\n desc: {\n id: 'Pricing.copy.PricePerMonthByline',\n message: '[Type: Text][Vis: high] - Price per month byline',\n project: PROJECT_NAME,\n },\n },\n PER_USER_PER_MONTH: {\n id: 'Pricing.copy.PricePerUserPerMonthByline',\n defaultMessage: '/ user / month',\n desc: {\n id: 'Pricing.copy.PricePerUserPerMonthByline',\n message: '[Type: Text][Vis: high] - Price per user per month byline',\n project: PROJECT_NAME,\n },\n },\n BILLED_ANNUALLY: {\n id: 'Pricing.copy.PriceBilledAnnuallyByline',\n defaultMessage: 'Starting at 3 users, billed annually',\n desc: {\n id: 'Pricing.copy.PriceBilledAnnuallyByline',\n message: '[Type: Text][Vis: high] - Price billed annually byline',\n project: PROJECT_NAME,\n },\n },\n PER_MONTH_ANNUALLY: {\n id: 'Pricing.copy.PerMonthAnnuallyByline',\n defaultMessage: `{price} billed annually`,\n desc: {\n id: 'Pricing.copy.PerMonthAnnuallyByline',\n message: '[Type: Text][Vis: high] - Price per month billed annually byline',\n project: PROJECT_NAME,\n },\n },\n ENTERPRISE: {\n id: 'Pricing.copy.EnterpriseByline',\n defaultMessage: 'Powerful admin tools, integrations, and collaboration features for your organization.',\n desc: {\n id: 'Pricing.copy.EnterpriseByline',\n message: '[Type: Text][Vis: high] - Enterprise pricing byline',\n project: PROJECT_NAME,\n },\n },\n BR_BILLED_ANNUALLY: {\n id: 'Pricing.copy.PortugueseBilledAnnually',\n defaultMessage: 'Paid annually for 3 users (up front)',\n desc: {\n id: 'Pricing.copy.PortugueseBilledAnnually',\n message: '[Type: Text][Vis: high] - Portuguese billed annually byline',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { t } from '@sm/intl';\nimport { Packages } from '~shared/constants/pricing';\n\nimport COPY from './copy';\nimport { PackageDef } from './types';\n\nconst PER_MONTH = t(COPY.PER_MONTH);\nconst PER_USER_PER_MONTH = t(COPY.PER_USER_PER_MONTH);\nconst BILLED_ANNUALLY = t(COPY.BILLED_ANNUALLY);\nconst BR_BILLED_ANNUALLY = t(COPY.BR_BILLED_ANNUALLY);\n\nconst PackageDefs: PackageDef = {\n [Packages.Basic]: {\n byline: t(COPY.ALWAYS_FREE),\n },\n [Packages.TeamAdvantage]: {\n priceUnit: PER_USER_PER_MONTH,\n byline: BILLED_ANNUALLY,\n },\n [Packages.TeamPremier]: {\n priceUnit: PER_USER_PER_MONTH,\n byline: BILLED_ANNUALLY,\n },\n [`${Packages.TeamAdvantage}_BR`]: {\n byline: BR_BILLED_ANNUALLY,\n },\n [`${Packages.TeamPremier}_BR`]: {\n byline: BR_BILLED_ANNUALLY,\n },\n [Packages.Enterprise]: {\n byline: t(COPY.ENTERPRISE),\n },\n [Packages.PremierAnnual]: {\n priceUnit: PER_MONTH,\n },\n [Packages.AdvantageAnnual]: {\n priceUnit: PER_MONTH,\n highlighted: true,\n },\n [Packages.StarterAnnual]: {\n priceUnit: PER_MONTH,\n },\n [Packages.StandardMonthly]: {\n priceUnit: PER_MONTH,\n },\n [Packages.Flex]: {\n priceUnit: PER_MONTH,\n },\n [Packages.FormsMonthly]: {\n priceUnit: PER_MONTH,\n },\n [Packages.FormsAnnual]: {\n priceUnit: PER_MONTH,\n },\n};\n\nexport default PackageDefs;\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n PriceLabel: {\n '&>h3': {\n fontSize: '1.75em',\n fontWeight: type.fontWeight.medium,\n whiteSpace: 'nowrap',\n },\n '&>span': {\n textDecoration: 'line-through ',\n fontWeight: type.fontWeight.light,\n color: pricingPalette.colors.stone,\n lineHeight: 1,\n '&>span': {\n color: pricingPalette.colors.stone,\n },\n },\n },\n Price: {\n marginRight: spacing[1],\n },\n SwissPriceUnit: {\n [MD_MEDIA_QUERY]: {\n '& span': {\n fontSize: type.fontSize.bodySm,\n },\n },\n },\n}));\n","import React from 'react';\nimport { ComponentType, Typography, Variant } from '@wds/typography';\nimport { PACKAGE_PRICE_TYPE, PACKAGE_PRICE_TYPE_VALUES } from '~shared/types/pricing/package';\n\nimport usePackagePriceStyles from '~app/pages/Pricing/components/PackagePrice/useStyles';\nimport { PackagePriceProps } from './types';\n\nconst packagePriceVariantMap: Record = {\n [PACKAGE_PRICE_TYPE.SUMMARY]: 'pageTitle',\n [PACKAGE_PRICE_TYPE.DETAIL]: 'sectionTitle',\n [PACKAGE_PRICE_TYPE.COMPARISON]: 'body',\n};\n\nconst packagePriceComponentMap: Record = {\n [PACKAGE_PRICE_TYPE.SUMMARY]: 'h3',\n [PACKAGE_PRICE_TYPE.DETAIL]: 'h3',\n [PACKAGE_PRICE_TYPE.COMPARISON]: 'span',\n};\n\nexport default function PackagePrice({\n formattedPrice,\n packagePriceType,\n costUnit,\n}: PackagePriceProps): React.ReactElement {\n const { PriceLabel, Price, SwissPriceUnit } = usePackagePriceStyles();\n const priceString = formattedPrice as string;\n const unitClass = priceString.endsWith('CHF') ? SwissPriceUnit : '';\n\n return (\n
\n \n {formattedPrice}\n {costUnit && (\n \n \n {costUnit}\n \n \n )}\n \n
\n );\n}\n","import { Packages } from '~shared/constants/pricing';\n\nimport { PricingPalette, PackageColors, PackageTheme, PricingTheme } from './types';\n\nconst pricingPalette: Required = {\n colors: {\n sabaeus: '#00BF6F',\n midnight: '#05467E',\n link: '#007FAA',\n arctic: '#2DCCD3',\n concord: '#671E75',\n raspberry: '#AC145A',\n bengal: '#F05B24',\n bumblebee: '#F9BE00',\n black: '#000000',\n charcoal: '#333E48',\n slate: '#6B787F',\n stone: '#9DA5AA',\n flint: '#D0D2D3',\n pebble: '#EDEEEE',\n canvas: '#F7F8FA',\n white: '#FFFFFF',\n navy: '#051C4F',\n dijon: '#F7E298',\n },\n};\n\nexport const packageColors: PackageColors = {\n advantageAnnual: pricingPalette.colors.sabaeus,\n advantageMonthly: pricingPalette.colors.sabaeus,\n basic: pricingPalette.colors.slate,\n flex: pricingPalette.colors.arctic,\n enterprise: pricingPalette.colors.midnight,\n premierAnnual: pricingPalette.colors.midnight,\n starterMonthly: pricingPalette.colors.link,\n premierMonthly: pricingPalette.colors.midnight,\n starterAnnual: pricingPalette.colors.link,\n standardMonthly: pricingPalette.colors.arctic,\n standardAnnual: pricingPalette.colors.arctic,\n teamAdvantage: pricingPalette.colors.link,\n teamPremier: pricingPalette.colors.concord,\n forms: pricingPalette.colors.concord,\n};\n\nexport const packageTheme: PackageTheme = {\n [Packages.AdvantageAnnual]: {\n primary: packageColors.advantageAnnual,\n },\n [Packages.AdvantageMonthly]: {\n primary: packageColors.advantageMonthly,\n },\n [Packages.Basic]: {\n primary: packageColors.basic,\n },\n [Packages.Enterprise]: {\n primary: packageColors.enterprise,\n },\n [Packages.PremierAnnual]: {\n primary: packageColors.premierAnnual,\n },\n [Packages.StarterMonthly]: {\n primary: packageColors.starterMonthly,\n },\n [Packages.PremierMonthly]: {\n primary: packageColors.premierMonthly,\n },\n [Packages.StarterAnnual]: {\n primary: packageColors.starterAnnual,\n },\n [Packages.StandardMonthly]: {\n primary: packageColors.standardMonthly,\n },\n [Packages.StandardAnnual]: {\n primary: packageColors.standardMonthly,\n },\n [Packages.TeamAdvantage]: {\n primary: packageColors.teamAdvantage,\n },\n [Packages.TeamPremier]: {\n primary: packageColors.teamPremier,\n },\n [Packages.Flex]: {\n primary: packageColors.standardMonthly,\n },\n [Packages.FormsAnnual]: {\n primary: packageColors.forms,\n },\n [Packages.FormsMonthly]: {\n primary: packageColors.forms,\n },\n};\n\nexport const pricingElevation: Record = {\n zero: 0,\n minusOne: -1,\n plusOne: 1,\n};\n\nexport function getPricingTheme(): PricingTheme {\n return {\n pricingElevation,\n pricingPalette, // User defined theme\n packageColors,\n packageTheme,\n };\n}\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { StyleProps } from './types';\nimport { pricingElevation } from '~app/styles/theme';\n\nexport default createUseStyles(({ type, packageTheme }: PricingAppTheme) => ({\n RibbonStyle: {\n fontSize: 10,\n position: 'absolute',\n right: -3,\n top: -3,\n zIndex: pricingElevation.plusOne,\n overflow: 'hidden',\n width: 96,\n height: 96,\n '&:before, &:after': {\n content: \"''\",\n display: 'block',\n zIndex: pricingElevation.minusOne,\n backgroundColor: ({ packageName }: StyleProps) => packageTheme[packageName].primary,\n position: 'absolute',\n },\n '&:before': {\n top: 0,\n height: 3,\n width: 10,\n left: 0,\n borderTopLeftRadius: 3,\n },\n '&:after': {\n width: 3,\n height: 10,\n right: 0,\n borderBottomRightRadius: 3,\n bottom: 0,\n },\n '& p': {\n fontSize: 10,\n fontWeight: type.fontWeight.medium,\n color: '#fff',\n textAlign: 'center',\n lineHeight: '20px',\n transform: `translate(-50%, -50%) rotate(45deg) translateY(-11px)`,\n width: 184,\n display: 'block',\n boxShadow: 'none',\n position: 'absolute',\n top: '50%',\n left: '50%',\n backgroundColor: ({ packageName }) => packageTheme[packageName]?.primary,\n margin: 0,\n },\n },\n}));\n","import React from 'react';\nimport { RibbonType } from './types';\n\nimport useRibbonStyles from './useStyles';\n\nexport const DATA_TESTID = 'Ribbon';\n\nexport default function Ribbon({ children, packageName }: RibbonType): React.ReactElement {\n const { RibbonStyle } = useRibbonStyles({ packageName });\n return (\n \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY, LG_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps, StyleRules } from './types';\n\nexport default createUseStyles(\n ({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n Header: {\n textAlign: 'center',\n padding: [spacing[4], spacing[1]],\n fontSize: 16,\n '& h2': {\n // Package header text\n fontWeight: type.fontWeight.medium,\n fontSize: ({ isSummaryPage }: StyleProps) => (isSummaryPage ? '1.5em' : '1.25em'),\n marginBottom: spacing[1],\n },\n '& p': {\n // Package byline\n color: pricingPalette.colors.slate,\n marginTop: spacing[2],\n fontSize: '.875em',\n },\n [MD_MEDIA_QUERY]: {\n fontSize: 12,\n minHeight: 180,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'stretch',\n },\n [LG_MEDIA_QUERY]: {\n fontSize: 16,\n },\n },\n })\n);\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n ALWAYS_FREE: {\n id: 'Pricing.copy.AlwaysFreeByline',\n defaultMessage: 'Always free',\n desc: {\n id: 'Pricing.copy.AlwaysFreeByline',\n message: '[Type: Text][Vis: high] - Always free byline',\n project: PROJECT_NAME,\n },\n },\n PER_MONTH: {\n id: 'Pricing.copy.PricePerMonthByline',\n defaultMessage: '/ month',\n desc: {\n id: 'Pricing.copy.PricePerMonthByline',\n message: '[Type: Text][Vis: high] - Price per month byline',\n project: PROJECT_NAME,\n },\n },\n PER_USER_PER_MONTH: {\n id: 'Pricing.copy.PricePerUserPerMonthByline',\n defaultMessage: '/ user / month',\n desc: {\n id: 'Pricing.copy.PricePerUserPerMonthByline',\n message: '[Type: Text][Vis: high] - Price per user per month byline',\n project: PROJECT_NAME,\n },\n },\n BILLED_ANNUALLY: {\n id: 'Pricing.copy.PerMonthAnnuallyByline',\n defaultMessage: `{price} billed annually`,\n desc: {\n id: 'Pricing.copy.PerMonthAnnuallyByline',\n message: '[Type: Text][Vis: high] - Price per month billed annually byline',\n project: PROJECT_NAME,\n },\n },\n BILLED_MONTHLY: {\n id: 'Pricing.copy.PerMonthByline',\n defaultMessage: 'Billed monthly',\n desc: '[Type: Text][Vis: high] - Price billed monthly byline',\n },\n TEAMS_BILLED_ANNUALLY: {\n id: 'Pricing.copy.PriceBilledAnnuallyByline',\n defaultMessage: 'Starting at 3 users, billed annually',\n desc: {\n id: 'Pricing.copy.PriceBilledAnnuallyByline',\n message: '[Type: Text][Vis: high] - Price billed annually byline',\n project: PROJECT_NAME,\n },\n },\n // individual country overrides. to override, prefix `BILLED_ANNUALLY` or `TEAMS_BILLED_ANNUALLY` with the country code\n BR_BILLED_ANNUALLY: {\n id: 'Pricing.copy.BrazilBilledAnnually',\n defaultMessage: 'paid annually (up front)',\n desc: {\n id: 'Pricing.copy.BrazilBilledAnnually',\n message: '[Type: Text][Vis: high] - Brazil billed annually byline',\n project: PROJECT_NAME,\n },\n },\n BR_TEAMS_BILLED_ANNUALLY: {\n id: 'Pricing.copy.BrazilTeamsBilledAnnually',\n defaultMessage: 'paid annually for 3 users (up front)',\n desc: {\n id: 'Pricing.copy.BrazilTeamsBilledAnnually',\n message: '[Type: Text][Vis: high] - Brazil teams billed annually byline',\n project: PROJECT_NAME,\n },\n },\n ENT_PLATINUM_BYLINE: {\n id: 'Pricing.copy.EnterpriseByline',\n defaultMessage: 'Powerful admin tools, integrations, and collaboration features for your organization.',\n desc: {\n id: 'Pricing.copy.EnterpriseByline',\n message: '[Type: Text][Vis: high] - Enterprise pricing byline',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { t } from '@sm/intl';\nimport { CountryCodes } from '@sm/locale/dist/localeSets';\nimport { StaticContext } from '@sm/webassets';\nimport React, { useContext, useMemo } from 'react';\n\nimport { MONTHLY_PACKAGES, TEAMS_PACKAGES } from '~pricing/lib/constants';\nimport {\n formatCostInLocaleCurrency,\n formatCostInSkuCurrency,\n formatMonthlyCostInLocaleCurrency,\n getCoreCostReplicaForBasicPackage,\n getDiscountedSkuCost,\n getSkuCostByType,\n} from '~pricing/lib/lib-helpers';\nimport { Packages, SkuTypes } from '~shared/constants/pricing';\n\nimport { PackageSkuCosts } from '~shared/types/pricing/package';\nimport { PriceDisplayHook } from '../types';\n\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\nimport { DiscountInfo } from '~shared/types/pricing/pricingsvc';\nimport COPY from './copy';\n\nconst MINIMUM_EXTRA_TEAM_SEATS = 2;\n\nexport default function usePriceDisplay(\n packageName: Packages,\n skuCosts: PackageSkuCosts,\n discountInfo?: DiscountInfo\n): PriceDisplayHook {\n const {\n environment: { countryCode },\n } = useContext(StaticContext);\n const { displayPackages } = usePackages();\n const isBasic = useMemo(() => packageName === Packages.Basic, [packageName]);\n const isBrazil = useMemo(() => countryCode === CountryCodes.BR, [countryCode]);\n const isMonthlyPackage = useMemo(() => MONTHLY_PACKAGES.includes(packageName), [packageName]);\n const isTeamsPackage = useMemo(() => TEAMS_PACKAGES.includes(packageName), [packageName]);\n const isGrow2529FormsMonthlyPackage = useMemo(\n () => [Packages.StandardMonthly, Packages.FormsMonthly].includes(packageName),\n [packageName]\n );\n\n const { uiExperiment } = usePricingExperiments();\n const isGrow2529Forms =\n uiExperiment.hasAssignment && uiExperiment.experimentName === EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.name;\n\n const [coreSeatCost, additionalSeatCost, discountedCoreSeatCost, discountedAdditionalSeatCost] = useMemo(() => {\n // fake a SKU for basic\n const coreSeatSku = isBasic\n ? getCoreCostReplicaForBasicPackage(displayPackages)\n : getSkuCostByType(skuCosts, SkuTypes.CoreSeat);\n const additionalSeatSku = isBasic ? coreSeatSku : getSkuCostByType(skuCosts, SkuTypes.AdditionalSeat);\n\n const discountedCoreSeatSku = coreSeatSku && discountInfo && getDiscountedSkuCost(coreSeatSku, discountInfo);\n\n const discountedAdditionalSeatSku =\n additionalSeatSku && discountInfo && getDiscountedSkuCost(additionalSeatSku, discountInfo);\n\n return [coreSeatSku, additionalSeatSku, discountedCoreSeatSku, discountedAdditionalSeatSku];\n }, [isBasic, skuCosts, displayPackages, discountInfo]);\n\n const monthlyFormattedCost = useMemo(\n () =>\n coreSeatCost &&\n (isMonthlyPackage ? formatCostInLocaleCurrency(coreSeatCost) : formatMonthlyCostInLocaleCurrency(coreSeatCost)),\n [isMonthlyPackage, coreSeatCost]\n );\n\n const annualFormattedCost = useMemo(\n () =>\n coreSeatCost &&\n (isMonthlyPackage\n ? formatCostInSkuCurrency((coreSeatCost.cost / 100) * 12, coreSeatCost)\n : formatCostInLocaleCurrency(coreSeatCost)),\n [isMonthlyPackage, coreSeatCost]\n );\n\n const monthlyFormattedDiscountedCost = useMemo(\n () =>\n discountedCoreSeatCost &&\n (isMonthlyPackage\n ? formatCostInLocaleCurrency(discountedCoreSeatCost)\n : formatMonthlyCostInLocaleCurrency(discountedCoreSeatCost)),\n [isMonthlyPackage, discountedCoreSeatCost]\n );\n\n const annualFormattedDiscountedCost = useMemo(\n () =>\n discountedCoreSeatCost &&\n (isMonthlyPackage\n ? formatCostInSkuCurrency((discountedCoreSeatCost.cost / 100) * 12, discountedCoreSeatCost)\n : formatCostInLocaleCurrency(discountedCoreSeatCost)),\n [isMonthlyPackage, discountedCoreSeatCost]\n );\n\n const annualTeamsFormattedCost = useMemo(() => {\n let retVal: React.ReactElement | string = '';\n\n if (isTeamsPackage && coreSeatCost && additionalSeatCost) {\n // a base teams cost will be one core seat + two additional seats\n // I don't know if these two seat types have ever had different values,\n // but some day they will... some day...\n const baseCost = Number(coreSeatCost.cost) + Number(additionalSeatCost.cost) * MINIMUM_EXTRA_TEAM_SEATS;\n retVal = formatCostInSkuCurrency(baseCost / 100, coreSeatCost);\n }\n\n return retVal;\n }, [isTeamsPackage, coreSeatCost, additionalSeatCost]);\n\n const annualTeamsFormattedDiscountedCost = useMemo(() => {\n let retVal: React.ReactElement | string = '';\n\n if (isTeamsPackage && discountedCoreSeatCost && discountedAdditionalSeatCost) {\n // a base teams cost will be one core seat + two additional seats\n // I don't know if these two seat types have ever had different values,\n // but some day they will... some day...\n const baseCost =\n Number(discountedCoreSeatCost.cost) + Number(discountedAdditionalSeatCost.cost) * MINIMUM_EXTRA_TEAM_SEATS;\n retVal = formatCostInSkuCurrency(baseCost / 100, discountedCoreSeatCost);\n }\n\n return retVal;\n }, [isTeamsPackage, discountedCoreSeatCost, discountedAdditionalSeatCost]);\n\n const headerCost = useMemo(() => {\n // monthly packages always display the monthly cost, regardless of geo (at this point in time)\n if (isMonthlyPackage) {\n return monthlyFormattedCost;\n }\n\n // brazil always displays a calculated annual cost\n if (isBrazil) {\n return isTeamsPackage ? annualTeamsFormattedCost : annualFormattedCost;\n }\n\n // for everything else, monthly\n return monthlyFormattedCost;\n }, [annualTeamsFormattedCost, annualFormattedCost, monthlyFormattedCost, isBrazil, isMonthlyPackage, isTeamsPackage]);\n\n const headerDiscountedCost = useMemo(() => {\n // monthly packages always display the monthly cost, regardless of geo (at this point in time)\n // Intentionally returning null value for monthly packages, as discounts don't apply\n if (isMonthlyPackage) {\n return null;\n }\n\n // brazil always displays a calculated annual cost\n if (isBrazil) {\n return isTeamsPackage ? annualTeamsFormattedDiscountedCost : annualFormattedDiscountedCost;\n }\n\n // for everything else, monthly\n return monthlyFormattedDiscountedCost;\n }, [\n annualTeamsFormattedDiscountedCost,\n annualFormattedDiscountedCost,\n monthlyFormattedDiscountedCost,\n isBrazil,\n isMonthlyPackage,\n isTeamsPackage,\n ]);\n\n const headerUnit = useMemo(() => {\n if (isBrazil || isBasic) {\n return '';\n }\n\n if (isTeamsPackage) {\n return t(COPY.PER_USER_PER_MONTH);\n }\n\n return t(COPY.PER_MONTH);\n }, [isBasic, isTeamsPackage, isBrazil]);\n\n const headerByline = useMemo(() => {\n // monthly packages have no byline\n if (isMonthlyPackage && !isGrow2529Forms) {\n return '';\n }\n\n // basic is also special\n if (isBasic) {\n return t(COPY.ALWAYS_FREE);\n }\n\n // Check to see if there's a package specific byline\n const packageCopyKey = `${packageName?.toUpperCase()}_BYLINE` as keyof typeof COPY;\n if (packageCopyKey in COPY) {\n return t(COPY[packageCopyKey]);\n }\n\n // GROW-2529 FORMS\n if (isGrow2529Forms && isGrow2529FormsMonthlyPackage) {\n return t(COPY.BILLED_MONTHLY);\n }\n\n // fallback to default text\n const copyKey = `${isTeamsPackage ? 'TEAMS_' : ''}BILLED_ANNUALLY` as keyof typeof COPY;\n\n // use the COPY file to check to see if there's a country specific byline\n const countryOverrideCopyKey = `${countryCode.toUpperCase()}_${copyKey}` as keyof typeof COPY;\n if (countryOverrideCopyKey in COPY) {\n return t(COPY[countryOverrideCopyKey]);\n }\n\n return t(COPY[copyKey], { price: annualFormattedCost });\n }, [\n isMonthlyPackage,\n isGrow2529Forms,\n isBasic,\n packageName,\n isGrow2529FormsMonthlyPackage,\n isTeamsPackage,\n countryCode,\n annualFormattedCost,\n ]);\n\n return {\n isMonthlyPackage,\n isTeamsPackage,\n annualFormattedCost,\n monthlyFormattedCost,\n monthlyFormattedDiscountedCost,\n annualTeamsFormattedCost,\n annualFormattedDiscountedCost,\n annualTeamsFormattedDiscountedCost,\n headerCost,\n headerDiscountedCost,\n headerUnit,\n headerByline,\n };\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n BEST_VALUE: {\n id: 'Pricing.copy.BestValue',\n defaultMessage: 'BEST VALUE',\n desc: {\n id: 'Pricing.copy.BestValue',\n message: '[Type: Label][Vis.: high] - Default text for Package Ribbon',\n project: PROJECT_NAME,\n },\n },\n SAVE_PERCENTAGE: {\n id: 'Pricing.copy.SavePercentage',\n defaultMessage: 'Save {percentage}% *',\n desc: {\n id: 'Pricing.copy.SavePercentage',\n message: '[Type: Label][Vis.: high] - Percentage of savings displayed in Package Ribbon',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import React, { useMemo } from 'react';\n\nimport { t } from '@sm/intl';\nimport { Typography } from '@wds/typography';\n\nimport { COMPARISON_PACKAGES } from '~app/pages/Pricing/lib/constants';\nimport { Packages, PackageDisplayNames } from '~shared/constants/pricing';\nimport { PackageData, PACKAGE_PRICE_TYPE } from '~shared/types/pricing/package';\nimport { PackageHeaderProps } from '~pricing/components/Summary/types';\n\nimport PackageByline from '~pricing/components/PackageHeader/PackageByline';\nimport PackageCta from '~pricing/components/PackageCta';\nimport packageDefs from '~pricing/lib/packages/packageDefs';\nimport PackagePrice from '~pricing/components/PackagePrice';\nimport Ribbon from '~pricing/components/Ribbon';\nimport usePackageHeaderStyles from '~pricing/components/PackageHeader/useStyles';\n\nimport {\n calculateSavingsPercent,\n formatMonthlyCostInLocaleCurrency,\n formatCostInLocaleCurrency,\n getCoreCostFromSkus,\n} from '~app/pages/Pricing/lib/lib-helpers';\n\nimport { usePackages } from '~shared/hooks/usePackages';\nimport usePriceDisplay from '~pricing/hooks/usePriceDisplay';\n\nimport COPY from './copy';\n\nexport default function PackageHeader({\n packageName,\n comparisonSkuCosts,\n skuCosts,\n isSummaryPage = false,\n discountInfo,\n}: PackageHeaderProps): JSX.Element {\n const { Header } = usePackageHeaderStyles({ isSummaryPage });\n const comparisonPackageName = COMPARISON_PACKAGES[packageName];\n const { allPackages: packageData } = usePackages();\n const { headerCost, headerDiscountedCost, headerByline, headerUnit } = usePriceDisplay(\n packageName,\n skuCosts,\n discountInfo\n );\n\n const coreSeatCost = useMemo(() => getCoreCostFromSkus(skuCosts), [skuCosts]);\n\n const comparisonCoreSeatCost = useMemo(\n () => comparisonSkuCosts && getCoreCostFromSkus(comparisonSkuCosts),\n [comparisonSkuCosts]\n );\n\n const comparisonFormattedPrice = useMemo(\n () => comparisonCoreSeatCost && formatCostInLocaleCurrency(comparisonCoreSeatCost),\n [comparisonCoreSeatCost]\n ) as string;\n\n const comparisonFormattedMonthlyPrice = useMemo(\n () => comparisonCoreSeatCost && formatMonthlyCostInLocaleCurrency(comparisonCoreSeatCost),\n [comparisonCoreSeatCost]\n ) as string;\n\n const comparisonPackage = useMemo(\n () =>\n comparisonPackageName\n ? packageData?.find((packageObj: PackageData) => packageObj.packageName === comparisonPackageName)\n : null,\n [comparisonPackageName, packageData]\n );\n\n const comparisonSeatCost = useMemo(\n () => (comparisonPackage ? getCoreCostFromSkus(comparisonPackage?.skuCost) : null),\n [comparisonPackage]\n );\n\n const savingsPercentage = useMemo(\n () => (coreSeatCost && comparisonSeatCost ? calculateSavingsPercent(comparisonSeatCost, coreSeatCost) : 0),\n [comparisonSeatCost, coreSeatCost]\n );\n\n const getRibbon = useMemo(() => {\n let ribbonText = packageDefs[packageName]?.highlighted ? t(COPY.BEST_VALUE) : null;\n\n if (savingsPercentage > 0) {\n ribbonText = t(COPY.SAVE_PERCENTAGE, { percentage: savingsPercentage });\n }\n\n if (ribbonText) {\n return {ribbonText};\n }\n return null;\n }, [packageName, savingsPercentage]);\n\n return (\n <>\n {getRibbon}\n\n
\n \n {t(PackageDisplayNames[packageName])}\n \n {packageName !== Packages.Enterprise && (\n \n )}\n {![Packages.Enterprise, Packages.Basic].includes(packageName) && headerDiscountedCost && (\n \n )}\n {comparisonFormattedPrice && !headerDiscountedCost && (\n \n )}\n\n \n \n
\n \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme, PackageTheme } from '~app/styles/pricing/types';\nimport { Packages } from '~shared/constants/pricing';\n\ntype Props = {\n packageName: Packages;\n};\n\ntype RuleNames = 'PricingPackageContainer' | 'PricingPackage' | 'Highlighted' | 'PlanFeaturesLink';\n\nexport const HIGHLIGHT = (defaultColor: string, packageTheme: PackageTheme): object => ({\n border: ({ packageName }: Props) =>\n `1px solid ${packageTheme[packageName] ? packageTheme[packageName].primary : defaultColor}`,\n});\n\nexport default createUseStyles(\n ({ spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n PricingPackageContainer: {\n marginBottom: spacing[4],\n width: '100%',\n\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n flexDirection: 'column',\n maxWidth: 320,\n marginLeft: spacing[3],\n marginRight: spacing[3],\n },\n\n [`&.package-${Packages.AdvantageAnnual}`]: {\n gridRow: 1,\n },\n },\n PricingPackage: {\n position: 'relative',\n padding: [spacing[5], 0],\n border: `1px solid ${pricingPalette.colors.flint}`,\n borderRadius: 3,\n marginBottom: spacing[6],\n\n '& + div': {\n display: 'none',\n },\n\n [MD_MEDIA_QUERY]: {\n height: '100%',\n transition: 'border-color 0.5s ease',\n\n '&:hover': {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n },\n\n '& + div': {\n display: 'inherit',\n },\n },\n },\n\n Highlighted: {\n [MD_MEDIA_QUERY]: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n marginTop: -spacing[6],\n paddingTop: 56,\n },\n },\n\n PlanFeaturesLink: {\n fontSize: 13,\n margin: [spacing[4], spacing[5], 0],\n textAlign: 'center',\n\n [MD_MEDIA_QUERY]: {\n position: 'absolute',\n bottom: spacing[4],\n textAlign: 'left',\n },\n },\n })\n);\n","import { createUseStyles } from 'react-jss';\n\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n Highlight: {\n backgroundColor: pricingPalette.colors.canvas,\n },\n Features: {\n listStyle: 'none',\n fontSize: 13,\n lineHeight: 1.2,\n color: pricingPalette.colors.charcoal,\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n margin: [20, 'auto', 30],\n width: '100%',\n [MD_MEDIA_QUERY]: {\n margin: [20, 0, 30],\n },\n },\n FeatureItem: {\n position: 'relative',\n padding: [6, '20%', 6],\n display: 'flex',\n alignItems: 'center',\n wordBreak: 'break-word',\n '&:before': {\n content: '\"•\"',\n display: 'inline-block',\n paddingRight: 10,\n color: pricingPalette.colors.stone,\n fontSize: 20,\n flex: 1,\n alignSelf: 'flex-start',\n lineHeight: 0.9,\n },\n [MD_MEDIA_QUERY]: {\n padding: `6px ${spacing[7]}px 6px ${spacing[6]}px`,\n '&:hover': {\n extend: 'Highlight',\n transition: '0.2s ease',\n },\n },\n },\n FeatureSummary: {\n lineHeight: 1.6,\n position: 'relative',\n width: '100%',\n paddingLeft: 10,\n marginLeft: -10,\n [MD_MEDIA_QUERY]: {\n '&:hover': {\n '& $TooltipContainer': {\n display: 'inline-block',\n },\n },\n },\n },\n TooltipContainer: {\n display: 'none',\n },\n}));\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps } from './types';\n\nconst TOOLTIP_WIDTH = 220;\nconst ARROW_POS = -37;\n\nexport default createUseStyles(({ spacing, type, pricingPalette, elevation }: PricingAppTheme) => ({\n Tooltip: {\n position: 'absolute',\n width: TOOLTIP_WIDTH,\n padding: spacing[5],\n backgroundColor: pricingPalette.colors.white,\n borderRadius: 2,\n boxShadow: '0 0 10px 0 rgba(0, 0, 0, 0.2)',\n zIndex: elevation.space,\n '& h5': {\n fontWeight: type.fontWeight.medium,\n marginBottom: spacing[3],\n textTransform: ({ locale }: StyleProps) => (locale === 'en-US' ? 'uppercase' : 'none'),\n },\n '& a': {\n whiteSpace: 'nowrap',\n },\n },\n TooltipArrow: {\n width: 50,\n height: 25,\n position: 'absolute',\n top: '50%',\n overflow: 'hidden',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n width: 20,\n height: 20,\n background: pricingPalette.colors.white,\n transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',\n top: 0,\n left: '50%',\n boxShadow: '0 0 10px 0 rgba(0, 0, 0, 0.2)',\n },\n },\n TooltipLeft: {\n extend: 'Tooltip',\n top: '100%',\n left: 0,\n right: 0,\n width: 'auto',\n '& $TooltipArrow': {\n top: 0,\n right: -3,\n transform: 'translateY(-100%) rotate(180deg)',\n },\n [MD_MEDIA_QUERY]: {\n left: '100%',\n top: '50%',\n width: TOOLTIP_WIDTH,\n transform: 'translate(24px, -50%)',\n '& $TooltipArrow': {\n left: ARROW_POS,\n top: '50%',\n transform: 'translateY(-50%) rotate(90deg)',\n },\n },\n },\n TooltipRight: {\n extend: 'Tooltip',\n right: '100%',\n top: '50%',\n transform: 'translate(-24px, -50%)',\n '& $TooltipArrow': {\n right: ARROW_POS,\n top: '50%',\n transform: 'translateY(-50%) rotate(270deg)',\n },\n },\n}));\n","import React, { useContext } from 'react';\nimport { StaticContext } from '@sm/webassets';\nimport { sanitizeString } from '@sm/utils';\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\nimport useTooltipStyles from './useStyles';\nimport { FeatureTooltipProps } from './types';\n\nexport default function FeatureTooltip({\n tooltipHeading,\n tooltip,\n isLastPackage,\n}: FeatureTooltipProps): React.ReactElement {\n const {\n environment: { slLanguageLocale },\n } = useContext(StaticContext);\n\n const { TooltipLeft, TooltipRight, TooltipArrow } = useTooltipStyles({ locale: slLanguageLocale });\n\n return (\n \n \n {tooltipHeading}\n \n \n \n \n );\n}\n","import { UniqueFeatureName } from './types';\n\nconst ExperimentUniqFeatureNames = {\n grow_2529_create_limit: ['grow_2529_survey_create_limit', 'grow_2529_unlimited_forms'],\n grow_2529_unlimited_questions: ['grow_2529_forms_unlimited_questions', 'grow_2529_unlimited_questions'],\n grow_2529_question_types: ['grow_2529_question_types', 'grow_2529_forms_question_types'],\n grow_2529_analysis_filter: ['grow_2529_analysis_filter', 'grow_2529_forms_analysis_filter'],\n};\n\nconst uniqueFeatureNameMap: UniqueFeatureName = {\n contributor_seats: ['contributor_seats', 'advanced_collaboration'],\n response_count: ['base_response_count', 'unlimited_responses', 'num_free_responses'],\n support: ['priority_email_support', 'phone_support', 'email_support', 'grow_2529_phone_support'],\n skip_logic: ['create_piping_enabled', 'skip_logic'],\n statistical_significance: ['statistical_significance', 'text_analysis'],\n\n // ExperimentUniqFeatureNames should always be last\n ...ExperimentUniqFeatureNames,\n};\n\nexport default uniqueFeatureNameMap;\n","import React, { useCallback } from 'react';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport useFeatureSetStyles from '~app/pages/Pricing/components/FeatureSet/useStyles';\nimport { DisplayFeatureStatic, SummaryDisplayFeatureList } from '~shared/types/pricing/features';\nimport FeatureTooltip from '~pricing/components/Tooltip';\nimport uniqueFeatureNameMap from './uniqueFeatureNameMap';\nimport { UniqueFeatureName } from './types';\n\nfunction getUniqueFeatureName(featureName: string): string {\n const uniqueFeature = Object.keys(uniqueFeatureNameMap).find(feature => {\n return uniqueFeatureNameMap[feature as keyof UniqueFeatureName]?.includes(featureName) ? feature : null;\n });\n\n return uniqueFeature ?? featureName;\n}\n\nexport default function FeatureSet({\n features,\n packageName,\n isLastPackage,\n}: {\n features: SummaryDisplayFeatureList;\n packageName: string;\n isLastPackage: boolean;\n}): React.ReactElement {\n const { Features, FeatureItem, FeatureSummary, TooltipContainer, Highlight } = useFeatureSetStyles();\n const { isMobile } = getClientEnvironmentDetails();\n\n const handleFeatureHover = useCallback(\n (featureName): void => {\n if (!isMobile) {\n document\n .querySelectorAll(`[data-feature='${featureName}']`)\n .forEach(feature => feature.classList.add(Highlight));\n }\n },\n [Highlight, isMobile]\n );\n\n const handleFeatureLeave = useCallback(\n (featureName): void => {\n if (!isMobile) {\n document\n .querySelectorAll(`[data-feature='${featureName}']`)\n .forEach(feature => feature.classList.remove(Highlight));\n }\n },\n [Highlight, isMobile]\n );\n\n return (\n
    \n {features\n .filter((feature: DisplayFeatureStatic) => !!feature)\n .map((feature: DisplayFeatureStatic) => {\n const featureName = feature?.name && getUniqueFeatureName(feature?.name);\n return (\n \n {feature?.summary && (\n \n {feature?.summary}\n {feature?.tooltip && feature?.tooltipHeading && (\n \n \n \n )}\n \n )}\n \n );\n })}\n
\n );\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst TYPE_LABEL = '[Type: Label][Vis: high] - Feature Set List Item';\n\nexport default defineMessages({\n '508_accessibility': {\n id: 'Pricing.copy.Summary508Accessibility',\n defaultMessage: 'ADA compliant',\n desc: {\n id: 'Pricing.copy.Summary508Accessibility',\n message: `${TYPE_LABEL} - Summary508Accessibility`,\n project: PROJECT_NAME,\n },\n },\n a_b_testing: {\n id: 'Pricing.copy.SummaryABTestingOverride',\n defaultMessage: 'A/B testing, randomization, quotas',\n desc: {\n id: 'Pricing.copy.SummaryABTestingOverride',\n message: `${TYPE_LABEL} - SummaryABTestingOverride`,\n project: PROJECT_NAME,\n },\n },\n account_control: {\n id: 'Pricing.copy.SummaryAccountControl',\n defaultMessage: 'Account control and migration',\n desc: {\n id: 'Pricing.copy.SummaryAccountControl',\n message: `${TYPE_LABEL} - SummaryAccountControl`,\n project: PROJECT_NAME,\n },\n },\n add_users: {\n id: 'Pricing.copy.SummaryAddUsers',\n defaultMessage: 'Add Users',\n desc: {\n id: 'Pricing.copy.SummaryAddUsers',\n message: `${TYPE_LABEL} - SummaryAddUsers`,\n project: PROJECT_NAME,\n },\n },\n admin_dashboard: {\n id: 'Pricing.copy.SummaryAdminDashboard',\n defaultMessage: 'Admin dashboard and user management',\n desc: {\n id: 'Pricing.copy.SummaryAdminDashboard',\n message: `${TYPE_LABEL} - SummaryAdminDashboard`,\n project: PROJECT_NAME,\n },\n },\n advanced_analyze_features: {\n id: 'Pricing.copy.SummaryAdvancedAnalyzeFeatures',\n defaultMessage: 'Advanced analyze features',\n desc: {\n id: 'Pricing.copy.SummaryAdvancedAnalyzeFeatures',\n message: `${TYPE_LABEL} - SummaryAdvancedAnalyzeFeatures`,\n project: PROJECT_NAME,\n },\n },\n advanced_collaboration: {\n id: 'Pricing.copy.SummaryAdvancedCollaborationFeatures',\n defaultMessage: 'Advanced collaboration features',\n desc: {\n id: 'Pricing.copy.SummaryAdvancedCollaborationFeatures',\n message: `${TYPE_LABEL} - `,\n project: PROJECT_NAME,\n },\n },\n advanced_logic: {\n id: 'Pricing.copy.SummaryAdvancedLogic',\n defaultMessage: 'Advanced survey logic tools',\n desc: {\n id: 'Pricing.copy.SummaryAdvancedLogic',\n message: `${TYPE_LABEL} - SummaryAdvancedLogic`,\n project: PROJECT_NAME,\n },\n },\n all_data_exports: {\n id: 'Pricing.copy.SummaryAllDataExports',\n defaultMessage: 'All data exports (CSV, XLS, PPT, PDF, SPSS)',\n desc: {\n id: 'Pricing.copy.SummaryAllDataExports',\n message: `${TYPE_LABEL} - SummaryAllDataExports`,\n project: PROJECT_NAME,\n },\n },\n all_languages_supported: {\n id: 'Pricing.copy.SummaryAllLanguagesSupported',\n defaultMessage: 'All Languages Supported',\n desc: {\n id: 'Pricing.copy.SummaryAllLanguagesSupported',\n message: `${TYPE_LABEL} - SummaryAllLanguagesSupported`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_share_customize_branding: {\n id: 'Pricing.copy.SummaryAnalyzeCanShareCustomizeBranding',\n defaultMessage: 'Customization and branding',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeCanShareCustomizeBranding',\n message: `${TYPE_LABEL} - SummaryAnalyzeCanShareCustomizeBranding`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters: {\n id: 'Pricing.copy.SummaryCombineFilters',\n defaultMessage: 'Unlimited filter and compare rules, data trends',\n desc: {\n id: 'Pricing.copy.SummaryCombineFilters',\n message: `${TYPE_LABEL} - SummaryCombineFilters`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_enabled: {\n id: 'Pricing.copy.SummaryAnalyzeExportEnabled',\n defaultMessage: 'Data exports (CSV, PDF, PPT, XLS)',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeExportEnabled',\n message: `${TYPE_LABEL} - SummaryAnalyzeExportEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_spss_enabled: {\n id: 'Pricing.copy.SummaryAnalyzeExportSpssEnabled',\n defaultMessage: 'Advanced data exports (SPSS)',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeExportSpssEnabled',\n message: `${TYPE_LABEL} - SummaryAnalyzeExportSpssEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_integrations: {\n id: 'Pricing.copy.SummaryAnalyzeIntegrations',\n defaultMessage: 'Free integrations with popular collaboration apps',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeIntegrations',\n message: `${TYPE_LABEL} - SummaryAnalyzeIntegrations`,\n project: PROJECT_NAME,\n },\n },\n analyze_results_together: {\n id: 'Pricing.copy.SummaryAnalyzeResultsTogether',\n defaultMessage: 'Let team members analyze, filter, and export results',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeResultsTogether',\n message: `${TYPE_LABEL} - SummaryAnalyzeResultsTogether`,\n project: PROJECT_NAME,\n },\n },\n sentiment: {\n id: 'Pricing.copy.SummaryAnalyzeSentimentEnabled',\n defaultMessage: 'Sentiment analysis',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeSentimentEnabled',\n message: `${TYPE_LABEL} - SummaryAnalyzeSentimentEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_trends_enabled: {\n id: 'Pricing.copy.SummaryAnalyzeTrendsEnabled',\n defaultMessage: '1 filter',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeTrendsEnabled',\n message: `${TYPE_LABEL} - SummaryAnalyzeTrendsEnabled`,\n project: PROJECT_NAME,\n },\n },\n asset_library: {\n id: 'Pricing.copy.SummaryAssetLibrary',\n defaultMessage: 'Shared asset library for on-brand surveys',\n desc: {\n id: 'Pricing.copy.SummaryAssetLibrary',\n message: `${TYPE_LABEL} - SummaryAssetLibrary`,\n project: PROJECT_NAME,\n },\n },\n base_response_count: {\n id: 'Pricing.copy.SummaryBaseResponseCount',\n defaultMessage: '{amount} responses per year**',\n desc: {\n id: 'Pricing.copy.SummaryBaseResponseCount',\n message: `${TYPE_LABEL} - SummaryBaseResponseCount`,\n project: PROJECT_NAME,\n },\n },\n benchmarks: {\n id: 'Pricing.copy.SummaryBenchmarks',\n defaultMessage: 'SurveyMonkey industry benchmarks',\n desc: {\n id: 'Pricing.copy.SummaryBenchmarks',\n message: `${TYPE_LABEL} - SummaryBenchmarks`,\n project: PROJECT_NAME,\n },\n },\n block_randomization: {\n id: 'Pricing.copy.SummaryBlockRandomization',\n defaultMessage: 'Block randomization',\n desc: {\n id: 'Pricing.copy.SummaryBlockRandomization',\n message: `${TYPE_LABEL} - SummaryBlockRandomization`,\n project: PROJECT_NAME,\n },\n },\n build_surveys_together: {\n id: 'Pricing.copy.SummaryBuildSurveysTogether',\n defaultMessage: 'Build Surveys Together',\n desc: {\n id: 'Pricing.copy.SummaryBuildSurveysTogether',\n message: `${TYPE_LABEL} - SummaryBuildSurveysTogether`,\n project: PROJECT_NAME,\n },\n },\n carry_forward: {\n id: 'Pricing.copy.SummaryCarryForward',\n defaultMessage: 'Carry Forward',\n desc: {\n id: 'Pricing.copy.SummaryCarryForward',\n message: `${TYPE_LABEL} - SummaryCarryForward`,\n project: PROJECT_NAME,\n },\n },\n click_map_qt: {\n id: 'Pricing.copy.SummaryClickMapQT',\n defaultMessage: 'Click map data visualization',\n desc: {\n id: 'Pricing.copy.SummaryClickMapQT',\n message: `${TYPE_LABEL} - SummaryClickMapQT`,\n project: PROJECT_NAME,\n },\n },\n collaborate: {\n id: 'Pricing.copy.SummaryCollaborate',\n defaultMessage: 'Survey sharing with fine control over who can view and edit',\n desc: {\n id: 'Pricing.copy.SummaryCollaborate',\n message: `${TYPE_LABEL} - SummaryCollaborate`,\n project: PROJECT_NAME,\n },\n },\n collect_contact_information: {\n id: 'Pricing.copy.SummaryCollectContactInformation',\n defaultMessage: 'Contact Information',\n desc: {\n id: 'Pricing.copy.SummaryCollectContactInformation',\n message: `${TYPE_LABEL} - SummaryCollectContactInformation`,\n project: PROJECT_NAME,\n },\n },\n collector_completion_url_enabled: {\n id: 'Pricing.copy.SummaryCollectorCompletionUrlEnabled',\n defaultMessage: 'Survey completion redirect',\n desc: {\n id: 'Pricing.copy.SummaryCollectorCompletionUrlEnabled',\n message: `${TYPE_LABEL} - SummaryCollectorCompletionUrlEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_mobile_sdk_enabled: {\n id: 'Pricing.copy.SummaryCollectorMobileSdkEnabled',\n defaultMessage: 'Mobile SDK',\n desc: {\n id: 'Pricing.copy.SummaryCollectorMobileSdkEnabled',\n message: `${TYPE_LABEL} - SummaryCollectorMobileSdkEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_popup_enabled: {\n id: 'Pricing.copy.SummaryCollectorPopupEnabled',\n defaultMessage: 'Pop up online surveys',\n desc: {\n id: 'Pricing.copy.SummaryCollectorPopupEnabled',\n message: `${TYPE_LABEL} - SummaryCollectorPopupEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_friendly_url_enabled: {\n id: 'Pricing.copy.SummaryCollectorFriendlyUrlEnabled',\n defaultMessage: 'Custom logo, colors, and survey URL',\n desc: {\n id: 'Pricing.copy.SummaryCollectorFriendlyUrlEnabled',\n message: `${TYPE_LABEL} - SummaryCollectorFriendlyUrlEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_white_label_enabled: {\n id: 'Pricing.copy.SummaryCollectorWhiteLabelEnabled',\n defaultMessage: 'White label surveys',\n desc: {\n id: 'Pricing.copy.SummaryCollectorWhiteLabelEnabled',\n message: `${TYPE_LABEL} - SummaryCollectorWhiteLabelEnabled`,\n project: PROJECT_NAME,\n },\n },\n consolidated_billing: {\n id: 'Pricing.copy.SummaryConsolidatedBilling',\n defaultMessage: 'Consolidated Billing',\n desc: {\n id: 'Pricing.copy.SummaryConsolidatedBilling',\n message: `${TYPE_LABEL} - SummaryConsolidatedBilling`,\n project: PROJECT_NAME,\n },\n },\n contributor_seats: {\n id: 'Pricing.copy.SummaryContributorSeats',\n defaultMessage: 'Add Contributor Seats',\n desc: {\n id: 'Pricing.copy.SummaryContributorSeats',\n message: `${TYPE_LABEL} - SummaryContributorSeats`,\n project: PROJECT_NAME,\n },\n },\n create_advanced_features: {\n id: 'Pricing.copy.SummaryCreateAdvancedFeatures',\n defaultMessage: 'A/B testing, randomization, quotas',\n desc: {\n id: 'Pricing.copy.SummaryCreateAdvancedFeatures',\n message: `${TYPE_LABEL} - SummaryCreateAdvancedFeatures`,\n project: PROJECT_NAME,\n },\n },\n create_custom_theme_enabled: {\n id: 'Pricing.copy.SummaryCreateCustomThemeEnabled',\n defaultMessage: 'Create Custom Theme',\n desc: {\n id: 'Pricing.copy.SummaryCreateCustomThemeEnabled',\n message: `${TYPE_LABEL} - SummaryCreateCustomThemeEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_custom_variables_enabled: {\n id: 'Pricing.copy.SummaryCreateCustomVariablesEnabled',\n defaultMessage: 'Custom variables',\n desc: {\n id: 'Pricing.copy.SummaryCreateCustomVariablesEnabled',\n message: `${TYPE_LABEL} - SummaryCreateCustomVariablesEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled: {\n id: 'Pricing.copy.SummaryCreatePipingEnabled',\n defaultMessage: 'Skip logic, question & answer piping',\n desc: {\n id: 'Pricing.copy.SummaryCreatePipingEnabled',\n message: `${TYPE_LABEL} - SummaryCreatePipingEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_question_limit: {\n id: 'Pricing.copy.SummaryCreateQuestionLimit',\n defaultMessage: 'Unlimited surveys and questions',\n desc: {\n id: 'Pricing.copy.SummaryCreateQuestionLimit',\n message: `${TYPE_LABEL} - SummaryCreateQuestionLimit`,\n project: PROJECT_NAME,\n },\n },\n skip_logic: {\n id: 'Pricing.copy.SummaryCreateSkipLogicEnabled',\n defaultMessage: 'Skip logic only',\n desc: {\n id: 'Pricing.copy.SummaryCreateSkipLogicEnabled',\n message: `${TYPE_LABEL} - SummaryCreateSkipLogicEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_toggle_footer_enabled: {\n id: 'Pricing.copy.SummaryCreateToggleFooterEnabled',\n defaultMessage: 'Hide SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.SummaryCreateToggleFooterEnabled',\n message: `${TYPE_LABEL} - SummaryCreateToggleFooterEnabled`,\n project: PROJECT_NAME,\n },\n },\n custom_templates: {\n id: 'Pricing.copy.SummaryCustomTemplates',\n defaultMessage: 'Custom Templates',\n desc: {\n id: 'Pricing.copy.SummaryCustomTemplates',\n message: `${TYPE_LABEL} - SummaryCustomTemplates`,\n project: PROJECT_NAME,\n },\n },\n customer_success: {\n id: 'Pricing.copy.SummaryCustomerSuccess',\n defaultMessage: 'Dedicated customer success manager***',\n desc: {\n id: 'Pricing.copy.SummaryCustomerSuccess',\n message: `${TYPE_LABEL} - SummaryCustomerSuccess`,\n project: PROJECT_NAME,\n },\n },\n download_as_ppt: {\n id: 'Pricing.copy.SummaryDownloadAsPpt',\n defaultMessage: 'Download as PPT',\n desc: {\n id: 'Pricing.copy.SummaryDownloadAsPpt',\n message: `${TYPE_LABEL} - SummaryDownloadAsPpt`,\n project: PROJECT_NAME,\n },\n },\n email_support: {\n id: 'Pricing.copy.SummaryEmailSupport',\n defaultMessage: '24/7 customer support via email',\n desc: {\n id: 'Pricing.copy.SummaryEmailSupport',\n message: `${TYPE_LABEL} - SummaryEmailSupport`,\n project: PROJECT_NAME,\n },\n },\n enable_ip_blocking: {\n id: 'Pricing.copy.SummaryEnableIpBlocking',\n defaultMessage: 'Enable IP Blocking',\n desc: {\n id: 'Pricing.copy.SummaryEnableIpBlocking',\n message: `${TYPE_LABEL} - SummaryEnableIpBlocking`,\n project: PROJECT_NAME,\n },\n },\n enhanced_governance: {\n id: 'Pricing.copy.SummaryEnhancedGovernance',\n defaultMessage: 'Enhanced governance and security features',\n desc: {\n id: 'Pricing.copy.SummaryEnhancedGovernance',\n message: `${TYPE_LABEL} - SummaryEnhancedGovernance`,\n project: PROJECT_NAME,\n },\n },\n essential_question_types: {\n id: 'Pricing.copy.SummaryEssentialQuestionTypes',\n defaultMessage: 'Essential Question Types',\n desc: {\n id: 'Pricing.copy.SummaryEssentialQuestionTypes',\n message: `${TYPE_LABEL} - SummaryEssentialQuestionTypes`,\n project: PROJECT_NAME,\n },\n },\n extended_piping: {\n id: 'Pricing.copy.SummaryExtendedPiping',\n defaultMessage: 'Advanced branching & piping, block randomization',\n desc: {\n id: 'Pricing.copy.SummaryExtendedPiping',\n message: `${TYPE_LABEL} - SummaryExtendedPiping`,\n project: PROJECT_NAME,\n },\n },\n extract_data: {\n id: 'Pricing.copy.SummaryExtractData',\n defaultMessage: 'Extract data',\n desc: {\n id: 'Pricing.copy.SummaryExtractData',\n message: `${TYPE_LABEL} - SummaryExtractData`,\n project: PROJECT_NAME,\n },\n },\n file_upload: {\n id: 'Pricing.copy.SummaryFileUpload',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.copy.SummaryFileUpload',\n message: `${TYPE_LABEL} - SummaryFileUpload`,\n project: PROJECT_NAME,\n },\n },\n flexible_plan_types: {\n id: 'Pricing.copy.SummaryFlexiblePlanTypes',\n defaultMessage: 'Flexible plan types for multiple users',\n desc: {\n id: 'Pricing.copy.SummaryFlexiblePlanTypes',\n message: `${TYPE_LABEL} - SummaryFlexiblePlanTypes`,\n project: PROJECT_NAME,\n },\n },\n footer_branding: {\n id: 'Pricing.copy.SummaryAnalyzeCanExportHideBranding',\n defaultMessage: 'Remove SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.SummaryAnalyzeCanExportHideBranding',\n message: `${TYPE_LABEL} - SummaryAnalyzeCanExportHideBranding`,\n project: PROJECT_NAME,\n },\n },\n gather_comments: {\n id: 'Pricing.copy.SummaryGatherComments',\n defaultMessage: 'Gather comments all in one place',\n desc: {\n id: 'Pricing.copy.SummaryGatherComments',\n message: `${TYPE_LABEL} - SummaryGatherComments`,\n project: PROJECT_NAME,\n },\n },\n hipaa_enabled: {\n id: 'Pricing.copy.SummaryHipaaEnabled',\n defaultMessage: 'HIPAA-compliant features***',\n desc: {\n id: 'Pricing.copy.SummaryHipaaEnabled',\n message: `${TYPE_LABEL} - SummaryHipaaEnabled`,\n project: PROJECT_NAME,\n },\n },\n integrations: {\n id: 'Pricing.copy.SummaryIntegrations',\n defaultMessage: 'Integrations with Salesforce, Marketo, Eloqua, and Tableau***',\n desc: {\n id: 'Pricing.copy.SummaryIntegrations',\n message: `${TYPE_LABEL} - `,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_inactivity_timer: {\n id: 'Pricing.copy.SummaryKioskModeInactivityTimer',\n defaultMessage: 'Kiosk Mode Inactivity Timer',\n desc: {\n id: 'Pricing.copy.SummaryKioskModeInactivityTimer',\n message: `${TYPE_LABEL} - SummaryKioskModeInactivityTimer`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_passcode_lock: {\n id: 'Pricing.copy.SummaryKioskModePasscodeLock',\n defaultMessage: 'Kiosk Mode Passcode Lock',\n desc: {\n id: 'Pricing.copy.SummaryKioskModePasscodeLock',\n message: `${TYPE_LABEL} - SummaryKioskModePasscodeLock`,\n project: PROJECT_NAME,\n },\n },\n matrix_question_type: {\n id: 'Pricing.copy.SummaryMatrixQuestionType',\n defaultMessage: 'Matrix Question Type',\n desc: {\n id: 'Pricing.copy.SummaryMatrixQuestionType',\n message: `${TYPE_LABEL} - SummaryMatrixQuestionType`,\n project: PROJECT_NAME,\n },\n },\n multilingual: {\n id: 'Pricing.copy.SummaryMultilingual',\n defaultMessage: 'Multilingual surveys',\n desc: {\n id: 'Pricing.copy.SummaryMultilingual',\n message: `${TYPE_LABEL} - `,\n project: PROJECT_NAME,\n },\n },\n num_free_responses: {\n id: 'Pricing.copy.SummaryNumFreeResponses',\n defaultMessage: '{amount} responses per month**',\n desc: {\n id: 'Pricing.copy.SummaryNumFreeResponses',\n message: `${TYPE_LABEL} - SummaryNumFreeResponses`,\n project: PROJECT_NAME,\n },\n },\n pagination: {\n id: 'Pricing.copy.SummaryPagination',\n defaultMessage: 'Pagination',\n desc: {\n id: 'Pricing.copy.SummaryPagination',\n message: `${TYPE_LABEL} - SummaryPagination`,\n project: PROJECT_NAME,\n },\n },\n password_protection: {\n id: 'Pricing.copy.SummaryPasswordProtection',\n defaultMessage: 'Password Protection',\n desc: {\n id: 'Pricing.copy.SummaryPasswordProtection',\n message: `${TYPE_LABEL} - SummaryPasswordProtection`,\n project: PROJECT_NAME,\n },\n },\n payment_qt: {\n id: 'Pricing.copy.SummaryPaymentQT',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.copy.SummaryPaymentQT',\n message: `${TYPE_LABEL} - `,\n project: PROJECT_NAME,\n },\n },\n phone_support: {\n id: 'Pricing.copy.SummaryPhoneSupport',\n defaultMessage: 'Phone support and 24/7 email support',\n desc: {\n id: 'Pricing.copy.SummaryPhoneSupport',\n message: `${TYPE_LABEL} - SummaryPhoneSupport`,\n project: PROJECT_NAME,\n },\n },\n benchmark_logic: {\n id: 'Pricing.copy.SummaryPlansBenchmark',\n defaultMessage: 'SurveyMonkey industry benchmarks',\n desc: {\n id: 'Pricing.copy.SummaryPlansBenchmark',\n message: `${TYPE_LABEL} - SummaryPlansBenchmark`,\n project: PROJECT_NAME,\n },\n },\n pop_up_collector: {\n id: 'Pricing.copy.SummaryPopupCollector',\n defaultMessage: 'Popup Collector',\n desc: {\n id: 'Pricing.copy.SummaryPopupCollector',\n message: `${TYPE_LABEL} - SummaryPopupCollector`,\n project: PROJECT_NAME,\n },\n },\n premium_themes: {\n id: 'Pricing.copy.SummaryPremiumThemes',\n defaultMessage: 'Premium Themes',\n desc: {\n id: 'Pricing.copy.SummaryPremiumThemes',\n message: `${TYPE_LABEL} - SummaryPremiumThemes`,\n project: PROJECT_NAME,\n },\n },\n priority_email_support: {\n id: 'Pricing.copy.SummaryPrimaryEmailSupport',\n defaultMessage: '24/7 expedited email support',\n desc: {\n id: 'Pricing.copy.SummaryPrimaryEmailSupport',\n message: `${TYPE_LABEL} - SummaryPrimaryEmailSupport`,\n project: PROJECT_NAME,\n },\n },\n private_apps: {\n id: 'Pricing.copy.SummaryPrivateApps',\n defaultMessage: 'Unlimited API access***',\n desc: {\n id: 'Pricing.copy.SummaryPrivateApps',\n message: `${TYPE_LABEL} - SummaryPrivateApps`,\n project: PROJECT_NAME,\n },\n },\n progress_bar: {\n id: 'Pricing.copy.SummaryProgressBar',\n defaultMessage: 'Progress Bar',\n desc: {\n id: 'Pricing.copy.SummaryProgressBar',\n message: `${TYPE_LABEL} - SummaryProgressBar`,\n project: PROJECT_NAME,\n },\n },\n question_library: {\n id: 'Pricing.copy.SummaryQuestionLibrary',\n defaultMessage: 'Question Library',\n desc: {\n id: 'Pricing.copy.SummaryQuestionLibrary',\n message: `${TYPE_LABEL} - SummaryQuestionLibrary`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro: {\n id: 'Pricing.copy.SummaryQuizzesPro',\n defaultMessage: 'Quizzes with custom feedback',\n desc: {\n id: 'Pricing.copy.SummaryQuizzesPro',\n message: `${TYPE_LABEL} - SummaryQuizzesPro`,\n project: PROJECT_NAME,\n },\n },\n randomize_answer_choices: {\n id: 'Pricing.copy.SummaryRandomizeAnswerChoices',\n defaultMessage: 'Randomize Answer Choices',\n desc: {\n id: 'Pricing.copy.SummaryRandomizeAnswerChoices',\n message: `${TYPE_LABEL} - SummaryRandomizeAnswerChoices`,\n project: PROJECT_NAME,\n },\n },\n ranking_question_type: {\n id: 'Pricing.copy.SummaryRankingQuestionType',\n defaultMessage: 'Ranking Question Type',\n desc: {\n id: 'Pricing.copy.SummaryRankingQuestionType',\n message: `${TYPE_LABEL} - SummaryRankingQuestionType`,\n project: PROJECT_NAME,\n },\n },\n rating_question_type: {\n id: 'Pricing.copy.SummaryRatingQuestionType',\n defaultMessage: 'Rating Question Type',\n desc: {\n id: 'Pricing.copy.SummaryRatingQuestionType',\n message: `${TYPE_LABEL} - SummaryRatingQuestionType`,\n project: PROJECT_NAME,\n },\n },\n real_time_results: {\n id: 'Pricing.copy.SummaryRealTimeResults',\n defaultMessage: 'Real Time Results',\n desc: {\n id: 'Pricing.copy.SummaryRealTimeResults',\n message: `${TYPE_LABEL} - SummaryRealTimeResults`,\n project: PROJECT_NAME,\n },\n },\n record_respondent_email_address: {\n id: 'Pricing.copy.SummaryRecordRespondentEmailAddress',\n defaultMessage: 'Record Respondent Email Address',\n desc: {\n id: 'Pricing.copy.SummaryRecordRespondentEmailAddress',\n message: `${TYPE_LABEL} - SummaryRecordRespondentEmailAddress`,\n project: PROJECT_NAME,\n },\n },\n recurring_surveys: {\n id: 'Pricing.copy.SummaryRecurringSurveys',\n defaultMessage: 'Recurring Surveys',\n desc: {\n id: 'Pricing.copy.SummaryRecurringSurveys',\n message: `${TYPE_LABEL} - SummaryRecurringSurveys`,\n project: PROJECT_NAME,\n },\n },\n response_alerts: {\n id: 'Pricing.copy.SummaryResponseAlerts',\n defaultMessage: 'Notify others when you get new responses',\n desc: {\n id: 'Pricing.copy.SummaryResponseAlerts',\n message: `${TYPE_LABEL} - SummaryResponseAlerts`,\n project: PROJECT_NAME,\n },\n },\n response_quality_enabled: {\n id: 'Pricing.copy.SummaryResponseQualityEnabled',\n defaultMessage: 'Response Quality',\n desc: {\n id: 'Pricing.copy.SummaryResponseQualityEnabled',\n message: `${TYPE_LABEL} - SummaryResponseQualityEnabled`,\n project: PROJECT_NAME,\n },\n },\n send_surveys: {\n id: 'Pricing.copy.SummarySendSurveys',\n defaultMessage: 'Send Surveys',\n desc: {\n id: 'Pricing.copy.SummarySendSurveys',\n message: `${TYPE_LABEL} - SummarySendSurveys`,\n project: PROJECT_NAME,\n },\n },\n set_max_response_count: {\n id: 'Pricing.copy.SummarySetMaxResponseCount',\n defaultMessage: 'Set Max Response Count',\n desc: {\n id: 'Pricing.copy.SummarySetMaxResponseCount',\n message: `${TYPE_LABEL} - SummarySetMaxResponseCount`,\n project: PROJECT_NAME,\n },\n },\n set_survey_end_date: {\n id: 'Pricing.copy.SummarySetSurveyEndDate',\n defaultMessage: 'Set Survey End Date',\n desc: {\n id: 'Pricing.copy.SummarySetSurveyEndDate',\n message: `${TYPE_LABEL} - SummarySetSurveyEndDate`,\n project: PROJECT_NAME,\n },\n },\n share_surveys: {\n id: 'Pricing.copy.SummaryShareSurveys',\n defaultMessage: 'Share Surveys',\n desc: {\n id: 'Pricing.copy.SummaryShareSurveys',\n message: `${TYPE_LABEL} - SummaryShareSurveys`,\n project: PROJECT_NAME,\n },\n },\n shared_assets: {\n id: 'Pricing.copy.SummarySharedAssets',\n defaultMessage: 'Shared asset library for on-brand surveys',\n desc: {\n id: 'Pricing.copy.SummarySharedAssets',\n message: `${TYPE_LABEL} - SummarySharedAssets`,\n project: PROJECT_NAME,\n },\n },\n shared_library: {\n id: 'Pricing.copy.SummarySharedLibrary',\n defaultMessage: 'Shared Library',\n desc: {\n id: 'Pricing.copy.SummarySharedLibrary',\n message: `${TYPE_LABEL} - SummarySharedLibrary`,\n project: PROJECT_NAME,\n },\n },\n show_create_crosstab: {\n id: 'Pricing.copy.SummaryShowCreateCrosstab',\n defaultMessage: 'Crosstabs',\n desc: {\n id: 'Pricing.copy.SummaryShowCreateCrosstab',\n message: `${TYPE_LABEL} - SummaryShowCreateCrosstab`,\n project: PROJECT_NAME,\n },\n },\n single_sign_on: {\n id: 'Pricing.copy.SummarySingleSignOn',\n defaultMessage: 'Single sign-on (SSO)',\n desc: {\n id: 'Pricing.copy.SummarySingleSignOn',\n message: `${TYPE_LABEL} - SummarySingleSignOn`,\n project: PROJECT_NAME,\n },\n },\n slider_question_type: {\n id: 'Pricing.copy.SummarySliderQuestionType',\n defaultMessage: 'Slider Question Type',\n desc: {\n id: 'Pricing.copy.SummarySliderQuestionType',\n message: `${TYPE_LABEL} - SummarySliderQuestionType`,\n project: PROJECT_NAME,\n },\n },\n statistical_significance: {\n id: 'Pricing.copy.SummaryStatisticalSignificance',\n defaultMessage: 'Text analysis & statistical significance',\n desc: {\n id: 'Pricing.copy.SummaryStatisticalSignificance',\n message: `${TYPE_LABEL} - SummaryStatisticalSignificance`,\n project: PROJECT_NAME,\n },\n },\n survey_branding: {\n id: 'Pricing.copy.SummarySurveyBranding',\n defaultMessage: 'Custom logo, colors, and survey URL',\n desc: {\n id: 'Pricing.copy.SummarySurveyBranding',\n message: `${TYPE_LABEL} - SummarySurveyBranding`,\n project: PROJECT_NAME,\n },\n },\n survey_create_limit: {\n id: 'Pricing.copy.SummarySurveyCreateLimit',\n defaultMessage: 'Unlimited number of surveys',\n desc: {\n id: 'Pricing.copy.SummarySurveyCreateLimit',\n message: `${TYPE_LABEL} - SummarySurveyCreateLimit`,\n project: PROJECT_NAME,\n },\n },\n team_activity: {\n id: 'Pricing.copy.SummaryTeamActivity',\n defaultMessage: 'Activity tracking through audit logs',\n desc: {\n id: 'Pricing.copy.SummaryTeamActivity',\n message: `${TYPE_LABEL} - SummaryTeamActivity`,\n project: PROJECT_NAME,\n },\n },\n team_logic: {\n id: 'Pricing.copy.SummaryTeamLogic',\n defaultMessage: 'Add or reassign accounts at any time',\n desc: {\n id: 'Pricing.copy.SummaryTeamLogic',\n message: `${TYPE_LABEL} - SummaryTeamLogic`,\n project: PROJECT_NAME,\n },\n },\n team_ownership: {\n id: 'Pricing.copy.SummaryTeamOwnership',\n defaultMessage: 'Team Ownership',\n desc: {\n id: 'Pricing.copy.SummaryTeamOwnership',\n message: `${TYPE_LABEL} - SummaryTeamOwnership`,\n project: PROJECT_NAME,\n },\n },\n team_themes: {\n id: 'Pricing.copy.SummaryTeamThemes',\n defaultMessage: 'Team Themes',\n desc: {\n id: 'Pricing.copy.SummaryTeamThemes',\n message: `${TYPE_LABEL} - SummaryTeamThemes`,\n project: PROJECT_NAME,\n },\n },\n text_analysis: {\n id: 'Pricing.copy.SummaryTextAnalysis',\n defaultMessage: 'Text analysis',\n desc: {\n id: 'Pricing.copy.SummaryTextAnalysis',\n message: `${TYPE_LABEL} - SummaryTextAnalysis`,\n project: PROJECT_NAME,\n },\n },\n text_formatting: {\n id: 'Pricing.copy.SummaryTextFormatting',\n defaultMessage: 'Text Formatting',\n desc: {\n id: 'Pricing.copy.SummaryTextFormatting',\n message: `${TYPE_LABEL} - SummaryTextFormatting`,\n project: PROJECT_NAME,\n },\n },\n track_email_responses: {\n id: 'Pricing.copy.SummaryTrackEmailResponses',\n defaultMessage: 'Track Email Responses',\n desc: {\n id: 'Pricing.copy.SummaryTrackEmailResponses',\n message: `${TYPE_LABEL} - SummaryTrackEmailResponses`,\n project: PROJECT_NAME,\n },\n },\n unlimited_questions: {\n id: 'Pricing.copy.SummaryUnlimitedQuestions',\n defaultMessage: 'Unlimited questions per survey',\n desc: {\n id: 'Pricing.copy.SummaryUnlimitedQuestions',\n message: `${TYPE_LABEL} - SummaryUnlimitedQuestions`,\n project: PROJECT_NAME,\n },\n },\n unlimited_responses: {\n id: 'Pricing.copy.SummaryUnlimitedResponses',\n defaultMessage: 'Unlimited surveys and questions',\n desc: {\n id: 'Pricing.copy.SummaryUnlimitedResponses',\n message: `${TYPE_LABEL} - SummaryUnlimitedResponses`,\n project: PROJECT_NAME,\n },\n },\n user_management: {\n id: 'Pricing.copy.SummaryUserManagement',\n defaultMessage: 'User Management',\n desc: {\n id: 'Pricing.copy.SummaryUserManagement',\n message: `${TYPE_LABEL} - SummaryUserManagement`,\n project: PROJECT_NAME,\n },\n },\n validate_answer: {\n id: 'Pricing.copy.SummaryValidateAnswer',\n defaultMessage: 'Validate Answer',\n desc: {\n id: 'Pricing.copy.SummaryValidateAnswer',\n message: `${TYPE_LABEL} - SummaryValidateAnswer`,\n project: PROJECT_NAME,\n },\n },\n video_question_type: {\n id: 'Pricing.copy.SummaryVideoQuestionType',\n defaultMessage: 'Video Question Type',\n desc: {\n id: 'Pricing.copy.SummaryVideoQuestionType',\n message: `${TYPE_LABEL} - SummaryVideoQuestionType`,\n project: PROJECT_NAME,\n },\n },\n view_respondent_ip_address: {\n id: 'Pricing.copy.SummaryViewRespondentIpAddress',\n defaultMessage: `View respondent's IP address`,\n desc: {\n id: 'Pricing.copy.SummaryViewRespondentIpAddress',\n message: `${TYPE_LABEL} - SummaryViewRespondentIpAddress`,\n project: PROJECT_NAME,\n },\n },\n});\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst TYPE_LABEL = '[Type: Label][Vis: high] - Feature Set List Item';\nconst GLOBAL_BENCHMARKS = 'SurveyMonkey Global Benchmarks';\nconst RESPONSES_PER_YEAR = 'Number of responses';\nconst SHARED_LIBRARY = 'Shared library';\n\nexport default defineMessages({\n '508_accessibility': {\n id: 'Pricing.copy.Details508Accessibility',\n defaultMessage: 'Fully accessible, 508 compliant surveys',\n desc: {\n id: 'Pricing.copy.Details508Accessibility',\n message: `${TYPE_LABEL} - Details508Accessibility`,\n project: PROJECT_NAME,\n },\n },\n a_b_testing: {\n id: 'Pricing.copy.DetailsABTesting',\n defaultMessage: 'A/B test question type',\n desc: {\n id: 'Pricing.copy.DetailsABTesting',\n message: `${TYPE_LABEL} - DetailsABTesting`,\n project: PROJECT_NAME,\n },\n },\n account_control: {\n id: 'Pricing.copy.DetailsAccountControl',\n defaultMessage: 'Account control',\n desc: {\n id: 'Pricing.copy.DetailsAccountControl',\n message: `${TYPE_LABEL} - DetailsAccountControl`,\n project: PROJECT_NAME,\n },\n },\n add_users: {\n id: 'Pricing.copy.DetailsAddUsers',\n defaultMessage: 'Additional Full User Accounts',\n desc: {\n id: 'Pricing.copy.DetailsAddUsers',\n message: `${TYPE_LABEL} - DetailsAddUsers`,\n project: PROJECT_NAME,\n },\n },\n admin_dashboard: {\n id: 'Pricing.copy.DetailsAdminDashboard',\n defaultMessage: 'Admin dashboard',\n desc: {\n id: 'Pricing.copy.DetailsAdminDashboard',\n message: `${TYPE_LABEL} - DetailsAdminDashboard`,\n project: PROJECT_NAME,\n },\n },\n advanced_logic: {\n id: 'Pricing.copy.DetailsAdvancedLogic',\n defaultMessage: 'Advanced survey logic',\n desc: {\n id: 'Pricing.copy.DetailsAdvancedLogic',\n message: `${TYPE_LABEL} - DetailsAdvancedLogic`,\n project: PROJECT_NAME,\n },\n },\n advanced_survey_features: {\n id: 'Pricing.copy.DetailsAdvancedSurveyFeatures',\n defaultMessage: 'A/B testing, randomization, quotas',\n desc: {\n id: 'Pricing.copy.DetailsAdvancedSurveyFeatures',\n message: `${TYPE_LABEL} - DetailsAdvancedSurveyFeatures`,\n project: PROJECT_NAME,\n },\n },\n all_languages_supported: {\n id: 'Pricing.copy.DetailsAllLanguagesSupported',\n defaultMessage: 'All languages supported',\n desc: {\n id: 'Pricing.copy.DetailsAllLanguagesSupported',\n message: `${TYPE_LABEL} - DetailsAllLanguagesSupported`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_customize_charts: {\n id: 'Pricing.copy.DetailsAnalyzeCanCustomizeCharts',\n defaultMessage: 'Generate custom charts & reports',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeCanCustomizeCharts',\n message: `${TYPE_LABEL} - DetailsAnalyzeCanCustomizeCharts`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_export_hide_branding: {\n id: 'Pricing.copy.DetailsAnalyzeCanExportHideBranding',\n defaultMessage: 'Remove SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeCanExportHideBranding',\n message: `${TYPE_LABEL} - DetailsAnalyzeCanExportHideBranding`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_share_customize_branding: {\n id: 'Pricing.copy.DetailsAnalyzeCanShareCustomizeBranding',\n defaultMessage: 'Add your logo',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeCanShareCustomizeBranding',\n message: `${TYPE_LABEL} - DetailsAnalyzeCanShareCustomizeBranding`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_ta_tag: {\n id: 'Pricing.copy.DetailsAnalyzeCanTATag',\n defaultMessage: 'Tag written answers',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeCanTATag',\n message: `${TYPE_LABEL} - DetailsAnalyzeCanTATag`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters: {\n id: 'Pricing.copy.DetailsCombineFilters',\n defaultMessage: 'Filter & compare results',\n desc: {\n id: 'Pricing.copy.DetailsCombineFilters',\n message: `${TYPE_LABEL} - DetailsCombineFilters`,\n project: PROJECT_NAME,\n },\n },\n analyze_dashboard_password_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeDashboardPasswordEnabled',\n defaultMessage: 'Dashboard: Password protection',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeDashboardPasswordEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeDashboardPasswordEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeExportEnabled',\n defaultMessage: 'Download results as CSV, XLS or PDF',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeExportEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeExportEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_spss_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeExportSpssEnabled',\n defaultMessage: 'Export to SPSS',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeExportSpssEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeExportSpssEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_integrations: {\n id: 'Pricing.copy.DetailsAnalyzeIntegrations',\n defaultMessage: 'Extract data',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeIntegrations',\n message: `${TYPE_LABEL} - DetailsAnalyzeIntegrations`,\n project: PROJECT_NAME,\n },\n },\n analyze_results_together: {\n id: 'Pricing.copy.DetailsAnalyzeResultsTogether',\n defaultMessage: 'Analyze results together',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeResultsTogether',\n message: `${TYPE_LABEL} - DetailsAnalyzeResultsTogether`,\n project: PROJECT_NAME,\n },\n },\n analyze_sentiment_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeSentimentEnabled',\n defaultMessage: 'Sentiment analysis',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeSentimentEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeSentimentEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_ta_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeTAEnabled',\n defaultMessage: 'Word clouds',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeTAEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeTAEnabled`,\n project: PROJECT_NAME,\n },\n },\n analyze_trends_enabled: {\n id: 'Pricing.copy.DetailsAnalyzeTrendsEnabled',\n defaultMessage: 'Data trends',\n desc: {\n id: 'Pricing.copy.DetailsAnalyzeTrendsEnabled',\n message: `${TYPE_LABEL} - DetailsAnalyzeTrendsEnabled`,\n project: PROJECT_NAME,\n },\n },\n asset_library: {\n id: 'Pricing.copy.DetailsAssetLibrary',\n defaultMessage: SHARED_LIBRARY,\n desc: {\n id: 'Pricing.copy.DetailsAssetLibrary',\n message: `${TYPE_LABEL} - DetailsAssetLibrary`,\n project: PROJECT_NAME,\n },\n },\n base_response_count: {\n id: 'Pricing.copy.DetailsBaseResponseCount',\n defaultMessage: RESPONSES_PER_YEAR,\n desc: {\n id: 'Pricing.copy.DetailsBaseResponseCount',\n message: `${TYPE_LABEL} - DetailsBaseResponseCount`,\n project: PROJECT_NAME,\n },\n },\n benchmarks: {\n id: 'Pricing.copy.DetailsBenchmarks',\n defaultMessage: 'SurveyMonkey Industry Benchmarks',\n desc: {\n id: 'Pricing.copy.DetailsBenchmarks',\n message: `${TYPE_LABEL} - DetailsBenchmarks`,\n project: PROJECT_NAME,\n },\n },\n build_surveys_together: {\n id: 'Pricing.copy.DetailsBuildSurveysTogether',\n defaultMessage: 'Build surveys together',\n desc: {\n id: 'Pricing.copy.DetailsBuildSurveysTogether',\n message: `${TYPE_LABEL} - DetailsBuildSurveysTogether`,\n project: PROJECT_NAME,\n },\n },\n carry_forward: {\n id: 'Pricing.copy.DetailsCarryForward',\n defaultMessage: 'Carry forward responses',\n desc: {\n id: 'Pricing.copy.DetailsCarryForward',\n message: `${TYPE_LABEL} - DetailsCarryForward`,\n project: PROJECT_NAME,\n },\n },\n click_map_qt: {\n id: 'Pricing.copy.DetailsClickMapQT',\n defaultMessage: 'Click map data visualization',\n desc: {\n id: 'Pricing.copy.DetailsClickMapQT',\n message: `${TYPE_LABEL} - DetailsClickMapQT`,\n project: PROJECT_NAME,\n },\n },\n collaboration: {\n id: 'Pricing.copy.DetailsCollaboration',\n defaultMessage: 'Advanced permissions',\n desc: {\n id: 'Pricing.copy.DetailsCollaboration',\n message: `${TYPE_LABEL} - DetailsCollaboration`,\n project: PROJECT_NAME,\n },\n },\n collect_contact_information: {\n id: 'Pricing.copy.DetailsCollectContactInformation',\n defaultMessage: 'Collect contact information',\n desc: {\n id: 'Pricing.copy.DetailsCollectContactInformation',\n message: `${TYPE_LABEL} - DetailsCollectContactInformation`,\n project: PROJECT_NAME,\n },\n },\n collector_completion_url_enabled: {\n id: 'Pricing.copy.DetailsCollectorCompletionUrlEnabled',\n defaultMessage: 'Survey completion redirect',\n desc: {\n id: 'Pricing.copy.DetailsCollectorCompletionUrlEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorCompletionUrlEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_create_limit: {\n id: 'Pricing.copy.DetailsCollectorCreateLimit',\n defaultMessage: 'Number of collectors',\n desc: {\n id: 'Pricing.copy.DetailsCollectorCreateLimit',\n message: `${TYPE_LABEL} - DetailsCollectorCreateLimit`,\n project: PROJECT_NAME,\n },\n },\n collector_mobile_sdk_enabled: {\n id: 'Pricing.copy.DetailsCollectorMobileSdkEnabled',\n defaultMessage: 'Mobile SDK',\n desc: {\n id: 'Pricing.copy.DetailsCollectorMobileSdkEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorMobileSdkEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_popup_enabled: {\n id: 'Pricing.copy.DetailsCollectorPopupEnabled',\n defaultMessage: 'Pop up online surveys',\n desc: {\n id: 'Pricing.copy.DetailsCollectorPopupEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorPopupEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_friendly_url_enabled: {\n id: 'Pricing.copy.DetailsCollectorFriendlyUrlEnabled',\n defaultMessage: 'Custom SurveyMonkey URL',\n desc: {\n id: 'Pricing.copy.DetailsCollectorFriendlyUrlEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorFriendlyUrlEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_thank_you_enabled: {\n id: 'Pricing.copy.DetailsCollectorThankYouEnabled',\n defaultMessage: `Display a 'thank you' page`,\n desc: {\n id: 'Pricing.copy.DetailsCollectorThankYouEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorThankYouEnabled`,\n project: PROJECT_NAME,\n },\n },\n collector_white_label_enabled: {\n id: 'Pricing.copy.DetailsCollectorWhiteLabelEnabled',\n defaultMessage: 'White label surveys',\n desc: {\n id: 'Pricing.copy.DetailsCollectorWhiteLabelEnabled',\n message: `${TYPE_LABEL} - DetailsCollectorWhiteLabelEnabled`,\n project: PROJECT_NAME,\n },\n },\n consolidated_billing: {\n id: 'Pricing.copy.DetailsConsolidatedBilling',\n defaultMessage: 'Consolidated billing',\n desc: {\n id: 'Pricing.copy.DetailsConsolidatedBilling',\n message: `${TYPE_LABEL} - DetailsConsolidatedBilling`,\n project: PROJECT_NAME,\n },\n },\n contributor_seats: {\n id: 'Pricing.copy.DetailsContributorSeats',\n defaultMessage: 'Contributor Seats',\n desc: {\n id: 'Pricing.copy.DetailsContributorSeats',\n message: `${TYPE_LABEL} - DetailsContributorSeats`,\n project: PROJECT_NAME,\n },\n },\n create_custom_html_email_message_enabled: {\n id: 'Pricing.copy.DetailsCreateCustomHtmlEmailMessageEnabled',\n defaultMessage: 'Custom HTML email invitations',\n desc: {\n id: 'Pricing.copy.DetailsCreateCustomHtmlEmailMessageEnabled',\n message: `${TYPE_LABEL} - DetailsCreateCustomHtmlEmailMessageEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_custom_theme_enabled: {\n id: 'Pricing.copy.DetailsCreateCustomThemeEnabled',\n defaultMessage: 'Custom themes, colors & more',\n desc: {\n id: 'Pricing.copy.DetailsCreateCustomThemeEnabled',\n message: `${TYPE_LABEL} - DetailsCreateCustomThemeEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_custom_variables_enabled: {\n id: 'Pricing.copy.DetailsCreateCustomVariablesEnabled',\n defaultMessage: 'Custom variables',\n desc: {\n id: 'Pricing.copy.DetailsCreateCustomVariablesEnabled',\n message: `${TYPE_LABEL} - DetailsCreateCustomVariablesEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_grayscale_footer: {\n id: 'Pricing.copy.DetailsCreateGrayscaleFooter',\n defaultMessage: 'Subtle SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.DetailsCreateGrayscaleFooter',\n message: `${TYPE_LABEL} - DetailsCreateGrayscaleFooter`,\n project: PROJECT_NAME,\n },\n },\n create_logo_enabled: {\n id: 'Pricing.copy.DetailsCreateLogoEnabled',\n defaultMessage: 'Add your logo',\n desc: {\n id: 'Pricing.copy.DetailsCreateLogoEnabled',\n message: `${TYPE_LABEL} - `,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled: {\n id: 'Pricing.copy.DetailsCreatePipingEnabled',\n defaultMessage: 'Question & answer piping',\n desc: {\n id: 'Pricing.copy.DetailsCreatePipingEnabled',\n message: `${TYPE_LABEL} - DetailsCreatePipingEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_print_enabled: {\n id: 'Pricing.copy.DetailsCreatePrintEnabled',\n defaultMessage: 'Print reports',\n desc: {\n id: 'Pricing.copy.DetailsCreatePrintEnabled',\n message: `${TYPE_LABEL} - DetailsCreatePrintEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_question_limit: {\n id: 'Pricing.copy.DetailsCreateQuestionLimit',\n defaultMessage: 'Questions per survey',\n desc: {\n id: 'Pricing.copy.DetailsCreateQuestionLimit',\n message: `${TYPE_LABEL} - DetailsCreateQuestionLimit`,\n project: PROJECT_NAME,\n },\n },\n create_quotas_enabled: {\n id: 'Pricing.copy.DetailsCreateQuotasEnabled',\n defaultMessage: 'Response quotas',\n desc: {\n id: 'Pricing.copy.DetailsCreateQuotasEnabled',\n message: `${TYPE_LABEL} - DetailsCreateQuotasEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_randomization_enabled: {\n id: 'Pricing.copy.DetailsCreateRandomizationEnabled',\n defaultMessage: 'Question & page randomization',\n desc: {\n id: 'Pricing.copy.DetailsCreateRandomizationEnabled',\n message: `${TYPE_LABEL} - DetailsCreateRandomizationEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_skip_logic_enabled: {\n id: 'Pricing.copy.DetailsCreateSkipLogicEnabled',\n defaultMessage: 'Question & page skip logic',\n desc: {\n id: 'Pricing.copy.DetailsCreateSkipLogicEnabled',\n message: `${TYPE_LABEL} - DetailsCreateSkipLogicEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_templates_enabled: {\n id: 'Pricing.copy.DetailsCreateTemplatesEnabled',\n defaultMessage: 'Expert, pre-written survey templates',\n desc: {\n id: 'Pricing.copy.DetailsCreateTemplatesEnabled',\n message: `${TYPE_LABEL} - DetailsCreateTemplatesEnabled`,\n project: PROJECT_NAME,\n },\n },\n create_toggle_footer_enabled: {\n id: 'Pricing.copy.DetailsCreateToggleFooterEnabled',\n defaultMessage: 'Remove SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.DetailsCreateToggleFooterEnabled',\n message: `${TYPE_LABEL} - DetailsCreateToggleFooterEnabled`,\n project: PROJECT_NAME,\n },\n },\n custom_question_bank: {\n id: 'Pricing.copy.DetailsCustomQuestionBank',\n defaultMessage: 'Custom Question Bank',\n desc: {\n id: 'Pricing.copy.DetailsCustomQuestionBank',\n message: `${TYPE_LABEL} - DetailsCustomQuestionBank`,\n project: PROJECT_NAME,\n },\n },\n custom_subdomain: {\n id: 'Pricing.copy.DetailsCustomSubdomain',\n defaultMessage: 'Custom subdomain',\n desc: {\n id: 'Pricing.copy.DetailsCustomSubdomain',\n message: `${TYPE_LABEL} - DetailsCustomSubdomain`,\n project: PROJECT_NAME,\n },\n },\n custom_templates: {\n id: 'Pricing.copy.DetailsCustomTemplates',\n defaultMessage: 'Shared templates',\n desc: {\n id: 'Pricing.copy.DetailsCustomTemplates',\n message: `${TYPE_LABEL} - DetailsCustomTemplates`,\n project: PROJECT_NAME,\n },\n },\n custom_terms_of_use: {\n id: 'Pricing.copy.DetailsCustomTermsOfUse',\n defaultMessage: 'Custom Terms of Use',\n desc: {\n id: 'Pricing.copy.DetailsCustomTermsOfUse',\n message: `${TYPE_LABEL} - DetailsCustomTermsOfUse`,\n project: PROJECT_NAME,\n },\n },\n customize_disqualification_page_enabled: {\n id: 'Pricing.copy.DetailsCustomizeDisqualificationPageEnabled',\n defaultMessage: 'Display disqualification page',\n desc: {\n id: 'Pricing.copy.DetailsCustomizeDisqualificationPageEnabled',\n message: `${TYPE_LABEL} - DetailsCustomizeDisqualificationPageEnabled`,\n project: PROJECT_NAME,\n },\n },\n customer_success_manager: {\n id: 'Pricing.copy.DetailsCustomerSuccessManager',\n defaultMessage: 'Customer Success Manager',\n desc: {\n id: 'Pricing.copy.DetailsCustomerSuccessManager',\n message: `${TYPE_LABEL} - DetailsCustomerSuccessManager`,\n project: PROJECT_NAME,\n },\n },\n dashboard: {\n id: 'Pricing.copy.DetailsDashboard',\n defaultMessage: 'Dashboard',\n desc: {\n id: 'Pricing.copy.DetailsDashboard',\n message: `${TYPE_LABEL} - DetailsDashboard`,\n project: PROJECT_NAME,\n },\n },\n download_as_ppt: {\n id: 'Pricing.copy.DetailsDownloadAsPpt',\n defaultMessage: 'Download results in PPT format',\n desc: {\n id: 'Pricing.copy.DetailsDownloadAsPpt',\n message: `${TYPE_LABEL} - DetailsDownloadAsPpt`,\n project: PROJECT_NAME,\n },\n },\n email_support: {\n id: 'Pricing.copy.DetailsEmailSupport',\n defaultMessage: '24/7 email support',\n desc: {\n id: 'Pricing.copy.DetailsEmailSupport',\n message: `${TYPE_LABEL} - DetailsEmailSupport`,\n project: PROJECT_NAME,\n },\n },\n enable_ip_blocking: {\n id: 'Pricing.copy.DetailsEnableIpBlocking',\n defaultMessage: 'Enable IP Blocking',\n desc: {\n id: 'Pricing.copy.DetailsEnableIpBlocking',\n message: `${TYPE_LABEL} - DetailsEnableIpBlocking`,\n project: PROJECT_NAME,\n },\n },\n essential_question_types: {\n id: 'Pricing.copy.DetailsEssentialQuestionTypes',\n defaultMessage: 'Essential question types',\n desc: {\n id: 'Pricing.copy.DetailsEssentialQuestionTypes',\n message: `${TYPE_LABEL} - DetailsEssentialQuestionTypes`,\n project: PROJECT_NAME,\n },\n },\n extract_data: {\n id: 'Pricing.copy.DetailsExtractData',\n defaultMessage: 'Extract data',\n desc: {\n id: 'Pricing.copy.DetailsExtractData',\n message: `${TYPE_LABEL} - DetailsExtractData`,\n project: PROJECT_NAME,\n },\n },\n file_upload: {\n id: 'Pricing.copy.DetailsFileUpload',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.copy.DetailsFileUpload',\n message: `${TYPE_LABEL} - DetailsFileUpload`,\n project: PROJECT_NAME,\n },\n },\n global_settings: {\n id: 'Pricing.copy.DetailsGlobalSettings',\n defaultMessage: 'Global settings',\n desc: {\n id: 'Pricing.copy.DetailsGlobalSettings',\n message: `${TYPE_LABEL} - DetailsGlobalSettings`,\n project: PROJECT_NAME,\n },\n },\n hipaa_enabled: {\n id: 'Pricing.copy.DetailsHipaaEnabled',\n defaultMessage: 'HIPAA-compliant features',\n desc: {\n id: 'Pricing.copy.DetailsHipaaEnabled',\n message: `${TYPE_LABEL} - DetailsHipaaEnabled`,\n project: PROJECT_NAME,\n },\n },\n enterprise_only_integrations: {\n id: 'Pricing.copy.DetailsEnterpriseOnlyIntegrations',\n defaultMessage: 'Enterprise-only integrations',\n desc: {\n id: 'Pricing.copy.DetailsEnterpriseOnlyIntegrations',\n message: `${TYPE_LABEL} - DetailsEnterpriseOnlyIntegrations`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_inactivity_timer: {\n id: 'Pricing.copy.DetailsKioskModeInactivityTimer',\n defaultMessage: 'Kiosk Mode: Inactivity Timer',\n desc: {\n id: 'Pricing.copy.DetailsKioskModeInactivityTimer',\n message: `${TYPE_LABEL} - DetailsKioskModeInactivityTimer`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_passcode_lock: {\n id: 'Pricing.copy.DetailsKioskModePasscodeLock',\n defaultMessage: 'Kiosk Mode: Passcode Lock',\n desc: {\n id: 'Pricing.copy.DetailsKioskModePasscodeLock',\n message: `${TYPE_LABEL} - DetailsKioskModePasscodeLock`,\n project: PROJECT_NAME,\n },\n },\n labeling_titles_numbering: {\n id: 'Pricing.copy.DetailsLabelingTitlesNumbering',\n defaultMessage: 'Labeling, titles & numbering',\n desc: {\n id: 'Pricing.copy.DetailsLabelingTitlesNumbering',\n message: `${TYPE_LABEL} - DetailsLabelingTitlesNumbering`,\n project: PROJECT_NAME,\n },\n },\n matrix_question_type: {\n id: 'Pricing.copy.DetailsMatrixQuestionType',\n defaultMessage: 'Matrix questions',\n desc: {\n id: 'Pricing.copy.DetailsMatrixQuestionType',\n message: `${TYPE_LABEL} - DetailsMatrixQuestionType`,\n project: PROJECT_NAME,\n },\n },\n menu_matrix_enabled: {\n id: 'Pricing.copy.DetailsMenuMatrixEnabled',\n defaultMessage: 'Matrix of dropdown menus',\n desc: {\n id: 'Pricing.copy.DetailsMenuMatrixEnabled',\n message: `${TYPE_LABEL} - DetailsMenuMatrixEnabled`,\n project: PROJECT_NAME,\n },\n },\n mobile_apps_ios_android: {\n id: 'Pricing.copy.DetailsMobileAppsIOSAndAndroid',\n defaultMessage: 'Mobile apps for iOS and Android',\n desc: {\n id: 'Pricing.copy.DetailsMobileAppsIOSAndAndroid',\n message: `${TYPE_LABEL} - DetailsMobileAppsIOSAndAndroid`,\n project: PROJECT_NAME,\n },\n },\n mobile_sdk_pull_response_data_enabled: {\n id: 'Pricing.copy.DetailsMobileSdkPullResponseDataEnabled',\n defaultMessage: 'Mobile SDK - Data Pull',\n desc: {\n id: 'Pricing.copy.DetailsMobileSdkPullResponseDataEnabled',\n message: `${TYPE_LABEL} - DetailsMobileSdkPullResponseDataEnabled`,\n project: PROJECT_NAME,\n },\n },\n multilingual: {\n id: 'Pricing.copy.DetailsMultilingual',\n defaultMessage: 'Multilingual surveys',\n desc: {\n id: 'Pricing.copy.DetailsMultilingual',\n message: `${TYPE_LABEL} - DetailsMultilingual`,\n project: PROJECT_NAME,\n },\n },\n multiple_block_rotation_enabled: {\n id: 'Pricing.copy.DetailsMultipleBlockRotationEnabled',\n defaultMessage: 'Block randomization',\n desc: {\n id: 'Pricing.copy.DetailsMultipleBlockRotationEnabled',\n message: `${TYPE_LABEL} - DetailsMultipleBlockRotationEnabled`,\n project: PROJECT_NAME,\n },\n },\n num_free_responses: {\n id: 'Pricing.copy.DetailsNumFreeResponses',\n defaultMessage: RESPONSES_PER_YEAR,\n desc: {\n id: 'Pricing.copy.DetailsNumFreeResponses',\n message: `${TYPE_LABEL} - DetailsNumFreeResponses`,\n project: PROJECT_NAME,\n },\n },\n onboarding: {\n id: 'Pricing.copy.DetailsOnboarding',\n defaultMessage: 'Onboarding',\n desc: {\n id: 'Pricing.copy.DetailsOnboarding',\n message: `${TYPE_LABEL} - DetailsOnboarding`,\n project: PROJECT_NAME,\n },\n },\n pagination: {\n id: 'Pricing.copy.DetailsPagination',\n defaultMessage: 'Pagination',\n desc: {\n id: 'Pricing.copy.DetailsPagination',\n message: `${TYPE_LABEL} - DetailsPagination`,\n project: PROJECT_NAME,\n },\n },\n password_protection: {\n id: 'Pricing.copy.DetailsPasswordProtection',\n defaultMessage: 'Password-protected surveys',\n desc: {\n id: 'Pricing.copy.DetailsPasswordProtection',\n message: `${TYPE_LABEL} - DetailsPasswordProtection`,\n project: PROJECT_NAME,\n },\n },\n payment_qt: {\n id: 'Pricing.copy.DetailsPaymentQT',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.copy.DetailsPaymentQT',\n message: `${TYPE_LABEL} - DetailsPaymentQT`,\n project: PROJECT_NAME,\n },\n },\n phone_support: {\n id: 'Pricing.copy.DetailsPhoneSupport',\n defaultMessage: 'Phone support',\n desc: {\n id: 'Pricing.copy.DetailsPhoneSupport',\n message: `${TYPE_LABEL} - DetailsPhoneSupport`,\n project: PROJECT_NAME,\n },\n },\n plans_benchmarks: {\n id: 'Pricing.copy.DetailsPlansBenchmark',\n defaultMessage: GLOBAL_BENCHMARKS,\n desc: {\n id: 'Pricing.copy.DetailsPlansBenchmark',\n message: `${TYPE_LABEL} - DetailsPlansBenchmark`,\n project: PROJECT_NAME,\n },\n },\n pop_up_collector: {\n id: 'Pricing.copy.DetailsPopupCollector',\n defaultMessage: 'Pop up online surveys',\n desc: {\n id: 'Pricing.copy.DetailsPopupCollector',\n message: `${TYPE_LABEL} - DetailsPopupCollector`,\n project: PROJECT_NAME,\n },\n },\n premium_themes: {\n id: 'Pricing.copy.DetailsPremiumThemes',\n defaultMessage: 'Premium themes',\n desc: {\n id: 'Pricing.copy.DetailsPremiumThemes',\n message: `${TYPE_LABEL} - DetailsPremiumThemes`,\n project: PROJECT_NAME,\n },\n },\n priority_email_support: {\n id: 'Pricing.copy.DetailsPrimaryEmailSupport',\n defaultMessage: 'Expedited email support',\n desc: {\n id: 'Pricing.copy.DetailsPrimaryEmailSupport',\n message: `${TYPE_LABEL} - DetailsPrimaryEmailSupport`,\n project: PROJECT_NAME,\n },\n },\n private_apps: {\n id: 'Pricing.copy.DetailsPrivateApps',\n defaultMessage: 'Unlimited API access',\n desc: {\n id: 'Pricing.copy.DetailsPrivateApps',\n message: `${TYPE_LABEL} - DetailsPrivateApps`,\n project: PROJECT_NAME,\n },\n },\n progress_bar: {\n id: 'Pricing.copy.DetailsProgressBar',\n defaultMessage: 'Progress bar',\n desc: {\n id: 'Pricing.copy.DetailsProgressBar',\n message: `${TYPE_LABEL} - DetailsProgressBar`,\n project: PROJECT_NAME,\n },\n },\n question_library: {\n id: 'Pricing.copy.DetailsQuestionLibrary',\n defaultMessage: 'Question Bank approved questions',\n desc: {\n id: 'Pricing.copy.DetailsQuestionLibrary',\n message: `${TYPE_LABEL} - DetailsQuestionLibrary`,\n project: PROJECT_NAME,\n },\n },\n quiz_scoring_and_instant_results: {\n id: 'Pricing.copy.DetailsQuizScoring',\n defaultMessage: 'Quiz scoring & instant results',\n desc: {\n id: 'Pricing.copy.DetailsQuizScoring',\n message: `${TYPE_LABEL} - DetailsQuizScoring`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro: {\n id: 'Pricing.copy.DetailsQuizzesPro',\n defaultMessage: 'Quizzes pro',\n desc: {\n id: 'Pricing.copy.DetailsQuizzesPro',\n message: `${TYPE_LABEL} - DetailsQuizzesPro`,\n project: PROJECT_NAME,\n },\n },\n randomize_answer_choices: {\n id: 'Pricing.copy.DetailsRandomizeAnswerChoices',\n defaultMessage: 'Randomize answer choices',\n desc: {\n id: 'Pricing.copy.DetailsRandomizeAnswerChoices',\n message: `${TYPE_LABEL} - DetailsRandomizeAnswerChoices`,\n project: PROJECT_NAME,\n },\n },\n ranking_question_type: {\n id: 'Pricing.copy.DetailsRankingQuestionType',\n defaultMessage: 'Ranking questions',\n desc: {\n id: 'Pricing.copy.DetailsRankingQuestionType',\n message: `${TYPE_LABEL} - DetailsRankingQuestionType`,\n project: PROJECT_NAME,\n },\n },\n rating_question_type: {\n id: 'Pricing.copy.DetailsRatingQuestionType',\n defaultMessage: 'Rating questions',\n desc: {\n id: 'Pricing.copy.DetailsRatingQuestionType',\n message: `${TYPE_LABEL} - DetailsRatingQuestionType`,\n project: PROJECT_NAME,\n },\n },\n real_time_results: {\n id: 'Pricing.copy.DetailsRealTimeResults',\n defaultMessage: 'Real time results',\n desc: {\n id: 'Pricing.copy.DetailsRealTimeResults',\n message: `${TYPE_LABEL} - DetailsRealTimeResults`,\n project: PROJECT_NAME,\n },\n },\n record_respondent_email_address: {\n id: 'Pricing.copy.DetailsRecordRespondentEmailAddress',\n defaultMessage: 'Record respondent email address',\n desc: {\n id: 'Pricing.copy.DetailsRecordRespondentEmailAddress',\n message: `${TYPE_LABEL} - DetailsRecordRespondentEmailAddress`,\n project: PROJECT_NAME,\n },\n },\n recurring_surveys: {\n id: 'Pricing.copy.DetailsRecurringSurveys',\n defaultMessage: 'Recurring surveys',\n desc: {\n id: 'Pricing.copy.DetailsRecurringSurveys',\n message: `${TYPE_LABEL} - DetailsRecurringSurveys`,\n project: PROJECT_NAME,\n },\n },\n require_answer: {\n id: 'Pricing.copy.DetailsRequireAnswer',\n defaultMessage: 'Require answer completion',\n desc: {\n id: 'Pricing.copy.DetailsRequireAnswer',\n message: `${TYPE_LABEL} - DetailsRequireAnswer`,\n project: PROJECT_NAME,\n },\n },\n respondent_receipt: {\n id: 'Pricing.copy.DetailsRespondentReceipt',\n defaultMessage: 'Confirmation Email to Respondents',\n desc: {\n id: 'Pricing.copy.DetailsRespondentReceipt',\n message: `${TYPE_LABEL} - DetailsRespondentReceipt`,\n project: PROJECT_NAME,\n },\n },\n response_quality_enabled: {\n id: 'Pricing.copy.DetailsResponseQualityEnabled',\n defaultMessage: 'Response Quality',\n desc: {\n id: 'Pricing.copy.DetailsResponseQualityEnabled',\n message: `${TYPE_LABEL} - DetailsResponseQualityEnabled`,\n project: PROJECT_NAME,\n },\n },\n send_surveys: {\n id: 'Pricing.copy.DetailsSendSurveys',\n defaultMessage: 'Send Surveys',\n desc: {\n id: 'Pricing.copy.DetailsSendSurveys',\n message: `${TYPE_LABEL} - DetailsSendSurveys`,\n project: PROJECT_NAME,\n },\n },\n set_max_response_count: {\n id: 'Pricing.copy.DetailsSetMaxResponseCount',\n defaultMessage: 'Set Max Response Count',\n desc: {\n id: 'Pricing.copy.DetailsSetMaxResponseCount',\n message: `${TYPE_LABEL} - DetailsSetMaxResponseCount`,\n project: PROJECT_NAME,\n },\n },\n set_survey_end_date: {\n id: 'Pricing.copy.DetailsSetSurveyEndDate',\n defaultMessage: 'Set survey end date',\n desc: {\n id: 'Pricing.copy.DetailsSetSurveyEndDate',\n message: `${TYPE_LABEL} - DetailsSetSurveyEndDate`,\n project: PROJECT_NAME,\n },\n },\n share_surveys: {\n id: 'Pricing.copy.DetailsShareSurveys',\n defaultMessage: 'Share survey data',\n desc: {\n id: 'Pricing.copy.DetailsShareSurveys',\n message: `${TYPE_LABEL} - DetailsShareSurveys`,\n project: PROJECT_NAME,\n },\n },\n shared_library: {\n id: 'Pricing.copy.DetailsSharedLibrary',\n defaultMessage: SHARED_LIBRARY,\n desc: {\n id: 'Pricing.copy.DetailsSharedLibrary',\n message: `${TYPE_LABEL} - DetailsSharedLibrary`,\n project: PROJECT_NAME,\n },\n },\n show_create_crosstab: {\n id: 'Pricing.copy.DetailsShowCreateCrosstab',\n defaultMessage: 'Crosstabs',\n desc: {\n id: 'Pricing.copy.DetailsShowCreateCrosstab',\n message: `${TYPE_LABEL} - DetailsShowCreateCrosstab`,\n project: PROJECT_NAME,\n },\n },\n show_sig_diffs_enabled: {\n id: 'Pricing.copy.DetailsShowSigDiffsEnabled',\n defaultMessage: 'Statistical significance',\n desc: {\n id: 'Pricing.copy.DetailsShowSigDiffsEnabled',\n message: `${TYPE_LABEL} - DetailsShowSigDiffsEnabled`,\n project: PROJECT_NAME,\n },\n },\n single_sign_on: {\n id: 'Pricing.copy.DetailsSingleSignOn',\n defaultMessage: 'Single sign-on',\n desc: {\n id: 'Pricing.copy.DetailsSingleSignOn',\n message: `${TYPE_LABEL} - DetailsSingleSignOn`,\n project: PROJECT_NAME,\n },\n },\n slider_question_type: {\n id: 'Pricing.copy.DetailsSliderQuestionType',\n defaultMessage: 'Slider questions',\n desc: {\n id: 'Pricing.copy.DetailsSliderQuestionType',\n message: `${TYPE_LABEL} - DetailsSliderQuestionType`,\n project: PROJECT_NAME,\n },\n },\n survey_branding: {\n id: 'Pricing.copy.DetailsSurveyBranding',\n defaultMessage: 'Custom logo, colors, and survey URL',\n desc: {\n id: 'Pricing.copy.DetailsSurveyBranding',\n message: `${TYPE_LABEL} - DetailsSurveyBranding`,\n project: PROJECT_NAME,\n },\n },\n survey_create_limit: {\n id: 'Pricing.copy.DetailsSurveyCreateLimit',\n defaultMessage: 'Number of surveys',\n desc: {\n id: 'Pricing.copy.DetailsSurveyCreateLimit',\n message: `${TYPE_LABEL} - DetailsSurveyCreateLimit`,\n project: PROJECT_NAME,\n },\n },\n team_activity: {\n id: 'Pricing.copy.DetailsTeamActivity',\n defaultMessage: 'Team activity',\n desc: {\n id: 'Pricing.copy.DetailsTeamActivity',\n message: `${TYPE_LABEL} - DetailsTeamActivity`,\n project: PROJECT_NAME,\n },\n },\n team_ownership: {\n id: 'Pricing.copy.DetailsTeamOwnership',\n defaultMessage: 'Team ownership',\n desc: {\n id: 'Pricing.copy.DetailsTeamOwnership',\n message: `${TYPE_LABEL} - DetailsTeamOwnership`,\n project: PROJECT_NAME,\n },\n },\n team_themes: {\n id: 'Pricing.copy.DetailsTeamThemes',\n defaultMessage: 'Shared themes',\n desc: {\n id: 'Pricing.copy.DetailsTeamThemes',\n message: `${TYPE_LABEL} - DetailsTeamThemes`,\n project: PROJECT_NAME,\n },\n },\n text_analysis: {\n id: 'Pricing.copy.DetailsTextAnalysis',\n defaultMessage: 'Text analysis',\n desc: {\n id: 'Pricing.copy.DetailsTextAnalysis',\n message: `${TYPE_LABEL} - DetailsTextAnalysis`,\n project: PROJECT_NAME,\n },\n },\n text_formatting: {\n id: 'Pricing.copy.DetailsTextFormatting',\n defaultMessage: 'Text formatting',\n desc: {\n id: 'Pricing.copy.DetailsTextFormatting',\n message: `${TYPE_LABEL} - DetailsTextFormatting`,\n project: PROJECT_NAME,\n },\n },\n track_email_responses: {\n id: 'Pricing.copy.DetailsTrackEmailResponses',\n defaultMessage: 'Track Email Responses',\n desc: {\n id: 'Pricing.copy.DetailsTrackEmailResponses',\n message: `${TYPE_LABEL} - DetailsTrackEmailResponses`,\n project: PROJECT_NAME,\n },\n },\n unlimited_responses: {\n id: 'Pricing.copy.DetailsUnlimitedResponses',\n defaultMessage: 'Unlimited surveys and questions',\n desc: {\n id: 'Pricing.copy.DetailsUnlimitedResponses',\n message: `${TYPE_LABEL} - DetailsUnlimitedResponses`,\n project: PROJECT_NAME,\n },\n },\n user_management: {\n id: 'Pricing.copy.DetailsUserManagement',\n defaultMessage: 'Additional Users',\n desc: {\n id: 'Pricing.copy.DetailsUserManagement',\n message: `${TYPE_LABEL} - DetailsUserManagement`,\n project: PROJECT_NAME,\n },\n },\n validate_answer: {\n id: 'Pricing.copy.DetailsValidateAnswer',\n defaultMessage: 'Answer validation',\n desc: {\n id: 'Pricing.copy.DetailsValidateAnswer',\n message: `${TYPE_LABEL} - DetailsValidateAnswer`,\n project: PROJECT_NAME,\n },\n },\n video_question_type: {\n id: 'Pricing.copy.DetailsVideoQuestionType',\n defaultMessage: 'Video and image questions',\n desc: {\n id: 'Pricing.copy.DetailsVideoQuestionType',\n message: `${TYPE_LABEL} - DetailsVideoQuestionType`,\n project: PROJECT_NAME,\n },\n },\n view_respondent_ip_address: {\n id: 'Pricing.copy.DetailsViewRespondentIpAddress',\n defaultMessage: `View respondent's IP address`,\n desc: {\n id: 'Pricing.copy.DetailsViewRespondentIpAddress',\n message: `${TYPE_LABEL} - DetailsViewRespondentIpAddress`,\n project: PROJECT_NAME,\n },\n },\n web_social_email_responses: {\n id: 'Pricing.copy.DetailsWebSocialEmailResponses',\n defaultMessage: 'Get responses via web, social or email',\n desc: {\n id: 'Pricing.copy.DetailsWebSocialEmailResponses',\n message: `${TYPE_LABEL} - DetailsWebSocialEmailResponses`,\n project: PROJECT_NAME,\n },\n },\n word_cloud_combine_hide: {\n id: 'Pricing.copy.DetailsWordCloudCombineHide',\n defaultMessage: 'Word clouds: Combine or hide words',\n desc: {\n id: 'Pricing.copy.DetailsWordCloudCombineHide',\n message: `${TYPE_LABEL} - DetailsWordCloudCombineHide`,\n project: PROJECT_NAME,\n },\n },\n});\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nexport const TYPE_HEADER = '[Type: Header][Vis: high] - Feature Set List Item Tooltip Headings';\nexport const TYPE_PARAGRAPH = '[Type: Paragraph][Vis: high] - Feature Set List Item Tooltip';\nconst NUM_RESPONSES = 'Number of responses';\nconst NUM_RESPONSES_TOOLTIP =\n 'Each plan has a limited number of responses as indicated. Basic users must purchase a paid plan to view responses in excess of the Response Limit. For other plans, users will be invoiced up to {overageCost} or equivalent, for each response over the indicated Response Limit.';\nconst SUPPORT = '24/7 Customer support via email';\nconst SUPPORT_TOOLTIP =\n 'We offer 24/7 email support for all customers. Emails from ADVANTAGE and PREMIER customers are prioritized to receive responses as quickly as possible. We also offer phone support for our PREMIER customers.';\nconst CONTRIBUTOR_SEATS = 'Contributor seats';\nconst CONTRIBUTOR_SEATS_TOOLTIP =\n 'While purchasing a team plan, you can add Contributor seats as a cost-effective way to include more stakeholders to analyze survey results. Contributors can use SurveyMonkey analysis features but cannot create or send surveys. Full Users on your team can share surveys with Contributors.';\nconst SENTIMENT_ANALYSIS = 'Sentiment analysis';\nconst SENTIMENT_ANALYSIS_TOOLTIP = `We'll automatically label your text responses as positive, neutral, or negative to reveal the emotion behind what people are saying.`;\nconst DATA_EXPORTS = 'Data exports';\nconst DATA_EXPORTS_TOOLTIP = `Create and print custom charts and reports quickly and easily. You'll be able to download survey results in several file formats, including as CSV, PDF, PPT, or XLS files. Export for SPSS for Advantage and Premier members.`;\nconst ADVANCED_LOGIC = 'Advanced survey logic';\nconst ADVANCED_LOGIC_TOOLTIP =\n 'Enhance your survey data with access to advanced branching, advanced piping, block randomization, quotas, and more. Use custom variables to track data about respondents by passing one or more values through a survey link and into your survey results.';\nconst ADVANCED_SURVEY_LOGIC = 'Advanced survey analysis';\nconst ADVANCED_SURVEY_LOGIC_TOOLTIP =\n 'Get more context for your data. See if there are statistically significant differences between response groups. And use text analysis to search and categorize open-ended responses and quickly see frequently used words and phrases.';\n\nexport default defineMessages({\n a_b_testing_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ABTestingTooltipHeading',\n defaultMessage: 'A/B test question type',\n desc: {\n id: 'Pricing.tooltipCopy.ABTestingTooltipHeading',\n message: `${TYPE_HEADER} - ABTestingTooltipHeading`,\n project: PROJECT_NAME,\n },\n },\n a_b_testing_tooltip: {\n id: 'Pricing.tooltipCopy.ABTestingTooltip',\n defaultMessage:\n 'Conduct A/B tests and test for answer bias by randomly segmenting respondents to see different images or text.',\n desc: {\n id: 'Pricing.tooltipCopy.ABTestingTooltip',\n message: `${TYPE_PARAGRAPH} - 1`,\n project: PROJECT_NAME,\n },\n },\n account_control_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AccountControlTooltipHeading',\n defaultMessage: 'Account control',\n desc: {\n id: 'Pricing.tooltipCopy.AccountControlTooltipHeading',\n message: `${TYPE_HEADER} - 2`,\n project: PROJECT_NAME,\n },\n },\n account_control_tooltip: {\n id: 'Pricing.tooltipCopy.AccountControlTooltip',\n defaultMessage: `Automate onboarding users. Seamlessly enable new users to sign up or migrate existing users into your organization's SurveyMonkey Enterprise account.`,\n desc: {\n id: 'Pricing.tooltipCopy.AccountControlTooltip',\n message: `${TYPE_PARAGRAPH} - 3`,\n project: PROJECT_NAME,\n },\n },\n add_users_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AddUsersTooltipHeading',\n defaultMessage: 'Additional Full User accounts',\n desc: {\n id: 'Pricing.tooltipCopy.AddUsersTooltipHeading',\n message: `${TYPE_HEADER} - 4`,\n project: PROJECT_NAME,\n },\n },\n add_users_tooltip: {\n id: 'Pricing.tooltipCopy.AddUsersTooltip',\n defaultMessage: `Business plans start at 3 Full Users, and allow you to invite more Full Users to your SurveyMonkey team for an additional fee. While purchasing a plan with a minimum of 3 users, you can add Contributor seats in bundles of 2 as a cost-effective way to add stakeholders to focus solely on analyzing survey results. Learn More »`,\n desc: {\n id: 'Pricing.tooltipCopy.AddUsersTooltip',\n message: `${TYPE_PARAGRAPH} - 5`,\n project: PROJECT_NAME,\n },\n },\n admin_dashboard_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AdminDashboardTooltipHeading',\n defaultMessage: 'Admin dashboard',\n desc: {\n id: 'Pricing.tooltipCopy.AdminDashboardTooltipHeading',\n message: `${TYPE_HEADER} - 6`,\n project: PROJECT_NAME,\n },\n },\n admin_dashboard_tooltip: {\n id: 'Pricing.tooltipCopy.AdminDashboardTooltip',\n defaultMessage: `Get visibility into your team's activity. View usage metrics like the number of surveys each user has in their account, and the date of their last login. You can also preview surveys in each account too.`,\n desc: {\n id: 'Pricing.tooltipCopy.AdminDashboardTooltip',\n message: `${TYPE_PARAGRAPH} - 7`,\n project: PROJECT_NAME,\n },\n },\n advanced_analyze_features_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AdvancedAnalyzeFeaturesTooltipHeading',\n defaultMessage: ADVANCED_SURVEY_LOGIC,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedAnalyzeFeaturesTooltipHeading',\n message: `${TYPE_HEADER} - 8`,\n project: PROJECT_NAME,\n },\n },\n advanced_analyze_features_tooltip: {\n id: 'Pricing.tooltipCopy.AdvancedAnalyzeFeaturesTooltip',\n defaultMessage: ADVANCED_SURVEY_LOGIC_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedAnalyzeFeaturesTooltip',\n message: `${TYPE_PARAGRAPH} - 9`,\n project: PROJECT_NAME,\n },\n },\n advanced_collaboration_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AdvancedCollaborationTooltipHeading',\n defaultMessage: CONTRIBUTOR_SEATS,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedCollaborationTooltipHeading',\n message: `${TYPE_HEADER} - 10`,\n project: PROJECT_NAME,\n },\n },\n advanced_collaboration_tooltip: {\n id: 'Pricing.tooltipCopy.AdvancedCollaborationTooltip',\n defaultMessage: CONTRIBUTOR_SEATS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedCollaborationTooltip',\n message: `${TYPE_PARAGRAPH} - 11`,\n project: PROJECT_NAME,\n },\n },\n advanced_logic_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AdvancedLogicTooltipHeading',\n defaultMessage: ADVANCED_LOGIC,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedLogicTooltipHeading',\n message: `${TYPE_HEADER} - 12`,\n project: PROJECT_NAME,\n },\n },\n advanced_logic_tooltip: {\n id: 'Pricing.tooltipCopy.AdvancedLogicTooltip',\n defaultMessage: ADVANCED_LOGIC_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AdvancedLogicTooltip',\n message: `${TYPE_PARAGRAPH} - 13`,\n project: PROJECT_NAME,\n },\n },\n all_data_exports_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AllDataExportsTooltipHeading',\n defaultMessage: DATA_EXPORTS,\n desc: {\n id: 'Pricing.tooltipCopy.AllDataExportsTooltipHeading',\n message: `${TYPE_HEADER} - 14`,\n project: PROJECT_NAME,\n },\n },\n all_data_exports_tooltip: {\n id: 'Pricing.tooltipCopy.AllDataExportsTooltip',\n defaultMessage: DATA_EXPORTS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AllDataExportsTooltip',\n message: `${TYPE_PARAGRAPH} - 15`,\n project: PROJECT_NAME,\n },\n },\n all_languages_supported_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AllLanguagesSupportedTooltipHeading',\n defaultMessage: 'All languages supported',\n desc: {\n id: 'Pricing.tooltipCopy.AllLanguagesSupportedTooltipHeading',\n message: `${TYPE_HEADER} - 16`,\n project: PROJECT_NAME,\n },\n },\n all_languages_supported_tooltip: {\n id: 'Pricing.tooltipCopy.AllLanguagesSupportedTooltip',\n defaultMessage:\n 'Create surveys in any language. You can write in unicode or multi-byte languages, and choose navigation buttons, help text, and error messages from 58 languages.',\n desc: {\n id: 'Pricing.tooltipCopy.AllLanguagesSupportedTooltip',\n message: `${TYPE_PARAGRAPH} - 17`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_share_customize_branding_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeCanShareCustomizeBrandingTooltipHeading',\n defaultMessage: 'Customization and branding',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanShareCustomizeBrandingTooltipHeading',\n message: `${TYPE_HEADER} - 18`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_share_customize_branding_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeCanShareCustomizeBrandingTooltip',\n defaultMessage:\n 'Ensure a consistent brand experience for all survey-takers and enjoy customization features like Custom Subdomain, Custom Terms of Use and Custom Question Bank.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanShareCustomizeBrandingTooltip',\n message: `${TYPE_PARAGRAPH} - 19`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_ta_tag_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeCanTATagTooltipHeading',\n defaultMessage: 'Tag written answers',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanTATagTooltipHeading',\n message: `${TYPE_HEADER} - 20`,\n project: PROJECT_NAME,\n },\n },\n analyze_can_ta_tag_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeCanTATagTooltip',\n defaultMessage:\n 'Tag written answers to organize them by topic and uncover trends. See the percentage of answers that include each tag.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanTATagTooltip',\n message: `${TYPE_PARAGRAPH} - 21`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CombineFiltersTooltipHeading',\n defaultMessage: 'Filter and compare rules',\n desc: {\n id: 'Pricing.tooltipCopy.CombineFiltersTooltipHeading',\n message: `${TYPE_HEADER} - 22`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters_tooltip: {\n id: 'Pricing.tooltipCopy.CombineFiltersTooltip',\n defaultMessage:\n 'Use filter and compare rules to segment your data and discover hidden trends. With a Basic plan, you can apply and save one rule to your data, but paid plans allow you to save and apply an unlimited number of rules. Data trends let you see how your results have changed over time.',\n desc: {\n id: 'Pricing.tooltipCopy.CombineFiltersTooltip',\n message: `${TYPE_PARAGRAPH} - 23`,\n project: PROJECT_NAME,\n },\n },\n analyze_dashboard_password_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeDashboardPasswordEnabledTooltipHeading',\n defaultMessage: 'Dashboard: Password protection',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeDashboardPasswordEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 24`,\n project: PROJECT_NAME,\n },\n },\n analyze_dashboard_password_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeDashboardPasswordEnabledTooltip',\n defaultMessage: 'Set a password for your dashboards for share more securely.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeDashboardPasswordEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 25`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeExportEnabledTooltipHeading',\n defaultMessage: DATA_EXPORTS,\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeExportEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 26`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeExportEnabledTooltip',\n defaultMessage: DATA_EXPORTS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeExportEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 27`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_spss_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeExportSpssEnabledTooltipHeading',\n defaultMessage: 'Advanced data exports',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeExportSpssEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 28`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_spss_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeExportSpssEnabledTooltip',\n defaultMessage:\n 'Download your survey results into SPSS—along with CSV, PDF, PPT, or XLS files too. Also create and print custom charts and reports quickly and easily.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeExportSpssEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 29`,\n project: PROJECT_NAME,\n },\n },\n analyze_integrations_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeIntegrationsTooltipHeading',\n defaultMessage: 'Integrations',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeIntegrationsTooltipHeading',\n message: `${TYPE_HEADER} - 30`,\n project: PROJECT_NAME,\n },\n },\n analyze_integrations_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeIntegrationsTooltip',\n defaultMessage: `SurveyMonkey integrates with popular apps like Office 365, Google Drive, and Slack, so it's easy to use with your existing workflows.`,\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeIntegrationsTooltip',\n message: `${TYPE_PARAGRAPH} - 31`,\n project: PROJECT_NAME,\n },\n },\n analyze_results_together_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeResultsTogetherTooltipHeading',\n defaultMessage: 'Analyze results together',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeResultsTogetherTooltipHeading',\n message: `${TYPE_HEADER} - 32`,\n project: PROJECT_NAME,\n },\n },\n analyze_results_together_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeResultsTogetherTooltip',\n defaultMessage: 'Give your team access to survey results and export tools.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeResultsTogetherTooltip',\n message: `${TYPE_PARAGRAPH} - 33`,\n project: PROJECT_NAME,\n },\n },\n analyze_sentiment_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeSentimentEnabledTooltipHeading',\n defaultMessage: SENTIMENT_ANALYSIS,\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeSentimentEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 34`,\n project: PROJECT_NAME,\n },\n },\n analyze_sentiment_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeSentimentEnabledTooltip',\n defaultMessage: SENTIMENT_ANALYSIS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeSentimentEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 35`,\n project: PROJECT_NAME,\n },\n },\n sentiment_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SentimentAnalysisEnabledTooltipHeading',\n defaultMessage: SENTIMENT_ANALYSIS,\n desc: {\n id: 'Pricing.tooltipCopy.SentimentAnalysisEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 36`,\n project: PROJECT_NAME,\n },\n },\n sentiment_tooltip: {\n id: 'Pricing.tooltipCopy.SentimentAnalysisEnabledTooltip',\n defaultMessage: SENTIMENT_ANALYSIS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.SentimentAnalysisEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 37`,\n project: PROJECT_NAME,\n },\n },\n analyze_ta_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeTAEnabledTooltipHeading',\n defaultMessage: 'Word clouds',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeTAEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 38`,\n project: PROJECT_NAME,\n },\n },\n analyze_ta_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeTAEnabledTooltip',\n defaultMessage:\n 'Quickly spot trends and common themes in written answers. Words with lots of mentions appear bigger so you can get a quick understanding of what matters most to your respondents.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeTAEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 39`,\n project: PROJECT_NAME,\n },\n },\n analyze_trends_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeTrendsEnabledTooltipHeading',\n defaultMessage: 'Data trends',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeTrendsEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 40`,\n project: PROJECT_NAME,\n },\n },\n analyze_trends_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeTrendsEnabledTooltip',\n defaultMessage: 'View your results trended over time to spot changes when they happen.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeTrendsEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 41`,\n project: PROJECT_NAME,\n },\n },\n base_response_count_tooltip_heading: {\n id: 'Pricing.tooltipCopy.BaseResponseCountTooltipHeading',\n defaultMessage: NUM_RESPONSES,\n desc: {\n id: 'Pricing.tooltipCopy.BaseResponseCountTooltipHeading',\n message: `${TYPE_HEADER} - 42`,\n project: PROJECT_NAME,\n },\n },\n base_response_count_tooltip: {\n id: 'Pricing.tooltipCopy.BaseResponseCountTooltip',\n defaultMessage: NUM_RESPONSES_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.BaseResponseCountTooltip',\n message: `${TYPE_PARAGRAPH} - 43`,\n project: PROJECT_NAME,\n },\n },\n benchmarks_tooltip_heading: {\n id: 'Pricing.tooltipCopy.BenchmarksTooltipHeading',\n defaultMessage: 'SurveyMonkey industry benchmarks',\n desc: {\n id: 'Pricing.tooltipCopy.BenchmarksTooltipHeading',\n message: `${TYPE_HEADER} - 44`,\n project: PROJECT_NAME,\n },\n },\n benchmarks_tooltip: {\n id: 'Pricing.tooltipCopy.BenchmarksTooltip',\n defaultMessage: `Compare your results against the Industry Benchmark to understand how you're doing in the context of your greater industry. See your results in context to see how you measure up against your peers.`,\n desc: {\n id: 'Pricing.tooltipCopy.BenchmarksTooltip',\n message: `${TYPE_PARAGRAPH} - 45`,\n project: PROJECT_NAME,\n },\n },\n block_randomization_tooltip_heading: {\n id: 'Pricing.tooltipCopy.BlockRandomizationTooltipHeading',\n defaultMessage: 'Block randomization',\n desc: {\n id: 'Pricing.tooltipCopy.BlockRandomizationTooltipHeading',\n message: `${TYPE_HEADER} - 46`,\n project: PROJECT_NAME,\n },\n },\n block_randomization_tooltip: {\n id: 'Pricing.tooltipCopy.BlockRandomizationTooltip',\n defaultMessage:\n 'Blocks are groups of pages, where each group contains related questions about a particular concept you want to test. You can use block randomization logic to rotate, flip, or randomize blocks to minimize order bias.',\n desc: {\n id: 'Pricing.tooltipCopy.BlockRandomizationTooltip',\n message: `${TYPE_PARAGRAPH} - 47`,\n project: PROJECT_NAME,\n },\n },\n build_surveys_together_tooltip_heading: {\n id: 'Pricing.tooltipCopy.BuildSurveysTogetherTooltipHeading',\n defaultMessage: 'Build Surveys Together',\n desc: {\n id: 'Pricing.tooltipCopy.BuildSurveysTogetherTooltipHeading',\n message: `${TYPE_HEADER} - 48`,\n project: PROJECT_NAME,\n },\n },\n build_surveys_together_tooltip: {\n id: 'Pricing.tooltipCopy.BuildSurveysTogetherTooltip',\n defaultMessage: 'Let people on your team view, edit, or comment on your surveys.',\n desc: {\n id: 'Pricing.tooltipCopy.BuildSurveysTogetherTooltip',\n message: `${TYPE_PARAGRAPH} - 49`,\n project: PROJECT_NAME,\n },\n },\n carry_forward_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CarryForwardTooltipHeading',\n defaultMessage: 'Carry forward responses',\n desc: {\n id: 'Pricing.tooltipCopy.CarryForwardTooltipHeading',\n message: `${TYPE_HEADER} - 50`,\n project: PROJECT_NAME,\n },\n },\n carry_forward_tooltip: {\n id: 'Pricing.tooltipCopy.CarryForwardTooltip',\n defaultMessage: `Use each respondent's previous answer choices in a related question that appears later in your survey. You can carry forward either a respondent's selected or unselected answer choices and choose to show all or some previously selected or unselected answers. Responses that are carried forward cannot be edited.`,\n desc: {\n id: 'Pricing.tooltipCopy.CarryForwardTooltip',\n message: `${TYPE_PARAGRAPH} - 51`,\n project: PROJECT_NAME,\n },\n },\n click_map_qt_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ClickMapQTTooltipHeading',\n defaultMessage: 'Click map data visualization',\n desc: {\n id: 'Pricing.tooltipCopy.ClickMapQTTooltipHeading',\n message: `${TYPE_HEADER} - 52`,\n project: PROJECT_NAME,\n },\n },\n click_map_qt_tooltip: {\n id: 'Pricing.tooltipCopy.ClickMapQTTooltip',\n defaultMessage: `Feedback on an image by tracking where and how many respondents click on it. When analyzing and presenting results, you'll be able to see each click represented by a corresponding dot, so it's clear which areas stand out to your audience.`,\n desc: {\n id: 'Pricing.tooltipCopy.ClickMapQTTooltip',\n message: `${TYPE_PARAGRAPH} - 53`,\n project: PROJECT_NAME,\n },\n },\n collaboration_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollaborationTooltipHeading',\n defaultMessage: 'Advanced permissions',\n desc: {\n id: 'Pricing.tooltipCopy.CollaborationTooltipHeading',\n message: `${TYPE_HEADER} - 54`,\n project: PROJECT_NAME,\n },\n },\n collaboration_tooltip: {\n id: 'Pricing.tooltipCopy.CollaborationTooltip',\n defaultMessage: 'Collaborate with fine control over who can view and edit your survey projects.',\n desc: {\n id: 'Pricing.tooltipCopy.CollaborationTooltip',\n message: `${TYPE_PARAGRAPH} - 55`,\n project: PROJECT_NAME,\n },\n },\n collaborate_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollaborateTooltipHeading',\n defaultMessage: 'Build surveys together',\n desc: {\n id: 'Pricing.tooltipCopy.CollaborateTooltipHeading',\n message: `${TYPE_HEADER} - 56`,\n project: PROJECT_NAME,\n },\n },\n collaborate_tooltip: {\n id: 'Pricing.tooltipCopy.CollaborateTooltip',\n defaultMessage: 'Let people on your team view, edit, or comment on your surveys.',\n desc: {\n id: 'Pricing.tooltipCopy.CollaborateTooltip',\n message: `${TYPE_PARAGRAPH} - 57`,\n project: PROJECT_NAME,\n },\n },\n collector_completion_url_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollectorCompletionUrlEnabledTooltipHeading',\n defaultMessage: 'Survey completion redirect',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorCompletionUrlEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 58`,\n project: PROJECT_NAME,\n },\n },\n collector_completion_url_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CollectorCompletionUrlEnabledTooltip',\n defaultMessage:\n 'For a customized experience, redirect survey respondents to your website once they complete your survey.',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorCompletionUrlEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 59`,\n project: PROJECT_NAME,\n },\n },\n collector_create_limit_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollectorCreateLimitTooltipHeading',\n defaultMessage: 'Number of collectors',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorCreateLimitTooltipHeading',\n message: `${TYPE_HEADER} - 60`,\n project: PROJECT_NAME,\n },\n },\n collector_create_limit_tooltip: {\n id: 'Pricing.tooltipCopy.CollectorCreateLimitTooltip',\n defaultMessage:\n 'Collectors are ways you can send your survey to respondents. Our collector types include weblinks, email, embedding on your website, and more.',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorCreateLimitTooltip',\n message: `${TYPE_PARAGRAPH} - 61`,\n project: PROJECT_NAME,\n },\n },\n collector_mobile_sdk_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollectorMobileSdkEnabledTooltipHeading',\n defaultMessage: 'Mobile SDK',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorMobileSdkEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 62`,\n project: PROJECT_NAME,\n },\n },\n collector_mobile_sdk_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CollectorMobileSdkEnabledTooltip',\n defaultMessage: 'Integrate surveys directly into your iOS and Android mobile app.',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorMobileSdkEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 63`,\n project: PROJECT_NAME,\n },\n },\n collector_friendly_url_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollectorFriendlyUrlEnabledTooltipHeading',\n defaultMessage: 'Custom SurveyMonkey URL',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorFriendlyUrlEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 64`,\n project: PROJECT_NAME,\n },\n },\n collector_friendly_url_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CollectorFriendlyUrlEnabledTooltip',\n defaultMessage: 'Write customized survey URLs, for example: http://www.surveymonkey.com/s/your-survey',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorFriendlyUrlEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 65`,\n project: PROJECT_NAME,\n },\n },\n collector_white_label_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CollectorWhiteLabelEnabledTooltipHeading',\n defaultMessage: 'White label surveys',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorWhiteLabelEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 66`,\n project: PROJECT_NAME,\n },\n },\n collector_white_label_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CollectorWhiteLabelEnabledTooltip',\n defaultMessage:\n 'Completely customize and brand your surveys. Remove the SurveyMonkey footer from your surveys, change the domain of your survey link to research.net, and redirect survey respondents to your site upon survey completion.',\n desc: {\n id: 'Pricing.tooltipCopy.CollectorWhiteLabelEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 67`,\n project: PROJECT_NAME,\n },\n },\n consolidated_billing_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ConsolidatedBillingTooltipHeading',\n defaultMessage: 'Consolidated billing',\n desc: {\n id: 'Pricing.tooltipCopy.ConsolidatedBillingTooltipHeading',\n message: `${TYPE_HEADER} - 68`,\n project: PROJECT_NAME,\n },\n },\n consolidated_billing_tooltip: {\n id: 'Pricing.tooltipCopy.ConsolidatedBillingTooltip',\n defaultMessage: 'Receive a consolidated bill for your entire team in SurveyMonkey.',\n desc: {\n id: 'Pricing.tooltipCopy.ConsolidatedBillingTooltip',\n message: `${TYPE_PARAGRAPH} - 69`,\n project: PROJECT_NAME,\n },\n },\n contributor_seats_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ContributorSeatsTooltipHeading',\n defaultMessage: CONTRIBUTOR_SEATS,\n desc: {\n id: 'Pricing.tooltipCopy.ContributorSeatsTooltipHeading',\n message: `${TYPE_HEADER} - 70`,\n project: PROJECT_NAME,\n },\n },\n contributor_seats_tooltip: {\n id: 'Pricing.tooltipCopy.ContributorSeatsTooltip',\n defaultMessage: CONTRIBUTOR_SEATS_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.ContributorSeatsTooltip',\n message: `${TYPE_PARAGRAPH} - 71`,\n project: PROJECT_NAME,\n },\n },\n create_advanced_features_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateAdvancedFeaturesTooltipHeading',\n defaultMessage: 'A/B test question type',\n desc: {\n id: 'Pricing.tooltipCopy.CreateAdvancedFeaturesTooltipHeading',\n message: `${TYPE_HEADER} - 72`,\n project: PROJECT_NAME,\n },\n },\n create_advanced_features_tooltip: {\n id: 'Pricing.tooltipCopy.CreateAdvancedFeaturesTooltip',\n defaultMessage:\n 'Conduct A/B tests and test for answer bias by randomly segmenting respondents to see different images or text.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateAdvancedFeaturesTooltip',\n message: `${TYPE_PARAGRAPH} - 73`,\n project: PROJECT_NAME,\n },\n },\n create_custom_html_email_message_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateCustomHtmlEmailMessageEnabledTooltipHeading',\n defaultMessage: 'Custom HTML email invitations',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomHtmlEmailMessageEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 74`,\n project: PROJECT_NAME,\n },\n },\n create_custom_html_email_message_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateCustomHtmlEmailMessageEnabledTooltip',\n defaultMessage:\n 'Add custom designs, images, embed videos, or hyperlink text in your email messages used to send your survey.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomHtmlEmailMessageEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 75`,\n project: PROJECT_NAME,\n },\n },\n create_custom_theme_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateCustomThemeEnabledTooltipHeading',\n defaultMessage: 'Custom themes, colors & more',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomThemeEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 76`,\n project: PROJECT_NAME,\n },\n },\n create_custom_theme_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateCustomThemeEnabledTooltip',\n defaultMessage:\n 'Create custom themes to change the look and feel of your survey. You can edit the colors of different survey elements and choose from several web fonts for your survey.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomThemeEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 77`,\n project: PROJECT_NAME,\n },\n },\n create_custom_variables_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateCustomVariablesEnabledTooltipHeading',\n defaultMessage: 'Custom variables',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomVariablesEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 78`,\n project: PROJECT_NAME,\n },\n },\n create_custom_variables_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateCustomVariablesEnabledTooltip',\n defaultMessage:\n 'Use custom variables to track data about respondents by passing one or more values through a survey link and into your survey results.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateCustomVariablesEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 79`,\n project: PROJECT_NAME,\n },\n },\n create_logo_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateLogoEnabledTooltipHeading',\n defaultMessage: 'Customized surveys',\n desc: {\n id: 'Pricing.tooltipCopy.CreateLogoEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 80`,\n project: PROJECT_NAME,\n },\n },\n create_logo_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateLogoEnabledTooltip',\n defaultMessage: `Customize your survey's look and feel by adding your logo, selecting colors and web fonts, and uploading images. Create and save custom themes to quickly build on-brand surveys. You can also modify the ending of your survey's URL. For example: www.surveymonkey.com/s/your-survey`,\n desc: {\n id: 'Pricing.tooltipCopy.CreateLogoEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 81`,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreatePipingEnabledTooltipHeading',\n defaultMessage: 'Customized survey experience',\n desc: {\n id: 'Pricing.tooltipCopy.CreatePipingEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 82`,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreatePipingEnabledTooltip',\n defaultMessage: `Get more ways to personalize each respondent's experience while taking your survey. Use skip logic to create custom paths through a survey based on each respondent's answers. With question & answer piping, you can insert answer text from a question into another question on a later page in the survey.`,\n desc: {\n id: 'Pricing.tooltipCopy.CreatePipingEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 83`,\n project: PROJECT_NAME,\n },\n },\n create_quotas_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateQuotasEnabledTooltipHeading',\n defaultMessage: 'Response quotas',\n desc: {\n id: 'Pricing.tooltipCopy.CreateQuotasEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 84`,\n project: PROJECT_NAME,\n },\n },\n create_quotas_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateQuotasEnabledTooltip',\n defaultMessage: 'Close your survey automatically when you get all the qualified responses you need.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateQuotasEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 85`,\n project: PROJECT_NAME,\n },\n },\n create_randomization_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateRandomizationEnabledTooltipHeading',\n defaultMessage: 'Question & page randomization',\n desc: {\n id: 'Pricing.tooltipCopy.CreateRandomizationEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 86`,\n project: PROJECT_NAME,\n },\n },\n create_randomization_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateRandomizationEnabledTooltip',\n defaultMessage:\n 'Reduce answer bias by randomizing the order of the pages in a survey or the order of questions within a page.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateRandomizationEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 87`,\n project: PROJECT_NAME,\n },\n },\n create_skip_logic_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledTooltipHeading',\n defaultMessage: 'Question and page skip logic',\n desc: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 88`,\n project: PROJECT_NAME,\n },\n },\n create_skip_logic_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledTooltip',\n defaultMessage: `Create custom paths through surveys that change based on a respondent's answers. Skip logic is also known as 'conditional branching' or 'branch logic'.`,\n desc: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 89`,\n project: PROJECT_NAME,\n },\n },\n create_templates_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateTemplatesEnabledTooltipHeading',\n defaultMessage: 'Expert, pre-written survey templates',\n desc: {\n id: 'Pricing.tooltipCopy.CreateTemplatesEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 90`,\n project: PROJECT_NAME,\n },\n },\n create_templates_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.CreateTemplatesEnabledTooltip',\n defaultMessage:\n 'Choose from over 180 survey templates in our Question Bank library. All templates are certified by our expert methodologists.',\n desc: {\n id: 'Pricing.tooltipCopy.CreateTemplatesEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 91`,\n project: PROJECT_NAME,\n },\n },\n custom_question_bank_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomQuestionBankTooltipHeading',\n defaultMessage: 'Custom Question Bank',\n desc: {\n id: 'Pricing.tooltipCopy.CustomQuestionBankTooltipHeading',\n message: `${TYPE_HEADER} - 92`,\n project: PROJECT_NAME,\n },\n },\n custom_question_bank_tooltip: {\n id: 'Pricing.tooltipCopy.CustomQuestionBankTooltip',\n defaultMessage:\n 'Easily create pre-composed survey questions that are unique to your business, and to share them with your entire organization.',\n desc: {\n id: 'Pricing.tooltipCopy.CustomQuestionBankTooltip',\n message: `${TYPE_PARAGRAPH} - 93`,\n project: PROJECT_NAME,\n },\n },\n custom_subdomain_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomSubdomainTooltipHeading',\n defaultMessage: 'Custom subdomain',\n desc: {\n id: 'Pricing.tooltipCopy.CustomSubdomainTooltipHeading',\n message: `${TYPE_HEADER} - 94`,\n project: PROJECT_NAME,\n },\n },\n custom_subdomain_tooltip: {\n id: 'Pricing.tooltipCopy.CustomSubdomainTooltip',\n defaultMessage:\n 'Get a custom URL and landing page to ensure a seamlessly branded survey experience for your respondents.',\n desc: {\n id: 'Pricing.tooltipCopy.CustomSubdomainTooltip',\n message: `${TYPE_PARAGRAPH} - 95`,\n project: PROJECT_NAME,\n },\n },\n custom_templates_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomTemplatesTooltipHeading',\n defaultMessage: 'Shared templates',\n desc: {\n id: 'Pricing.tooltipCopy.CustomTemplatesTooltipHeading',\n message: `${TYPE_HEADER} - 96`,\n project: PROJECT_NAME,\n },\n },\n custom_templates_tooltip: {\n id: 'Pricing.tooltipCopy.CustomTemplatesTooltip',\n defaultMessage: 'Turn your custom surveys into standard templates that everyone in your team can use.',\n desc: {\n id: 'Pricing.tooltipCopy.CustomTemplatesTooltip',\n message: `${TYPE_PARAGRAPH} - 97`,\n project: PROJECT_NAME,\n },\n },\n customer_success_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomerSuccessTooltipHeading',\n defaultMessage: 'Customer success',\n desc: {\n id: 'Pricing.tooltipCopy.CustomerSuccessTooltipHeading',\n message: `${TYPE_HEADER} - 98`,\n project: PROJECT_NAME,\n },\n },\n customer_success_tooltip: {\n id: 'Pricing.tooltipCopy.CustomerSuccessTooltip',\n defaultMessage:\n 'Get a dedicated customer success manager to help you with onboarding, training users as well as implementing best practices to ensure optimal use of the SurveyMonkey platform across your organization.',\n desc: {\n id: 'Pricing.tooltipCopy.CustomerSuccessTooltip',\n message: `${TYPE_HEADER} - 99`,\n project: PROJECT_NAME,\n },\n },\n custom_terms_of_use_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomTermsOfUseTooltipHeading',\n defaultMessage: 'Custom Terms of Use',\n desc: {\n id: 'Pricing.tooltipCopy.CustomTermsOfUseTooltipHeading',\n message: `${TYPE_HEADER} - 100`,\n project: PROJECT_NAME,\n },\n },\n custom_terms_of_use_tooltip: {\n id: 'Pricing.tooltipCopy.CustomTermsOfUseTooltip',\n defaultMessage: `Ensure your employees opt in to your organization's Terms of Use for SurveyMonkey.`,\n desc: {\n id: 'Pricing.tooltipCopy.CustomTermsOfUseTooltip',\n message: `${TYPE_PARAGRAPH} - 101`,\n project: PROJECT_NAME,\n },\n },\n customer_success_manager_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CustomerSuccessManagerTooltipHeading',\n defaultMessage: 'Customer Success Manager',\n desc: {\n id: 'Pricing.tooltipCopy.CustomerSuccessManagerTooltipHeading',\n message: `${TYPE_HEADER} - 102`,\n project: PROJECT_NAME,\n },\n },\n customer_success_manager_tooltip: {\n id: 'Pricing.tooltipCopy.CustomerSuccessManagerTooltip',\n defaultMessage:\n 'Get a dedicated customer success manager to help you with onboarding, training users as well as implementing best practices to ensure optimal use of the SurveyMonkey platform across your organization.',\n desc: {\n id: 'Pricing.tooltipCopy.CustomerSuccessManagerTooltip',\n message: `${TYPE_PARAGRAPH} - 103`,\n project: PROJECT_NAME,\n },\n },\n dashboard_tooltip_heading: {\n id: 'Pricing.tooltipCopy.DashboardTooltipHeading',\n defaultMessage: 'Dashboard',\n desc: {\n id: 'Pricing.tooltipCopy.DashboardTooltipHeading',\n message: `${TYPE_HEADER} - 104`,\n project: PROJECT_NAME,\n },\n },\n dashboard_tooltip: {\n id: 'Pricing.tooltipCopy.DashboardTooltip',\n defaultMessage:\n 'Tell stories with your data by arranging charts, images, and findings in a custom layout. Share your dashboard with anyone.',\n desc: {\n id: 'Pricing.tooltipCopy.DashboardTooltip',\n message: `${TYPE_PARAGRAPH} - 105`,\n project: PROJECT_NAME,\n },\n },\n email_support_tooltip_heading: {\n id: 'Pricing.tooltipCopy.EmailSupportTooltipHeading',\n defaultMessage: SUPPORT,\n desc: {\n id: 'Pricing.tooltipCopy.EmailSupportTooltipHeading',\n message: `${TYPE_HEADER} - 106`,\n project: PROJECT_NAME,\n },\n },\n email_support_tooltip: {\n id: 'Pricing.tooltipCopy.EmailSupportTooltip',\n defaultMessage: SUPPORT_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.EmailSupportTooltip',\n message: `${TYPE_PARAGRAPH} - 107`,\n project: PROJECT_NAME,\n },\n },\n enhanced_governance_tooltip_heading: {\n id: 'Pricing.tooltipCopy.EnhancedGovernanceTooltipHeading',\n defaultMessage: 'Governance and security',\n desc: {\n id: 'Pricing.tooltipCopy.EnhancedGovernanceTooltipHeading',\n message: `${TYPE_HEADER} - 108`,\n project: PROJECT_NAME,\n },\n },\n enhanced_governance_tooltip: {\n id: 'Pricing.tooltipCopy.EnhancedGovernanceTooltip',\n defaultMessage:\n 'Get access to a vast array of governance and security features, including SSO for user authentication, data encryption, access controls, SSAE-16 SOC II compliant data centers and more.',\n desc: {\n id: 'Pricing.tooltipCopy.EnhancedGovernanceTooltip',\n message: `${TYPE_PARAGRAPH} - 109`,\n project: PROJECT_NAME,\n },\n },\n essential_question_types_tooltip_heading: {\n id: 'Pricing.tooltipCopy.EssentialQuestionTypesTooltipHeading',\n defaultMessage: 'Essential question types',\n desc: {\n id: 'Pricing.tooltipCopy.EssentialQuestionTypesTooltipHeading',\n message: `${TYPE_HEADER} - 110`,\n project: PROJECT_NAME,\n },\n },\n essential_question_types_tooltip: {\n id: 'Pricing.tooltipCopy.EssentialQuestionTypesTooltip',\n defaultMessage: 'Use essential questions such as multiple choice, checkboxes, dropdown, and text box.',\n desc: {\n id: 'Pricing.tooltipCopy.EssentialQuestionTypesTooltip',\n message: `${TYPE_PARAGRAPH} - 111`,\n project: PROJECT_NAME,\n },\n },\n extended_piping_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ExtendedPipingTooltipHeading',\n defaultMessage: ADVANCED_LOGIC,\n desc: {\n id: 'Pricing.tooltipCopy.ExtendedPipingTooltipHeading',\n message: `${TYPE_HEADER} - 112`,\n project: PROJECT_NAME,\n },\n },\n extended_piping_tooltip: {\n id: 'Pricing.tooltipCopy.ExtendedPipingTooltip',\n defaultMessage: ADVANCED_LOGIC_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.ExtendedPipingTooltip',\n message: `${TYPE_PARAGRAPH} - 113`,\n project: PROJECT_NAME,\n },\n },\n extract_data_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ExtractDataTooltipHeading',\n defaultMessage: 'Extract data',\n desc: {\n id: 'Pricing.tooltipCopy.ExtractDataTooltipHeading',\n message: `${TYPE_HEADER} - 114`,\n project: PROJECT_NAME,\n },\n },\n extract_data_tooltip: {\n id: 'Pricing.tooltipCopy.ExtractDataTooltip',\n defaultMessage: 'Extract and leverage your survey data using powerful 3rd-party integration tools.',\n desc: {\n id: 'Pricing.tooltipCopy.ExtractDataTooltip',\n message: `${TYPE_PARAGRAPH} - 115`,\n project: PROJECT_NAME,\n },\n },\n file_upload_tooltip_heading: {\n id: 'Pricing.tooltipCopy.FileUploadTooltipHeading',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.tooltipCopy.FileUploadTooltipHeading',\n message: `${TYPE_HEADER} - 116`,\n project: PROJECT_NAME,\n },\n },\n file_upload_tooltip: {\n id: 'Pricing.tooltipCopy.FileUploadTooltip',\n defaultMessage:\n 'Allow respondents to upload a file as part of their survey response. You can add up to 20 file upload questions per survey.',\n desc: {\n id: 'Pricing.tooltipCopy.FileUploadTooltip',\n message: `${TYPE_PARAGRAPH} - 117`,\n project: PROJECT_NAME,\n },\n },\n flexible_plan_types_tooltip_heading: {\n id: 'Pricing.tooltipCopy.FlexiblePlanTypesTooltipHeading',\n defaultMessage: 'Flexible plan types',\n desc: {\n id: 'Pricing.tooltipCopy.FlexiblePlanTypesTooltipHeading',\n message: `${TYPE_HEADER} - 118`,\n project: PROJECT_NAME,\n },\n },\n flexible_plan_types_tooltip: {\n id: 'Pricing.tooltipCopy.FlexiblePlanTypesTooltip',\n defaultMessage: `Enjoy flexible and custom plan types to fit your organization's survey needs.`,\n desc: {\n id: 'Pricing.tooltipCopy.FlexiblePlanTypesTooltip',\n message: `${TYPE_PARAGRAPH} - 119`,\n project: PROJECT_NAME,\n },\n },\n footer_branding_tooltip_heading: {\n id: 'Pricing.tooltipCopy.AnalyzeCanExportHideBrandingTooltipHeading',\n defaultMessage: 'Remove footer',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanExportHideBrandingTooltipHeading',\n message: `${TYPE_HEADER} - 120`,\n project: PROJECT_NAME,\n },\n },\n footer_branding_tooltip: {\n id: 'Pricing.tooltipCopy.AnalyzeCanExportHideBrandingTooltip',\n defaultMessage:\n 'Turn off the \"powered by SurveyMonkey\" footer that appears by default in your survey design, email invitation messages, and embedded surveys.',\n desc: {\n id: 'Pricing.tooltipCopy.AnalyzeCanExportHideBrandingTooltip',\n message: `${TYPE_PARAGRAPH} - 121`,\n project: PROJECT_NAME,\n },\n },\n gather_comments_tooltip_heading: {\n id: 'Pricing.tooltipCopy.GatherCommentsTooltipHeading',\n defaultMessage: 'Commenting feature',\n desc: {\n id: 'Pricing.tooltipCopy.GatherCommentsTooltipHeading',\n message: `${TYPE_HEADER} - 122`,\n project: PROJECT_NAME,\n },\n },\n gather_comments_tooltip: {\n id: 'Pricing.tooltipCopy.GatherCommentsTooltip',\n defaultMessage:\n 'Invite people to provide feedback on your survey projects all in one place. Our commenting feature allows you to share both survey drafts and results with anyone you want.',\n desc: {\n id: 'Pricing.tooltipCopy.GatherCommentsTooltip',\n message: `${TYPE_HEADER} - 123`,\n project: PROJECT_NAME,\n },\n },\n global_settings_tooltip_heading: {\n id: 'Pricing.tooltipCopy.GlobalSettingsTooltipHeading',\n defaultMessage: 'Global settings',\n desc: {\n id: 'Pricing.tooltipCopy.GlobalSettingsTooltipHeading',\n message: `${TYPE_HEADER} - 124`,\n project: PROJECT_NAME,\n },\n },\n global_settings_tooltip: {\n id: 'Pricing.tooltipCopy.GlobalSettingsTooltip',\n defaultMessage:\n 'Create global settings for everyone in your plan. Includes PII management, collector and respondent data settings, and Audience credits management.',\n desc: {\n id: 'Pricing.tooltipCopy.GlobalSettingsTooltip',\n message: `${TYPE_PARAGRAPH} - 125`,\n project: PROJECT_NAME,\n },\n },\n hipaa_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.HipaaEnabledTooltipHeading',\n defaultMessage: 'HIPAA-compliant features',\n desc: {\n id: 'Pricing.tooltipCopy.HipaaEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 126`,\n project: PROJECT_NAME,\n },\n },\n hipaa_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.HipaaEnabledTooltip',\n defaultMessage:\n 'Collect and manage Protected Health Information (PHI) through surveys. To enable HIPAA features, you must enter into a Business Associate Agreement (BAA) with SurveyMonkey.',\n desc: {\n id: 'Pricing.tooltipCopy.HipaaEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 127`,\n project: PROJECT_NAME,\n },\n },\n integrations_tooltip_heading: {\n id: 'Pricing.tooltipCopy.IntegrationsTooltipHeading',\n defaultMessage: 'Integrations',\n desc: {\n id: 'Pricing.tooltipCopy.IntegrationsTooltipHeading',\n message: `${TYPE_HEADER} - 128`,\n project: PROJECT_NAME,\n },\n },\n integrations_tooltip: {\n id: 'Pricing.tooltipCopy.IntegrationsTooltip',\n defaultMessage:\n 'Integrate your survey data into important business applications that your organization already uses such as Salesforce, Marketo, Oracle Eloqua, and Tableau.',\n desc: {\n id: 'Pricing.tooltipCopy.IntegrationsTooltip',\n message: `${TYPE_PARAGRAPH} - 129`,\n project: PROJECT_NAME,\n },\n },\n enterprise_only_integrations_tooltip_heading: {\n id: 'Pricing.tooltipCopy.EnterpriseOnlyIntegrationsTooltipHeading',\n defaultMessage: 'Enterprise-only integrations',\n desc: {\n id: 'Pricing.tooltipCopy.EnterpriseOnlyIntegrationsTooltipHeading',\n message: `${TYPE_HEADER} - 130`,\n project: PROJECT_NAME,\n },\n },\n enterprise_only_integrations_tooltip: {\n id: 'Pricing.tooltipCopy.EnterpriseOnlyIntegrationsTooltip',\n defaultMessage:\n 'Enterprise plans enjoy unlimited API access and can add on integrations with Salesforce, Marketo, Eloqua, Tableau, and more.',\n desc: {\n id: 'Pricing.tooltipCopy.EnterpriseOnlyIntegrationsTooltip',\n message: `${TYPE_PARAGRAPH} - 131`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_inactivity_timer_tooltip_heading: {\n id: 'Pricing.tooltipCopy.KioskModeInactivityTimerTooltipHeading',\n defaultMessage: 'Kiosk Mode: Inactivity Timer',\n desc: {\n id: 'Pricing.tooltipCopy.KioskModeInactivityTimerTooltipHeading',\n message: `${TYPE_HEADER} - 132`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_inactivity_timer_tooltip: {\n id: 'Pricing.tooltipCopy.KioskModeInactivityTimerTooltip',\n defaultMessage: `When a survey's inactive for the amount of time you choose, it will loop back to start for the next person. Available in the SurveyMonkey Anywhere app.`,\n desc: {\n id: 'Pricing.tooltipCopy.KioskModeInactivityTimerTooltip',\n message: `${TYPE_PARAGRAPH} - 133`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_passcode_lock_tooltip_heading: {\n id: 'Pricing.tooltipCopy.KioskModePasscodeLockTooltipHeading',\n defaultMessage: 'Kiosk Mode: Passcode Lock',\n desc: {\n id: 'Pricing.tooltipCopy.KioskModePasscodeLockTooltipHeading',\n message: `${TYPE_HEADER} - 134`,\n project: PROJECT_NAME,\n },\n },\n kiosk_mode_passcode_lock_tooltip: {\n id: 'Pricing.tooltipCopy.KioskModePasscodeLockTooltip',\n defaultMessage:\n 'Keep your device secure-set a passcode that must be entered to exit the survey. Available in the SurveyMonkey Anywhere app.',\n desc: {\n id: 'Pricing.tooltipCopy.KioskModePasscodeLockTooltip',\n message: `${TYPE_PARAGRAPH} - 135`,\n project: PROJECT_NAME,\n },\n },\n labeling_titles_numbering_tooltip_heading: {\n id: 'Pricing.tooltipCopy.LabelingTitlesNumberingTooltipHeading',\n defaultMessage: 'Labeling, titles & numbering',\n desc: {\n id: 'Pricing.tooltipCopy.LabelingTitlesNumberingTooltipHeading',\n message: `${TYPE_HEADER} - 136`,\n project: PROJECT_NAME,\n },\n },\n labeling_titles_numbering_tooltip: {\n id: 'Pricing.tooltipCopy.LabelingTitlesNumberingTooltip',\n defaultMessage:\n 'Guide respondents through your surveys with labels, titles, and page numbers for any page in your surveys.',\n desc: {\n id: 'Pricing.tooltipCopy.LabelingTitlesNumberingTooltip',\n message: `${TYPE_PARAGRAPH} - 137`,\n project: PROJECT_NAME,\n },\n },\n menu_matrix_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.MenuMatrixEnabledTooltipHeading',\n defaultMessage: 'Matrix of dropdown menus',\n desc: {\n id: 'Pricing.tooltipCopy.MenuMatrixEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 138`,\n project: PROJECT_NAME,\n },\n },\n menu_matrix_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.MenuMatrixEnabledTooltip',\n defaultMessage:\n 'Allow respondents to evaluate several items using the same set of measurements by choosing from a preset list of answer choices.',\n desc: {\n id: 'Pricing.tooltipCopy.MenuMatrixEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 139`,\n project: PROJECT_NAME,\n },\n },\n mobile_apps_ios_android_tooltip_heading: {\n id: 'Pricing.tooltipCopy.MobileIosAndroidAppsTooltipHeading',\n defaultMessage: 'Mobile apps for iOS and Android',\n desc: {\n id: 'Pricing.tooltipCopy.MobileIosAndroidAppsTooltipHeading',\n message: `${TYPE_HEADER} - 140`,\n project: PROJECT_NAME,\n },\n },\n mobile_apps_ios_android_tooltip: {\n id: 'Pricing.tooltipCopy.MobileIosAndroidAppsTooltip',\n defaultMessage:\n 'Access the essential features you need to create a survey, collect responses, and analyze results with the free SurveyMonkey app for iOS and Android.',\n desc: {\n id: 'Pricing.tooltipCopy.MobileIosAndroidAppsTooltip',\n message: `${TYPE_PARAGRAPH} - 141`,\n project: PROJECT_NAME,\n },\n },\n mobile_sdk_pull_response_data_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.MobileSdkPullResponseDataEnabledTooltipHeading',\n defaultMessage: 'Mobile SDK - Data Pull',\n desc: {\n id: 'Pricing.tooltipCopy.MobileSdkPullResponseDataEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 142`,\n project: PROJECT_NAME,\n },\n },\n mobile_sdk_pull_response_data_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.MobileSdkPullResponseDataEnabledTooltip',\n defaultMessage:\n 'Take actions in your app based on survey responses collected through the Mobile SDK. For example, prompt people to leave a review if they enter a positive rating.',\n desc: {\n id: 'Pricing.tooltipCopy.MobileSdkPullResponseDataEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 143`,\n project: PROJECT_NAME,\n },\n },\n multilingual_tooltip_heading: {\n id: 'Pricing.tooltipCopy.MultilingualTooltipHeading',\n defaultMessage: 'Multilingual surveys',\n desc: {\n id: 'Pricing.tooltipCopy.MultilingualTooltipHeading',\n message: `${TYPE_HEADER} - 144`,\n project: PROJECT_NAME,\n },\n },\n multilingual_tooltip: {\n id: 'Pricing.tooltipCopy.MultilingualTooltip',\n defaultMessage: `Reach everyone in the language they're most comfortable with. Add multiple languages to a single survey, and analyze all your results together as one data set.`,\n desc: {\n id: 'Pricing.tooltipCopy.MultilingualTooltip',\n message: `${TYPE_PARAGRAPH} - 145`,\n project: PROJECT_NAME,\n },\n },\n multiple_block_rotation_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.MultipleBlockRotationEnabledTooltipHeading',\n defaultMessage: 'Block randomization',\n desc: {\n id: 'Pricing.tooltipCopy.MultipleBlockRotationEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 146`,\n project: PROJECT_NAME,\n },\n },\n multiple_block_rotation_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.MultipleBlockRotationEnabledTooltip',\n defaultMessage:\n 'Blocks are groups of pages, where each group contains related questions about a particular concept you want to test. You can use block randomization logic to rotate, flip, or randomize blocks to minimize order bias.',\n desc: {\n id: 'Pricing.tooltipCopy.MultipleBlockRotationEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 147`,\n project: PROJECT_NAME,\n },\n },\n num_free_responses_tooltip_heading: {\n id: 'Pricing.tooltipCopy.NumFreeResponsesTooltipHeading',\n defaultMessage: NUM_RESPONSES,\n desc: {\n id: 'Pricing.tooltipCopy.NumFreeResponsesTooltipHeading',\n message: `${TYPE_HEADER} - 148`,\n project: PROJECT_NAME,\n },\n },\n num_free_responses_tooltip: {\n id: 'Pricing.tooltipCopy.NumFreeResponsesTooltip',\n defaultMessage: NUM_RESPONSES_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.NumFreeResponsesTooltip',\n message: `${TYPE_PARAGRAPH} - 149`,\n project: PROJECT_NAME,\n },\n },\n payment_qt_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PaymentQTTooltipHeading',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.tooltipCopy.PaymentQTTooltipHeading',\n message: `${TYPE_HEADER} - 150`,\n project: PROJECT_NAME,\n },\n },\n payment_qt_tooltip: {\n id: 'Pricing.tooltipCopy.PaymentQTTooltip',\n defaultMessage: 'Accept credit card payments from respondents in your surveys with our Stripe integration.',\n desc: {\n id: 'Pricing.tooltipCopy.PaymentQTTooltip',\n message: `${TYPE_PARAGRAPH} - 151`,\n project: PROJECT_NAME,\n },\n },\n phone_support_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PhoneSupportTooltipHeading',\n defaultMessage: SUPPORT,\n desc: {\n id: 'Pricing.tooltipCopy.PhoneSupportTooltipHeading',\n message: `${TYPE_HEADER} - 152`,\n project: PROJECT_NAME,\n },\n },\n phone_support_tooltip: {\n id: 'Pricing.tooltipCopy.PhoneSupportTooltip',\n defaultMessage: SUPPORT_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.PhoneSupportTooltip',\n message: `${TYPE_PARAGRAPH} - 153`,\n project: PROJECT_NAME,\n },\n },\n benchmark_logic_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PlansBenchmarkTooltipHeading',\n defaultMessage: 'SurveyMonkey industry benchmarks',\n desc: {\n id: 'Pricing.tooltipCopy.PlansBenchmarkTooltipHeading',\n message: `${TYPE_HEADER} - 154`,\n project: PROJECT_NAME,\n },\n },\n benchmark_logic_tooltip: {\n id: 'Pricing.tooltipCopy.PlansBenchmarkTooltip',\n defaultMessage: `Compare your results against the Industry Benchmark to understand how you're doing in the context of your greater industry. See your results in context to see how you measure up against your peers.`,\n desc: {\n id: 'Pricing.tooltipCopy.PlansBenchmarkTooltip',\n message: `${TYPE_PARAGRAPH} - 156`,\n project: PROJECT_NAME,\n },\n },\n plans_benchmarks_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PlansBenchmarksTooltipHeading',\n defaultMessage: 'SurveyMonkey Global Benchmarks',\n desc: {\n id: 'Pricing.tooltipCopy.PlansBenchmarksTooltipHeading',\n message: `${TYPE_HEADER} - 157`,\n project: PROJECT_NAME,\n },\n },\n plans_benchmarks_tooltip: {\n id: 'Pricing.tooltipCopy.PlansBenchmarksTooltip',\n defaultMessage:\n 'SurveyMonkey Global Benchmarks give your results context by letting you compare them with the global average. More specific comparison data is available for an extra fee.',\n desc: {\n id: 'Pricing.tooltipCopy.PlansBenchmarksTooltip',\n message: `${TYPE_PARAGRAPH} - 158`,\n project: PROJECT_NAME,\n },\n },\n premium_themes_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PremiumThemesTooltipHeading',\n defaultMessage: 'Premium themes',\n desc: {\n id: 'Pricing.tooltipCopy.PremiumThemesTooltipHeading',\n message: `${TYPE_HEADER} - 159`,\n project: PROJECT_NAME,\n },\n },\n premium_themes_tooltip: {\n id: 'Pricing.tooltipCopy.PremiumThemesTooltip',\n defaultMessage:\n 'Select from pre-designed themes to pick a survey theme that matches the topic of your survey. You can also edit the premium themes to create a fully customized design using colors, fonts, images and layouts.',\n desc: {\n id: 'Pricing.tooltipCopy.PremiumThemesTooltip',\n message: `${TYPE_PARAGRAPH} - 160`,\n project: PROJECT_NAME,\n },\n },\n priority_email_support_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PrimaryEmailSupportTooltipHeading',\n defaultMessage: SUPPORT,\n desc: {\n id: 'Pricing.tooltipCopy.PrimaryEmailSupportTooltipHeading',\n message: `${TYPE_HEADER} - 161`,\n project: PROJECT_NAME,\n },\n },\n priority_email_support_tooltip: {\n id: 'Pricing.tooltipCopy.PrimaryEmailSupportTooltip',\n defaultMessage: SUPPORT_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.PrimaryEmailSupportTooltip',\n message: `${TYPE_PARAGRAPH} - 162`,\n project: PROJECT_NAME,\n },\n },\n private_apps_tooltip_heading: {\n id: 'Pricing.tooltipCopy.PrivateAppsTooltipHeading',\n defaultMessage: 'Unlimited API access',\n desc: {\n id: 'Pricing.tooltipCopy.PrivateAppsTooltipHeading',\n message: `${TYPE_HEADER} - 163`,\n project: PROJECT_NAME,\n },\n },\n private_apps_tooltip: {\n id: 'Pricing.tooltipCopy.PrivateAppsTooltip',\n defaultMessage:\n 'Get unlimited access to the SurveyMonkey API to integrate survey data into your mobile and web applications.',\n desc: {\n id: 'Pricing.tooltipCopy.PrivateAppsTooltip',\n message: `${TYPE_PARAGRAPH} - 164`,\n project: PROJECT_NAME,\n },\n },\n question_library_tooltip_heading: {\n id: 'Pricing.tooltipCopy.QuestionLibraryTooltipHeading',\n defaultMessage: 'Question Bank approved questions',\n desc: {\n id: 'Pricing.tooltipCopy.QuestionLibraryTooltipHeading',\n message: `${TYPE_HEADER} - 165`,\n project: PROJECT_NAME,\n },\n },\n question_library_tooltip: {\n id: 'Pricing.tooltipCopy.QuestionLibraryTooltip',\n defaultMessage:\n 'Rely on over 1800 pre-written survey questions (and 180+ survey templates), written by experts to make it easier to get great results.',\n desc: {\n id: 'Pricing.tooltipCopy.QuestionLibraryTooltip',\n message: `${TYPE_PARAGRAPH} - 166`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro_tooltip_heading: {\n id: 'Pricing.tooltipCopy.QuizzesProTooltipHeading',\n defaultMessage: 'Quizzes',\n desc: {\n id: 'Pricing.tooltipCopy.QuizzesProTooltipHeading',\n message: `${TYPE_HEADER} - 167`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro_tooltip: {\n id: 'Pricing.tooltipCopy.QuizzesProTooltip',\n defaultMessage: `Easily create tests and assessments with automatic scoring for employees, customers, students, and more. You can choose whether you want to display your respondent's score to them after they complete your quiz. You'll also be able to see rankings, segment response data, and access statistics for your results.`,\n desc: {\n id: 'Pricing.tooltipCopy.QuizzesProTooltip',\n message: `${TYPE_PARAGRAPH} - 168`,\n project: PROJECT_NAME,\n },\n },\n randomize_answer_choices_tooltip_heading: {\n id: 'Pricing.tooltipCopy.RandomizeAnswerChoicesTooltipHeading',\n defaultMessage: 'Randomize Answer Choices',\n desc: {\n id: 'Pricing.tooltipCopy.RandomizeAnswerChoicesTooltipHeading',\n message: `${TYPE_HEADER} - 169`,\n project: PROJECT_NAME,\n },\n },\n randomize_answer_choices_tooltip: {\n id: 'Pricing.tooltipCopy.RandomizeAnswerChoicesTooltip',\n defaultMessage: 'Reduce bias by randomly changing the order of answer choices for different respondents.',\n desc: {\n id: 'Pricing.tooltipCopy.RandomizeAnswerChoicesTooltip',\n message: `${TYPE_PARAGRAPH} - 170`,\n project: PROJECT_NAME,\n },\n },\n record_respondent_email_address_tooltip_heading: {\n id: 'Pricing.tooltipCopy.RecordRespondentEmailAddressTooltipHeading',\n defaultMessage: 'Record respondent email address',\n desc: {\n id: 'Pricing.tooltipCopy.RecordRespondentEmailAddressTooltipHeading',\n message: `${TYPE_HEADER} - 171`,\n project: PROJECT_NAME,\n },\n },\n record_respondent_email_address_tooltip: {\n id: 'Pricing.tooltipCopy.RecordRespondentEmailAddressTooltip',\n defaultMessage:\n 'Automatically record the email address of respondents to track who takes your surveys, or to follow up with them later.',\n desc: {\n id: 'Pricing.tooltipCopy.RecordRespondentEmailAddressTooltip',\n message: `${TYPE_PARAGRAPH} - 172`,\n project: PROJECT_NAME,\n },\n },\n recurring_surveys_tooltip_heading: {\n id: 'Pricing.tooltipCopy.RecurringSurveysTooltipHeading',\n defaultMessage: 'Recurring surveys',\n desc: {\n id: 'Pricing.tooltipCopy.RecurringSurveysTooltipHeading',\n message: `${TYPE_HEADER} - 173`,\n project: PROJECT_NAME,\n },\n },\n recurring_surveys_tooltip: {\n id: 'Pricing.tooltipCopy.RecurringSurveysTooltip',\n defaultMessage: `Recurring surveys make it easy to collect new results for the same survey on a weekly, monthly, or quarterly basis. We'll email you new survey links when they're ready, so all you need to do is copy each new link and send it to respondents. Filter your results by each occurrence to see how people responded differently over time.`,\n desc: {\n id: 'Pricing.tooltipCopy.RecurringSurveysTooltip',\n message: `${TYPE_PARAGRAPH} - 174`,\n project: PROJECT_NAME,\n },\n },\n respondent_receipt_tooltip_heading: {\n id: 'Pricing.tooltipCopy.RespondentReceiptTooltipHeading',\n defaultMessage: 'Confirmation Email to Respondents',\n desc: {\n id: 'Pricing.tooltipCopy.RespondentReceiptTooltipHeading',\n message: `${TYPE_HEADER} - 175`,\n project: PROJECT_NAME,\n },\n },\n respondent_receipt_tooltip: {\n id: 'Pricing.tooltipCopy.RespondentReceiptTooltip',\n defaultMessage:\n 'When distributing surveys with the email collector, send a confirmation email to each respondent with a copy of their answers.',\n desc: {\n id: 'Pricing.tooltipCopy.RespondentReceiptTooltip',\n message: `${TYPE_PARAGRAPH} - 176`,\n project: PROJECT_NAME,\n },\n },\n response_alerts_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ResponseAlertsTooltipHeading',\n defaultMessage: 'Response alerts',\n desc: {\n id: 'Pricing.tooltipCopy.ResponseAlertsTooltipHeading',\n message: `${TYPE_HEADER} - 177`,\n project: PROJECT_NAME,\n },\n },\n response_alerts_tooltip: {\n id: 'Pricing.tooltipCopy.ResponseAlertsTooltip',\n defaultMessage: `Receive email notifications about new survey responses. You can share Response Alerts with other people (in or outside your team)-as long as you're the survey owner.`,\n desc: {\n id: 'Pricing.tooltipCopy.ResponseAlertsTooltip',\n message: `${TYPE_PARAGRAPH} - 178`,\n project: PROJECT_NAME,\n },\n },\n response_quality_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ResponseQualityEnabledTooltipHeading',\n defaultMessage: 'Response quality',\n desc: {\n id: 'Pricing.tooltipCopy.ResponseQualityEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 179`,\n project: PROJECT_NAME,\n },\n },\n response_quality_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.ResponseQualityEnabledTooltip',\n defaultMessage:\n 'Response Quality uses machine learning to scan your survey results and flag poor-quality responses.',\n desc: {\n id: 'Pricing.tooltipCopy.ResponseQualityEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 180`,\n project: PROJECT_NAME,\n },\n },\n send_surveys_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SendSurveysTooltipHeading',\n defaultMessage: 'Send surveys',\n desc: {\n id: 'Pricing.tooltipCopy.SendSurveysTooltipHeading',\n message: `${TYPE_HEADER} - 181`,\n project: PROJECT_NAME,\n },\n },\n send_surveys_tooltip: {\n id: 'Pricing.tooltipCopy.SendSurveysTooltip',\n defaultMessage: 'Seamlessly send surveys using powerful 3rd-party integration tools.',\n desc: {\n id: 'Pricing.tooltipCopy.SendSurveysTooltip',\n message: `${TYPE_PARAGRAPH} - 182`,\n project: PROJECT_NAME,\n },\n },\n share_surveys_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ShareSurveysTooltipHeading',\n defaultMessage: 'Share survey data',\n desc: {\n id: 'Pricing.tooltipCopy.ShareSurveysTooltipHeading',\n message: `${TYPE_HEADER} - 183`,\n project: PROJECT_NAME,\n },\n },\n share_surveys_tooltip: {\n id: 'Pricing.tooltipCopy.ShareSurveysTooltip',\n defaultMessage: 'Invite anyone to view data from your survey.',\n desc: {\n id: 'Pricing.tooltipCopy.ShareSurveysTooltip',\n message: `${TYPE_PARAGRAPH} - 184`,\n project: PROJECT_NAME,\n },\n },\n shared_assets_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SharedGroupAssetLibraryTooltipHeading',\n defaultMessage: 'Shared library',\n desc: {\n id: 'Pricing.tooltipCopy.SharedGroupAssetLibraryTooltipHeading',\n message: `${TYPE_HEADER} - 185`,\n project: PROJECT_NAME,\n },\n },\n shared_assets_tooltip: {\n id: 'Pricing.tooltipCopy.SharedGroupAssetsLibraryTooltip',\n defaultMessage: 'Get access to shared images, documents, themes, and templates that everyone in your team can use.',\n desc: {\n id: 'Pricing.tooltipCopy.SharedGroupAssetsLibraryTooltip',\n message: `${TYPE_PARAGRAPH} - 186`,\n project: PROJECT_NAME,\n },\n },\n shared_library_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SharedLibraryTooltipHeading',\n defaultMessage: 'Shared library',\n desc: {\n id: 'Pricing.tooltipCopy.SharedLibraryTooltipHeading',\n message: `${TYPE_HEADER} - 187`,\n project: PROJECT_NAME,\n },\n },\n shared_library_tooltip: {\n id: 'Pricing.tooltipCopy.SharedLibraryTooltip',\n defaultMessage: 'Get access to shared images, documents, themes, and templates that everyone in your team can use.',\n desc: {\n id: 'Pricing.tooltipCopy.SharedLibraryTooltip',\n message: `${TYPE_PARAGRAPH} - 188`,\n project: PROJECT_NAME,\n },\n },\n show_create_crosstab_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ShowCreateCrosstabTooltipHeading',\n defaultMessage: 'Crosstabs',\n desc: {\n id: 'Pricing.tooltipCopy.ShowCreateCrosstabTooltipHeading',\n message: `${TYPE_HEADER} - 189`,\n project: PROJECT_NAME,\n },\n },\n show_create_crosstab_tooltip: {\n id: 'Pricing.tooltipCopy.ShowCreateCrosstabTooltip',\n defaultMessage:\n 'Run advanced comparisons across multiple questions, uncover statistically significant differences, and share your crosstab report with anyone.',\n desc: {\n id: 'Pricing.tooltipCopy.ShowCreateCrosstabTooltip',\n message: `${TYPE_PARAGRAPH} - 190`,\n project: PROJECT_NAME,\n },\n },\n show_sig_diffs_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ShowSigDiffsEnabledTooltipHeading',\n defaultMessage: 'Statistical significance',\n desc: {\n id: 'Pricing.tooltipCopy.ShowSigDiffsEnabledTooltipHeading',\n message: `${TYPE_HEADER} - 191`,\n project: PROJECT_NAME,\n },\n },\n show_sig_diffs_enabled_tooltip: {\n id: 'Pricing.tooltipCopy.ShowSigDiffsEnabledTooltip',\n defaultMessage: 'Use to see if there are statistically significant differences between response groups.',\n desc: {\n id: 'Pricing.tooltipCopy.ShowSigDiffsEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 192`,\n project: PROJECT_NAME,\n },\n },\n single_sign_on_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SingleSignOnTooltipHeading',\n defaultMessage: 'Single sign-on',\n desc: {\n id: 'Pricing.tooltipCopy.SingleSignOnTooltipHeading',\n message: `${TYPE_HEADER} - 193`,\n project: PROJECT_NAME,\n },\n },\n single_sign_on_tooltip: {\n id: 'Pricing.tooltipCopy.SingleSignOnTooltip',\n defaultMessage:\n 'Control access to SurveyMonkey across the organization and define authentication policies for increased security and governance.',\n desc: {\n id: 'Pricing.tooltipCopy.SingleSignOnTooltip',\n message: `${TYPE_PARAGRAPH} - 194`,\n project: PROJECT_NAME,\n },\n },\n skip_logic_tooltip_heading: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledHeading',\n defaultMessage: 'Customized survey experience',\n desc: {\n id: 'Pricing.tooltipCopy.CreateSkipLogicEnabledHeading',\n message: `${TYPE_HEADER} - 195`,\n project: PROJECT_NAME,\n },\n },\n skip_logic_tooltip: {\n id: 'Pricing.tooltipCopy.SkipLogicEnabledTooltip',\n defaultMessage: `Get more ways to personalize each respondent's experience while taking your survey. Use skip logic to create custom paths through a survey based on each respondent's answers. With question & answer piping, you can insert answer text from a question into another question on a later page in the survey.`,\n desc: {\n id: 'Pricing.tooltipCopy.SkipLogicEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - 196`,\n project: PROJECT_NAME,\n },\n },\n statistical_significance_tooltip_heading: {\n id: 'Pricing.tooltipCopy.StatisticalSignificanceTooltipHeading',\n defaultMessage: ADVANCED_SURVEY_LOGIC,\n desc: {\n id: 'Pricing.tooltipCopy.StatisticalSignificanceTooltipHeading',\n message: `${TYPE_HEADER} - 197`,\n project: PROJECT_NAME,\n },\n },\n statistical_significance_tooltip: {\n id: 'Pricing.tooltipCopy.StatisticalSignificanceTooltip',\n defaultMessage: ADVANCED_SURVEY_LOGIC_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.StatisticalSignificanceTooltip',\n message: `${TYPE_PARAGRAPH} - 198`,\n project: PROJECT_NAME,\n },\n },\n survey_branding_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SurveyBrandingTooltipHeading',\n defaultMessage: 'Customized surveys',\n desc: {\n id: 'Pricing.tooltipCopy.SurveyBrandingTooltipHeading',\n message: `${TYPE_HEADER} - 199`,\n project: PROJECT_NAME,\n },\n },\n survey_branding_tooltip: {\n id: 'Pricing.tooltipCopy.SurveyBrandingTooltip',\n defaultMessage: `Customize your survey's look and feel by adding your logo, selecting colors and web fonts, and uploading images. Create and save custom themes to quickly build on-brand surveys. You can also modify the ending of your survey's URL. For example: www.surveymonkey.com/s/your-survey`,\n desc: {\n id: 'Pricing.tooltipCopy.SurveyBrandingTooltip',\n message: `${TYPE_PARAGRAPH} - 200`,\n project: PROJECT_NAME,\n },\n },\n survey_create_limit_tooltip_heading: {\n id: 'Pricing.tooltipCopy.SurveyCreateLimitTooltipHeading',\n defaultMessage: 'Number of surveys',\n desc: {\n id: 'Pricing.tooltipCopy.SurveyCreateLimitTooltipHeading',\n message: `${TYPE_HEADER} - 201`,\n project: PROJECT_NAME,\n },\n },\n survey_create_limit_tooltip: {\n id: 'Pricing.tooltipCopy.SurveyCreateLimitTooltip',\n defaultMessage: 'You can create and send as many surveys, polls, and quizzes as you need with any plan.',\n desc: {\n id: 'Pricing.tooltipCopy.SurveyCreateLimitTooltip',\n message: `${TYPE_PARAGRAPH} - 202`,\n project: PROJECT_NAME,\n },\n },\n team_activity_tooltip_heading: {\n id: 'Pricing.tooltipCopy.TeamActivityTooltipHeading',\n defaultMessage: 'Team activity',\n desc: {\n id: 'Pricing.tooltipCopy.TeamActivityTooltipHeading',\n message: `${TYPE_HEADER} - 203`,\n project: PROJECT_NAME,\n },\n },\n team_activity_tooltip: {\n id: 'Pricing.tooltipCopy.TeamActivityTooltip',\n defaultMessage: `Track all user activity in your Enterprise account, such as user logins, survey creation, survey sharing, survey exports, etc. with the ability to search and filter through audit logs.`,\n desc: {\n id: 'Pricing.tooltipCopy.TeamActivityTooltip',\n message: `${TYPE_PARAGRAPH} - 204`,\n project: PROJECT_NAME,\n },\n },\n team_logic_tooltip_heading: {\n id: 'Pricing.tooltipCopy.TeamLogicTooltipHeading',\n defaultMessage: 'Team management',\n desc: {\n id: 'Pricing.tooltipCopy.TeamLogicTooltipHeading',\n message: `${TYPE_HEADER} - 205`,\n project: PROJECT_NAME,\n },\n },\n team_logic_tooltip: {\n id: 'Pricing.tooltipCopy.TeamLogicTooltip',\n defaultMessage: `If you're the Primary Admin or Admin of a team, you can invite more people to join the team and manage existing accounts.`,\n desc: {\n id: 'Pricing.tooltipCopy.TeamLogicTooltip',\n message: `${TYPE_PARAGRAPH} - 206`,\n project: PROJECT_NAME,\n },\n },\n team_ownership_tooltip_heading: {\n id: 'Pricing.tooltipCopy.TeamOwnershipTooltipHeading',\n defaultMessage: 'Team ownership',\n desc: {\n id: 'Pricing.tooltipCopy.TeamOwnershipTooltipHeading',\n message: `${TYPE_HEADER} - 207`,\n project: PROJECT_NAME,\n },\n },\n team_ownership_tooltip: {\n id: 'Pricing.tooltipCopy.TeamOwnershipTooltip',\n defaultMessage: 'Choose whether you or your organization owns all the accounts within your team in SurveyMonkey.',\n desc: {\n id: 'Pricing.tooltipCopy.TeamOwnershipTooltip',\n message: `${TYPE_PARAGRAPH} - 208`,\n project: PROJECT_NAME,\n },\n },\n team_themes_tooltip_heading: {\n id: 'Pricing.tooltipCopy.TeamThemesTooltipHeading',\n defaultMessage: 'Shared themes',\n desc: {\n id: 'Pricing.tooltipCopy.TeamThemesTooltipHeading',\n message: `${TYPE_HEADER} - 209`,\n project: PROJECT_NAME,\n },\n },\n team_themes_tooltip: {\n id: 'Pricing.tooltipCopy.TeamThemesTooltip',\n defaultMessage: `Share custom themes with your team to stay consistent with your brand's look and feel.`,\n desc: {\n id: 'Pricing.tooltipCopy.TeamThemesTooltip',\n message: `${TYPE_PARAGRAPH} - 210`,\n project: PROJECT_NAME,\n },\n },\n text_analysis_tooltip_heading: {\n id: 'Pricing.tooltipCopy.TextAnalysisTooltipHeading',\n defaultMessage: ADVANCED_SURVEY_LOGIC,\n desc: {\n id: 'Pricing.tooltipCopy.TextAnalysisTooltipHeading',\n message: `${TYPE_HEADER} - 211`,\n project: PROJECT_NAME,\n },\n },\n text_analysis_tooltip: {\n id: 'Pricing.tooltipCopy.TextAnalysisTooltip',\n defaultMessage: ADVANCED_SURVEY_LOGIC_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.TextAnalysisTooltip',\n message: `${TYPE_PARAGRAPH} - 212`,\n project: PROJECT_NAME,\n },\n },\n unlimited_questions_tooltip_heading: {\n id: 'Pricing.tooltipCopy.UnlimitedQuestionsTooltipHeading',\n defaultMessage: 'Questions per survey',\n desc: {\n id: 'Pricing.tooltipCopy.UnlimitedQuestionsTooltipHeading',\n message: `${TYPE_HEADER} - 213`,\n project: PROJECT_NAME,\n },\n },\n unlimited_questions_tooltip: {\n id: 'Pricing.tooltipCopy.UnlimitedQuestionsTooltip',\n defaultMessage:\n 'Some of our plans only allow a certain number of questions for each survey you send. All plans allow you to create and send as many surveys as you want.',\n desc: {\n id: 'Pricing.tooltipCopy.UnlimitedQuestionsTooltip',\n message: `${TYPE_PARAGRAPH} - 214`,\n project: PROJECT_NAME,\n },\n },\n unlimited_responses_tooltip_heading: {\n id: 'Pricing.tooltipCopy.UnlimitedResponsesTooltipHeading',\n defaultMessage: NUM_RESPONSES,\n desc: {\n id: 'Pricing.tooltipCopy.UnlimitedResponsesTooltipHeading',\n message: `${TYPE_HEADER} - 215`,\n project: PROJECT_NAME,\n },\n },\n unlimited_responses_tooltip: {\n id: 'Pricing.tooltipCopy.UnlimitedResponsesTooltip',\n defaultMessage: NUM_RESPONSES_TOOLTIP,\n desc: {\n id: 'Pricing.tooltipCopy.UnlimitedResponsesTooltip',\n message: `${TYPE_PARAGRAPH} - 216`,\n project: PROJECT_NAME,\n },\n },\n user_management_tooltip_heading: {\n id: 'Pricing.tooltipCopy.UserManagementTooltipHeading',\n defaultMessage: 'Additional users',\n desc: {\n id: 'Pricing.tooltipCopy.UserManagementTooltipHeading',\n message: `${TYPE_HEADER} - 217`,\n project: PROJECT_NAME,\n },\n },\n user_management_tooltip: {\n id: 'Pricing.tooltipCopy.UserManagementTooltip',\n defaultMessage:\n 'Business plans start at 3 Full Users, and allow you to invite more Full Users to your SurveyMonkey team for an additional fee. With a team plan, you can add Contributor seats in bundles of 2 as a cost-effective way to add stakeholders to focus solely on analyzing survey results. Enterprise plans allow you to add as many users as you need across your organization and allows for broad collaboration at scale.',\n desc: {\n id: 'Pricing.tooltipCopy.UserManagementTooltip',\n message: `${TYPE_PARAGRAPH} - 218`,\n project: PROJECT_NAME,\n },\n },\n validate_answer_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ValidateAnswerTooltipHeading',\n defaultMessage: 'Answer validation',\n desc: {\n id: 'Pricing.tooltipCopy.ValidateAnswerTooltipHeading',\n message: `${TYPE_HEADER} - 219`,\n project: PROJECT_NAME,\n },\n },\n validate_answer_tooltip: {\n id: 'Pricing.tooltipCopy.ValidateAnswerTooltip',\n defaultMessage: 'Require the text in survey responses to meet formatting and content criteria you set.',\n desc: {\n id: 'Pricing.tooltipCopy.ValidateAnswerTooltip',\n message: `${TYPE_PARAGRAPH} - 220`,\n project: PROJECT_NAME,\n },\n },\n view_respondent_ip_address_tooltip_heading: {\n id: 'Pricing.tooltipCopy.ViewRespondentIpAddressTooltipHeading',\n defaultMessage: `View respondent's IP address`,\n desc: {\n id: 'Pricing.tooltipCopy.ViewRespondentIpAddressTooltipHeading',\n message: `${TYPE_HEADER} - 221`,\n project: PROJECT_NAME,\n },\n },\n view_respondent_ip_address_tooltip: {\n id: 'Pricing.tooltipCopy.ViewRespondentIpAddressTooltip',\n defaultMessage:\n 'Automatically record the IP address of respondents to get a better sense of who answers your surveys.',\n desc: {\n id: 'Pricing.tooltipCopy.ViewRespondentIpAddressTooltip',\n message: `${TYPE_PARAGRAPH} - 222`,\n project: PROJECT_NAME,\n },\n },\n word_cloud_combine_hide_tooltip_heading: {\n id: 'Pricing.tooltipCopy.WordCloudCombineHideTooltipHeading',\n defaultMessage: 'Word clouds: Combine or hide words',\n desc: {\n id: 'Pricing.tooltipCopy.WordCloudCombineHideTooltipHeading',\n message: `${TYPE_HEADER} - 223`,\n project: PROJECT_NAME,\n },\n },\n word_cloud_combine_hide_tooltip: {\n id: 'Pricing.tooltipCopy.WordCloudCombineHideTooltip',\n defaultMessage:\n 'Get more control over the words that appear in your word cloud. Combine similar words, hide others, and choose the frequency of words to include.',\n desc: {\n id: 'Pricing.tooltipCopy.WordCloudCombineHideTooltip',\n message: `${TYPE_PARAGRAPH} - 224`,\n project: PROJECT_NAME,\n },\n },\n});\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nimport { TYPE_HEADER, TYPE_PARAGRAPH } from '~pricing/lib/PackageFeatures/tooltipCopy';\n\nexport default defineMessages({\n analyze_export_enabled_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsAnalyzeExportEnabledTooltip',\n defaultMessage: 'N/A', // These are are overrides not to show the toop tip either in details or summary\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsAnalyzeExportEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsAnalyzeExportEnabledTooltip`,\n project: PROJECT_NAME,\n },\n },\n analyze_export_spss_enabled_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsAnalyzeExportSPSSEnabledTooltip',\n defaultMessage: 'N/A',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsAnalyzeExportSPSSEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsAnalyzeExportSPSSEnabledTooltip`,\n project: PROJECT_NAME,\n },\n },\n phone_support_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsPhoneSupportTooltip',\n defaultMessage: 'N/A',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsPhoneSupportTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsPhoneSupportTooltip`,\n project: PROJECT_NAME,\n },\n },\n email_support_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsEmailSupportTooltip',\n defaultMessage: 'N/A',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsEmailSupportTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsEmailSupportTooltip`,\n project: PROJECT_NAME,\n },\n },\n priority_email_support_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsPriorityEmailSupportTooltip',\n defaultMessage: 'N/A',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsPriorityEmailSupportTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsPriorityEmailSupportTooltip`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters_tooltip_heading: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCombineFiltersTooltipHeading',\n defaultMessage: 'Filter and compare results',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCombineFiltersTooltipHeading',\n message: `${TYPE_HEADER} - DetailsCombineFiltersTooltipHeading`,\n project: PROJECT_NAME,\n },\n },\n analyze_combine_filters_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCombineFiltersTooltip',\n defaultMessage:\n 'Filter your results and compare how different groups answered the questions in your survey. Segment your data to uncover trends and correlations in your data.',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCombineFiltersTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsCombineFiltersTooltip`,\n project: PROJECT_NAME,\n },\n },\n create_logo_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreateLogoEnabledTooltipHeading',\n defaultMessage: 'Add your logo',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreateLogoEnabledTooltipHeading',\n message: `${TYPE_HEADER} - DetailsCreateLogoEnabledTooltipHeading`,\n project: PROJECT_NAME,\n },\n },\n create_logo_enabled_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreateLogoEnabledTooltip',\n defaultMessage: `Make your survey stand out. Add a custom image or logo, and personalize the work you send.`,\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreateLogoEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsCreateLogoEnabledTooltip`,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled_tooltip_heading: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreatePipingEnabledTooltipHeading',\n defaultMessage: 'Question & answer piping',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreatePipingEnabledTooltipHeading',\n message: `${TYPE_HEADER} - DetailsCreatePipingEnabledTooltipHeading`,\n project: PROJECT_NAME,\n },\n },\n create_piping_enabled_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreatePipingEnabledTooltip',\n defaultMessage: `Take respondents' answers from a previous question to personalize questions on a later page in the survey.`,\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsCreatePipingEnabledTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsCreatePipingEnabledTooltip`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro_tooltip_heading: {\n id: 'Pricing.tooltipCopyOverrides.DetailsQuizzesProTooltipHeading',\n defaultMessage: 'Quizzes pro',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsQuizzesProTooltipHeading',\n message: `${TYPE_HEADER} - DetailsQuizzesProTooltipHeading`,\n project: PROJECT_NAME,\n },\n },\n quizzes_pro_tooltip: {\n id: 'Pricing.tooltipCopyOverrides.DetailsQuizzesProTooltip',\n defaultMessage:\n 'Show custom feedback for correct, partially correct, and incorrect responses as people take your quiz. At the end, show people custom feedback based on their overall score. Quizzes Pro also lets you email people their quiz results automatically, or export your quiz statistics in PDF, XLS, and CSV format.',\n desc: {\n id: 'Pricing.tooltipCopyOverrides.DetailsQuizzesProTooltip',\n message: `${TYPE_PARAGRAPH} - DetailsQuizzesProTooltip`,\n project: PROJECT_NAME,\n },\n },\n});\n","import { defineMessages } from '@sm/intl';\nimport { Packages } from '~shared/constants/pricing';\n\nconst FORMS = 'GROW-2529';\nconst DESC_MESSAGE = '[Type: String][Vis.: high] - form features summary - A string in pricing experiment GROW-2529';\n\nconst experimentSummaryCopy = defineMessages({\n // corresponding term in existing copy not found\n grow_2529_question_types: {\n id: 'Pricing.experimentSummaryCopy.AllQuestionTypes',\n defaultMessage: 'All question types',\n desc: {\n id: 'Pricing.experimentSummaryCopy.AllQuestionTypesDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_forms_question_types: {\n id: 'Pricing.experimentSummaryCopy.FormQuestionTypes',\n defaultMessage: 'Form question types',\n desc: {\n id: 'Pricing.experimentSummaryCopy.FormQuestionTypesDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_unlimited_forms: {\n id: 'Pricing.experimentSummaryCopy.UnlimitedForms',\n defaultMessage: 'Unlimited number of forms',\n desc: {\n id: 'Pricing.experimentSummaryCopy.UnlimitedFormsDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_website_embed: {\n id: 'Pricing.experimentSummaryCopy.WebsiteEmbed',\n defaultMessage: 'Website embed',\n desc: {\n id: 'Pricing.experimentSummaryCopy.WebsiteEmbedDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_zapier_integrations: {\n id: 'Pricing.experimentSummaryCopy.ZapierIntegrations',\n defaultMessage: '5000+ integrations with Zapier',\n desc: {\n id: 'Pricing.experimentSummaryCopy.ZapierIntegrations',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_file_upload: {\n id: 'Pricing.experimentSummaryCopy.FileUpload',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.experimentSummaryCopy.FileUploadDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_payment_qt: {\n id: 'Pricing.experimentSummaryCopy.AcceptPayments',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.experimentSummaryCopy.AcceptPaymentsDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_quizzes_pro: {\n id: 'Pricing.experimentSummaryCopy.QuizzesPro',\n defaultMessage: 'Quizzes with custom feedback',\n desc: {\n id: 'Pricing.experimentSummaryCopy.QuizzesPro',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_survey_create_limit: {\n id: 'Pricing.experimentSummaryCopy.SurveyCreateLimit',\n defaultMessage: 'Unlimited number of surveys and forms',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SurveyCreateLimit',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_analysis_filter: {\n id: 'Pricing.experimentSummaryCopy.AnalysisFilter',\n defaultMessage: 'Unlimited analysis filter',\n desc: {\n id: 'Pricing.experimentSummaryCopy.AnalysisFilterDesc',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_forms_analysis_filter: {\n id: 'Pricing.experimentSummaryCopy.FormsAnalysisFilter',\n defaultMessage: '1 analysis filter',\n desc: {\n id: 'Pricing.experimentSummaryCopy.FormsAnalysisFilter',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_unlimited_questions: {\n id: 'Pricing.experimentSummaryCopy.FieldsPerForm',\n defaultMessage: 'Unlimited questions per survey/Unlimited fields per form',\n desc: {\n id: 'Pricing.experimentSummaryCopy.FieldsPerForm',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_forms_unlimited_questions: {\n id: 'Pricing.experimentSummaryCopy.FormsFieldsPerForm',\n defaultMessage: 'Unlimited fields per form',\n desc: {\n id: 'Pricing.experimentSummaryCopy.FormsFieldsPerForm',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_survey_branding: {\n id: 'Pricing.experimentSummaryCopy.SummarySurveyBranding',\n defaultMessage: 'Custom logo, colors, and survey/form URL',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummarySurveyBranding',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n // treatment 2\n grow_2529_data_exports: {\n id: 'Pricing.experimentSummaryCopy.SummaryDataExports',\n defaultMessage: 'Data exports (CSV, PDF, PPT, XLS)',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummaryDataExports',\n message: `${DESC_MESSAGE} - SummaryDataExports`,\n project: FORMS,\n },\n },\n grow_2529_statistical_significance: {\n id: 'Pricing.experimentSummaryCopy.SummaryStatisticalSignificance',\n defaultMessage: 'A/B testing & Statistical significance',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummaryStatisticalSignificance',\n message: `${DESC_MESSAGE} - SummaryStatisticalSignificance`,\n project: FORMS,\n },\n },\n grow_2529_multilingual: {\n id: 'Pricing.experimentSummaryCopy.MultilingualSurveysAndForms',\n defaultMessage: 'Multilingual surveys and forms',\n desc: {\n id: 'Pricing.experimentSummaryCopy.MultilingualSurveysAndForms',\n message: `${DESC_MESSAGE} - MultilingualSurveysAndForms`,\n project: FORMS,\n },\n },\n grow_2529_survey_quiz: {\n id: 'Pricing.experimentSummaryCopy.SurveyQuizQuestionTypes',\n defaultMessage: 'Survey & Quiz question types',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SurveyQuizQuestionTypes',\n message: `${DESC_MESSAGE} - SurveyQuizQuestionTypes`,\n project: FORMS,\n },\n },\n grow_2529_unlimited_analysis_filters: {\n id: 'Pricing.experimentSummaryCopy.UnlimitedAnalysisFilters',\n defaultMessage: 'Unlimited analysis filters',\n desc: {\n id: 'Pricing.experimentSummaryCopy.UnlimitedAnalysisFilters',\n message: `${DESC_MESSAGE} - UnlimitedAnalysisFilters`,\n project: FORMS,\n },\n },\n grow_2529_forms_features: {\n id: 'Pricing.experimentSummaryCopy.WhatsIncluded',\n defaultMessage: `What's included`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.WhatsIncluded',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_starter_features: {\n id: 'Pricing.experimentSummaryCopy.EverythingInFormsPlus',\n defaultMessage: `Everything in Forms, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.EverythingInFormsPlus',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_advantage_features: {\n id: 'Pricing.experimentSummaryCopy.EverythingInStarterPlus',\n defaultMessage: `Everything in Starter, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.EverythingInStarterPlus',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_premier_features: {\n id: 'Pricing.experimentSummaryCopy.EverythingInAdvantagePlus',\n defaultMessage: `Everything in Advantage, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.EverythingInAdvantagePlus',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n [`everything_in_${Packages.FormsAnnual}`]: {\n id: 'Pricing.experimentSummaryCopy.FormsAnnualTagLine',\n defaultMessage: `What's included`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.FormsAnnualTagLine',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n [`everything_in_${Packages.FormsMonthly}`]: {\n id: 'Pricing.experimentSummaryCopy.FormsMonthlyTagLine',\n defaultMessage: `What's included`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.FormsMonthlyTagLine',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n [`everything_in_${Packages.AdvantageAnnual}`]: {\n id: 'Pricing.experimentSummaryCopy.AdvantageAnnualTagLine',\n defaultMessage: `Everything in Starter, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.AdvantageAnnualTagLine',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n [`everything_in_${Packages.StarterAnnual}`]: {\n id: 'Pricing.experimentSummaryCopy.StarterAnnualTagLine',\n defaultMessage: `Everything in Forms, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.StarterAnnualTagLine',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n [`everything_in_${Packages.PremierAnnual}`]: {\n id: 'Pricing.experimentSummaryCopy.PremierAnnualTagLine',\n defaultMessage: `Everything in Advantage, plus`,\n desc: {\n id: 'Pricing.experimentSummaryCopy.PremierAnnualTagLine',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_phone_support: {\n id: 'Pricing.experimentSummaryCopy.PhoneSupport',\n defaultMessage: 'Phone support',\n desc: {\n id: 'Pricing.experimentSummaryCopy.PhoneSupport',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_analyze_sentiment_enabled: {\n id: 'Pricing.experimentSummaryCopy.SummaryAnalyzeSentimentEnabled',\n defaultMessage: 'Sentiment analysis',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummaryAnalyzeSentimentEnabled',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_survey_branding_t2: {\n id: 'Pricing.experimentSummaryCopy.SummarySurveyBrandingT2',\n defaultMessage: 'Custom logo, colors, and URL',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummarySurveyBrandingT2',\n message: DESC_MESSAGE,\n project: FORMS,\n },\n },\n grow_2529_analyze_export_spss_enabled_t2: {\n id: 'Pricing.experimentSummaryCopy.SummaryAnalyzeExportSpssEnabled',\n defaultMessage: 'SPSS data exports',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SummaryAnalyzeExportSpssEnabled',\n message: `${DESC_MESSAGE} - SummaryAnalyzeExportSpssEnabled`,\n project: FORMS,\n },\n },\n grow_2529_skip_logic: {\n id: 'Pricing.experimentSummaryCopy.SkipLogic',\n defaultMessage: 'Skip logic only',\n desc: {\n id: 'Pricing.experimentSummaryCopy.SkipLogic',\n message: `${DESC_MESSAGE} - SkipLogic`,\n project: FORMS,\n },\n },\n grow_2529_collector_white_label_enabled: {\n id: 'Pricing.experimentSummaryCopy.WhiteLabel',\n defaultMessage: 'White label surveys',\n desc: {\n id: 'Pricing.experimentSummaryCopy.WhiteLabel',\n message: `${DESC_MESSAGE} - WhiteLabel`,\n project: FORMS,\n },\n },\n grow_2529_text_analysis: {\n id: 'Pricing.experimentSummaryCopy.TextAnalysis',\n defaultMessage: 'Text analysis',\n desc: {\n id: 'Pricing.experimentSummaryCopy.TextAnalysis',\n message: `${DESC_MESSAGE} - TextAnalysis`,\n project: FORMS,\n },\n },\n});\n\nexport default experimentSummaryCopy;\n","import experimentSummaryCopy from '~pricing/experiments/grow_2529_forms/copy/experimentSummaryCopy';\n\nconst EXPERIMENT_SUMMARY_COPY = {\n ...experimentSummaryCopy,\n};\n\nexport default EXPERIMENT_SUMMARY_COPY;\n","import { defineMessages } from '@sm/intl';\n\nconst FORMS = 'GROW-2529';\nconst TYPE_DESCRIPTION = '[Type: String][Vis.: high] - ';\nconst EXPERIMENT_DESCRIPTION = ' - A string in pricing experiment GROW-2529';\nconst FORM_DETAILS_TABLE = 'form details table';\nconst FORM_DETAILS_TABLE_HEADERS = 'form details table headers';\n\nconst experimentDetailsCopy = defineMessages({\n grow_2529_analysis_filter: {\n id: 'Pricing.experimentDetailsCopy.AnalysisFilter',\n defaultMessage: '1 analysis filter',\n desc: {\n id: 'Pricing.experimentDetailsCopy.AnalysisFilter',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_survey_create_limit: {\n id: 'Pricing.experimentDetailsCopy.SurveyCreateLimit',\n defaultMessage: 'Number of forms & surveys',\n desc: {\n id: 'Pricing.experimentDetailsCopy.SurveyCreateLimit',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_questions_per_form_survey: {\n id: 'Pricing.experimentDetailsCopy.QuestionsPerFormSurvey',\n defaultMessage: 'Questions per form or survey',\n desc: {\n id: 'Pricing.experimentDetailsCopy.QuestionsPerFormSurvey',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_everything_in_forms_plus: {\n id: 'Pricing.experimentDetailsCopy.EverythingInFormsPlus',\n defaultMessage: 'Everything in Forms, plus',\n desc: {\n id: 'Pricing.experimentDetailsCopy.EverythingInFormsPlus',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_everything_in_starter_plus: {\n id: 'Pricing.experimentDetailsCopy.EverythingInStarterPlus',\n defaultMessage: 'Everything in Starter, plus',\n desc: {\n id: 'Pricing.experimentDetailsCopy.EverythingInStarterPlus',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_everything_in_advantage_plus: {\n id: 'Pricing.experimentDetailsCopy.EverythingInAdvantagePlus',\n defaultMessage: 'Everything in Advantage, plus',\n desc: {\n id: 'Pricing.experimentDetailsCopy.EverythingInAdvantagePlus',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_form_survey_capabilities: {\n id: 'Pricing.experimentDetailsCopy.FormSurveyCapabilities',\n defaultMessage: 'Form & Survey Capabilities',\n desc: {\n id: 'Pricing.experimentDetailsCopy.FormSurveyCapabilities',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} heading ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_xls_csv: {\n id: 'Pricing.experimentDetailsCopy.XlsCsv',\n defaultMessage: 'XLS and CSV',\n desc: {\n id: 'Pricing.experimentDetailsCopy.XlsCsv',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n // IDs matching existing names in GraphQL API response\n grow_2529_analyze_trends_enabled: {\n id: 'Pricing.experimentDetailsCopy.Filter',\n defaultMessage: '1 filter',\n desc: {\n id: 'Pricing.experimentDetailsCopy.Filter',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_best_value: {\n id: 'Pricing.experimentDetailsCopy.BestValue',\n defaultMessage: 'Best value',\n desc: {\n id: 'Pricing.experimentDetailsCopy.BestValue',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE_HEADERS} ribbon ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_extended_piping: {\n id: 'Pricing.experimentDetailsCopy.AdvancedBranchingPiping',\n defaultMessage: 'Advanced branching & piping, block randomization',\n desc: {\n id: 'Pricing.experimentDetailsCopy.AdvancedBranchingPiping',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (override)`,\n project: FORMS,\n },\n },\n grow_2529_recurring_surveys: {\n id: 'Pricing.experimentDetailsCopy.RecurringFormsSurveys',\n defaultMessage: 'Recurring forms & surveys',\n desc: {\n id: 'Pricing.experimentDetailsCopy.RecurringFormsSurveys',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (override)`,\n project: FORMS,\n },\n },\n grow_2529_payment_qt: {\n id: 'Pricing.experimentDetailsCopy.AcceptPayments',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.experimentDetailsCopy.AcceptPaymentsDesc',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (override)`,\n project: FORMS,\n },\n },\n grow_2529_skip_logic: {\n id: 'Pricing.experimentDetailsCopy.SkipLogicOnly',\n defaultMessage: 'Skip logic only',\n desc: {\n id: 'Pricing.experimentDetailsCopy.SkipLogicOnly',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} label ${EXPERIMENT_DESCRIPTION} (override)`,\n project: FORMS,\n },\n },\n grow_2529_standard_monthly: {\n id: 'Pricing.experimentDetailsCopy.StarterMonthly',\n defaultMessage: 'Starter Monthly',\n desc: {\n id: 'Pricing.experimentDetailsCopy.StarterMonthly',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE_HEADERS} label ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_survey_builder: {\n id: 'Pricing.experimentDetailsCopy.FormSurveyBuilder',\n defaultMessage: 'Form & Survey Builder',\n desc: {\n id: 'Pricing.experimentDetailsCopy.FormSurveyBuilder',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} heading ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n grow_2529_database_response_view: {\n id: 'Pricing.experimentDetailsCopy.DatabaseResponseView',\n defaultMessage: 'Database response view',\n desc: {\n id: 'Pricing.experimentDetailsCopy.DatabaseResponseView',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} heading ${EXPERIMENT_DESCRIPTION} (new)`,\n project: FORMS,\n },\n },\n best_worst_qt: {\n id: 'Pricing.experimentDetailsCopy.BestWorstQt',\n defaultMessage: 'Best worst scale',\n desc: {\n id: 'Pricing.experimentDetailsCopy.BestWorstQt',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_use_collectors: {\n id: 'Pricing.experimentDetailsCopy.UseCollectors',\n defaultMessage: 'Use {number} collectors per form or survey',\n desc: {\n id: 'Pricing.experimentDetailsCopy.UseCollectors',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TABLE} details ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n});\n\nexport default experimentDetailsCopy;\n","import GROW_2529_EXPERIMENT_DETAILS_COPY from '~app/pages/Pricing/experiments/grow_2529_forms/copy/experimentDetailsCopy';\n\nconst EXPERIMENT_DETAILS_COPY = {\n ...GROW_2529_EXPERIMENT_DETAILS_COPY,\n};\n\nexport default EXPERIMENT_DETAILS_COPY;\n","import { defineMessages } from '@sm/intl';\n\nconst FORMS = 'GROW-2529';\nconst TYPE_DESCRIPTION = '[Type: String][Vis.: high] - ';\nconst EXPERIMENT_DESCRIPTION = ' - A string in pricing experiment GROW-2529';\nconst FORM_DETAILS_TOOLTIPS = 'form details tooltips';\nconst NUM_SURVEYS_FORMS = 'Number of surveys and forms';\nconst NUM_SURVEYS_FORMS_TOOLTIP =\n 'You can create and send as many surveys, polls, forms, and quizzes as you need with any plan.';\nconst QUESTIONS_PER_SURVEY_FORMS = 'Questions per survey/fields per form';\nconst QUESTIONS_PER_SURVEY_FORMS_TOOLTIP =\n 'You can add unlimited questions to a survey and unlimited fields to a form with any paid plan.';\nconst SENTIMENT_ANALYSIS = 'Sentiment analysis';\nconst SENTIMENT_ANALYSIS_TOOLTIP = `We'll automatically label your text responses as positive, neutral, or negative to reveal the emotion behind what people are saying.`;\nconst SUPPORT_TOOLTIP =\n 'We offer 24/7 email support for all customers. Emails from ADVANTAGE and PREMIER customers are prioritized to receive responses as quickly as possible. We also offer phone support for our PREMIER customers.';\nconst QUESTION_TYPES = 'Question types';\nconst QUESTION_TYPES_TOOLTIP = `Pick from 25+ question types to ensure you get exactly the information you need. With the forms plan you'll have what you need to collect contact information, online orders, and more.`;\nconst FILTER_COMPARE = 'Filter & compare results';\n\nconst experimentTooltipCopy = defineMessages({\n grow_2529_unlimited_forms_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.CreateSurveyLimitTooltip',\n defaultMessage: NUM_SURVEYS_FORMS,\n desc: {\n id: 'Pricing.experimentTooltipCopy.CreateSurveyLimitTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_unlimited_forms_tooltip: {\n id: 'Pricing.experimentTooltipCopy.CreateSurveyLimitTooltipDescription',\n defaultMessage: NUM_SURVEYS_FORMS_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.CreateSurveyLimitTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_database_response_view_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.DatabaseResponseViewTooltip',\n defaultMessage: 'Database response view',\n desc: {\n id: 'Pricing.experimentTooltipCopy.DatabaseResponseViewTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_database_response_view_tooltip: {\n id: 'Pricing.experimentTooltipCopy.DatabaseResponseViewTooltipDescription',\n defaultMessage: 'View and manage all of your responses in one table.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.DatabaseResponseViewTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_question_types_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.QuestionTypesTooltip',\n defaultMessage: QUESTION_TYPES,\n desc: {\n id: 'Pricing.experimentTooltipCopy.QuestionTypesTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_question_types_tooltip: {\n id: 'Pricing.experimentTooltipCopy.QuestionTypesTooltipDescription',\n defaultMessage: QUESTION_TYPES_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.QuestionTypesTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_forms_question_types_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.FormsQuestionTypesTooltip',\n defaultMessage: QUESTION_TYPES,\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsQuestionTypesTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_forms_question_types_tooltip: {\n id: 'Pricing.experimentTooltipCopy.FormsQuestionTypesTooltipDescription',\n defaultMessage: QUESTION_TYPES_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsQuestionTypesTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_website_embed_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.WebsiteEmbedTooltip',\n defaultMessage: 'Website embed',\n desc: {\n id: 'Pricing.experimentTooltipCopy.WebsiteEmbedTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_website_embed_tooltip: {\n id: 'Pricing.experimentTooltipCopy.WebsiteEmbedTooltipDescription',\n defaultMessage: 'Seamlessly embed a form or survey on your website, or present them in a pop-up message.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.WebsiteEmbedTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_zapier_integrations_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.ZapierTooltip',\n defaultMessage: '5000+ integrations with Zapier',\n desc: {\n id: 'Pricing.experimentTooltipCopy.ZapierTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_zapier_integrations_tooltip: {\n id: 'Pricing.experimentTooltipCopy.ZapierTooltipDescription',\n defaultMessage:\n 'Zapier lets you connect SurveyMonkey with thousands of the most popular apps, so you can automate your workflow and have more time for what matters most—no code required.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.ZapierTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_analysis_filter_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.AnalysisFilterTooltip',\n defaultMessage: FILTER_COMPARE,\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalysisFilterTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_analysis_filter_tooltip: {\n id: 'Pricing.experimentTooltipCopy.AnalysisFilterTooltipDescription',\n defaultMessage:\n 'Filter your results and compare how different groups answered the questions in your survey. Segment your data to uncover trends and correlations.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalysisFilterTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_forms_analysis_filter_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.FormsAnalysisFilterTooltip',\n defaultMessage: FILTER_COMPARE,\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsAnalysisFilterTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_forms_analysis_filter_tooltip: {\n id: 'Pricing.experimentTooltipCopy.FormsAnalysisFilterTooltipDescription',\n defaultMessage:\n 'Filter your results and compare how different groups answered the questions in your survey or form. Segment your data to uncover trends and correlations.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsAnalysisFilterTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_survey_create_limit_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.SurveysFormsTooltip',\n defaultMessage: NUM_SURVEYS_FORMS,\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveysFormsTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_survey_create_limit_tooltip: {\n id: 'Pricing.experimentTooltipCopy.SurveysFormsTooltipDescription',\n defaultMessage: NUM_SURVEYS_FORMS_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveysFormsTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_recurring_surveys_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.RecurringFormsSurveysTooltip',\n defaultMessage: 'Recurring forms & surveys',\n desc: {\n id: 'Pricing.experimentTooltipCopy.RecurringFormsSurveysTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_recurring_surveys_tooltip: {\n id: 'Pricing.experimentTooltipCopy.RecurringFormsSurveysTooltipDescription',\n defaultMessage: `Recurring forms & surveys make it easy to collect new results for the same forms & surveys on a weekly, monthly, or quarterly basis. We'll email you new survey links when they're ready, so all you need to do is copy each new link and send it to respondents. Filter your results by each occurrence to see how people responded differently over time.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.RecurringFormsSurveysTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_unlimited_questions_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedQuestionsTooltip',\n defaultMessage: QUESTIONS_PER_SURVEY_FORMS,\n desc: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedQuestionsTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_unlimited_questions_tooltip: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedQuestionsTooltipDescription',\n defaultMessage: QUESTIONS_PER_SURVEY_FORMS_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedQuestionsTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_forms_unlimited_questions_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.FormsUnlimitedQuestionsTooltip',\n defaultMessage: QUESTIONS_PER_SURVEY_FORMS,\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsUnlimitedQuestionsTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_forms_unlimited_questions_tooltip: {\n id: 'Pricing.experimentTooltipCopy.FormsUnlimitedQuestionsTooltipDescription',\n defaultMessage: QUESTIONS_PER_SURVEY_FORMS_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.FormsUnlimitedQuestionsTooltipDescription',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_survey_branding_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipHeading',\n defaultMessage: 'Customized surveys',\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} heading ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_survey_branding_tooltip: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltip',\n defaultMessage: `Customize your survey's look and feel by adding your logo, selecting colors and web fonts, and uploading images. Create and save custom themes to quickly build on-brand surveys. You can also modify the ending of your survey's URL. For example: www.surveymonkey.com/s/your-survey`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n best_worst_qt_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.BestWorstQtTooltipHeading',\n defaultMessage: 'Best worst scale',\n desc: {\n id: 'Pricing.experimentTooltipCopy.BestWorstQtTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n best_worst_qt_tooltip: {\n id: 'Pricing.experimentTooltipCopy.BestWorstQtTooltip',\n defaultMessage:\n 'Find out what people like most, what they like least, and what they think of everything in between.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.BestWorstQtTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_multilingual_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.MultilingualTooltipHeading',\n defaultMessage: 'Multilingual surveys and forms',\n desc: {\n id: 'Pricing.experimentTooltipCopy.MultilingualTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_multilingual_tooltip: {\n id: 'Pricing.experimentTooltipCopy.MultilingualTooltip',\n defaultMessage: `Reach everyone in the language they're most comfortable with. Add multiple languages to a single survey or form, and analyze all your results together in one data set.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.MultilingualTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_analyze_sentiment_enabled_tooltip: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeSentimentEnabledTooltip',\n defaultMessage: SENTIMENT_ANALYSIS_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeSentimentEnabledTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_analyze_sentiment_enabled_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeSentimentEnabledTooltipHeading',\n defaultMessage: SENTIMENT_ANALYSIS,\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeSentimentEnabledTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_phone_support_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.PhoneSupportTooltipHeading',\n defaultMessage: 'Phone support',\n desc: {\n id: 'Pricing.experimentTooltipCopy.PhoneSupportTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_phone_support_tooltip: {\n id: 'Pricing.experimentTooltipCopy.PhoneSupportTooltip',\n defaultMessage: SUPPORT_TOOLTIP,\n desc: {\n id: 'Pricing.experimentTooltipCopy.PhoneSupportTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_survey_branding_t2_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipHeadingT2',\n defaultMessage: 'Customized surveys and forms',\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipHeadingT2',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_survey_branding_t2_tooltip: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipT2',\n defaultMessage: `Customize your survey or form's look and feel by adding your logo, selecting colors and web fonts, and uploading images. Create and save custom themes to quickly build on-brand surveys. You can also modify the ending of your survey's url. For example: www.surveymonkey.com/s/your-survey`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.SurveyBrandingTooltipT2',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_statistical_significance_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.StatisticalSignificanceTooltipHeading',\n defaultMessage: 'A/B test question type & statistical significance analysis',\n desc: {\n id: 'Pricing.experimentTooltipCopy.StatisticalSignificanceTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_statistical_significance_tooltip: {\n id: 'Pricing.experimentTooltipCopy.StatisticalSignificanceTooltip',\n defaultMessage:\n 'Conduct A/B tests and test for answer bias by randomly segmenting respondents to see different images or text. Use statistical significance analysis to see if there are statistically significant difference between response groups.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.StatisticalSignificanceTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_data_exports_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipHeading',\n defaultMessage: 'Data exports',\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_data_exports_tooltip: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltip',\n defaultMessage: `Create and print custom charts and reports quickly and easily. You'll be able to download survey results in several file formats, including as CSV, PDF, PPT, or XLS files. Export SPSS for Advantage and Premier members.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_analyze_export_spss_enabled_t2_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipHeadingT2',\n defaultMessage: 'Data exports',\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipHeadingT2',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_analyze_export_spss_enabled_t2_tooltip: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipT2',\n defaultMessage: `Create and print custom charts and reports quickly and easily. You'll be able to download survey results in several file formats, including as CSV, PDF, PPT, or XLS files. Export SPSS for Advantage and Premier members.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.AnalyzeExportSpssEnabledTooltipT2',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_survey_quiz_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.EssentialQuestionTypesTooltipHeading',\n defaultMessage: QUESTION_TYPES,\n desc: {\n id: 'Pricing.experimentTooltipCopy.EssentialQuestionTypesTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_survey_quiz_tooltip: {\n id: 'Pricing.experimentTooltipCopy.EssentialQuestionTypesTooltip',\n defaultMessage: `Pick from 25+ question types to ensure you get exactly the information you need. With the forms plan you'll have what you need to collect contact information, online orders, and more`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.EssentialQuestionTypesTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_unlimited_analysis_filters_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedAnalysisFiltersTooltipHeading',\n defaultMessage: FILTER_COMPARE,\n desc: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedAnalysisFiltersTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_unlimited_analysis_filters_tooltip: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedAnalysisFiltersTooltip',\n defaultMessage:\n 'Filter your results and compare how different groups answered the questions in your survey or form. Segment your data to uncover trend and correlations.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.UnlimitedAnalysisFiltersTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_payment_qt_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.PaymentQTTooltipHeading',\n defaultMessage: 'Accept payments',\n desc: {\n id: 'Pricing.experimentTooltipCopy.PaymentQTTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_payment_qt_tooltip: {\n id: 'Pricing.experimentTooltipCopy.PaymentQTTooltip',\n defaultMessage:\n 'Accept credit card payments from respondents in your surveys or forms with our Stripe integration.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.PaymentQTTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_file_upload_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.FileUploadTooltipHeading',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.experimentTooltipCopy.FileUploadTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_file_upload_tooltip: {\n id: 'Pricing.experimentTooltipCopy.FileUploadTooltip',\n defaultMessage:\n 'Allow respondents to upload a file as part of their responses. You can add up to 20 file upload questions per form or survey.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.FileUploadTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_skip_logic_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.SkipLogicTooltipHeading',\n defaultMessage: 'Customized survey experience',\n desc: {\n id: 'Pricing.experimentTooltipCopy.SkipLogicTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_skip_logic_tooltip: {\n id: 'Pricing.experimentTooltipCopy.SkipLogicTooltip',\n defaultMessage: `Get more ways to personalize each respondents experience while taking your survey. Use skip logic to create custom paths through a survey based on each respondent's answers. With question & answer piping, you can insert text from a question into another question on a later page in the survey.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.SkipLogicTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_text_analysis_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.TextAnalysisTooltipHeading',\n defaultMessage: 'Text analysis',\n desc: {\n id: 'Pricing.experimentTooltipCopy.TextAnalysisTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_text_analysis_tooltip: {\n id: 'Pricing.experimentTooltipCopy.TextAnalysisTooltip',\n defaultMessage:\n 'Use text analysis to search and categorize open-ended responses and quickly see frequently used words and phrases.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.TextAnalysisTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_quizzes_pro_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.QuizzesProTooltipHeading',\n defaultMessage: 'Quizzes',\n desc: {\n id: 'Pricing.experimentTooltipCopy.QuizzesProTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_quizzes_pro_tooltip: {\n id: 'Pricing.experimentTooltipCopy.QuizzesProTooltip',\n defaultMessage: `Easily create tests and assessments with automatic scoring for employees, customers, students, and more. You can choose whether you want to display your respondent's score to them after they complete your quiz. You'll also be able to see rankings, segment response data, and access statistics for your results.`,\n desc: {\n id: 'Pricing.experimentTooltipCopy.QuizzesProTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n\n grow_2529_collector_white_label_enabled_tooltip_heading: {\n id: 'Pricing.experimentTooltipCopy.WhiteLabelTooltipHeading',\n defaultMessage: 'White label surveys',\n desc: {\n id: 'Pricing.experimentTooltipCopy.WhiteLabelTooltipHeading',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n grow_2529_collector_white_label_enabled_tooltip: {\n id: 'Pricing.experimentTooltipCopy.WhiteLabelTooltip',\n defaultMessage:\n 'Completely customize and brand your surveys and forms. Remove the SurveyMonkey footer, change the domain of your link to research.net, and redirect respondents to your site upon completion.',\n desc: {\n id: 'Pricing.experimentTooltipCopy.WhiteLabelTooltip',\n message: `${TYPE_DESCRIPTION} ${FORM_DETAILS_TOOLTIPS} description ${EXPERIMENT_DESCRIPTION}`,\n project: FORMS,\n },\n },\n});\n\nexport default experimentTooltipCopy;\n","import GROW_2529_EXPERIMENT_TOOLTIP_COPY from '../../experiments/grow_2529_forms/copy/experimentTooltipCopy';\n\nconst EXPERIMENT_TOOLTIP_COPY = {\n ...GROW_2529_EXPERIMENT_TOOLTIP_COPY,\n};\n\nexport default EXPERIMENT_TOOLTIP_COPY;\n","// Standard copy\nimport SUMMARY_COPY from './summary/copy';\nimport DETAILS_COPY from './details/copy';\n\n// Common Overrides\nimport COMMON_TOOLTIP_COPY from './tooltipCopy';\n\n// Details Overrides\nimport DETAILS_TOOLTIP_COPY from './details/tooltipCopyOverrides';\n\n// Experiment Overrides\nimport EXPERIMENT_SUMMARY_COPY from './summary/experimentCopy';\nimport EXPERIMENT_DETAILS_COPY from './details/experimentCopy';\nimport EXPERIMENT_TOOLTIP_COPY from './experimentTooltipCopy';\n\nexport const NOT_APPLICABLE = 'N/A'; // see src/app/pages/Pricing/lib/packageFeatures/details/tooltipCopy.ts\n\nexport const SUMMARY_MERGED_COPY = Object.freeze({\n ...COMMON_TOOLTIP_COPY,\n ...SUMMARY_COPY,\n ...EXPERIMENT_SUMMARY_COPY,\n ...EXPERIMENT_TOOLTIP_COPY,\n});\nexport const DETAILS_MERGED_COPY = Object.freeze({\n ...COMMON_TOOLTIP_COPY,\n ...DETAILS_TOOLTIP_COPY,\n ...DETAILS_COPY,\n ...EXPERIMENT_DETAILS_COPY,\n ...EXPERIMENT_TOOLTIP_COPY,\n});\n","import { t } from '@sm/intl';\n\nimport { DisplayFeatureStatic } from '~shared/types/pricing/features';\nimport { Copy } from '~shared/types/pricing/copy';\n\nimport { SUMMARY_MERGED_COPY, DETAILS_MERGED_COPY, NOT_APPLICABLE } from './constants';\nimport { SUMMARY_COPY_TYPE, DETAILS_COPY_TYPE } from './types';\n\n/**\n * A formatter method that takes a map of l10n ready strings and builds a DisplayFeatureStatic\n * object populating summary/tooltip values wrapped with l10n formatting\n *\n * @param COPY_MAP The l10n copy object that will be referenced in building DisplayFeature objects\n * @returns A curried function that will generate DisplayFeature objects with l10n formatting\n */\nfunction createFeatureFormatter(COPY_MAP: T) {\n return (featureName: string, formatValues?: Record): DisplayFeatureStatic => {\n const tooltipKey = `${String(featureName)}_tooltip`;\n const tooltipHeadingKey = `${String(featureName)}_tooltip_heading`;\n const tooltip = tooltipKey in COPY_MAP && COPY_MAP[tooltipKey as keyof SUMMARY_COPY_TYPE];\n const tooltipHeading = tooltipHeadingKey in COPY_MAP && COPY_MAP[tooltipHeadingKey as keyof SUMMARY_COPY_TYPE];\n\n return {\n name: featureName,\n summary: COPY_MAP[featureName] ? t(COPY_MAP[featureName], formatValues) : undefined,\n tooltip: tooltip && tooltip.defaultMessage !== NOT_APPLICABLE ? t(tooltip, formatValues) : undefined,\n tooltipHeading: tooltipHeading ? t(tooltipHeading, formatValues) : undefined,\n };\n };\n}\n\nexport const formatSummaryFeature = createFeatureFormatter(SUMMARY_MERGED_COPY);\nexport const formatDetailsFeature = createFeatureFormatter(DETAILS_MERGED_COPY);\n","import { DisplayFeatureStatic } from '~shared/types/pricing/features';\nimport { SummaryFeatureRuleMap } from '~app/pages/Pricing/transformers/summary/types';\nimport { SETTING_UNLIMITED } from '~app/pages/Pricing/transformers/summary/rules/featureRules';\nimport { formatSummaryFeature } from '~app/pages/Pricing/lib/PackageFeatures';\nimport { Packages } from '~shared/constants/pricing';\n\nconst formsPackages = [Packages.FormsAnnual, Packages.FormsMonthly];\nconst formsAndEnhanced = [\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n Packages.FormsAnnual,\n Packages.FormsMonthly,\n];\n\nconst GROW2529FeatureRules: SummaryFeatureRuleMap = {\n grow_2529_create_limit: ({ survey_create_limit, create_question_limit }) => {\n let obj: DisplayFeatureStatic = {};\n\n if (survey_create_limit?.setting === SETTING_UNLIMITED) {\n obj = formatSummaryFeature('grow_2529_survey_create_limit');\n } else if (create_question_limit?.setting === SETTING_UNLIMITED) {\n obj = formatSummaryFeature('create_question_limit');\n }\n\n return obj;\n },\n grow_2529_unlimited_questions: (_, { packageName }) => {\n if (formsPackages.includes(packageName as Packages)) {\n return formatSummaryFeature('grow_2529_forms_unlimited_questions');\n }\n return formatSummaryFeature('grow_2529_unlimited_questions');\n },\n grow_2529_question_types: (_, { packageName }) => {\n if (formsPackages.includes(packageName as Packages)) {\n return formatSummaryFeature('grow_2529_forms_question_types');\n }\n return formatSummaryFeature('grow_2529_question_types');\n },\n grow_2529_analysis_filter: (_, { packageName }) => {\n if (formsPackages.includes(packageName as Packages)) {\n return formatSummaryFeature('grow_2529_forms_analysis_filter');\n }\n return formatSummaryFeature('grow_2529_analysis_filter');\n },\n grow_2529_payment_qt: (_, { packageName, dataCenter }) => {\n return formsAndEnhanced.includes(packageName as Packages) && dataCenter !== 'EU'\n ? formatSummaryFeature('grow_2529_payment_qt')\n : null;\n },\n grow_2529_file_upload: (_, { packageName }) => {\n return formsAndEnhanced.includes(packageName as Packages) ? formatSummaryFeature('grow_2529_file_upload') : null;\n },\n\n grow_2529_website_embed: () => formatSummaryFeature('grow_2529_website_embed'),\n grow_2529_zapier_integrations: () => formatSummaryFeature('grow_2529_zapier_integrations'),\n grow_2529_survey_branding: () => formatSummaryFeature('grow_2529_survey_branding'),\n everything_in: (_, { packageName }) => formatSummaryFeature(`everything_in_${packageName}`),\n grow_2529_survey_quiz: () => formatSummaryFeature('grow_2529_survey_quiz'), // Survey & Quiz question types\n grow_2529_unlimited_analysis_filters: () => formatSummaryFeature('grow_2529_unlimited_analysis_filters'), // Unlimited analysis filters\n create_advanced_features: () => formatSummaryFeature('grow_2529_statistical_significance'),\n};\n\nexport default GROW2529FeatureRules;\n","import { SummaryFeatureRuleMap } from '../types';\nimport GROW2529FeatureRules from '~app/pages/Pricing/experiments/grow_2529_forms/transformers/summary/featureRules';\n\nconst ExperimentFeatureRules: SummaryFeatureRuleMap = {\n ...GROW2529FeatureRules,\n};\n\nexport default ExperimentFeatureRules;\n","import { DisplayFeatureStatic } from '~shared/types/pricing/features';\nimport { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\nimport { Packages } from '~shared/constants/pricing';\nimport { GUAC_COUNTRY_CODES } from '~app/pages/Pricing/lib/constants';\nimport ExperimentFeatureRules from '../experiments/featureRules';\n\nimport { SummaryFeatureRuleMap, DisplayFeature } from '../types';\n\nexport const SETTING_UNLIMITED = 'unlimited';\n\nconst singleEnabledFeaturesRules = [\n 'quizzes_pro',\n 'analyze_export_enabled',\n 'analyze_export_spss_enabled',\n 'create_custom_variables_enabled',\n 'file_upload',\n 'click_map_qt',\n 'analyze_can_export_hide_branding',\n 'analyze_combine_filters',\n 'analyze_trends_enabled',\n 'collector_completion_url_enabled',\n 'collector_popup_enabled',\n 'collector_white_label_enabled',\n 'multiple_block_rotation_enabled',\n 'response_quality_enabled',\n 'single_sign_on',\n 'analyze_can_share_customize_branding',\n].reduce(\n (acc, feature): SummaryFeatureRuleMap => ({\n ...acc,\n [feature]: ({ [feature]: featureItem }) =>\n featureItem?.isEnabled ? formatSummaryFeature(feature as keyof DisplayFeatureStatic) : null,\n }),\n {}\n);\n\nconst nonConditionalFeatureRules = [\n 'analyze_integrations',\n 'hipaa_enabled',\n 'private_apps',\n 'gather_comments',\n 'team_logic',\n 'advanced_logic',\n 'admin_dashboard',\n 'analyze_results_together',\n 'response_alerts',\n 'advanced_analyze_features',\n 'block_randomization',\n 'flexible_plan_types',\n 'integrations',\n 'account_control',\n 'enhanced_governance',\n 'team_activity',\n 'customer_success',\n 'unlimited_questions',\n 'extended_piping',\n].reduce(\n (acc, feature): SummaryFeatureRuleMap => ({\n ...acc,\n [feature]: () => formatSummaryFeature(feature as keyof DisplayFeatureStatic),\n }),\n {}\n);\n\n// Individual feature line rules\nconst FeatureRules: SummaryFeatureRuleMap = {\n ...nonConditionalFeatureRules,\n ...singleEnabledFeaturesRules,\n\n create_limit: ({ survey_create_limit, create_question_limit }) => {\n let obj: DisplayFeatureStatic = {};\n\n if (survey_create_limit?.setting === SETTING_UNLIMITED) {\n obj = formatSummaryFeature('survey_create_limit');\n } else if (create_question_limit?.setting === SETTING_UNLIMITED) {\n obj = formatSummaryFeature('create_question_limit');\n }\n\n return obj;\n },\n\n response_count: ({ base_response_count, num_free_responses }, { locale, overageCost = '' }) => {\n let obj: DisplayFeatureStatic = {};\n\n // Annual packages\n if (base_response_count?.amount) {\n obj = formatSummaryFeature('base_response_count', {\n amount: base_response_count.amount.toLocaleString(locale),\n overageCost,\n });\n\n // Basic/Standard monthly\n } else if (num_free_responses?.amount) {\n obj = formatSummaryFeature('num_free_responses', {\n amount: num_free_responses.amount.toLocaleString(locale),\n overageCost,\n });\n\n // Enterprise\n } else if (num_free_responses?.setting === SETTING_UNLIMITED) {\n obj = formatSummaryFeature('unlimited_responses', { overageCost });\n }\n\n return obj;\n },\n\n support: ({ priority_email_support, phone_support }) => {\n let obj: DisplayFeatureStatic = {};\n\n // we'll check from highest level support to lowest\n if (phone_support?.isEnabled) {\n obj = formatSummaryFeature('phone_support');\n } else if (priority_email_support?.isEnabled) {\n obj = formatSummaryFeature('priority_email_support');\n } else {\n obj = formatSummaryFeature('email_support');\n }\n\n return obj;\n },\n\n skip_logic: ({ create_skip_logic_enabled, create_piping_enabled, funneling_enabled }) => {\n let obj: DisplayFeature = {};\n\n if (create_piping_enabled?.isEnabled || funneling_enabled?.isEnabled) {\n obj = formatSummaryFeature('create_piping_enabled');\n } else if (create_skip_logic_enabled?.isEnabled) {\n obj = formatSummaryFeature('skip_logic');\n }\n\n return obj;\n },\n\n survey_branding: ({ create_logo_enabled, create_custom_theme_enabled, collector_friendly_url_enabled }) => {\n const hasBranding =\n create_logo_enabled?.isEnabled &&\n create_custom_theme_enabled?.isEnabled &&\n collector_friendly_url_enabled?.isEnabled;\n return hasBranding ? formatSummaryFeature('survey_branding') : null;\n },\n\n collaborate: ({ collaboration, build_surveys_together, share_with_your_organization }) => {\n const hasCollaboration =\n collaboration?.isEnabled || build_surveys_together?.isEnabled || share_with_your_organization?.isEnabled;\n return hasCollaboration ? formatSummaryFeature('collaborate') : null;\n },\n\n create_advanced_features: ({ create_quotas_enabled, a_b_testing, create_randomization_enabled }) => {\n const hasAdvancedFeatures =\n create_quotas_enabled?.isEnabled || a_b_testing?.isEnabled || create_randomization_enabled?.isEnabled;\n return hasAdvancedFeatures ? formatSummaryFeature('create_advanced_features') : null;\n },\n\n footer_branding: ({\n create_toggle_footer_enabled,\n disable_footer_branding_enabled,\n hide_export_branding_enabled,\n }) => {\n const hasFooterLogic =\n create_toggle_footer_enabled?.isEnabled ||\n disable_footer_branding_enabled?.isEnabled ||\n hide_export_branding_enabled?.isEnabled;\n return hasFooterLogic ? formatSummaryFeature('footer_branding') : null;\n },\n\n shared_assets: ({\n asset_library,\n group_templates,\n lite_library,\n shared_library,\n shared_group_library,\n team_themes,\n custom_templates,\n }) => {\n const hasSharedAssets =\n asset_library?.isEnabled ||\n group_templates?.isEnabled ||\n lite_library?.isEnabled ||\n shared_library?.isEnabled ||\n shared_group_library?.isEnabled ||\n team_themes?.isEnabled ||\n custom_templates?.isEnabled;\n return hasSharedAssets ? formatSummaryFeature('shared_assets') : null;\n },\n\n benchmark_logic: ({ plans_benchmarks, analyze_access_benchmarking, benchmarks }) => {\n const hasBenchmarkLogic =\n plans_benchmarks?.isEnabled || analyze_access_benchmarking?.isEnabled || benchmarks?.isEnabled;\n return hasBenchmarkLogic ? formatSummaryFeature('benchmark_logic') : null;\n },\n\n sentiment: ({ analyze_sentiment_enabled, sa_en_ga }, { packageName, countryCode }) => {\n const hasSentiment = analyze_sentiment_enabled?.isEnabled && sa_en_ga?.isEnabled;\n const allowedPackages = [\n Packages.PremierMonthly,\n Packages.PremierAnnual,\n Packages.TeamPremier,\n Packages.Enterprise,\n ];\n return hasSentiment &&\n packageName &&\n allowedPackages.includes(packageName) &&\n countryCode &&\n GUAC_COUNTRY_CODES.includes(countryCode)\n ? formatSummaryFeature('sentiment')\n : null;\n },\n\n crosstabs: ({ show_create_crosstab, filter_crosstab }) => {\n const hasCrosstabs = show_create_crosstab?.isEnabled || filter_crosstab?.isEnabled;\n return hasCrosstabs ? formatSummaryFeature('show_create_crosstab') : null;\n },\n\n statistical_significance: ({ statistical_significance, show_sig_diffs_enabled }) => {\n const hasSignificance = statistical_significance?.isEnabled || show_sig_diffs_enabled?.isEnabled;\n return hasSignificance ? formatSummaryFeature('statistical_significance') : null;\n },\n\n all_data_exports: ({ analyze_export_enabled, analyze_export_spss_enabled }) => {\n const hasAllDataExports = analyze_export_enabled?.isEnabled && analyze_export_spss_enabled?.isEnabled;\n return hasAllDataExports ? formatSummaryFeature('all_data_exports') : null;\n },\n\n contributor_seats: (_, { packageName }) => {\n return formatSummaryFeature(packageName === Packages.Enterprise ? 'advanced_collaboration' : 'contributor_seats');\n },\n\n multilingual: ({ _ }, { packageName, countryCode }) => {\n const disAllowedPackages = [Packages.AdvantageMonthly, Packages.AdvantageAnnual, Packages.TeamAdvantage];\n\n return (packageName && !disAllowedPackages.includes(packageName)) ||\n (countryCode && !GUAC_COUNTRY_CODES.includes(countryCode))\n ? formatSummaryFeature('multilingual')\n : null;\n },\n\n payment_qt: ({ payment_qt }, { dataCenter }) => {\n return payment_qt?.isEnabled && dataCenter !== 'EU' ? formatSummaryFeature('payment_qt') : null;\n },\n\n // ExperimentFeatureRules should always be at the bottom\n ...ExperimentFeatureRules,\n};\n\nexport default FeatureRules;\n","import { SummaryFeatureList } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst DefaultIndividualsFeatureList: SummaryFeatureList = [\n 'create_limit',\n 'unlimited_questions',\n 'response_count',\n 'support',\n 'quizzes_pro',\n 'analyze_export_enabled',\n 'skip_logic',\n 'statistical_significance',\n];\n\nexport default DefaultIndividualsFeatureList;\n","import { SummaryFeatureList } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst DefaultTeamsFeatureList: SummaryFeatureList = [\n 'collaborate',\n 'gather_comments',\n 'analyze_results_together',\n 'response_alerts',\n 'shared_assets',\n 'contributor_seats',\n 'team_logic',\n 'analyze_integrations',\n 'response_count',\n 'support',\n 'quizzes_pro',\n 'survey_branding',\n 'skip_logic',\n 'all_data_exports',\n 'payment_qt',\n 'statistical_significance',\n 'advanced_analyze_features',\n 'benchmark_logic',\n 'multilingual',\n 'sentiment',\n];\n\nexport default DefaultTeamsFeatureList;\n","import { FeatureMapItem } from '../types';\n\nimport GROW2529FeatureMap from '~app/pages/Pricing/experiments/grow_2529_forms/transformers/summary/featureRulesMap';\n\nconst EXPERIMENTS_MAP = [...GROW2529FeatureMap];\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst SummaryFeatureMap: FeatureMapItem[] = [\n {\n featureItemKey: 'create_limit',\n features: ['survey_create_limit', 'create_question_limit'],\n },\n {\n featureItemKey: 'response_count',\n features: ['base_response_count', 'num_free_responses', 'unlimited_responses'],\n },\n {\n featureItemKey: 'support',\n features: ['email_support', 'priority_email_support', 'phone_support'],\n },\n {\n featureItemKey: 'quizzes_pro',\n },\n {\n featureItemKey: 'analyze_export_enabled',\n },\n {\n featureItemKey: 'analyze_export_spss_enabled',\n },\n {\n featureItemKey: 'all_data_exports',\n features: ['analyze_export_enabled', 'analyze_export_spss_enabled', 'download_as_csv_xls_pdf', 'download_as_ppt'],\n },\n {\n featureItemKey: 'skip_logic',\n features: ['create_skip_logic_enabled', 'create_piping_enabled', 'funneling_enabled'],\n },\n {\n featureItemKey: 'statistical_significance',\n features: ['statistical_significance', 'show_sig_diffs_enabled'],\n },\n {\n featureItemKey: 'survey_branding',\n features: ['create_logo_enabled', 'create_custom_theme_enabled', 'collector_friendly_url_enabled'],\n },\n {\n featureItemKey: 'create_advanced_features',\n features: ['create_quotas_enabled', 'a_b_testing', 'create_randomization_enabled'],\n },\n {\n featureItemKey: 'create_custom_variables_enabled',\n },\n {\n featureItemKey: 'payment_qt',\n },\n {\n featureItemKey: 'file_upload',\n },\n {\n featureItemKey: 'benchmark_logic',\n features: ['plans_benchmarks', 'analyze_access_benchmarking', 'benchmarks'],\n },\n {\n featureItemKey: 'click_map_qt',\n },\n {\n featureItemKey: 'collaborate',\n features: ['collaboration', 'build_surveys_together', 'share_with_your_organization'],\n },\n {\n featureItemKey: 'analyze_can_export_hide_branding',\n },\n {\n featureItemKey: 'analyze_combine_filters',\n },\n {\n featureItemKey: 'sentiment',\n features: ['analyze_sentiment_enabled', 'sa_en_ga'],\n },\n {\n featureItemKey: 'analyze_trends_enabled',\n },\n {\n featureItemKey: 'shared_assets',\n features: [\n 'asset_library',\n 'group_templates',\n 'lite_library',\n 'shared_library',\n 'shared_group_library',\n 'team_themes',\n 'custom_templates',\n ],\n },\n {\n featureItemKey: 'collector_completion_url_enabled',\n },\n {\n featureItemKey: 'collector_popup_enabled',\n },\n {\n featureItemKey: 'collector_white_label_enabled',\n },\n {\n featureItemKey: 'footer_branding',\n features: ['create_toggle_footer_enabled', 'disable_footer_branding_enabled', 'hide_export_branding_enabled'],\n },\n {\n featureItemKey: 'hipaa_enabled',\n },\n {\n featureItemKey: 'multilingual',\n },\n {\n featureItemKey: 'multiple_block_rotation_enabled',\n },\n {\n featureItemKey: 'private_apps',\n },\n {\n featureItemKey: 'response_quality_enabled',\n },\n {\n featureItemKey: 'crosstabs',\n features: ['show_create_crosstab', 'filter_crosstab'],\n },\n {\n featureItemKey: 'gather_comments',\n },\n {\n featureItemKey: 'team_logic',\n features: ['team_ownership', 'user_management', 'add_users'],\n },\n {\n featureItemKey: 'advanced_logic',\n },\n {\n featureItemKey: 'admin_dashboard',\n },\n {\n featureItemKey: 'single_sign_on',\n },\n {\n featureItemKey: 'analyze_results_together',\n },\n {\n featureItemKey: 'response_alerts',\n },\n {\n featureItemKey: 'contributor_seats',\n },\n {\n featureItemKey: 'analyze_integrations',\n },\n {\n featureItemKey: 'advanced_analyze_features',\n },\n {\n featureItemKey: 'block_randomization',\n },\n {\n featureItemKey: 'flexible_plan_types',\n },\n {\n featureItemKey: 'integrations',\n },\n {\n featureItemKey: 'account_control',\n },\n {\n featureItemKey: 'enhanced_governance',\n },\n {\n featureItemKey: 'team_activity',\n },\n {\n featureItemKey: 'customer_success',\n },\n {\n featureItemKey: 'unlimited_questions',\n },\n {\n featureItemKey: 'analyze_can_share_customize_branding',\n },\n {\n featureItemKey: 'extended_piping',\n },\n\n ...EXPERIMENTS_MAP,\n];\n\nexport default SummaryFeatureMap;\n","import { FeatureMapItem } from '~app/pages/Pricing/transformers/types';\n\nconst GROW2529FeatureMap: FeatureMapItem[] = [\n {\n featureItemKey: 'grow_2529_create_limit',\n features: ['survey_create_limit', 'create_question_limit'],\n },\n {\n featureItemKey: 'grow_2529_question_types',\n },\n {\n featureItemKey: 'grow_2529_unlimited_questions',\n },\n {\n featureItemKey: 'grow_2529_analysis_filter',\n },\n {\n featureItemKey: 'grow_2529_file_upload',\n },\n {\n featureItemKey: 'grow_2529_payment_qt',\n },\n {\n featureItemKey: 'grow_2529_website_embed',\n },\n {\n featureItemKey: 'grow_2529_zapier_integrations',\n },\n {\n featureItemKey: 'everything_in',\n },\n {\n featureItemKey: 'grow_2529_analyze_export_spss_enabled',\n },\n {\n featureItemKey: 'grow_2529_unlimited_analysis_filters',\n },\n {\n featureItemKey: 'grow_2529_survey_quiz',\n },\n];\n\nexport default GROW2529FeatureMap;\n","import { SummaryDisplayFeatureList } from '~shared/types/pricing/features';\nimport { FeatureSetMap, FeatureMapItem } from '../types';\nimport {\n SummaryFeatureRuleMap,\n FeatureTransformerOptions,\n SummaryFeatureTransformer,\n SummaryFeatureList,\n} from './types';\n\nimport SummaryFeatureMap from './summaryFeatureMap';\n\nexport default function summaryFeaturesTransformer(\n featureList: SummaryFeatureList,\n featureListRules: SummaryFeatureRuleMap\n): SummaryFeatureTransformer {\n return (packageFeatures: FeatureSetMap, options: FeatureTransformerOptions): SummaryDisplayFeatureList =>\n featureList.map((featureListItem: string) => {\n const featureItem: FeatureMapItem =\n SummaryFeatureMap.find(item => item?.featureItemKey === featureListItem) ?? null;\n\n if (featureItem) {\n // if the features are empty , push the key inside the feature array based on the rule mapping\n // See src/app/pages/Pricing/transformers/summary/featureRules.ts\n const featureKeys: string[] = featureItem?.features ?? [featureItem.featureItemKey];\n\n // map the feature keys with the defined package features\n const featureValues = featureKeys.reduce(\n (acc: FeatureSetMap, featureKey: string) => ({\n ...acc,\n [featureKey]: packageFeatures[featureKey],\n }),\n {}\n );\n // apply the proper rule for this display feature\n return featureListRules[featureItem.featureItemKey](featureValues, options);\n }\n return null;\n });\n}\n","import {\n SummaryFeatureList,\n SummaryFeatureTransformer,\n SummaryFeatureRuleMap,\n FeatureList,\n} from '~pricing/transformers/summary/types';\nimport FeatureRules from '~pricing/transformers/summary/rules/featureRules';\nimport DefaultIndividualsFeatureList from '~pricing/transformers/summary/features/defaultIndividualsFeatureList';\nimport TeamsFeatureList from '~pricing/transformers/summary/features/defaultTeamsFeatureList';\n\nimport summaryFeaturesTransformer from '~pricing/transformers/summary/summaryFeaturesTransformer';\n\ntype Transformer = {\n // internal to this class only\n defaultIndividualList: SummaryFeatureList;\n defaultTeamsList: SummaryFeatureList;\n featureRules: SummaryFeatureRuleMap;\n individualSummaryFeatureTransform(featureListConfig: FeatureList): SummaryFeatureTransformer;\n teamsSummaryFeatureTransform(featureListConfig: FeatureList): SummaryFeatureTransformer;\n};\n\n/**\n * The SummaryTransformer Singleton class defines the `getInstance` method that lets clients access\n * the unique singleton instance.\n */\nexport default class SummaryTransformer implements Transformer {\n private static instance: SummaryTransformer;\n\n // overridden thru the config\n private readonly _defaultIndividualList: SummaryFeatureList = DefaultIndividualsFeatureList;\n\n // overridden thru the config, experimental feature rules also present here\n private readonly _featureRules: SummaryFeatureRuleMap = FeatureRules;\n\n private _defaultTeamsList: SummaryFeatureList = TeamsFeatureList;\n\n /**\n * The SummaryTransformer Singleton's constructor should always be private to prevent direct\n * construction calls with the `new` operator.\n */\n\n /* eslint no-empty-function: [\"error\", { \"allow\": [\"constructors\"] }] */\n private constructor() {}\n\n /**\n * The static method that controls the access to the singleton instance.\n * This implementation let you subclass the SummaryTransformer Singleton class while keeping\n * just one instance of each subclass around.\n */\n public static getInstance(): SummaryTransformer {\n if (!SummaryTransformer.instance) {\n SummaryTransformer.instance = new SummaryTransformer();\n }\n return SummaryTransformer.instance;\n }\n\n public get defaultIndividualList(): SummaryFeatureList {\n return this._defaultIndividualList;\n }\n\n public get defaultTeamsList(): SummaryFeatureList {\n return this._defaultTeamsList;\n }\n\n public set defaultTeamsList(value: SummaryFeatureList) {\n this._defaultTeamsList = value;\n }\n\n public get featureRules(): SummaryFeatureRuleMap {\n return this._featureRules;\n }\n\n public individualSummaryFeatureTransform(featureListConfig: FeatureList): SummaryFeatureTransformer {\n if (featureListConfig?.includesDefaultList) {\n return summaryFeaturesTransformer([...featureListConfig.list], {\n ...this.featureRules,\n ...featureListConfig.rules,\n });\n }\n return summaryFeaturesTransformer([...this._defaultIndividualList, ...(featureListConfig?.list ?? [])], {\n ...this.featureRules,\n ...featureListConfig?.rules,\n });\n }\n\n public teamsSummaryFeatureTransform(featureListConfig: FeatureList): SummaryFeatureTransformer {\n if (featureListConfig?.includesDefaultList) {\n return summaryFeaturesTransformer([...featureListConfig.list], {\n ...this.featureRules,\n ...featureListConfig.rules,\n });\n }\n return summaryFeaturesTransformer([...this._defaultTeamsList, ...(featureListConfig?.list ?? [])], {\n ...this.featureRules,\n ...featureListConfig?.rules,\n });\n }\n}\n","import { FeatureListMap, SummaryPackageFeatureList } from '~pricing/transformers/summary/types';\n\n/**\n * The factory class declares the factory method that is supposed to return an\n * object of a summary package list which is then fed to the summary transformer.\n * The subclasses usually provide the implementation of this method.\n */\nexport abstract class PlanTransformersFactory {\n /**\n * Note that the factory class may also provide some default implementation of the\n * factory method.\n */\n public initializeList(): SummaryPackageFeatureList {\n // Call the factory method to create a SummaryPackageFeatureList object.\n return this.createFeatureList();\n }\n\n /**\n * Also note that, despite its name, the factory's primary responsibility is\n * not creating summary list. Usually, it contains some core business logic that\n * relies on summary transformer objects, returned by the factory method. Subclasses can\n * indirectly change that business logic by overriding the factory method\n * and returning a different type of summary transformer from it.\n */\n public abstract createFeatureList(): SummaryPackageFeatureList;\n}\n\n/**\n * Extensions allowed, but it is easier to override the featureList with your own config\n */\nexport default class PlanTransformers extends PlanTransformersFactory {\n private _featureList: FeatureListMap;\n\n private readonly treatment: string;\n\n constructor(featureList: FeatureListMap, treatment: string) {\n super();\n this._featureList = featureList;\n this.treatment = treatment;\n }\n\n public get featureList(): FeatureListMap {\n return this._featureList;\n }\n\n public set featureList(value: FeatureListMap) {\n this._featureList = value;\n }\n\n /**\n * Use the treatment config mapping so any control assignment uses the default.\n * @returns SummaryPackageFeatureList\n */\n public createFeatureList(): SummaryPackageFeatureList {\n return this._featureList[this.treatment] ?? this.featureList?.default;\n }\n}\n","import { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\nimport { Packages } from '~shared/constants/pricing';\n\nimport { FeatureListMap, SummaryFeatureList, SummaryFeatureRuleMap } from '~pricing/transformers/summary/types';\nimport { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\n\nconst PremierAnnualFeatureList: SummaryFeatureList = ['crosstabs', 'click_map_qt'];\n\n// overrides the default individual list when the config flag is set\nconst DefaultIndividualFeatureList: SummaryFeatureList = [\n 'grow_2529_create_limit',\n 'grow_2529_unlimited_questions',\n 'grow_2529_question_types',\n 'response_count',\n 'support',\n 'analyze_export_enabled',\n 'grow_2529_analysis_filter',\n 'grow_2529_website_embed',\n 'grow_2529_zapier_integrations',\n 'skip_logic',\n 'statistical_significance',\n];\n\nconst FormsIndividualFeatureList: SummaryFeatureList = [\n ...DefaultIndividualFeatureList,\n 'grow_2529_payment_qt',\n 'grow_2529_file_upload',\n];\n\nconst AdvantageAnnualFeatureList: SummaryFeatureList = [\n 'quizzes_pro',\n 'grow_2529_survey_branding',\n 'analyze_export_spss_enabled',\n];\n\nconst PremierAndAdvantageAnnualFeatureList = [\n ...FormsIndividualFeatureList,\n ...AdvantageAnnualFeatureList,\n ...PremierAnnualFeatureList,\n];\n\nconst FormsOverrideRules: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n grow_2529_create_limit: () => formatSummaryFeature('grow_2529_unlimited_forms'),\n grow_2529_payment_qt: () => formatSummaryFeature('grow_2529_payment_qt'),\n};\n\nconst StarterRulesOverride: SummaryFeatureRuleMap = {\n support: () => formatSummaryFeature('email_support'),\n statistical_significance: () => formatSummaryFeature('text_analysis'),\n};\n\nconst GROW2529FeatureListMapTreatment1: FeatureListMap = {\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1]: {\n [Packages.StarterAnnual]: {\n list: DefaultIndividualFeatureList,\n rules: StarterRulesOverride,\n includesDefaultList: true,\n },\n [Packages.StandardMonthly]: {\n list: DefaultIndividualFeatureList,\n rules: StarterRulesOverride,\n includesDefaultList: true,\n },\n [Packages.AdvantageAnnual]: {\n list: PremierAndAdvantageAnnualFeatureList,\n includesDefaultList: true,\n },\n [Packages.PremierAnnual]: {\n list: PremierAndAdvantageAnnualFeatureList,\n includesDefaultList: true,\n },\n [Packages.FormsAnnual]: {\n list: FormsIndividualFeatureList,\n rules: FormsOverrideRules,\n includesDefaultList: true,\n },\n [Packages.FormsMonthly]: {\n list: FormsIndividualFeatureList,\n rules: FormsOverrideRules,\n includesDefaultList: true,\n },\n [Packages.TeamAdvantage]: {\n list: [],\n },\n [Packages.TeamPremier]: {\n list: [],\n },\n [Packages.Enterprise]: {\n list: [],\n },\n },\n};\n\nexport default GROW2529FeatureListMapTreatment1;\n","import { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\nimport { Packages } from '~shared/constants/pricing';\nimport { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\nimport { SummaryFeatureList, SummaryFeatureRuleMap, FeatureListMap } from '~pricing/transformers/summary/types';\n\nconst FormsDefaultIndividualFeatureList: SummaryFeatureList = [\n 'response_count',\n 'everything_in',\n 'grow_2529_question_types',\n 'grow_2529_payment_qt',\n 'grow_2529_website_embed',\n 'grow_2529_zapier_integrations',\n 'grow_2529_analyze_export_enabled',\n 'grow_2529_analysis_filter',\n 'grow_2529_file_upload',\n 'skip_logic',\n 'support',\n 'statistical_significance',\n];\n\nconst FormsRulesOverride: SummaryFeatureRuleMap = {\n grow_2529_forms_question_types: () => formatSummaryFeature('grow_2529_forms_question_types'), // form question types\n grow_2529_payment_qt: () => formatSummaryFeature('grow_2529_payment_qt'), // accept payments\n grow_2529_website_embed: () => formatSummaryFeature('grow_2529_website_embed'), // website embed\n grow_2529_zapier_integrations: () => formatSummaryFeature('grow_2529_zapier_integrations'), // 5000+ integrations with Zapier\n grow_2529_data_exports: () => formatSummaryFeature('grow_2529_data_exports'), // Data exports\n grow_2529_forms_analysis_filter: () => formatSummaryFeature('grow_2529_forms_analysis_filter'), // 1 analysis filter\n grow_2529_file_upload: () => formatSummaryFeature('grow_2529_file_upload'), // file upload\n skip_logic: () => formatSummaryFeature('grow_2529_skip_logic'), // skip logic only\n support: () => formatSummaryFeature('email_support'), // 24/7 customer support via email\n};\n\nconst AdvantageAnnualFeatureList: SummaryFeatureList = [\n 'response_count',\n 'everything_in',\n 'survey_branding', // Custom logo, colors, and URL\n 'statistical_significance', // A/B testing & Statistical significance\n 'quizzes_pro', // Quizzes with custom feedback\n 'create_custom_variables_enabled', // Custom variables\n 'benchmark_logic', // SurveyMonkey industry benchmarks\n 'analyze_export_spss_enabled', // SPSS data exports\n 'support',\n];\n\nconst AdvantageAnnualRulesOverride: SummaryFeatureRuleMap = {\n everything_in: () => formatSummaryFeature(`everything_in_${Packages.AdvantageAnnual}`),\n quizzes_pro: () => formatSummaryFeature('grow_2529_quizzes_pro'), // override for tooltip\n survey_branding: () => formatSummaryFeature('grow_2529_survey_branding_t2'), // Custom logo, colors, and URL\n statistical_significance: () => formatSummaryFeature('grow_2529_statistical_significance'), // A/B testing & Statistical significance\n analyze_export_spss_enabled: () => formatSummaryFeature('grow_2529_analyze_export_spss_enabled_t2'), // SPSS data exports\n support: () => formatSummaryFeature('priority_email_support'), // 24/7 expedited email support\n};\n\nconst PremierAnnualFeatureList: SummaryFeatureList = [\n 'response_count',\n 'everything_in',\n 'collector_white_label_enabled', // white label surveys\n 'extended_piping', // Advanced branching & piping, block randomization\n 'crosstabs',\n 'response_quality_enabled', // response quality\n 'multilingual', // Multilingual surveys and forms\n 'sentiment', // sentiment analysis\n 'click_map_qt',\n 'support', // phone support\n];\n\nconst PremierAnnuaRulesOverride: SummaryFeatureRuleMap = {\n everything_in: () => formatSummaryFeature(`everything_in_${Packages.PremierAnnual}`),\n multilingual: () => formatSummaryFeature('grow_2529_multilingual'), // Multilingual surveys and forms\n sentiment: () => formatSummaryFeature('grow_2529_analyze_sentiment_enabled'), // sentiment analysis\n support: () => formatSummaryFeature('grow_2529_phone_support'),\n // overridden for tooltip:\n collector_white_label_enabled: () => formatSummaryFeature('grow_2529_collector_white_label_enabled'),\n grow_2529_payment_qt: (_, { dataCenter }) => {\n return dataCenter !== 'EU' ? formatSummaryFeature('grow_2529_payment_qt') : null;\n },\n};\n\nconst StarterMonthlyFeatureList: SummaryFeatureList = [\n 'response_count',\n 'everything_in',\n 'grow_2529_survey_quiz',\n 'grow_2529_unlimited_analysis_filters',\n 'statistical_significance',\n];\n\nconst StarterRulesOverride: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n everything_in: () => formatSummaryFeature(`everything_in_${Packages.StarterAnnual}`),\n essential_question_types: () => formatSummaryFeature('grow_2529_survey_quiz'), // Survey & Quiz question types\n grow_2529_unlimited_analysis_filters: () => formatSummaryFeature('grow_2529_unlimited_analysis_filters'), // Unlimited analysis filters\n statistical_significance: () => formatSummaryFeature('grow_2529_text_analysis'), // Text analysis\n grow_2529_payment_qt: (_, { dataCenter }) => {\n return dataCenter !== 'EU' ? formatSummaryFeature('grow_2529_payment_qt') : null;\n },\n};\n\nconst GROW2529FeatureListMapTreatment2: FeatureListMap = {\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2]: {\n [Packages.AdvantageAnnual]: {\n list: AdvantageAnnualFeatureList,\n rules: AdvantageAnnualRulesOverride,\n includesDefaultList: true,\n },\n [Packages.StarterAnnual]: {\n list: StarterMonthlyFeatureList,\n rules: StarterRulesOverride,\n includesDefaultList: true,\n },\n [Packages.StandardMonthly]: {\n list: StarterMonthlyFeatureList,\n rules: StarterRulesOverride,\n includesDefaultList: true,\n },\n [Packages.PremierAnnual]: {\n list: PremierAnnualFeatureList,\n rules: PremierAnnuaRulesOverride,\n includesDefaultList: true,\n },\n [Packages.FormsAnnual]: {\n list: FormsDefaultIndividualFeatureList,\n rules: FormsRulesOverride,\n includesDefaultList: true,\n },\n [Packages.FormsMonthly]: {\n list: FormsDefaultIndividualFeatureList,\n rules: FormsRulesOverride,\n includesDefaultList: true,\n },\n [Packages.TeamAdvantage]: {\n list: [],\n },\n [Packages.TeamPremier]: {\n list: [],\n },\n [Packages.Enterprise]: {\n list: [],\n },\n },\n};\n\nexport default GROW2529FeatureListMapTreatment2;\n","import { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\n\nimport { SummaryFeatureList, SummaryFeatureRuleMap } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst PremierAnnualFeatureList: SummaryFeatureList = [\n 'click_map_qt',\n 'sentiment',\n 'response_quality_enabled',\n 'crosstabs',\n 'analyze_combine_filters',\n 'extended_piping',\n 'collector_white_label_enabled',\n];\n\nconst PremierAnnualOverrideRules: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n support: () => formatSummaryFeature('email_support'),\n statistical_significance: () => formatSummaryFeature('text_analysis'),\n};\n\nexport { PremierAnnualFeatureList, PremierAnnualOverrideRules };\n","import { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\n\nimport { SummaryFeatureList, SummaryFeatureRuleMap } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst StandardMonthlyFeatureList: SummaryFeatureList = [];\n\nconst StandardMonthlyOverrideRules: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n support: () => formatSummaryFeature('email_support'),\n statistical_significance: () => formatSummaryFeature('text_analysis'),\n};\n\nexport { StandardMonthlyFeatureList, StandardMonthlyOverrideRules };\n","import { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\n\nimport { SummaryFeatureList, SummaryFeatureRuleMap } from '../types';\n\nconst StarterMonthlyFeatureList: SummaryFeatureList = [];\n\nconst StarterAnnualOverrideRules: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n support: () => formatSummaryFeature('email_support'),\n statistical_significance: () => formatSummaryFeature('text_analysis'),\n};\n\nexport { StarterMonthlyFeatureList, StarterAnnualOverrideRules };\n","import { StandardMonthlyFeatureList } from './standardMonthlyFeatureList';\nimport { formatSummaryFeature } from '~pricing/lib/PackageFeatures';\nimport { SummaryFeatureList, SummaryFeatureRuleMap } from '../types';\n\nconst FlexFeatureList: SummaryFeatureList = StandardMonthlyFeatureList;\n\nconst FlexFeatureOverrideRules: SummaryFeatureRuleMap = {\n // Add feature rule overrides below\n support: () => formatSummaryFeature('email_support'),\n statistical_significance: () => formatSummaryFeature('text_analysis'),\n};\n\nexport { FlexFeatureList, FlexFeatureOverrideRules };\n","import { SummaryFeatureList } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst AdvantageAnnualFeatureList: SummaryFeatureList = [\n 'survey_branding',\n 'analyze_export_spss_enabled',\n 'create_advanced_features',\n 'create_custom_variables_enabled',\n 'payment_qt',\n 'file_upload',\n 'benchmark_logic',\n 'multilingual',\n];\n\nexport default AdvantageAnnualFeatureList;\n","import { SummaryFeatureList } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst EnterpriseFeatureList: SummaryFeatureList = [\n 'private_apps',\n 'flexible_plan_types',\n 'hipaa_enabled',\n 'analyze_can_share_customize_branding',\n 'integrations',\n 'admin_dashboard',\n 'account_control',\n 'enhanced_governance',\n 'single_sign_on',\n 'team_activity',\n 'customer_success',\n];\n\nexport default EnterpriseFeatureList;\n","import { SummaryFeatureList } from '../types';\n\n// The list of the order in which summary display features should be shown.\n// Also maps where feature set items should be combined or split for display purposes\n// To make TS happy we still have to map standalone features to an empty array\nconst TeamPremierFeatureList: SummaryFeatureList = [\n 'click_map_qt',\n 'response_quality_enabled',\n 'crosstabs',\n 'analyze_combine_filters',\n 'advanced_logic',\n 'block_randomization',\n 'collector_white_label_enabled',\n 'collector_completion_url_enabled',\n 'footer_branding',\n];\n\nexport default TeamPremierFeatureList;\n","import { Packages } from '~shared/constants/pricing';\n\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\nimport GROW2529FeatureListMapTreatment1 from '~app/pages/Pricing/experiments/grow_2529_forms/treatment1/transformers/summary/features';\nimport GROW2529FeatureListMapTreatment2 from '~app/pages/Pricing/experiments/grow_2529_forms/treatment2/transformers/summary/features';\n\nimport { PremierAnnualFeatureList, PremierAnnualOverrideRules } from './premierAnnualFeatureList';\nimport { StandardMonthlyFeatureList, StandardMonthlyOverrideRules } from './standardMonthlyFeatureList';\nimport { StarterMonthlyFeatureList, StarterAnnualOverrideRules } from './starterAnnualFeatureList';\nimport { FlexFeatureList, FlexFeatureOverrideRules } from './flexPlanFeatureList';\n\nimport AdvantageAnnualFeatureList from './advantageAnnualFeatureList';\nimport EnterpriseFeatureList from './enterpriseFeatureList';\nimport TeamPremierFeatureList from './teamPremierFeatureList';\n\nimport { FeatureListMap } from '../types';\n\n/**\n * All feature list configuration mapping. See the FeatureListMap for how to set up the config object.\n * It is advisable to import experiment feature list config from the experiment subfolder of your experiment.\n * Failure to provide the correct config can result in incorrect UI and business logic presentation.\n * We also encourage all new package or package name change to define their own feature list.\n */\nconst FeatureList: FeatureListMap = {\n [EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.treatment]: {\n // forms v2 uses the same summary features\n ...GROW2529FeatureListMapTreatment1[EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1],\n },\n ...GROW2529FeatureListMapTreatment1,\n ...GROW2529FeatureListMapTreatment2,\n default: {\n [Packages.StarterAnnual]: {\n list: [...StandardMonthlyFeatureList, ...StarterMonthlyFeatureList],\n rules: StarterAnnualOverrideRules,\n },\n [Packages.StandardMonthly]: {\n list: StandardMonthlyFeatureList,\n rules: StandardMonthlyOverrideRules,\n },\n [Packages.Flex]: {\n list: [...StandardMonthlyFeatureList, ...FlexFeatureList],\n rules: FlexFeatureOverrideRules,\n },\n [Packages.AdvantageAnnual]: {\n list: AdvantageAnnualFeatureList,\n },\n [Packages.PremierAnnual]: {\n list: [...AdvantageAnnualFeatureList, ...PremierAnnualFeatureList],\n rules: PremierAnnualOverrideRules,\n },\n [Packages.TeamAdvantage]: {\n list: [],\n },\n [Packages.TeamPremier]: {\n list: TeamPremierFeatureList,\n },\n [Packages.Enterprise]: {\n list: [...TeamPremierFeatureList, ...EnterpriseFeatureList],\n },\n },\n};\n\nexport default FeatureList;\n","import { Packages } from '~shared/constants/pricing';\n\nimport { TEAMS_PACKAGES } from '~pricing/lib/constants';\nimport SummaryTransformer from '~pricing/transformers/classes/SummaryTransformer';\nimport PlanTransformers from '~pricing/transformers/classes/PlanTransformers';\n\nimport FeatureList from './features';\nimport { SummaryFeatureTransformer } from './types';\n\n/**\n * We can override feature rules by the configuration no accessor methods.\n * There should be only one instance of the SummaryTransformer class\n */\nconst summaryTransformer = SummaryTransformer.getInstance();\n\n/**\n * Retrieve specific feature based on experiment or certain overrides.\n * This falls back to the default configuration for transformers\n * @param options\n * @returns SummaryFeatureTransformer\n */\nexport default function getSummaryFeatureTransformer(\n packageName: Packages,\n treatment: string\n): SummaryFeatureTransformer {\n const planTransformers = new PlanTransformers(FeatureList, treatment).initializeList();\n /* if packages to display is not configured based on route and featureList config,\n this will fail to ensure the developer knows what they want to achieve */\n const transformerConfigObject = planTransformers[packageName];\n if (transformerConfigObject && TEAMS_PACKAGES.includes(packageName)) {\n return summaryTransformer.teamsSummaryFeatureTransform(transformerConfigObject);\n }\n return summaryTransformer.individualSummaryFeatureTransform(transformerConfigObject);\n}\n","import { useState, useMemo, useCallback, useContext } from 'react';\nimport { StaticContext } from '@sm/webassets';\nimport { getDataCenterIdFromCurrentUrl, getDataCenterById } from '@sm/locale';\n\nimport { FeatureSet, SummaryDisplayFeatureList } from '~shared/types/pricing/features';\nimport { Packages } from '~shared/constants/pricing';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\n\nimport getSummaryFeatureTransformer from '~pricing/transformers/summary';\nimport { formatCostInLocaleCurrency } from '~pricing/lib/lib-helpers';\n\nimport useFeatureSet from './useFeatureSet';\n\n/**\n * Given an array of features and the pricing package to be displayed,\n * returns the values for the Feature Summary table.\n * @param {FeatureSet} features An array of Feature\n * @param {Packages} packageName A value from the Packages enum\n * @returns {SummaryDisplayFeatureList} An array of DisplayFeatureStatic\n */\nexport default function useSummaryDisplayFeatures(\n features: FeatureSet,\n packageName: Packages\n): SummaryDisplayFeatureList {\n const [displayFeatures, setDisplayFeatures] = useState([]);\n\n const {\n environment: { slLanguageLocale, countryCode },\n hostname,\n url,\n } = useContext(StaticContext);\n\n const { uiExperiment } = usePricingExperiments();\n const { overageCost } = usePackages();\n const experience = uiExperiment.hasAssignment && uiExperiment.treatmentName;\n const dataCenter = getDataCenterById(getDataCenterIdFromCurrentUrl(`${hostname}${url}`));\n\n const featureTransformer = useCallback(\n () => getSummaryFeatureTransformer(packageName, experience as string),\n [packageName, experience]\n );\n\n const featureSetMap = useFeatureSet(features);\n\n const formattedOverageCost = useMemo(\n () => overageCost && formatCostInLocaleCurrency(overageCost, 2),\n [overageCost]\n ) as string;\n\n useMemo(() => {\n if (featureTransformer) {\n const featureSetData = featureTransformer()(featureSetMap, {\n locale: slLanguageLocale,\n countryCode,\n dataCenter: dataCenter?.regionCode,\n packageName,\n overageCost: formattedOverageCost,\n });\n setDisplayFeatures(featureSetData);\n }\n }, [featureSetMap, featureTransformer, slLanguageLocale, countryCode, dataCenter, packageName, formattedOverageCost]);\n\n return displayFeatures;\n}\n","import { useMemo, useState } from 'react';\nimport { FeatureSet } from '~shared/types/pricing/features';\nimport { FeatureSetMap } from '~pricing/transformers/types';\nimport { convertFeatureSetToMap } from '~pricing/lib/lib-helpers';\n\n/**\n * Given an array of features, return a Map with [key: string] and Feature\n * @param {FeatureSet} featureSet An array of features\n * @returns {FeatureSetMap} A map of features\n */\nexport default function usePackageFeatureSet(featureSet: FeatureSet): FeatureSetMap {\n const [featureSetMap, setFeatureSetMap] = useState({});\n useMemo(() => {\n setFeatureSetMap(convertFeatureSetToMap(featureSet));\n }, [featureSet]);\n\n return featureSetMap;\n}\n","import React from 'react';\nimport { t } from '@sm/intl';\n\nimport { useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { Box } from '@wds/box';\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\nimport { PackageProps, PackageType } from '~shared/types/pricing/package';\n\nimport PackageCta from '~pricing/components/PackageCta';\nimport PackageHeader from '~pricing/components/PackageHeader';\nimport usePackageStyles from '~pricing/components/Summary/useStyles';\nimport FeatureSet from '~pricing/components/FeatureSet';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport useSummaryDisplayFeatures from '~pricing/hooks/useSummaryDisplayFeatures';\nimport PackageDefs from '~pricing/lib/packages/packageDefs';\n\nimport COPY from '~pricing/copy';\n\nexport default function Package({\n skuCost,\n packageName,\n features,\n comparePlans,\n isLastPackage,\n discountInfo,\n}: PackageProps): React.ReactElement | null {\n const { canonicalPath = PackageType.Teams } = useParams();\n const displayFeatures = useSummaryDisplayFeatures(features, packageName);\n\n const { PricingPackageContainer, PricingPackage, Highlighted, PlanFeaturesLink } = usePackageStyles({ packageName });\n const { pageUtSource } = useTrackingDetails();\n\n if (!displayFeatures) {\n return null;\n }\n\n return (\n \n \n \n \n {!comparePlans && (\n \n {t(COPY.PLAN_FEATURES)}\n \n )}\n \n \n \n );\n}\n","import { Treatment } from './types';\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\n\nconst Treatments: Treatment = {\n ENTERPRISE_FEATURES_GP69: EXPERIMENT_IDENTIFIERS.ENTERPRISE_FEATURES_GP69.treatment,\n GROW_2427_TREATMENT: EXPERIMENT_IDENTIFIERS.GROW_2427.treatment,\n GROW_2529_FORMS_TREATMENT1: EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1,\n GROW_2529_FORMS_TREATMENT2: EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2,\n GROW_2629_FORMS_V2_TREATMENT: EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.treatment,\n};\n\nexport default Treatments;\n","import {\n SmsSurvey,\n HipaaSvg,\n OfflineSurveySVG,\n ResponseManagerSvg,\n SalesforceSvg,\n UnlimitedApi,\n TableauSvg,\n ChimeSvg,\n ColgateSvg,\n PumaLogo,\n AdTestingSvg,\n MaxDiffSvg,\n BrandTrackingSvg,\n PriceOptimizationSvg,\n ConceptTestingSvg,\n} from '.';\n\nconst { defineMessages } = require('@sm/intl');\n\nconst COPY = defineMessages({\n isOfflineModeEnterpriseEnabled: {\n title: 'Offline Surveys',\n body: 'No WiFi? No problem! Conduct field surveys with SurveyMonkey Anywhere app.',\n image: OfflineSurveySVG,\n link: 'https://help.surveymonkey.com/en/surveymonkey/send/offline-mode/',\n desiredProduct: 'offline mode',\n programId: '7014V000002J0E4QAK',\n },\n\n isResponseManagerEnabled: {\n title: 'Response Manager',\n body: 'Respond to data deletion requests and stay compliant with privacy laws.',\n image: ResponseManagerSvg,\n link: 'https://help.surveymonkey.com/en/surveymonkey/teams/enterprise-settings/#response-manager',\n desiredProduct: 'response manager',\n programId: '7014V000002J0DzQAK',\n },\n\n smsCollector: {\n title: 'SMS Surveys',\n body: 'Meet your audience where they are by sending them a mobile survey via text.',\n image: SmsSurvey,\n link: 'https://help.surveymonkey.com/en/surveymonkey/send/text-message/',\n programId: '7014V000001yzq9QAA',\n desiredProduct: 'sms surveys',\n },\n\n isTableauEnabled: {\n title: 'Power BI & Tableau',\n body: 'Automatically import survey responses into your favorite analytics platform.',\n image: TableauSvg,\n link: 'https://help.surveymonkey.com/en/surveymonkey/integrations/#syncing-data',\n programId: '7014V000002dF8qQAE',\n desiredProduct: 'power bi and tableau',\n },\n\n isUnlimitedApiEnabled: {\n title: 'Unlimited Api Calls',\n body: 'View survey results inside other platforms.',\n image: UnlimitedApi,\n link: 'https://help.surveymonkey.com/en/surveymonkey/integrations/surveymonkey-api/',\n programId: '7014V0000029osMQAQ',\n desiredProduct: 'unlimited api calls',\n },\n isHipaaEnabled: {\n title: 'HIPAA Compliance',\n body: 'Protect the sensitive data your organization collects and ensure patient privacy.',\n image: HipaaSvg,\n link: 'https://help.surveymonkey.com/en/surveymonkey/teams/hipaa/',\n programId: '7014V000002XmJRQA0',\n desiredProduct: 'hipaa compliance',\n },\n isSalesForceEnabled: {\n title: 'Salesforce Integration',\n body: 'Automate workflows and integrate data with easy-to-use Salesforce mapping.',\n image: SalesforceSvg,\n link: 'https://help.surveymonkey.com/en/surveymonkey/integrations/surveymonkey-salesforce-app/',\n programId: '7014V000001yzq9QAA',\n desiredProduct: 'salesforce integration',\n },\n chimeTestimonial: {\n logo: { img: ChimeSvg, height: '32px', width: '72px' },\n body: '“Momentive managed to capture the nuance to diversity, equity, and belonging work, moving beyond the surface level - they helped us achieve a higher level of understanding.”',\n quottedPerson: 'Erica Johnson',\n company: 'Chime',\n },\n pumaTestimonial: {\n logo: { img: PumaLogo, height: '30px', width: '60px' },\n body: \"“It's been a fun experience because I've been able to leverage the feedback we get in a much more thoughtful manner and ensure that it falls in line with what our customers want.”\",\n quottedPerson: 'Joey CasaDeCalvo',\n company: 'Puma',\n },\n colgateTestimonial: {\n logo: { img: ColgateSvg, height: '32px', width: '60%' },\n body: '“We were really impressed with the level of service from the Momentive team. It felt like a spa treatment. It felt very customized, very intensive, very supportive. That was surprising and delightful.”',\n quottedPerson: 'Mike Fitzgerald',\n company: 'Colgate-Palmolive',\n },\n conceptTesting: {\n title: 'Concept Testing',\n body: 'Validate and optimize product concepts with your target audience and compare against industry benchmarks.',\n image: { img: ConceptTestingSvg, height: '110px', width: '102px' },\n ctaLink: '/solutions/create/511',\n learnMoreLink: 'https://help.surveymonkey.com/en/surveymonkey/solutions/concept-testing/',\n desiredProduct: 'concept testing',\n },\n adTesting: {\n title: 'Ad Testing',\n body: 'Test ad creatives before they launch to maximize campaign effectiveness.',\n image: { img: AdTestingSvg, height: '127px', width: '160px' },\n ctaLink: '/solutions/create/506',\n learnMoreLink: 'https://www.surveymonkey.com/market-research/solutions/ad-creative-analysis/',\n desiredProduct: 'ad testing',\n },\n brandTracking: {\n title: 'Brand Tracking',\n body: 'Fuel your brand strategy with continuous insights on top performance metrics including awareness, perception, loyalty, and more.',\n image: { img: BrandTrackingSvg, height: '111px', width: '186px' },\n ctaLink: '/market-research/solutions/brand-tracker/',\n learnMoreLink: 'https://www.surveymonkey.com/market-research/solutions/brand-tracker/',\n desiredProduct: 'brand tracking',\n },\n priceOptimization: {\n title: 'Price Optimization',\n body: 'Find the optimal price range for your product or service using the Van Westendorp model.',\n image: { img: PriceOptimizationSvg, height: '145px', width: '158px' },\n ctaLink: '/solutions/mrx/van_westendorp/studies/create/',\n learnMoreLink: 'https://help.surveymonkey.com/en/surveymonkey/solutions/van-westendorp/',\n desiredProduct: 'price optimization',\n },\n maxDiff: {\n title: 'Feature Importance (MaxDiff)',\n body: 'Understand which product features influence decisions and satisfaction the most with advanced MaxDiff analysis.',\n image: { img: MaxDiffSvg, height: '120px', width: '150px' },\n ctaLink: '/market-research/services/',\n desiredProduct: 'feature importance',\n learnMoreLink:\n 'https://www.surveymonkey.com/market-research/resources/feature-importance-research-product-success/',\n },\n});\n\nexport default COPY;\n","import { createUseStyles } from 'react-jss';\n// Sonarcube asked for a constant\nconst boldText = '500 !important';\n\nexport default createUseStyles(theme => ({\n root: {\n backgroundColor: 'red',\n },\n topBanner: {\n width: '100% !important',\n height: '460px',\n backgroundColor: '#FFFDED',\n maxWidth: `${window.innerWidth} !important`,\n },\n\n bannerTitle: {\n fontWeight: boldText,\n },\n\n bannerBody: {\n width: '480px',\n },\n\n bannerButton: {\n marginTop: '25px',\n },\n\n bannerCTA: {\n marginRight: '80px',\n },\n\n linkIcon: {\n marginBottom: '-1px',\n },\n sectionTitle: {\n fontWeight: boldText,\n marginTop: '56px',\n },\n centerText: {\n textAlign: 'center',\n },\n\n addOnCard: {\n height: '280px',\n width: '308px',\n borderRadius: '8px',\n border: '2px solid #D1D3D4',\n padding: '40px 32px 32px 32px',\n marginTop: '25px',\n },\n\n addOnContainer: {\n paddingRight: '197px !important',\n paddingLeft: '197px !important',\n marginBottom: '55px',\n },\n\n addOnCardTitle: {\n fontSize: '20px !important',\n fontWeight: '500',\n },\n\n addOnCardButton: {\n marginTop: 'auto',\n },\n\n expertServicesPanel: {\n width: '100%',\n height: '670px',\n backgroundColor: '#051C4F',\n paddingTop: '56px',\n },\n\n lightTitle: {\n color: '#fff',\n fontWeight: boldText,\n },\n\n lightBody: {\n color: '#fff',\n padding: '0px 33%',\n fontSize: '16px',\n },\n\n row: {\n width: '100%',\n },\n\n testimonialCard: {\n border: '2px solid #53225B',\n borderRadius: '16px 16px 16px 0px',\n height: '356px',\n width: '308px',\n marginTop: '32px',\n backgroundColor: '#fff',\n marginLeft: '12px',\n marginRight: '12px',\n padding: '16px 16px 25px 16px',\n },\n\n chimeBox: {\n backgroundColor: '#F7F2FD',\n height: '250px',\n width: '95%',\n color: '#53225B',\n paddingLeft: '16px',\n paddingTop: '16px',\n },\n\n pumaBox: {\n backgroundColor: '#FEF0F1',\n height: '250px',\n width: '95%',\n color: '#902B3C',\n paddingLeft: '16px',\n paddingTop: '16px',\n },\n\n colgateBox: {\n backgroundColor: '#EEF9FE',\n height: '250px',\n width: '95%',\n color: '#051C4F',\n paddingLeft: '16px',\n paddingTop: '16px',\n },\n\n testimonialBody: {\n width: '90%',\n marginTop: '15px',\n },\n\n quoteBox: {\n marginTop: '16px',\n },\n\n mrxCard: {\n height: '370px',\n width: '308px',\n marginTop: '25px',\n },\n mrxCardInnerBox: {\n backgroundColor: '#F5FAF6',\n height: '40%',\n },\n mrxButton: {\n width: '150px',\n marginTop: 'auto',\n },\n\n mrxCardBody: {\n paddingRight: '16px',\n },\n modalContainer: {\n '&.wds-modal--md .wds-modal__modal ': {\n borderRadius: '16px !important',\n padding: '48px',\n backgroundColor: '#fff',\n\n '&.wds-modal__body': {\n backgroundColor: '#fff',\n },\n },\n },\n modalTitle: {\n fontSize: '24px',\n fontWeight: '500',\n fontFamily: theme.type.fontFamily.base,\n color: '#333E48',\n },\n modalButton: {\n width: '160px',\n },\n checkMark: {\n marginRight: '5px',\n height: '12px',\n width: '16px',\n },\n inlineLink: {\n margin: '0px 5px',\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@wds/box';\nimport { Grid } from '@wds/grid';\nimport { Button, Typography } from '@sm/wds-react';\nimport { generateMetricsAttribute } from '@sm/metrics';\nimport { LinkIcon } from '../assets';\nimport COPY from '../assets/EnterpriseFeaturesCopy';\nimport useStyles from '../useStyles';\n\nexport default function MrxSection() {\n const { sectionTitle, centerText, addOnContainer } = useStyles();\n const cardKeys = ['conceptTesting', 'adTesting', 'brandTracking', 'priceOptimization', 'maxDiff'];\n const viewAllSolutionsUrl = 'https://www.surveymonkey.com/market-research/solutions/get-started';\n return (\n <>\n \n \n Market Research Solutions\n \n \n Explore our portfolio of AI-powered solutions.{' '}\n \n View all solutions\n \n \n \n {cardKeys.map(feature => {\n return (\n \n \n \n );\n })}\n \n \n \n );\n}\n\nfunction MrxCard({ solution }) {\n const { addOnCardTitle, mrxButton, mrxCard, mrxCardInnerBox, mrxCardBody, linkIcon } = useStyles();\n\n const { title, body, image, learnMoreLink, ctaLink, desiredProduct } = solution;\n const { img, height, width } = image;\n\n return (\n <>\n \n \n {title}\n \n

\n {title}\n

\n \n {body}{' '}\n \n Learn more \"link\"\n {' '}\n \n \n Get Started\n \n
\n \n );\n}\n\nMrxCard.propTypes = {\n solution: PropTypes.shape(\n PropTypes.shape({\n title: PropTypes.string,\n body: PropTypes.string,\n link: PropTypes.string,\n ctaLink: PropTypes.string,\n desiredProduct: PropTypes.string,\n learnMoreLink: PropTypes.string,\n image: PropTypes.shape({\n img: PropTypes.node,\n height: PropTypes.string,\n width: PropTypes.string,\n }),\n })\n ).isRequired,\n};\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n CONTACT_US_TODAY: {\n id: 'Enterprise.copy.Heading',\n defaultMessage: 'Contact us today',\n desc: {\n id: 'Enterprise.copy.Heading',\n message: '[Type: header][Vis: high] - Primary header for enterprise tab contact us form',\n project: PROJECT_NAME,\n },\n },\n MAIN_HEADING: {\n id: 'Enterprise.copy.MainHeading',\n defaultMessage: 'Choose a plan that works for you',\n desc: {\n id: 'Enterprise.copy.MainHeading',\n message: '[Type: header][Vis: high] - Primary header for pricing enterprise page',\n project: PROJECT_NAME,\n },\n },\n SURVEY_MONKEY_ENTERPRISE: {\n id: 'Enterprise.copy.SurveyMonkeyEnterpriseHeading',\n defaultMessage: 'SurveyMonkey Enterprise',\n desc: {\n id: 'Enterprise.copy.SurveyMonkeyEnterpriseHeading',\n message: '[Type: header][Vis: high] - Primary header for enterprise user pricing page',\n project: PROJECT_NAME,\n },\n },\n LEARN_MORE: {\n id: 'Enterprise.copy.SubHeading',\n defaultMessage: 'Learn more about SurveyMonkey Enterprise and schedule a demo.',\n desc: {\n id: 'Enterprise.copy.SubHeading',\n message: '[Type: header][Vis: high] - Subheader for enterprise tab contact us form',\n project: PROJECT_NAME,\n },\n },\n MANAGE_USERS: {\n id: 'Enterprise.copy.ManageUsersBullet',\n defaultMessage:\n 'Manage multiple users and gain visibility into all survey data collected across your organization with admin controls and dashboards.',\n desc: {\n id: 'Enterprise.copy.ManageUsersBullet',\n message: '[Type: paragraph][Vis: high] - First bullet for enterprise tab contact us form',\n project: PROJECT_NAME,\n },\n },\n CONFIDENTIAL_DATA: {\n id: 'Enterprise.copy.ConfidentialDataBullet',\n defaultMessage:\n 'Ensure confidential data is protected with enhanced security including encryption, SSO, and features that help you remain compliant with HIPAA and GDPR.',\n desc: {\n id: 'Enterprise.copy.ConfidentialDataBullet',\n message: '[Type: paragraph][Vis: high] - Second bullet for enterprise tab contact us form',\n project: PROJECT_NAME,\n },\n },\n FEEDBACK: {\n id: 'Enterprise.copy.FeedbackBullet',\n defaultMessage:\n 'Make feedback automated and actionable by connecting to key business systems using APIs and powerful integrations, including Salesforce, Marketo, Tableau, and more.',\n desc: {\n id: 'Enterprise.copy.FeedbackBullet',\n message: '[Type: paragraph][Vis: high] - Third bullet for enterprise tab contact us form',\n project: PROJECT_NAME,\n },\n },\n INVALID_EMAIL: {\n id: 'Enterprise.copy.Invalid-Email',\n defaultMessage: 'Please enter a valid email address',\n desc: {\n id: 'Enterprise.copy.Invalid-Email',\n message: '[Type: Form][Vis.: high] - A message that is shown if the email entered is invalid',\n project: PROJECT_NAME,\n },\n },\n BLOCKED_EMAIL: {\n id: 'Enterprise.copy.InvalidBusinessEmail',\n defaultMessage: 'Please use your business email address',\n desc: {\n id: 'Enterprise.copy.InvalidBusinessEmail',\n message: '[Type: Form][Vis.: high] - A message that is shown if a the email is not a business email',\n project: PROJECT_NAME,\n },\n },\n INVALID_PHONE_NUMBER: {\n id: 'Enterprise.copy.InvalidPhoneNumber',\n defaultMessage: 'Please enter your phone number',\n desc: {\n id: 'Enterprise.copy.InvalidPhoneNumber',\n message: '[Type: Form][Vis.: high] - A message that is shown if the phone number is not valid',\n project: PROJECT_NAME,\n },\n },\n REQUIRED: {\n id: 'Enterprise.copy.Required',\n defaultMessage: 'Required',\n desc: {\n id: 'Enterprise.copy.Required',\n message: '[Type: Form][Vis.: high] - A message that is shown if a field is required to process the form',\n project: PROJECT_NAME,\n },\n },\n CONTACT_SALES: {\n id: 'Enterprise.copy.ContactSales',\n defaultMessage: 'Contact sales',\n desc: {\n id: 'Enterprise.copy.ContactSales',\n message: '[Type: Button][Vis.: high] - A button/link text to contact the sales team',\n project: PROJECT_NAME,\n },\n },\n HUBSPOT_FORM_ERROR: {\n id: 'Enterprise.copy.BackendError',\n defaultMessage: 'Unable to load form.',\n desc: {\n id: 'Enterprise.copy.BackendError',\n message: '[Type: Button][Vis.: high] - A generic error message',\n project: PROJECT_NAME,\n },\n },\n ERROR: {\n id: 'Enterprise.copy.GenericError',\n defaultMessage: 'Error',\n desc: {\n id: 'Enterprise.copy.GenericError',\n message: '[Type: Button][Vis.: high] - A generic error message',\n project: PROJECT_NAME,\n },\n },\n CONSENT: {\n id: 'Enterprise.copy.ConsentMessage',\n defaultMessage: `Contact me about SurveyMonkey Business Solutions like product updates, news, information, and special promotions. I can unsubscribe here at any time and can visit SurveyMonkey's privacy notice if I have any questions. We remember your preference so you do not have to submit it to us again and we will retain this preference until you opt-out.`,\n desc: {\n id: 'Enterprise.copy.ConsentMessage',\n message: '[Type: Text][Vis.: high] - Consent to newsletter subscription verbiage',\n project: PROJECT_NAME,\n },\n },\n CONSENT_FOR_SUBMISSION: {\n id: 'Enterprise.copy.ConsentMessageSubmission',\n defaultMessage: `Contact me about SurveyMonkey Business Solutions like product updates, news, information, and special promotions. I can unsubscribe if I have any questions. We remember your preference so you do not have to submit it to us again and we will retain this preference until you opt-out.`,\n desc: {\n id: 'Enterprise.copy.ConsentMessageSubmission',\n message: '[Type: Text][Vis.: high] - Consent to newsletter subscription verbiage submitted to hubspot',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { FocusEvent } from 'react';\nimport { ERROR_MAP } from './Validation';\n\nexport type FIELD_TYPE = { [x: string]: ValidateFn[] };\n\nexport enum ValidationColor {\n success = 'success',\n error = 'error',\n}\n\nexport type FormState = {\n [x: string]: {\n value: string;\n color: ValidationColor | undefined;\n errorMessage: string | undefined;\n };\n};\n\nexport type ValidationResult = {\n error?: string;\n color?: ValidationColor;\n};\n\ntype ValidateFn = (value: string) => ValidationResult;\n\nexport type ValidatorFn = {\n value: string;\n validators: ValidateFn[];\n};\n\n// since we don't know the type we get from the backend the most generic type that applies\n// Unless we have a way to map the whole data structure in flight\nexport type HubspotDataType = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [x: string]: any;\n};\n\nexport type HsFormFields = {\n id: string;\n type: string;\n name: string;\n label: string;\n defaultValue: string;\n fieldType: string;\n required: boolean;\n hidden: boolean;\n placeholder: string;\n hideLabel?: boolean;\n};\n\nexport type HubspotData = {\n fields: HsFormFields[];\n redirect?: string;\n portalId?: number;\n guid?: string;\n};\n\nexport enum HubspotApiStatus {\n // API request is being made\n Loading = 'Loading',\n // API call was successful\n Success = 'Success',\n // API resulted in an error\n Error = 'Error',\n}\n\nexport type HubspotApiData = {\n status?: HubspotApiStatus;\n error?: Error | null;\n data?: HubspotData | null;\n};\n\ntype HubspotApiError = {\n message: string;\n errorType: keyof typeof ERROR_MAP;\n};\n\nexport type HubspotApiReturnStatus = {\n status: string;\n message: string;\n errors: HubspotApiError[];\n redirectUri?: string;\n};\n\nexport type HsContext = {\n hutk: string;\n pageName: string;\n pageUri: string;\n};\n\nexport type HsCommunicationDTO = {\n text: string;\n subscriptionTypeId: number;\n value: boolean;\n};\n\nexport type HsConsent = {\n [key in 'consent']: {\n communications: HsCommunicationDTO[];\n consentToProcess: boolean;\n text: string;\n };\n};\nexport type HsFormValues = Pick & { value: string };\n\nexport type HubspotDTO = {\n context: HsContext;\n fields: HsFormValues[];\n legalConsentOptions?: HsConsent;\n};\n\nexport type SubmissionDataOptions = {\n formFields: HsFormFields[];\n formData: FormState;\n};\n\nexport type HubspotInputType = {\n fields: HsFormFields[] | undefined;\n formData: FormState;\n handleOnBlur(e: FocusEvent): void;\n};\n\n// Johnny's defined type\nexport type HubspotFormType = {\n customOnSubmitFunction?: Function | undefined;\n};\n","import { t } from '@sm/intl';\nimport { isValidEmail } from '@sm/utils';\n\nimport COPY from '~pricing/pages/Enterprise/copy';\nimport { ValidationResult, ValidatorFn, ValidationColor, FIELD_TYPE, FormState } from './types';\n\nconst FIELDS = Object.freeze({ email: 'email', phone: 'phone', defaultType: 'defaultType' });\n\nexport const ERROR_MAP = {\n INVALID_EMAIL: t(COPY.INVALID_EMAIL),\n BLOCKED_EMAIL: t(COPY.BLOCKED_EMAIL),\n INVALID_PHONE_NUMBER: t(COPY.INVALID_PHONE_NUMBER),\n REQUIRED_FIELD: t(COPY.REQUIRED),\n GENERIC_ERROR: t(COPY.ERROR),\n};\n\nconst PHONE_NUMBER_REGEX = new RegExp(\n '^(\\\\+\\\\d{1,2}\\\\s?)?1?\\\\-?\\\\.?\\\\s?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$',\n 's'\n);\n\nconst VALIDATOR_SUCCESS: ValidationResult = { color: ValidationColor.success };\n\n/**\n * This applies to most specific validator to an input\n * @param param ValidatorFn\n * @returns a validation result in accordance with Wrench input component\n */\nexport function applyValidators({ value, validators }: ValidatorFn): ValidationResult {\n let validatorResult: ValidationResult = {};\n validators.every(validate => {\n validatorResult = validate(value);\n return !validatorResult.error;\n });\n return validatorResult;\n}\n\nexport function minLengthValidator(value: string): ValidationResult {\n return value.length < 1 ? { error: ERROR_MAP.REQUIRED_FIELD, color: ValidationColor.error } : VALIDATOR_SUCCESS;\n}\n\nexport function emailValidator(value: string): ValidationResult {\n return !isValidEmail(value) ? { error: ERROR_MAP.INVALID_EMAIL, color: ValidationColor.error } : VALIDATOR_SUCCESS;\n}\n\nexport function phoneValidator(value: string): ValidationResult {\n return PHONE_NUMBER_REGEX.test(value)\n ? VALIDATOR_SUCCESS\n : { error: ERROR_MAP.INVALID_PHONE_NUMBER, color: ValidationColor.error };\n}\n\nconst FIELD_VALIDATORS: FIELD_TYPE = Object.freeze({\n [FIELDS.email]: [minLengthValidator, emailValidator],\n [FIELDS.phone]: [minLengthValidator, phoneValidator],\n [FIELDS.defaultType]: [minLengthValidator],\n});\n\n/**\n * This routine validates and returns the final final state\n * @param fieldType\n * @param value\n * @returns the form validated state\n */\nexport function validateAndGetFormData(fieldType: string, value: string): FormState {\n const validatorType = FIELD_VALIDATORS[fieldType] ? fieldType : 'defaultType';\n const validator = applyValidators({ value, validators: FIELD_VALIDATORS[validatorType] });\n return {\n [fieldType]: {\n value,\n color: validator?.color,\n errorMessage: validator?.error,\n },\n };\n}\n\n/**\n * A simple utility to check the form validity status\n * @param formData\n * @returns {boolean} if all the form fields are valid\n */\nexport const isFormValid = (formData: FormState): boolean | number => {\n const formValues = Object.values(formData);\n return formValues.length && !formValues?.some(({ errorMessage }) => errorMessage);\n};\n","import { t } from '@sm/intl';\n\nimport { getCookieValue, isBrowser, EMPTY_STRING } from '~shared/util';\n\nimport COPY from '~pricing/pages/Enterprise/copy';\n\nimport {\n HsContext,\n HsConsent,\n HsFormFields,\n HsFormValues,\n HubspotDTO,\n HsCommunicationDTO,\n HubspotApiReturnStatus,\n FormState,\n ValidationColor,\n SubmissionDataOptions,\n} from './types';\nimport { isFormValid, ERROR_MAP } from './Validation';\n\nconst ENDPOINT = 'https://api.hsforms.com/submissions/v3/integration/submit';\n\nconst DEFAULT_HUBSPOT_ROUTE = '/5811593/289edeb2-bb6b-45f7-bef3-7185f3c6e9f4';\nconst MONTHLY_SUB_ID = 9074378;\nconst PRODUCT_UPDATES_SUB_ID = 9074384;\n\nconst HS_ERROR_STATUS: string[] = ['error'];\n\n/**\n * Utility to retrieve hubspot Utility values\n * @returns HsContext\n */\nexport const getHubspotContextValues = (): HsContext => ({\n hutk: getCookieValue('hubspotutk'),\n pageName: isBrowser() ? document.title : '',\n pageUri: isBrowser() ? document.location.pathname : '',\n});\n\n/**\n * Maps the name and value for given set of fields\n * @param fields\n * @param formData\n * @returns key value pair for hubspot submission values\n */\nfunction mapFieldAndValues(fields: HsFormFields[], formData: FormState): HsFormValues[] {\n return fields?.map(({ name, defaultValue }): HsFormValues => {\n const formDTO = formData[name];\n return {\n name,\n value: formDTO ? formDTO.value : defaultValue,\n };\n });\n}\n\n/**\n * Sanitizes Hubspot form data for submission\n * @param formFields\n * @param formData\n * @returns HubspotDTO | undefined\n */\nfunction mapHubspotSubmissionData(formFields: HsFormFields[], formData: FormState): HubspotDTO | undefined {\n const communications: HsCommunicationDTO[] = [\n {\n text: t(COPY.CONSENT_FOR_SUBMISSION),\n subscriptionTypeId: MONTHLY_SUB_ID,\n value: !!formData?.consent?.value,\n },\n {\n text: t(COPY.CONSENT_FOR_SUBMISSION),\n subscriptionTypeId: PRODUCT_UPDATES_SUB_ID,\n value: !!formData?.consent?.value,\n },\n ];\n const legalConsentOptions: HsConsent = {\n consent: {\n communications,\n consentToProcess: true,\n text: EMPTY_STRING,\n },\n };\n return {\n context: getHubspotContextValues(),\n fields: mapFieldAndValues(formFields, formData),\n legalConsentOptions,\n } as HubspotDTO;\n}\n/**\n * A fetch helper function to submit Hubspot forms\n * @param dataOptions\n * @returns Promise\n */\nexport async function saveFormData(\n dataOptions: SubmissionDataOptions,\n autoSubmit = false,\n apiRoute: string = DEFAULT_HUBSPOT_ROUTE\n): Promise {\n const { formFields, formData } = dataOptions;\n // bail right away if the overall form lacks a required field\n if (!isFormValid(formData) && !autoSubmit) {\n return;\n }\n const submitData = mapHubspotSubmissionData(formFields, formData);\n const url = `${ENDPOINT}/${apiRoute}`;\n const response =\n submitData &&\n (await fetch(url, {\n method: 'POST',\n body: JSON.stringify(submitData),\n headers: {\n 'Content-type': 'application/json;charset=utf-8',\n },\n }));\n return response?.json();\n}\n\n/**\n * Parses and validates Hubspot server side error\n * @param responseData\n * @param formData\n * @returns FormState | undefined\n */\nexport function parseHubspotApiResponse(\n responseData: HubspotApiReturnStatus,\n formData: FormState\n): FormState[] | undefined {\n const { status = EMPTY_STRING, errors = [] } = responseData;\n if (HS_ERROR_STATUS.includes(status)) {\n return errors.map(({ message, errorType }): FormState => {\n const [field] = message.match(/(fields|context)\\.([^']*)/) as RegExpMatchArray; // modified version from cms\n const fieldName = field?.replace(/(.*)\\./, ''); // retrieves the field name from the above string\n const mapFormDataWWithError: FormState = {\n [fieldName]: {\n value: formData[fieldName].value,\n color: ValidationColor.error,\n errorMessage: ERROR_MAP[errorType],\n },\n };\n return mapFormDataWWithError;\n });\n }\n}\n","import { useState, useMemo } from 'react';\n\nimport {\n HsFormFields,\n HubspotApiData,\n HubspotApiStatus,\n HubspotDataType,\n HubspotData,\n} from '~app/pages/Pricing/components/HubSpotForm/types';\n\nconst EXCLUDE_COUNTRY_FIELD = 'contact_country__c';\nconst HUBSPOT_PROXY = '/cc/hs/';\nconst HUBSPOT_FORM_ID = '289edeb2-bb6b-45f7-bef3-7185f3c6e9f4';\n\n/**\n * Given the ID of the form to be displayed, fetches Hubspot JSON data from the API\n * @param formId The ID of the form to be displayed\n * @returns Promise Status, error, form data\n */\nconst fetchHubSpotForm = async (formId = HUBSPOT_FORM_ID): Promise => {\n const formData = new URLSearchParams();\n formData.append('formId', formId);\n const fetchHSForms = await fetch(HUBSPOT_PROXY, {\n method: 'POST',\n body: formData,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n return fetchHSForms.json();\n};\n\n/**\n * If the field name is 'contact_country__c', hide the field,\n * otherwise return the value of the hidden flag associated with the field.\n * @param {param0} name, hidden\n * @returns boolean Whether or not the field should be hidden\n */\nfunction mapHiddenField({ name, hidden }: HubspotDataType): boolean {\n return name === EXCLUDE_COUNTRY_FIELD ? true : hidden;\n}\n\n/**\n * Function used in useHubSpotFormAPI; takes the values returned from the API\n * and transforms them into the format required for the front end.\n * @param hsData {T extends HubspotDataType}\n * @returns HubspotData\n */\nfunction mapHubSpotFormFields(hsData: T): HubspotData {\n const { form } = hsData;\n const mappedData: HubspotData = {\n fields: [],\n redirect: form?.redirect,\n guid: form?.guid,\n portalId: form?.portalId,\n };\n\n const shallowCopiedFormFields: HubspotDataType[] = [...form?.formFieldGroups];\n\n const temp = shallowCopiedFormFields.map((field: HubspotDataType) => {\n return field?.fields.map((formFields: HubspotDataType): HsFormFields => {\n return {\n id: `HubSpotForm__${formFields.name}`,\n type: formFields.type,\n name: formFields.name,\n defaultValue: formFields.defaultValue,\n label: formFields.label,\n fieldType: formFields.fieldType,\n required: formFields.required,\n hidden: mapHiddenField(formFields),\n hideLabel: formFields.labelHidden,\n placeholder: formFields.placeholder,\n };\n });\n });\n return { ...mappedData, fields: temp.flat() };\n}\n\n/**\n * Used directly in the HubspotForm component.\n * Calls the function to fetch the data from the API\n * and then returns either the formatted data or an error.\n * @param {string} formId The ID of the form to be fetched\n * @returns form data\n */\nexport default function useHubSpotFormAPI>(formId = HUBSPOT_FORM_ID): T | {} {\n const [data, setData] = useState({\n status: HubspotApiStatus.Loading,\n error: null,\n data: null,\n });\n useMemo(() => {\n fetchHubSpotForm(formId)\n .then((formData: HubspotDataType) => {\n setData({\n data: mapHubSpotFormFields(formData),\n error: null,\n status: 'Success',\n });\n })\n .catch(err => {\n setData({\n data: null,\n status: HubspotApiStatus.Error,\n error: err,\n });\n });\n }, [formId]);\n\n return data;\n}\n","function buildHubspotPayload(user) {\n const { firstName, lastName, email } = user;\n return {\n firstname: {\n value: firstName || 'N/A',\n color: 'success',\n },\n lastname: {\n value: lastName || 'N/A',\n color: 'success',\n },\n email: {\n value: email,\n color: 'success',\n },\n /* Since these fields are sometimes not present in the db we will keep them as N/A\n since this is an autofilled and autosubmitted form\n */\n company: {\n value: 'N/A',\n color: 'success',\n },\n phone: {\n value: 'N/A',\n color: 'success',\n },\n jobtitle: {\n value: 'N/A',\n color: 'success',\n },\n contact_country__c: {\n value: 'N/A',\n color: 'success',\n },\n };\n}\n\nconst cleanUpFormFields = (programId, formFields) => {\n let editedFormFields = formFields.filter(\n field => field.id !== 'HubSpotForm__most_recent_lead_source__c' && field.id !== 'HubSpotForm__program'\n );\n const leadSource = formFields.find(field => field.id === 'HubSpotForm__most_recent_lead_source__c');\n const hubspotProgram = formFields.find(field => field.id === 'HubSpotForm__program');\n\n if (leadSource) {\n leadSource.hidden = false;\n leadSource.defaultValue = 'Contact Sales';\n editedFormFields.push(leadSource);\n }\n\n if (hubspotProgram) {\n hubspotProgram.hidden = false;\n hubspotProgram.defaultValue = programId;\n editedFormFields.push(hubspotProgram);\n }\n // Clean up any undefined\n editedFormFields = editedFormFields.filter(form => form);\n\n return editedFormFields;\n};\n\nexport { buildHubspotPayload, cleanUpFormFields };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@wds/box';\nimport { Button, Typography, Modal, ModalBody } from '@sm/wds-react';\nimport { InPersonSvg } from '../assets';\nimport useStyles from '../useStyles';\n\nexport default function NotifyInterestModal({ toggleModal, showModal }) {\n const { modalContainer, modalTitle, modalButton, bannerButton } = useStyles();\n\n return (\n <>\n toggleModal(false)} className={modalContainer} size=\"md\">\n \n \n \"SVG\"\n

We'll be in touch

\n \n {\n \"Our support team will email you within 2 business days to follow up about your interest. Add us to your allow list so you don't miss the email.\"\n }{' '}\n \n Learn more\n \n \n \n
\n
\n
\n \n );\n}\n\nNotifyInterestModal.propTypes = {\n toggleModal: PropTypes.func.isRequired,\n showModal: PropTypes.bool.isRequired,\n};\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@wds/box';\nimport { IconCheck } from '@sm/wds-icons';\nimport { Button, Typography } from '@sm/wds-react';\nimport { clientErrorHandler } from '@sm/webassets';\nimport { generateMetricsAttribute } from '@sm/metrics';\nimport { saveFormData } from '../../../components/HubSpotForm/helpers';\nimport useHubSpotFormAPI from '~pricing/hooks/useHubSpotAPI';\nimport { buildHubspotPayload, cleanUpFormFields } from '../helpers';\nimport NotifyInterestModal from './NotifyInterestModal';\nimport useStyles from '../useStyles';\nimport COPY from '../assets/EnterpriseFeaturesCopy';\n\nconst EXPERT_SERVICES_PROGRAM_ID = '7014V000002dEzdQAE';\nexport default function ExpertServices({ user }) {\n const {\n expertServicesPanel,\n centerText,\n lightTitle,\n lightBody,\n bannerButton,\n row,\n chimeBox,\n colgateBox,\n pumaBox,\n checkMark,\n } = useStyles();\n const [showThankYouModal, setShowThankYouModal] = useState(false);\n const [submitted, setSubmitted] = useState(false);\n const { data } = useHubSpotFormAPI('1a594719-3256-4c2f-b2ea-06fcb43de45f');\n const formFields = useMemo(() => data?.fields, [data?.fields]);\n const expertServicesInterest = localStorage.getItem('pnp-notify-interest-expert-services');\n\n const toggleThankYouModal = open => {\n setShowThankYouModal(open);\n };\n\n const notifyInterest = async programId => {\n const autoFilledFormData = buildHubspotPayload(user);\n const hubspotUrlRoute = `${data?.portalId}/${data?.guid}`;\n\n try {\n const res = await saveFormData(\n { formFields: cleanUpFormFields(programId, formFields), formData: autoFilledFormData },\n true,\n hubspotUrlRoute\n );\n if (!res?.status?.errors) {\n setSubmitted(true);\n toggleThankYouModal(true);\n }\n } catch (err) {\n clientErrorHandler.logError(err, 'Error notifying sales team of interest.');\n }\n };\n\n return (\n <>\n \n \n Expert Services\n \n \n We offer 1:1 expert services support for optimizing your survey programming. Connect with our research\n professionals who can guide you or manage your project end-to-end.\n \n \n {\n notifyInterest(EXPERT_SERVICES_PROGRAM_ID);\n localStorage.setItem('pnp-notify-interest-expert-services', true);\n }}\n data-sm-metrics={generateMetricsAttribute({\n data: {\n desiredProduct: 'expert services',\n amplitudeEvent: 'pricing clicked enterprise cta',\n },\n })}\n >\n {submitted || expertServicesInterest ? : <>}\n {submitted || expertServicesInterest ? 'Interest Sent' : 'Notify Interest'}\n \n \n\n \n \n \n \n \n \n \n \n );\n}\n\nfunction TestimonialCard({ testimonial, cssClass, cardColor }) {\n const { testimonialCard, testimonialBody, quoteBox } = useStyles();\n const { logo, body, quottedPerson, company } = testimonial;\n const { img, height, width } = logo;\n\n return (\n <>\n {/* Border color depends on card so it's done inline */}\n \n \n {company}\n \n {body}\n \n \n
\n \n {quottedPerson}\n \n \n {company}\n \n
\n
\n \n );\n}\n\nExpertServices.propTypes = {\n user: PropTypes.objectOf(PropTypes.object).isRequired,\n};\n\nTestimonialCard.propTypes = {\n cssClass: PropTypes.string.isRequired,\n cardColor: PropTypes.string.isRequired,\n testimonial: PropTypes.shape(\n PropTypes.shape({\n body: PropTypes.string,\n quottedPerson: PropTypes.string,\n company: PropTypes.string,\n logo: PropTypes.shape({\n img: PropTypes.node,\n height: PropTypes.string,\n width: PropTypes.string,\n }),\n })\n ).isRequired,\n};\n","import React from 'react';\n\nimport { t } from '@sm/intl';\n\nimport { Typography } from '@wds/typography';\nimport { Box } from '@wds/box';\nimport { Banner } from '@wds/banner';\n\nimport COPY from '~pricing/pages/Enterprise/copy';\n\nexport default function HubSpotErrorBanner(): JSX.Element {\n return (\n \n \n \n {t(COPY.HUBSPOT_FORM_ERROR)}\n \n \n \n );\n}\n","import React from 'react';\n\nimport { FormField } from '@wds/form-group';\nimport { Input } from '@wds/input';\n\nimport { HsFormFields, HubspotInputType } from './types';\n\n// TODO: translation required @Richmond, CMS gets the translated labels from the API but how? investigating\n\nexport default function HubspotInput({ fields, formData, handleOnBlur }: HubspotInputType): JSX.Element {\n return (\n <>\n {fields?.map(\n (field: HsFormFields) =>\n !field.hidden && (\n \n \n \n )\n )}\n \n );\n}\n","import { createUseStyles } from 'react-jss';\n\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nconst useHubSpotStyles = createUseStyles(({ spacing }) => ({\n CheckBoxWrapper: {\n display: 'flex',\n justifyContent: 'flex-start',\n gap: spacing[2],\n '& p': {\n overflowX: 'clip',\n },\n },\n}));\n\nexport default useHubSpotStyles;\n","import React, { useState, useMemo, useCallback, FocusEvent, ChangeEvent, FormEvent } from 'react';\n\nimport { t } from '@sm/intl';\n\nimport { Typography } from '@wds/typography';\nimport { Checkbox } from '@wds/checkbox';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { FormGroup, FormField } from '@wds/form-group';\nimport { ProgressCircle } from '@wds/progress-circle';\n\nimport { EMPTY_STRING } from '~shared/util';\n\nimport useHubSpotFormAPI from '~pricing/hooks/useHubSpotAPI';\nimport COPY from '~pricing/pages/Enterprise/copy';\n\nimport { TranslationsPlaceHolderType } from '~pricing/types';\nimport { parseHubspotApiResponse, saveFormData } from './helpers';\nimport { HubspotApiStatus, HubspotApiData, HubspotFormType, HubspotApiReturnStatus, FormState } from './types';\nimport { validateAndGetFormData } from './Validation';\n\nimport HubSpotErrorBanner from './HubSpotErrorBanner';\nimport HubspotInput from './HubspotInput';\nimport useHubSpotStyles from './useStyles';\n\nfunction SubscriptionLink({ children }: TranslationsPlaceHolderType): JSX.Element {\n return (\n \n {children}\n \n );\n}\n\nfunction PrivacyLink({ children }: TranslationsPlaceHolderType): JSX.Element {\n return (\n \n {children}\n \n );\n}\n\nexport default function HubSpotForm({ customOnSubmitFunction }: HubspotFormType): JSX.Element {\n const [formData, setFormData] = useState({});\n const { status, data, error }: HubspotApiData = useHubSpotFormAPI();\n const { CheckBoxWrapper } = useHubSpotStyles();\n\n const formFields = useMemo(() => data?.fields, [data?.fields]);\n\n const handleChange = useCallback(\n ({ target }: FocusEvent) => {\n const { name, value } = target;\n const validatedData = validateAndGetFormData(name, value);\n setFormData({\n ...formData,\n ...validatedData,\n });\n },\n [setFormData, formData]\n );\n\n const handleConsentChecked = useCallback(\n ({ target }: ChangeEvent) => {\n const { name, checked } = target;\n setFormData({\n ...formData,\n [name]: {\n value: checked,\n color: undefined,\n errorMessage: checked ? undefined : t(COPY.ERROR),\n },\n } as FormState);\n },\n [setFormData, formData]\n );\n\n const handleFormSubmission = useCallback(\n (event: FormEvent) => {\n event.preventDefault();\n if (!formFields || !formFields.length) {\n return;\n }\n let newFormData = { ...formData };\n formFields.forEach(({ name, hidden }) => {\n if (!hidden) {\n const currentValue = newFormData[name] ? newFormData[name].value : EMPTY_STRING;\n const submitErrors = validateAndGetFormData(name, currentValue);\n newFormData = { ...newFormData, ...submitErrors };\n }\n });\n setFormData(newFormData);\n saveFormData({ formFields, formData })\n .then((response: HubspotApiReturnStatus | undefined) => {\n if (response?.redirectUri) {\n // TODO SM.tracking\n window.location.assign(response?.redirectUri);\n if (customOnSubmitFunction) {\n customOnSubmitFunction();\n }\n } else {\n // TODO SM tracking\n const errors = parseHubspotApiResponse(response as HubspotApiReturnStatus, formData);\n errors?.forEach(fs => setFormData({ ...formData, ...fs }));\n }\n })\n .catch(err => {\n // TODO SM tracking\n });\n },\n [setFormData, formFields, formData, customOnSubmitFunction]\n );\n\n if (error) {\n return ;\n }\n\n return (\n <>\n {status === HubspotApiStatus.Success ? (\n
\n \n \n \n \n \n \n \n {t(\n { ...COPY.CONSENT },\n {\n subLink: SubscriptionLink,\n privacyNotice: PrivacyLink,\n }\n )}\n \n \n\n \n \n \n \n
\n ) : (\n \n \n \n )}\n \n );\n}\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Typography } from '@sm/wds-react';\nimport { Modal } from '@wds/modal';\nimport { Grid } from '@wds/grid';\nimport { clientErrorHandler } from '@sm/webassets';\nimport { generateMetricsAttribute } from '@sm/metrics';\nimport { IconCheck } from '@sm/wds-icons';\nimport HubSpotForm from '~pricing/components/HubSpotForm';\nimport { saveFormData } from '../../../components/HubSpotForm/helpers';\nimport useHubSpotFormAPI from '~pricing/hooks/useHubSpotAPI';\nimport NotifyInterestModal from './NotifyInterestModal';\nimport { buildHubspotPayload, cleanUpFormFields } from '../helpers';\nimport { LinkIcon } from '../assets';\nimport COPY from '../assets/EnterpriseFeaturesCopy';\nimport useStyles from '../useStyles';\n\nexport default function AddOnSection({ features, user }) {\n const { addOnContainer } = useStyles();\n const PADDING_X = 9;\n const PADDING_Y = 7;\n const SMALL_COL_BREAKPOINT = 6;\n const LARGE_COL_BREAKPOINT = 4;\n\n return (\n \n {features.map(feature => {\n return (\n \n {' '}\n \n );\n })}\n \n );\n}\n\nfunction AddOnCard({ addOn, user }) {\n const [submitted, setSubmitted] = useState(false);\n const [showThankYouModal, setShowThankYouModal] = useState(false);\n const [showHubspotModal, setShowHubspotModal] = useState(false);\n const { addOnCard, addOnCardTitle, bannerButton, checkMark, linkIcon, inlineLink } = useStyles();\n const { data } = useHubSpotFormAPI('1a594719-3256-4c2f-b2ea-06fcb43de45f');\n const formFields = useMemo(() => data?.fields, [data?.fields]);\n\n const toggleThankYouModal = open => {\n setShowThankYouModal(open);\n };\n\n const notifyInterest = async programId => {\n const autoFilledFormData = buildHubspotPayload(user);\n const hubspotUrlRoute = `${data?.portalId}/${data?.guid}`;\n\n try {\n const res = await saveFormData(\n { formFields: cleanUpFormFields(programId, formFields), formData: autoFilledFormData },\n true,\n hubspotUrlRoute\n );\n if (!res?.status?.errors) {\n setSubmitted(true);\n toggleThankYouModal(true);\n }\n } catch (err) {\n clientErrorHandler.logError(err, 'Error notifying sales team of interest.');\n }\n };\n\n const handleSubmission = () => {\n setShowHubspotModal(false);\n setSubmitted(true);\n };\n\n if (addOn) {\n const { title, body, image, link, programId, desiredProduct } = addOn;\n const desiredProductInterestSent = localStorage.getItem(`pnp-notify-interest-${desiredProduct}`);\n\n return (\n <>\n \n
\n \"add\n {/* None of the variants fit the design */}\n

\n {title}\n

\n \n {body}\n \n Learn more \"link\"\n \n \n {submitted || desiredProductInterestSent ? (\n \n ) : (\n {\n notifyInterest(programId);\n localStorage.setItem(`pnp-notify-interest-${desiredProduct}`, true);\n }}\n data-sm-metrics={generateMetricsAttribute({\n data: {\n desiredProduct,\n amplitudeEvent: 'pricing clicked enterprise cta',\n },\n })}\n >\n Notify Interest\n \n )}\n
\n
\n \n setShowHubspotModal(false)}>\n \n handleSubmission()} />\n \n \n \n );\n }\n return null;\n}\n\nAddOnSection.propTypes = {\n features: PropTypes.arrayOf(\n PropTypes.shape({\n body: PropTypes.string,\n image: PropTypes.objectOf(PropTypes.object).isRequired,\n link: PropTypes.string,\n desiredProduct: PropTypes.string,\n programId: PropTypes.string,\n })\n ).isRequired,\n user: PropTypes.objectOf(PropTypes.object).isRequired,\n};\n\nAddOnCard.propTypes = {\n addOn: PropTypes.shape({\n title: PropTypes.string,\n body: PropTypes.string,\n desiredProduct: PropTypes.string,\n image: PropTypes.objectOf(PropTypes.object).isRequired,\n link: PropTypes.string,\n programId: PropTypes.string,\n }).isRequired,\n user: PropTypes.objectOf(PropTypes.object).isRequired,\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useQuery } from 'react-apollo';\nimport { Box } from '@wds/box';\nimport { Button, Typography } from '@sm/wds-react';\nimport { BasePage, clientErrorHandler } from '@sm/webassets';\nimport { MetricsTracker, USER_EVENTS, generateMetricsAttribute } from '@sm/metrics';\nimport { IconCheck } from '@sm/wds-icons';\nimport MrxSection from './components/mrxSection';\nimport ExpertServices from './components/testimonialSection';\nimport AddOnSection from './components/addOnSection';\nimport NotifyInterestModal from './components/NotifyInterestModal';\nimport { saveFormData } from '../../components/HubSpotForm/helpers';\nimport useHubSpotFormAPI from '~pricing/hooks/useHubSpotAPI';\nimport SEO from '~pricing/components/SEO';\nimport { buildHubspotPayload, cleanUpFormFields } from './helpers';\nimport UserAccountInfo from './UserInfo.graphql';\nimport useStyles from './useStyles';\nimport { LinkIcon, SSOSVG } from './assets';\n\nconst SSO_PROGRAM_ID = '7014V000002hM6XQAU';\nexport default function EnterpriseFeatures() {\n const { topBanner, bannerTitle, bannerBody, bannerButton, bannerCTA, linkIcon, sectionTitle, centerText, checkMark } =\n useStyles();\n const [user, setUser] = useState({});\n const [features, setFeatures] = useState([]);\n const [showThankYouModal, setShowThankYouModal] = useState(false);\n const [submitted, setSubmitted] = useState(false);\n const { data } = useHubSpotFormAPI('1a594719-3256-4c2f-b2ea-06fcb43de45f');\n const formFields = useMemo(() => data?.fields, [data?.fields]);\n const ssoInterestSent = localStorage.getItem('pnp-notify-interest-sso');\n\n useEffect(() => {\n MetricsTracker.track({\n name: USER_EVENTS.PAGE_VIEW,\n data: {\n amplitudeEvent: 'page viewed',\n pageName: 'Enterprise PnP Page',\n urlPath: window.location.pathname,\n },\n });\n }, []);\n\n useQuery(UserAccountInfo, {\n onCompleted(hookData) {\n const { user: userResp } = hookData;\n if (userResp?.features) {\n const userFeatures = userResp.features;\n const activeFeatures = Object.keys(userFeatures).filter(key => {\n const keyValue = !userFeatures[key];\n if (key === 'isTableauEnabled') {\n return keyValue && !userFeatures.powerBIEnabled;\n }\n if (key === 'isPowerBIEnabled') {\n return false;\n }\n return keyValue && key !== '__typename';\n });\n setFeatures(activeFeatures);\n setUser(hookData.user);\n }\n },\n });\n\n const toggleThankYouModal = open => {\n setShowThankYouModal(open);\n };\n\n const notifyInterest = async programId => {\n const autoFilledFormData = buildHubspotPayload(user);\n const hubspotUrlRoute = `${data?.portalId}/${data?.guid}`;\n\n try {\n const res = await saveFormData(\n { formFields: cleanUpFormFields(programId, formFields), formData: autoFilledFormData },\n true,\n hubspotUrlRoute\n );\n if (!res?.status?.errors) {\n setSubmitted(true);\n toggleThankYouModal(true);\n }\n } catch (err) {\n clientErrorHandler.logError(err, 'Error notifying sales team of interest.');\n }\n };\n\n return (\n \n \n \n \n \n Activate Single Sign-On (SSO)\n \n \n Increase security, ease of access, and control by ensuring all SurveyMonkey users within your organization\n are centralized under your SurveyMonkey Enterprise account.{' '}\n \n Learn more \"link\"\n \n \n {\n notifyInterest(SSO_PROGRAM_ID);\n localStorage.setItem('pnp-notify-interest-sso', true);\n }}\n data-sm-metrics={generateMetricsAttribute({\n data: {\n desiredProduct: 'single sign on',\n amplitudeEvent: 'pricing clicked enterprise cta',\n },\n })}\n >\n {submitted || ssoInterestSent ? : <>}\n {submitted || ssoInterestSent ? 'Interest Sent' : 'Set it up'}\n \n \n\n \"SSO\"\n \n {features.length ? (\n <>\n \n Customize your Enterprise experience with add-ons\n \n \n Let us know which value-added features and services will help you achieve your feedback goals, and we’ll\n help you get started.\n \n \n \n ) : (\n <>\n )}\n \n \n \n \n \n );\n}\n","import EnterpriseFeatures from './EnterpriseFeatures';\n\nexport default {\n EnterpriseFeatures,\n};\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n SocialProof: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: type.fontSize.bodySm,\n margin: [spacing[2], spacing[3]],\n paddingBottom: spacing[2],\n fontWeight: type.fontWeight.medium,\n borderBottom: `1px solid ${pricingPalette.colors.flint}`,\n color: pricingPalette.colors.slate,\n [MD_MEDIA_QUERY]: {\n flexWrap: 'nowrap',\n },\n\n '& > *': {\n height: 15,\n padding: [spacing[3], spacing[3]],\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n\n '& .trusted-text': {\n flex: '0 1 100%',\n textAlign: 'center',\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n\n '& .shopify-logo': {\n flex: '0 1 10%',\n height: 20,\n objectFit: 'contain',\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n\n '& .chewy-logo': {\n flex: '0 1 10%',\n padding: [spacing[4], spacing[3], spacing[3]],\n objectFit: 'contain',\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n\n '& .adidas-logo': {\n flex: '0 1 10%',\n objectFit: 'contain',\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n\n '& .jpm-logo, .jhu-logo': {\n flex: '0 1 30%',\n objectFit: 'contain',\n [MD_MEDIA_QUERY]: {\n flex: '0 1 auto',\n },\n },\n },\n}));\n","import React from 'react';\nimport shopifyLogo from './assets/shopify_logo.png';\nimport chewyLogo from './assets/chewy_logo.png';\nimport adidasLogo from './assets/adidas_logo.png';\nimport jhuLogo from './assets/jhu_logo.png';\nimport jpmLogo from './assets/jpm_logo.png';\n\nexport default function SocialProofLogos(): JSX.Element {\n return (\n <>\n \"shopify\n \"chewy\n \"adidas\n \"jpm\n \"jhu\n \n );\n}\n","import React from 'react';\nimport { Box } from '@wds/box';\nimport useStyles from './useStyles';\nimport SocialProofLogos from './Logos';\n\nexport default function Grow2427SocialProof(): JSX.Element {\n const { SocialProof } = useStyles();\n\n return (\n \n
Trusted by
\n \n
\n );\n}\n","import SocialProof from './SocialProof';\n\nexport default {\n SocialProof,\n};\n","import { PackageTheme } from '~app/styles/pricing/types';\nimport { packageColors } from '~app/styles/theme';\nimport { Packages } from '~shared/constants/pricing';\n\nconst grow2529Theme: PackageTheme = {\n [Packages.AdvantageAnnual]: {\n primary: packageColors.advantageAnnual,\n },\n [Packages.Basic]: {\n primary: packageColors.basic,\n },\n [Packages.Enterprise]: {\n primary: packageColors.enterprise,\n },\n [Packages.PremierAnnual]: {\n primary: packageColors.premierAnnual,\n },\n [Packages.StarterMonthly]: {\n primary: packageColors.starterMonthly,\n },\n [Packages.StarterAnnual]: {\n primary: packageColors.starterAnnual,\n },\n [Packages.StandardAnnual]: {\n primary: packageColors.starterAnnual,\n },\n [Packages.StandardMonthly]: {\n primary: packageColors.starterMonthly,\n },\n [Packages.TeamAdvantage]: {\n primary: packageColors.teamAdvantage,\n },\n [Packages.TeamPremier]: {\n primary: packageColors.teamPremier,\n },\n [Packages.Flex]: {\n primary: packageColors.standardMonthly,\n },\n [Packages.FormsAnnual]: {\n primary: packageColors.forms,\n },\n [Packages.FormsMonthly]: {\n primary: packageColors.forms,\n },\n};\n\nexport default grow2529Theme;\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps, StyleRules } from '~pricing/components/PackageCta/types';\nimport grow2529Theme from '../../theme/grow2529-theme';\n\nexport default createUseStyles(\n ({ pricingPalette, spacing }: PricingAppTheme) => ({\n CTAMargin: {\n marginTop: spacing[3],\n [MD_MEDIA_QUERY]: {\n marginTop: 'auto',\n },\n },\n CTA: {\n extend: 'CTAMargin',\n display: 'flex',\n padding: [0, spacing[4]],\n '& a': {\n borderRadius: 2,\n flex: 1,\n backgroundColor: ({ packageName }: StyleProps) => grow2529Theme[packageName]?.primary,\n border: 'none',\n '&:hover, &:focus': {\n backgroundColor: ({ packageName }: StyleProps) => grow2529Theme[packageName]?.primary,\n },\n },\n },\n noCTA: {\n extend: 'CTAMargin',\n display: 'flex',\n justifyContent: 'center',\n background: 'none',\n border: 'none',\n '& button': {\n color: pricingPalette.colors.black,\n },\n },\n })\n);\n","import React from 'react';\nimport { Button } from '@wds/button';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\n\nimport useCta from '~pricing/hooks/useCta';\nimport { generateCTAMetricsAttribute } from '~pricing/pages/shared/index';\nimport { PackageIds } from '~shared/constants/pricing';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { PackageCTAProps } from '~pricing/components/PackageCta/types';\n\nimport useStyles from './useStyles';\n\nconst PackageCta = ({ packageName, isSummaryPage = false }: PackageCTAProps): JSX.Element => {\n const { getPackageById } = usePackages();\n const { CTA, noCTA } = useStyles({ packageName });\n const packageId = PackageIds[packageName];\n const { pageName } = useTrackingDetails();\n const { isEnabled, ctaUrl, ctaLabel } = useCta(getPackageById(packageId));\n\n return (\n
\n \n {ctaLabel}\n \n
\n );\n};\n\nexport default PackageCta;\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY, LG_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps, StyleRules } from '~pricing/components/PackageHeader/types';\n\nexport default createUseStyles(\n ({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n Header: {\n textAlign: 'center',\n padding: [spacing[4], spacing[1]],\n fontSize: 16,\n '& h2': {\n // Package header text\n fontWeight: type.fontWeight.medium,\n fontSize: ({ isSummaryPage }: StyleProps) => (isSummaryPage ? '1.5em' : '1.25em'),\n marginBottom: spacing[1],\n },\n '& p': {\n // Package byline\n color: pricingPalette.colors.slate,\n marginTop: spacing[2],\n fontSize: '1em',\n },\n [MD_MEDIA_QUERY]: {\n fontSize: 12,\n minHeight: 180,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'stretch',\n },\n [LG_MEDIA_QUERY]: {\n fontSize: 16,\n },\n },\n })\n);\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { pricingElevation } from '~app/styles/theme';\nimport { StyleProps } from '~pricing/components/Ribbon/types';\n\nexport default createUseStyles(({ type, packageTheme }: PricingAppTheme) => ({\n RibbonStyle: {\n fontSize: 10,\n position: 'absolute',\n height: 32,\n top: 0,\n zIndex: pricingElevation.plusOne,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: ({ packageName }: StyleProps) => packageTheme[packageName].primary,\n '& p': {\n fontSize: type.fontSize.body,\n fontWeight: type.fontWeight.medium,\n color: '#fff',\n textAlign: 'center',\n width: '100%',\n display: 'block',\n boxShadow: 'none',\n position: 'absolute',\n margin: 0,\n },\n },\n}));\n","import React from 'react';\nimport { RibbonType } from '~pricing/components/Ribbon/types';\n\nimport useRibbonStyles from './useStyles';\n\nexport const DATA_TESTID = 'Ribbon';\n\nexport default function Ribbon({ children, packageName }: RibbonType): React.ReactElement {\n const { RibbonStyle } = useRibbonStyles({ packageName });\n return (\n \n );\n}\n","import { Packages, PackageIds } from '~shared/constants/pricing';\n\n// need to include Standard packages to get the spacing at the top\nexport const Grow2529ExperimentPackages = [\n Packages.StarterAnnual,\n Packages.StarterMonthly,\n Packages.StandardAnnual,\n Packages.StandardMonthly,\n Packages.FormsAnnual,\n Packages.FormsMonthly,\n];\n\nexport const Grow2529ExperimentPackagesPartial = [Packages.StarterAnnual, Packages.FormsAnnual, Packages.FormsMonthly];\n\nexport const PACKAGE_SWAP = {\n [Packages.FormsAnnual]: {\n id: PackageIds.FORMS_ANNUAL,\n swap: {\n packageName: Packages.FormsMonthly,\n id: PackageIds.FORMS_MONTHLY,\n },\n },\n [Packages.FormsMonthly]: {\n id: PackageIds.FORMS_MONTHLY,\n swap: {\n packageName: Packages.FormsAnnual,\n id: PackageIds.FORMS_ANNUAL,\n },\n },\n [Packages.StarterAnnual]: {\n id: PackageIds.STANDARD_ANNUAL,\n swap: {\n packageName: Packages.StandardMonthly,\n id: PackageIds.STANDARD_MONTHLY,\n },\n },\n [Packages.StandardMonthly]: {\n id: PackageIds.STANDARD_MONTHLY,\n swap: {\n packageName: Packages.StarterAnnual,\n id: PackageIds.STANDARD_ANNUAL,\n },\n },\n};\n","import { defineMessages } from '@sm/intl';\n\nconst FORMS = 'Forms - GROW-2529';\nconst PRICING_DESCRIPTION = '[Type: String][Vis.: high] - A string in pricing experiment GROW-2529';\n\nconst billingToggleCopy = defineMessages({\n grow_2529_annual_billing: {\n id: 'Pricing.billingToggleCopy.Annual',\n defaultMessage: 'Annual {percentage}',\n desc: {\n id: 'Pricing.billingToggleCopy.Annual',\n message: PRICING_DESCRIPTION,\n project: FORMS,\n },\n },\n grow_2529_monthly_billing: {\n id: 'Pricing.billingToggleCopy.Monthly',\n defaultMessage: 'Monthly',\n desc: {\n id: 'Pricing.billingToggleCopy.Monthly',\n message: PRICING_DESCRIPTION,\n project: FORMS,\n },\n },\n});\n\nexport default billingToggleCopy;\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { pricingElevation } from '~app/styles/theme';\nimport { LG_MEDIA_QUERY, MD_MEDIA_QUERY } from '~shared/media-query';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n GROW_2529_Switch: {\n fontSize: type.fontSize.body,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: spacing[1],\n margin: [0, 'auto'],\n lineHeight: 1.5,\n color: pricingPalette.colors.slate,\n backgroundColor: pricingPalette.colors.pebble,\n borderRadius: 50,\n width: '90%',\n maxWidth: 280,\n position: 'absolute',\n top: spacing[4],\n left: 0,\n right: 0,\n\n [LG_MEDIA_QUERY]: {\n marginBottom: 0,\n },\n\n '& input': {\n opacity: 0,\n width: 0,\n height: 0,\n position: 'absolute',\n },\n },\n Values: {\n width: '100%',\n minHeight: 36,\n borderRadius: 50,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'stretch',\n position: 'relative',\n cursor: 'pointer',\n\n [MD_MEDIA_QUERY]: {\n fontSize: '.75em',\n },\n\n [LG_MEDIA_QUERY]: {\n fontSize: '1em',\n },\n\n '& span': {\n textAlign: 'center',\n zIndex: pricingElevation.plusOne,\n transition: 'all ease-out .3s',\n fontWeight: type.fontWeight.medium,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: [0, '7%'],\n borderRadius: 50,\n '&:first-child': {\n backgroundColor: pricingPalette.colors.white,\n },\n },\n },\n\n Checked: {\n '& span:first-child': {\n backgroundColor: 'transparent',\n },\n '& span:last-child': {\n backgroundColor: pricingPalette.colors.white,\n },\n },\n}));\n","import React, { useMemo } from 'react';\n\nimport { Box } from '@wds/box';\nimport { t } from '@sm/intl';\n\nimport { getCoreCostFromSkus } from '~app/pages/Pricing/lib/lib-helpers';\nimport { logAmplitudeEvent } from '~app/pages/Pricing/pages/shared';\nimport { usePricingState } from '~shared/hooks/usePricingState';\nimport { Packages } from '~shared/constants/pricing';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport ACTIONS from '~shared/actions';\nimport { AMPLITUDE_PAGE_EVENTS } from '~shared/util';\nimport { CombinedActions } from '~shared/types/pricing/actions';\nimport { Grow2529ToggleProps } from '~pricing/experiments/grow_2529_forms/types';\nimport { PACKAGE_SWAP } from '~pricing/experiments/grow_2529_forms/constants';\n\nimport billingToggleCopy from './billingToggleCopy';\nimport useStyles from './useStyles';\n\nexport default function ToggleSwitch({ packageName }: Grow2529ToggleProps): JSX.Element {\n const {\n state: {\n packages: { allPackages },\n grow2529: { toggleChecked },\n },\n dispatch,\n } = usePricingState();\n const { GROW_2529_Switch, Values, Checked } = useStyles();\n const { pageName } = useTrackingDetails();\n\n function handleChange(): void {\n dispatch({\n type: ACTIONS.FORMS_TOGGLE_SWITCH,\n payload: {\n packageToBeReplaced: packageName,\n replacedWith: PACKAGE_SWAP[packageName as keyof typeof PACKAGE_SWAP].swap.packageName,\n },\n } as CombinedActions);\n\n const packageSwap = {\n packageToBeReplaced: PACKAGE_SWAP[packageName as keyof typeof PACKAGE_SWAP].id,\n replacedWith: PACKAGE_SWAP[packageName as keyof typeof PACKAGE_SWAP].swap.id,\n };\n dispatch({ type: ACTIONS.SWITCH_PACKAGES, payload: packageSwap } as CombinedActions);\n\n logAmplitudeEvent({\n eventName: 'pricing clicked toggle',\n pageName,\n amplitudeEvent: AMPLITUDE_PAGE_EVENTS.experimentEvent,\n otherData: {\n selectedPackage: PACKAGE_SWAP[packageName as keyof typeof PACKAGE_SWAP].swap.packageName,\n },\n });\n }\n const savingsPercentage = useMemo(() => {\n let annualPackage = null;\n let monthlyPackage = null;\n\n switch (packageName) {\n case Packages.FormsAnnual:\n case Packages.FormsMonthly:\n annualPackage = allPackages.find(pkg => pkg.packageName === Packages.FormsAnnual);\n monthlyPackage = allPackages.find(pkg => pkg.packageName === Packages.FormsMonthly);\n break;\n\n case Packages.StarterAnnual:\n case Packages.StandardMonthly:\n annualPackage = allPackages.find(pkg => pkg.packageName === Packages.StarterAnnual);\n monthlyPackage = allPackages.find(pkg => pkg.packageName === Packages.StandardMonthly);\n break;\n }\n\n let percentage = 0;\n\n if (annualPackage && monthlyPackage) {\n const annualSkuCost = getCoreCostFromSkus(annualPackage.skuCost);\n const monthlySkuCost = getCoreCostFromSkus(monthlyPackage.skuCost);\n\n if (annualSkuCost && monthlySkuCost) {\n percentage = (annualSkuCost.cost / (monthlySkuCost.cost * 12)) * 100 - 100;\n }\n }\n\n return Math.floor(-percentage);\n }, [allPackages, packageName]);\n\n const isChecked =\n toggleChecked?.includes(packageName) &&\n (packageName === Packages.StarterAnnual || packageName === Packages.FormsAnnual);\n\n const id = `${packageName}-toggle`;\n const annualSavings = savingsPercentage ? `(-${savingsPercentage}%)` : null;\n\n return (\n \n );\n}\n","import { createContext } from 'react';\n\n/**\n * Context used to show/hide things for educational discounts.\n *\n * @returns {Object}\n */\nconst EduContext = createContext({ isEdu: false });\n\nexport default EduContext;\n","import React, { useContext, useMemo } from 'react';\nimport { t } from '@sm/intl';\nimport { Typography } from '@wds/typography';\n\nimport { COMPARISON_PACKAGES } from '~app/pages/Pricing/lib/constants';\nimport { Packages, PackageDisplayNames } from '~shared/constants/pricing';\nimport { PackageData, PACKAGE_PRICE_TYPE } from '~shared/types/pricing/package';\nimport { PackageHeaderProps } from '~pricing/components/Summary/types';\n\nimport usePackageHeaderStyles from './useStyles';\nimport packageDefs from '~pricing/lib/packages/packageDefs';\nimport PackageCta from '../PackageCta';\nimport PackagePrice from '~pricing/components/PackagePrice';\nimport PackageByline from '~pricing/components/PackageHeader/PackageByline';\nimport Ribbon from '~pricing/components/Ribbon';\nimport GROW2529Ribbon from '~pricing/experiments/grow_2529_forms/components/Ribbon';\nimport ToggleSwitch from '../ToggleSwitch';\n\nimport {\n calculateSavingsPercent,\n formatMonthlyCostInLocaleCurrency,\n formatCostInLocaleCurrency,\n getCoreCostFromSkus,\n} from '~app/pages/Pricing/lib/lib-helpers';\n\nimport { usePackages } from '~shared/hooks/usePackages';\nimport usePriceDisplay from '~pricing/hooks/usePriceDisplay';\nimport useStarterEnabled from '~app/pages/Pricing/hooks/useStarterEnabled';\n\nimport COPY from '~pricing/components/PackageHeader/copy';\nimport {\n Grow2529ExperimentPackages,\n Grow2529ExperimentPackagesPartial,\n} from '~pricing/experiments/grow_2529_forms/constants';\nimport EduContext from '~shared/hooks/eduContext';\n\nexport default function PackageHeader({\n packageName,\n comparisonSkuCosts,\n skuCosts,\n isSummaryPage = false,\n discountInfo,\n}: PackageHeaderProps): JSX.Element {\n const { Header } = usePackageHeaderStyles({ isSummaryPage });\n const { isStarterEnabled } = useStarterEnabled();\n\n const comparisonPackageName = COMPARISON_PACKAGES[packageName];\n const { allPackages: packageData } = usePackages();\n const { headerCost, headerDiscountedCost, headerByline, headerUnit } = usePriceDisplay(\n packageName,\n skuCosts,\n discountInfo\n );\n\n const coreSeatCost = useMemo(() => getCoreCostFromSkus(skuCosts), [skuCosts]);\n\n const comparisonCoreSeatCost = useMemo(\n () => comparisonSkuCosts && getCoreCostFromSkus(comparisonSkuCosts),\n [comparisonSkuCosts]\n );\n\n const comparisonFormattedPrice = useMemo(\n () => comparisonCoreSeatCost && formatCostInLocaleCurrency(comparisonCoreSeatCost),\n [comparisonCoreSeatCost]\n ) as string;\n\n const comparisonFormattedMonthlyPrice = useMemo(\n () => comparisonCoreSeatCost && formatMonthlyCostInLocaleCurrency(comparisonCoreSeatCost),\n [comparisonCoreSeatCost]\n ) as string;\n\n const comparisonPackage = useMemo(\n () =>\n comparisonPackageName\n ? packageData?.find((packageObj: PackageData) => packageObj.packageName === comparisonPackageName)\n : null,\n [comparisonPackageName, packageData]\n );\n\n const comparisonSeatCost = useMemo(\n () => (comparisonPackage ? getCoreCostFromSkus(comparisonPackage?.skuCost) : null),\n [comparisonPackage]\n );\n\n const savingsPercentage = useMemo(\n () => (coreSeatCost && comparisonSeatCost ? calculateSavingsPercent(comparisonSeatCost, coreSeatCost) : 0),\n [comparisonSeatCost, coreSeatCost]\n );\n\n const getRibbon = useMemo(() => {\n let ribbonText = packageDefs[packageName]?.highlighted ? t(COPY.BEST_VALUE) : null;\n\n if (savingsPercentage > 0) {\n ribbonText = t(COPY.SAVE_PERCENTAGE, { percentage: savingsPercentage });\n }\n\n if (ribbonText) {\n return packageName === Packages.AdvantageAnnual ? (\n {ribbonText}\n ) : (\n {ribbonText}\n );\n }\n return null;\n }, [packageName, savingsPercentage]);\n\n const { isEdu } = useContext(EduContext);\n\n return (\n <>\n {getRibbon}\n\n
\n {((!isEdu && isStarterEnabled && Grow2529ExperimentPackages.includes(packageName)) ||\n (!isEdu && !isStarterEnabled && Grow2529ExperimentPackagesPartial.includes(packageName))) && (\n \n )}\n\n \n {t(\n packageName === Packages.StandardMonthly\n ? PackageDisplayNames.STARTER_MONTHLY\n : PackageDisplayNames[packageName]\n )}\n \n {packageName !== Packages.Enterprise && (\n \n )}\n {![Packages.Enterprise, Packages.Basic].includes(packageName) && headerDiscountedCost && (\n \n )}\n {comparisonFormattedPrice && !headerDiscountedCost && (\n \n )}\n\n \n \n
\n \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme, PackageTheme } from '~app/styles/pricing/types';\nimport { Packages } from '~shared/constants/pricing';\nimport { Grow2529ExperimentPackages } from '~pricing/experiments/grow_2529_forms/constants';\nimport grow2529Theme from '../../theme/grow2529-theme';\n\ntype Props = {\n packageName: Packages;\n};\n\ntype RuleNames = 'PricingPackageContainer' | 'PricingPackage' | 'Highlighted' | 'PlanFeaturesLink';\n\nexport const HIGHLIGHT = (defaultColor: string, packageTheme: PackageTheme): object => ({\n border: ({ packageName }: Props) => {\n return `1px solid ${grow2529Theme[packageName] ? grow2529Theme[packageName].primary : defaultColor}`;\n },\n});\n\nexport default createUseStyles(\n ({ spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n PricingPackageContainer: {\n marginBottom: spacing[4],\n width: '100%',\n\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n flexDirection: 'column',\n maxWidth: 320,\n marginLeft: spacing[3],\n marginRight: spacing[3],\n },\n\n [`&.package-${Packages.AdvantageAnnual}`]: {\n gridRow: 1,\n },\n\n [`&.package-${Packages.FormsAnnual}, &.package-${Packages.FormsMonthly}`]: {\n gridRow: 3,\n },\n },\n PricingPackage: {\n position: 'relative',\n padding: ({ packageName }: Props) =>\n Grow2529ExperimentPackages.includes(packageName) ? `${spacing[8]}px 0 ${spacing[5]}px` : `${spacing[5]}px 0`,\n border: `1px solid ${pricingPalette.colors.flint}`,\n borderRadius: 3,\n marginBottom: spacing[6],\n\n '& + div': {\n display: 'none',\n },\n\n [MD_MEDIA_QUERY]: {\n height: '100%',\n transition: 'border-color 0.5s ease',\n padding: ({ packageName }: Props) =>\n [...Grow2529ExperimentPackages, Packages.PremierAnnual].includes(packageName)\n ? `${spacing[8]}px 0 ${spacing[5]}px`\n : `${spacing[5]}px 0`,\n\n '&:hover': {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n },\n\n '& + div': {\n display: 'inherit',\n },\n },\n },\n\n Highlighted: {\n [MD_MEDIA_QUERY]: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n marginTop: -spacing[6],\n paddingTop: `96px !important`,\n },\n },\n\n PlanFeaturesLink: {\n fontSize: 13,\n margin: [spacing[4], spacing[5], 0],\n textAlign: 'center',\n\n [MD_MEDIA_QUERY]: {\n position: 'absolute',\n bottom: spacing[4],\n textAlign: 'left',\n },\n },\n })\n);\n","import React from 'react';\nimport { t } from '@sm/intl';\n\nimport { useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { Box } from '@wds/box';\n\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\nimport { PackageProps, PackageType } from '~shared/types/pricing/package';\n\nimport PackageCta from '../../components/PackageCta';\nimport PackageHeader from '../../components/PackageHeader';\nimport usePackageStyles from './useStyles';\nimport FeatureSet from '~pricing/components/FeatureSet';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport useSummaryDisplayFeatures from '~pricing/hooks/useSummaryDisplayFeatures';\nimport PackageDefs from '~pricing/lib/packages/packageDefs';\n\nimport COPY from '~pricing/copy';\n\nexport default function Package({\n skuCost,\n packageName,\n features,\n comparePlans,\n isLastPackage,\n discountInfo,\n}: PackageProps): React.ReactElement | null {\n const { canonicalPath = PackageType.Teams } = useParams();\n const displayFeatures = useSummaryDisplayFeatures(features, packageName);\n\n const { PricingPackageContainer, PricingPackage, Highlighted, PlanFeaturesLink } = usePackageStyles({\n packageName,\n });\n const { pageUtSource } = useTrackingDetails();\n\n if (!displayFeatures) {\n return null;\n }\n\n return (\n \n \n \n \n {!comparePlans && (\n \n {t(COPY.PLAN_FEATURES)}\n \n )}\n \n \n \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { HIGHLIGHT } from '~pricing/components/Summary/useStyles';\nimport { Packages } from '~shared/constants/pricing';\n\nimport { MD_MEDIA_QUERY, LG_MEDIA_QUERY, XS_MEDIA_QUERY } from '~shared/media-query';\nimport { Grow2529ExperimentPackages } from '~app/pages/Pricing/experiments/grow_2529_forms/constants';\n\nconst PackagesSupported = [...Grow2529ExperimentPackages, Packages.PremierAnnual, Packages.Basic];\n\ntype Props = {\n packageName: Packages;\n};\n\ntype Rules = 'Highlighted' | 'Package';\n\nexport default createUseStyles(\n ({ spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n Package: {\n position: 'relative',\n border: `1px solid ${pricingPalette.colors.pebble}`,\n\n [MD_MEDIA_QUERY]: {\n '&:not(:last-of-type):not($Highlighted)': {\n borderRight: 'none',\n },\n },\n\n '& aside': {\n top: 0,\n right: 0,\n width: '100%',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '& p': {\n transform: 'none',\n top: 'auto',\n left: 0,\n width: '100%',\n fontSize: 13,\n },\n },\n\n '& header': {\n [XS_MEDIA_QUERY]: {\n paddingTop: ({ packageName }: Props) => (Grow2529ExperimentPackages.includes(packageName) ? 80 : spacing[6]),\n },\n\n [MD_MEDIA_QUERY]: {\n paddingTop: ({ packageName }: Props) => (PackagesSupported.includes(packageName) ? spacing[8] : spacing[6]),\n },\n '& p': {\n // Package byline\n fontSize: '.875em',\n },\n\n '& [class*=GROW_2529_Switch]': {\n '& [class*=Values]': {\n [MD_MEDIA_QUERY]: {\n minHeight: 32,\n fontSize: '.6em',\n '& span': {\n padding: [0, '5%'],\n },\n },\n [LG_MEDIA_QUERY]: {\n fontSize: '.75em',\n },\n },\n },\n },\n },\n\n Highlighted: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n borderWidth: '3px !important',\n\n '& header': {\n paddingTop: `${spacing[8] - 2}px !important`,\n },\n },\n })\n);\n","import React from 'react';\n\nimport PackageDefs from '~app/pages/Pricing/lib/packages/packageDefs';\nimport PackageHeader from '~pricing/experiments/grow_2529_forms/components/PackageHeader';\nimport { PackageHeaderProps } from '~pricing/components/Summary/types';\n\nimport useDetailsPackageHeaderStyles from './useStyles';\n\ntype DetailsHeader = {\n index: string;\n};\n\ntype DetailsPackageHeaderProps = PackageHeaderProps & DetailsHeader;\n\nexport default function DetailsPackageHeader({\n comparisonSkuCosts,\n discountInfo,\n skuCosts,\n packageName,\n index,\n}: DetailsPackageHeaderProps): JSX.Element {\n const { Highlighted, Package } = useDetailsPackageHeaderStyles({ packageName });\n\n return (\n \n \n
\n );\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst PRICING_DISCLAIMER = '[Type: String][Vis.: high] - A string in pricing footer disclaimer';\n\nconst COPY = defineMessages({\n BUY_RESPONSES: {\n id: 'Pricing.copy.BuyResponses',\n defaultMessage: 'BUY TARGETED RESPONSES',\n desc: {\n id: 'Pricing.copy.BuyResponses',\n message: '[Type: Button][Vis.: high] - A button/link text on pricing footer',\n project: PROJECT_NAME,\n },\n },\n ADVANCE_SURVEY: {\n id: 'Pricing.copy.AdvanceSurvey',\n defaultMessage: 'Advanced survey design and analysis features are included in the price of your Audience project.',\n desc: {\n id: 'Pricing.copy.AdvanceSurvey',\n message: '[Type: String][Vis.: high] - A string above pricing footer list',\n project: PROJECT_NAME,\n },\n },\n TARGET_PEOPLE: {\n id: 'Pricing.copy.TargetPeople',\n defaultMessage:\n 'Target the types of people you want to hear from based on specific attributes, like country, gender, age, income, employment status, and more.',\n desc: {\n id: 'Pricing.copy.TargetPeople',\n message: '[Type: String][Vis.: high] - A string above pricing footer cta',\n project: PROJECT_NAME,\n },\n },\n SURVEY_RESPONSES: {\n id: 'Pricing.copy.SurveyResponses',\n defaultMessage:\n 'Get survey responses from around the world in minutes with SurveyMonkey Audience',\n desc: {\n id: 'Pricing.copy.SurveyResponses',\n message: '[Type: String][Vis.: high] - A string in pricing footer below header',\n project: PROJECT_NAME,\n },\n },\n PAID_FEATURES: {\n id: 'Pricing.copy.PaidFeatures',\n defaultMessage: 'SurveyMonkey Audience includes access to Paid Features',\n desc: {\n id: 'Pricing.copy.PaidFeatures',\n message: '[Type: Header][Vis.: high] - A string in pricing footer header',\n project: PROJECT_NAME,\n },\n },\n DISPLAYED_PRICING: {\n id: 'Pricing.copy.DisplayedPricingDisclaimer',\n defaultMessage:\n '*Displayed pricing represents a {teamsMinimumDiscount}% or more savings per user per month compared to individual Advantage and Premier plans',\n desc: {\n id: 'Pricing.copy.DisplayedPricingDisclaimer',\n message: PRICING_DISCLAIMER,\n project: PROJECT_NAME,\n },\n },\n PER_ADDITIONAL_RESPONSE: {\n id: 'Pricing.copy.PerAddResponseDisclaimer',\n defaultMessage: '**{overageCost} per additional response. SurveyMonkey Audience responses sold separately',\n desc: {\n id: 'Pricing.copy.PerAddResponseDisclaimer',\n message: PRICING_DISCLAIMER,\n project: PROJECT_NAME,\n },\n },\n ADD_ON_FEATURES: {\n id: 'Pricing.copy.AddOnFeaturesDisclaimer',\n defaultMessage: '***Add-on features available with Enterprise plan must be purchased separately',\n desc: {\n id: 'Pricing.copy.AddOnFeaturesDisclaimer',\n message: PRICING_DISCLAIMER,\n project: PROJECT_NAME,\n },\n },\n BASICS: {\n id: 'Pricing.copy.Basics',\n defaultMessage: 'Just need the basics?',\n desc: {\n id: 'Pricing.copy.Basics',\n message: '[Type: String][Vis.: high] - A string asking if the user is only interested in the basics',\n project: PROJECT_NAME,\n },\n },\n GET_STARTED: {\n id: 'Pricing.copy.GetStarted',\n defaultMessage: 'Get started for free.',\n desc: {\n id: 'Pricing.copy.GetStarted',\n message: '[Type: Link][Vis.: high] - A link to sign up page ',\n project: PROJECT_NAME,\n },\n },\n ALL_FEATURES: {\n id: 'Pricing.copy.AllFeatures',\n defaultMessage: 'SEE ALL PLAN FEATURES',\n desc: {\n id: 'Pricing.copy.AllFeatures',\n message: '[Type: Link][Vis.: high] - A link to details page',\n project: PROJECT_NAME,\n },\n },\n MORE: {\n id: 'Pricing.copy.More',\n defaultMessage: 'More about plans and pricing',\n desc: {\n id: 'Pricing.copy.More',\n message: '[Type: Header][Vis.: high] - More info about plans and pricing',\n project: PROJECT_NAME,\n },\n },\n SURVEYMONKEY_COST: {\n id: 'Pricing.copy.SurveyMonkeyCost',\n defaultMessage: 'How much does SurveyMonkey cost?',\n desc: {\n id: 'Pricing.copy.SurveyMonkeyCost',\n message: '[Type: Title][Vis.: high] - A string for how much SurveyMonkey cost per plan',\n project: PROJECT_NAME,\n },\n },\n SEE_PRICING: {\n id: 'Pricing.copy.SeePricing',\n defaultMessage: 'See pricing',\n desc: {\n id: 'Pricing.copy.SeePricing',\n message: '[Type: Link][Vis.: high] - A link to pricing',\n project: PROJECT_NAME,\n },\n },\n SPECIAL_PRICING_FOR_EDUCATORS_FAQ: {\n id: 'Pricing.copy.SpecialPricingForEducatorsFaq',\n defaultMessage: 'Do you offer special pricing for students or educators?',\n desc: {\n id: 'Pricing.copy.SpecialPricingForEducatorsFaq',\n message: '[Type: Title][Vis.: high] - A string for special pricing for educators and students faq',\n project: PROJECT_NAME,\n },\n },\n SPECIAL_PRICING_FOR_EDUCATORS_ANSWER: {\n id: 'Pricing.copy.SpecialPricingForEducatorsAnswer',\n defaultMessage: 'Yes! We offer discounted pricing for students and educators.',\n desc: {\n id: 'Pricing.copy.SpecialPricingForEducatorsAnswer',\n message: '[Type: String][Vis.: high] - A string for special pricing for educators and students answer',\n project: PROJECT_NAME,\n },\n },\n DISCOUNTS_FOR_TEAMS_FAQ: {\n id: 'Pricing.copy.DiscountForTeamsFaq',\n defaultMessage: 'Do you offer discounts for teams?',\n desc: {\n id: 'Pricing.copy.DiscountForTeamsFaq',\n message: '[Type: Title][Vis.: high] - A string for discounts for teams faq',\n project: PROJECT_NAME,\n },\n },\n DISCOUNTS_FOR_TEAMS_ANSWER: {\n id: 'Pricing.copy.DiscountForTeamsAnswer',\n defaultMessage:\n 'We offer discounts when you sign up for team plans that include 3 or more people. With Team Advantage and Team Premier plans, you’ll save {teamsMinimumDiscount}% or more over individual plans and get access to additional collaboration features.',\n desc: {\n id: 'Pricing.copy.DiscountForTeamsAnswer',\n message: '[Type: String][Vis.: high] - A string for discounts for teams answer',\n project: PROJECT_NAME,\n },\n },\n CORPORATE_PLANS_FAQ: {\n id: 'Pricing.copy.CorporatePlansFaq',\n defaultMessage: 'Do you offer plans for corporate needs?',\n desc: {\n id: 'Pricing.copy.CorporatePlansFaq',\n message: '[Type: Title][Vis.: high] - A string for corporate plans faq',\n project: PROJECT_NAME,\n },\n },\n CORPORATE_PLANS_ANSWER: {\n id: 'Pricing.copy.CorporatePlansAnswer',\n defaultMessage:\n 'Our Enterprise plans offer HIPAA compliance, advanced security, and admin features for increased governance and control.',\n desc: {\n id: 'Pricing.copy.CorporatePlansAnswer',\n message: '[Type: String][Vis.: high] - A string for corporate plans answer',\n project: PROJECT_NAME,\n },\n },\n CONTACT_SALES: {\n id: 'Pricing.copy.ContactSales',\n defaultMessage: 'Contact sales',\n desc: {\n id: 'Pricing.copy.ContactSales',\n message: '[Type: Link][Vis.: high] - A link to contact sales',\n project: PROJECT_NAME,\n },\n },\n BASIC_FREE: {\n id: 'Pricing.copy.BasicPlanFree',\n defaultMessage: 'The Basic plan is FREE.',\n desc: {\n id: 'Pricing.copy.BasicPlanFree',\n message: '[Type: String][Vis.: high] - A string containing the Basic plan price',\n project: PROJECT_NAME,\n },\n },\n PLAN_PRICE: {\n id: 'Pricing.copy.PlanPrice',\n defaultMessage: `The {packageName} plan costs {amount} a month{term}.`,\n desc: {\n id: 'Pricing.copy.PlanPrice',\n message: '[Type: String][Vis.: high] - A string for dynamically priced plans',\n project: PROJECT_NAME,\n },\n },\n\n // FEATURE COPY FOR AUDIENCE MODULE\n AUDIENCE_NUMBER_OF_SURVEYS: {\n id: 'Pricing.copy.NumberOfSurveys',\n defaultMessage: 'Unlimited number of surveys',\n desc: {\n id: 'Pricing.copy.NumberOfSurveys',\n message: '[Type: String][Vis.: high] - Number of surveys feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_QUESTIONS_PER_SURVEY: {\n id: 'Pricing.copy.QuestionsPerSurvey',\n defaultMessage: '50 questions per survey',\n desc: {\n id: 'Pricing.copy.QuestionsPerSurvey',\n message: '[Type: String][Vis.: high] - questions per survey feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_UNLIMITED_RESPONSES: {\n id: 'Pricing.copy.UnlimitedResponses',\n defaultMessage: 'Unlimited responses',\n desc: {\n id: 'Pricing.copy.UnlimitedResponses',\n message: '[Type: String][Vis.: high] - An Unlimited Responses feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_EMAIL_SUPPORT: {\n id: 'Pricing.copy.EmailSupport',\n defaultMessage: '24/7 customer support via email',\n desc: {\n id: 'Pricing.copy.EmailSupport',\n message: '[Type: String][Vis.: high] - An Email Support feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_CUSTOMIZATION: {\n id: 'Pricing.copy.SurveyCustomization',\n defaultMessage: 'Custom colors & survey URL',\n desc: {\n id: 'Pricing.copy.SurveyCustomization',\n message: '[Type: String][Vis.: high] - A Survey Customization feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_DATA_EXPORTS: {\n id: 'Pricing.copy.DataExports',\n defaultMessage: 'Data exports (CSV, PDF, PPT, XLS)',\n desc: {\n id: 'Pricing.copy.DataExports',\n message: '[Type: String][Vis.: high] - A Data Exports feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_SKIP_LOGIC: {\n id: 'Pricing.copy.SkipLogic',\n defaultMessage: 'Skip logic',\n desc: {\n id: 'Pricing.copy.SkipLogic',\n message: '[Type: String][Vis.: high] - A SkipLogic feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_PIPING: {\n id: 'Pricing.copy.QuestionAnswerPiping',\n defaultMessage: 'Question & answer piping',\n desc: {\n id: 'Pricing.copy.QuestionAnswerPiping',\n message: '[Type: String][Vis.: high] - A Question Answer Piping feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_FILE_UPLOAD: {\n id: 'Pricing.copy.FileUpload',\n defaultMessage: 'File upload',\n desc: {\n id: 'Pricing.copy.FileUpload',\n message: '[Type: String][Vis.: high] - A File Upload feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_A_B_TESTING: {\n id: 'Pricing.copy.ABTesting',\n defaultMessage: 'A/B test text and images',\n desc: {\n id: 'Pricing.copy.ABTesting',\n message: '[Type: String][Vis.: high] - An ABTesting feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_HIDE_FOOTER: {\n id: 'Pricing.copy.HideFooter',\n defaultMessage: 'Hide SurveyMonkey footer',\n desc: {\n id: 'Pricing.copy.HideFooter',\n message: '[Type: String][Vis.: high] - Hide SurveyMonkey footer feature string',\n project: PROJECT_NAME,\n },\n },\n AUDIENCE_MULTILINGUAL: {\n id: 'Pricing.copy.MultilingualSurveys',\n defaultMessage: 'Multilingual surveys',\n desc: {\n id: 'Pricing.copy.MultilingualSurveys',\n message: '[Type: String][Vis.: high] - Multilingual Surveys feature string',\n project: PROJECT_NAME,\n },\n },\n TEAMS_DISCOUNT_DISCLAIMER: {\n id: 'Pricing.copy.TeamsDiscount',\n defaultMessage:\n '\\u{00B9} Offer is invite-only, non-transferrable, and limited to the purchase of an annual plan. Offer expires October 2, 2023. Not applicable on subscription renewals.',\n desc: {\n id: 'Pricing.copy.TeamsDiscount.Desc',\n message: '[Type: Label][Vis.: high] - add on features footnote in disclaimer',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import { createUseStyles } from 'react-jss';\n\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport footerImg from '~pricing/components/PricingFooter/assets/pricing_footer.png';\nimport { XL_MEDIA_QUERY, LG_MEDIA_QUERY, MD_MEDIA_QUERY, SM_MEDIA_QUERY } from '~shared/media-query';\n\nexport default createUseStyles(({ pricingPalette, spacing, type }: PricingAppTheme) => ({\n Footer: {\n padding: [0, spacing[6]],\n margin: [spacing[5], 'auto', spacing[6]],\n [XL_MEDIA_QUERY]: {\n margin: [spacing[5], spacing[10], spacing[6]],\n },\n },\n Header: {\n background: 'rgba(249,190,0,0.25);',\n padding: spacing[2],\n '& h1': {\n fontWeight: type.fontWeight.medium,\n },\n },\n Content: {\n background: pricingPalette.colors.white,\n '& p': {\n margin: [spacing[4], 0],\n },\n },\n Audience: {\n display: 'none',\n [SM_MEDIA_QUERY]: {\n display: 'block',\n },\n },\n Accordion: {\n display: 'block',\n },\n AccordionContent: {\n display: 'none',\n },\n FAQHeading: {\n paddingTop: spacing[3],\n paddingBottom: spacing[2],\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n '& h5': {\n fontWeight: 500,\n },\n [MD_MEDIA_QUERY]: {\n pointerEvents: 'none',\n },\n },\n Answer: {\n paddingBottom: spacing[2],\n '& a': {\n whiteSpace: 'nowrap',\n fontSize: 14,\n },\n },\n Spacer: {\n [SM_MEDIA_QUERY]: {\n display: 'none',\n },\n [MD_MEDIA_QUERY]: {\n display: 'block',\n },\n },\n Active: {\n '& $AccordionContent': {\n display: 'block',\n },\n },\n Inactive: {\n '& $AccordionContent': {\n display: 'none',\n },\n [MD_MEDIA_QUERY]: {\n '& $AccordionContent': {\n display: 'block',\n },\n },\n },\n Toggle: {\n [MD_MEDIA_QUERY]: {\n display: 'none',\n },\n },\n Features: {\n '& h2': {\n fontWeight: type.fontWeight.medium,\n },\n [LG_MEDIA_QUERY]: {\n background: `url(${footerImg}) no-repeat top left`,\n backgroundSize: 'contain',\n paddingTop: 0,\n paddingLeft: 300,\n },\n },\n FeatureList: {\n padding: 0,\n },\n Feature: {\n display: 'flex',\n fontSize: 14,\n margin: [0, spacing[3], spacing[4], spacing[4]],\n '& svg': {\n width: 18,\n height: 18,\n marginRight: 5,\n flex: '0 0 auto',\n },\n [MD_MEDIA_QUERY]: {\n display: 'inline-flex',\n alignItems: 'center',\n width: 'calc(50% - 32px)',\n maxWidth: 300,\n },\n },\n Disclaimers: {\n display: 'block',\n listStyle: 'none',\n padding: 0,\n },\n Disclaimer: {\n margin: [spacing[2], 0],\n },\n GetStarted: {\n fontSize: 18,\n marginBottom: spacing[5],\n },\n More: {\n borderTop: `1px solid ${pricingPalette.colors.pebble}`,\n margin: [15, 0, spacing[6]],\n paddingTop: 30,\n '&>h3': {\n fontWeight: type.fontWeight.medium,\n },\n },\n PricingList: {\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n flexDirection: 'row',\n\n '& $Accordion': {\n flexBasis: '47%',\n maxWidth: '47%',\n flexGrow: 1,\n\n '&:nth-child(odd)': {\n paddingRight: '1.5%',\n },\n '&:nth-child(even)': {\n paddingLeft: '1.5%',\n },\n },\n },\n },\n SeeAllLink: {\n fontSize: 18,\n fontWeight: 700,\n },\n}));\n","import React, { useCallback, useState } from 'react';\nimport { Typography } from '@wds/typography';\nimport { IconChevronDown, IconChevronUp } from '@wds/icons';\nimport usePricingFooterStyles from '~pricing/components/PricingFooter/useStyles';\n\ntype FAQAccordion = {\n heading: string;\n children: React.ReactNode;\n testid?: string;\n};\n\nexport default function FAQ({ heading, children, testid }: FAQAccordion): JSX.Element {\n const [isActive, setIsActive] = useState(false);\n\n const { Accordion, AccordionContent, FAQHeading, Active, Inactive, Toggle } = usePricingFooterStyles();\n\n const handleClick = useCallback(() => {\n setIsActive(!isActive);\n }, [isActive]);\n\n return (\n
\n
\n \n {heading}\n \n \n {isActive ? : }\n \n
\n
{children}
\n
\n );\n}\n","import React from 'react';\nimport { Typography } from '@wds/typography';\nimport usePricingFooterStyles from '~pricing/components/PricingFooter/useStyles';\n\nexport default function FAQAnswer({ children }: { children: React.ReactNode }): JSX.Element {\n const { Answer } = usePricingFooterStyles();\n\n return (\n
\n \n {children}\n \n
\n );\n}\n","import { defineMessages } from '@sm/intl';\n\nconst FORMS = 'Forms - GROW-2529';\nconst PRICING_DESCRIPTION = '[Type: String][Vis.: high] - A string in pricing footer experiment GROW-2529';\n\nconst experimentCopy = defineMessages({\n grow_2529_can_i_build: {\n id: 'Pricing.experimentCopy.CanIBuild',\n defaultMessage: 'Can I build online forms with SurveyMonkey?',\n desc: {\n id: 'Pricing.experimentCopy.CanIBuild',\n message: PRICING_DESCRIPTION,\n project: FORMS,\n },\n },\n grow_2529_all_our_plans: {\n id: 'Pricing.experimentCopy.AllOurPlans',\n defaultMessage:\n 'All our plans can be used to build forms. We also crafted the Forms plan specifically for this purpose.',\n desc: {\n id: 'Pricing.experimentCopy.AllOurPlans',\n message: PRICING_DESCRIPTION,\n project: FORMS,\n },\n },\n grow_2529_use_collectors: {\n id: 'Pricing.experimentCopy.UseCollectors',\n defaultMessage: 'Use {number} collectors per form or survey',\n desc: {\n id: 'Pricing.experimentCopy.UseCollectors',\n message: PRICING_DESCRIPTION,\n project: FORMS,\n },\n },\n});\n\nexport default experimentCopy;\n","import React, { ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { t } from '@sm/intl';\nimport { Box } from '@wds/box';\n\nimport COPY from '~pricing/components/PricingFooter/copy';\nimport FAQ from '~pricing/components/PricingFooter/components/FAQ';\nimport FAQAnswer from '~pricing/components/PricingFooter/components/FAQAnswer';\n\nimport usePricingFooterStyles from '~pricing/components/PricingFooter/useStyles';\nimport { usePricingState } from '~shared/hooks/usePricingState';\nimport { Packages } from '~shared/constants/pricing';\nimport usePriceDisplay from '~app/pages/Pricing/hooks/usePriceDisplay';\nimport { PackageSkuCost } from '~shared/types/pricing/pricingsvc';\n\nimport { MoreAboutPropType } from './types';\nimport experimentCopy from './experimentCopy';\n\nexport default function MoreAbout({\n displayEduFaq,\n displayTeamsDiscountFAQ,\n teamsDiscountPercent,\n pageUtSource,\n utSource2,\n utSource3,\n}: MoreAboutPropType): ReactElement {\n const { PricingList } = usePricingFooterStyles();\n const {\n state: {\n packages: { allPackages },\n },\n } = usePricingState();\n\n const formsAnnual = allPackages.find(pkg => pkg.packageName === Packages.FormsAnnual);\n const formsMonthly = allPackages.find(pkg => pkg.packageName === Packages.FormsMonthly);\n\n const { monthlyFormattedCost: formsAnnualCost } = usePriceDisplay(\n Packages.FormsAnnual,\n (formsAnnual?.skuCost || []) as PackageSkuCost[]\n );\n const { monthlyFormattedCost: formsMonthlyCost } = usePriceDisplay(\n Packages.FormsMonthly,\n (formsMonthly?.skuCost || []) as PackageSkuCost[]\n );\n\n return (\n \n {displayEduFaq && (\n \n \n {t(COPY.SPECIAL_PRICING_FOR_EDUCATORS_ANSWER)}{' '}\n {t(COPY.SEE_PRICING)}\n \n \n )}\n \n \n {t(experimentCopy.grow_2529_all_our_plans, {\n monthlyCost: formsMonthlyCost,\n annualMonthlyCost: formsAnnualCost,\n })}\n \n \n {displayTeamsDiscountFAQ && (\n \n \n {t(COPY.DISCOUNTS_FOR_TEAMS_ANSWER, { teamsMinimumDiscount: teamsDiscountPercent })}{' '}\n {t(COPY.SEE_PRICING)}\n \n \n )}\n\n \n \n {t(COPY.CORPORATE_PLANS_ANSWER)}{' '}\n \n {t(COPY.CONTACT_SALES)}\n \n \n \n \n );\n}\n","import Package from './Package';\nimport DetailsPackageHeader from '../components/DetailsPackageHeader';\nimport MoreAbout from '../components/PricingFooter/MoreAbout';\n\nexport default {\n Package,\n DetailsPackageHeader,\n MoreAbout,\n};\n","import { createUseStyles } from 'react-jss';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme, PackageTheme } from '~app/styles/pricing/types';\nimport { Packages } from '~shared/constants/pricing';\nimport { Grow2529ExperimentPackages } from '~pricing/experiments/grow_2529_forms/constants';\n\ntype Props = {\n packageName: Packages;\n};\n\ntype RuleNames = 'PricingPackageContainer' | 'PricingPackage' | 'Highlighted' | 'PlanFeaturesLink';\n\nexport const HIGHLIGHT = (defaultColor: string, packageTheme: PackageTheme): object => ({\n border: ({ packageName }: Props) => {\n return `1px solid ${packageTheme[packageName] ? packageTheme[packageName].primary : defaultColor}`;\n },\n});\n\nexport default createUseStyles(\n ({ spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n PricingPackageContainer: {\n marginBottom: spacing[4],\n width: '100%',\n\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n flexDirection: 'column',\n maxWidth: 320,\n marginLeft: spacing[3],\n marginRight: spacing[3],\n },\n },\n PricingPackage: {\n position: 'relative',\n padding: ({ packageName }: Props) =>\n Grow2529ExperimentPackages.includes(packageName) ? `${spacing[8]}px 0 ${spacing[5]}px` : `${spacing[5]}px 0`,\n border: `1px solid ${pricingPalette.colors.flint}`,\n borderRadius: 3,\n marginBottom: spacing[6],\n\n '& + div': {\n display: 'none',\n },\n\n [MD_MEDIA_QUERY]: {\n height: '100%',\n transition: 'border-color 0.5s ease',\n padding: ({ packageName }: Props) =>\n [...Grow2529ExperimentPackages, Packages.PremierAnnual].includes(packageName)\n ? `${spacing[8]}px 0 ${spacing[5]}px`\n : `${spacing[5]}px 0`,\n\n '&:hover': {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n },\n\n '& + div': {\n display: 'inherit',\n },\n },\n },\n\n Highlighted: {\n [MD_MEDIA_QUERY]: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n marginTop: -spacing[6],\n paddingTop: `96px !important`,\n },\n },\n\n PlanFeaturesLink: {\n fontSize: 13,\n margin: [spacing[4], spacing[5], 0],\n textAlign: 'center',\n\n [MD_MEDIA_QUERY]: {\n position: 'absolute',\n bottom: spacing[4],\n textAlign: 'left',\n },\n },\n })\n);\n","import { createUseStyles } from 'react-jss';\n\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n FeatureItemOverride: {\n position: 'relative',\n padding: [6, '20%'],\n display: 'flex',\n alignItems: 'center',\n wordBreak: 'break-word',\n '&:before': {\n content: '\"•\"',\n display: 'inline-block',\n paddingRight: 10,\n color: pricingPalette.colors.stone,\n fontSize: 20,\n flex: 1,\n alignSelf: 'flex-start',\n lineHeight: 0.9,\n },\n\n '&:nth-child(-n+2)': {\n '&:before': {\n visibility: 'hidden',\n },\n },\n\n [MD_MEDIA_QUERY]: {\n padding: `6px ${spacing[7]}px 6px ${spacing[6]}px`,\n '&:hover': {\n extend: 'Highlight',\n transition: '0.2s ease',\n },\n },\n },\n\n EverythingIn: {\n fontWeight: 'bold',\n padding: [spacing[4], '20%', spacing[2]],\n marginTop: 10,\n\n '&:hover': {\n background: 'transparent',\n },\n\n '&:after': {\n content: '\"\"',\n borderTop: '1px solid #D0D2D3',\n position: 'absolute',\n padding: 0,\n top: 0,\n left: spacing[6],\n right: spacing[6],\n },\n\n [MD_MEDIA_QUERY]: {\n paddingLeft: spacing[6],\n paddingRight: spacing[7],\n },\n },\n}));\n","import React, { useCallback } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { getClientEnvironmentDetails } from '@sm/utils';\nimport { NavRouteParams } from '~app/pages/Pricing/components/Navigation/types';\nimport { PackageType } from '~shared/types/pricing/package';\nimport { DisplayFeatureStatic, SummaryDisplayFeatureList } from '~shared/types/pricing/features';\nimport { UniqueFeatureName } from '~pricing/components/FeatureSet/types';\n\nimport useFeatureSetStyles from '~app/pages/Pricing/components/FeatureSet/useStyles';\nimport FeatureTooltip from '~pricing/components/Tooltip';\nimport uniqueFeatureNameMap from '~pricing/components/FeatureSet/uniqueFeatureNameMap';\nimport styleOverrides from './useStyles';\n\nfunction getUniqueFeatureName(featureName: string): string {\n const uniqueFeature = Object.keys(uniqueFeatureNameMap).find(feature => {\n return uniqueFeatureNameMap[feature as keyof UniqueFeatureName]?.includes(featureName) ? feature : null;\n });\n\n return uniqueFeature ?? featureName;\n}\n\nexport default function FeatureSet({\n features,\n packageName,\n isLastPackage,\n}: {\n features: SummaryDisplayFeatureList;\n packageName: string;\n isLastPackage: boolean;\n}): React.ReactElement {\n const { canonicalPath } = useParams();\n const { Features, FeatureItem, FeatureSummary, TooltipContainer, Highlight } = useFeatureSetStyles();\n const { FeatureItemOverride, EverythingIn } = styleOverrides();\n const { isMobile } = getClientEnvironmentDetails();\n\n const handleFeatureHover = useCallback(\n (featureName): void => {\n if (!isMobile) {\n document\n .querySelectorAll(`[data-feature='${featureName}']`)\n .forEach(feature => feature.classList.add(Highlight));\n }\n },\n [Highlight, isMobile]\n );\n\n const handleFeatureLeave = useCallback(\n (featureName): void => {\n if (!isMobile) {\n document\n .querySelectorAll(`[data-feature='${featureName}']`)\n .forEach(feature => feature.classList.remove(Highlight));\n }\n },\n [Highlight, isMobile]\n );\n\n return (\n
    \n {features\n .filter((feature: DisplayFeatureStatic) => !!feature)\n .map((feature: DisplayFeatureStatic) => {\n const featureName = feature?.name && getUniqueFeatureName(feature?.name);\n return (\n \n {feature?.summary && (\n \n {feature?.summary}\n {feature?.tooltip && feature?.tooltipHeading && (\n \n \n \n )}\n \n )}\n \n );\n })}\n
\n );\n}\n","import React from 'react';\nimport { t } from '@sm/intl';\n\nimport { useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { Box } from '@wds/box';\n\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\nimport { PackageProps, PackageType } from '~shared/types/pricing/package';\n\nimport PackageCta from '../../components/PackageCta';\nimport PackageHeader from '../../components/PackageHeader';\nimport usePackageStyles from './useStyles';\nimport FeatureSet from '../FeatureSet';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport useSummaryDisplayFeatures from '~pricing/hooks/useSummaryDisplayFeatures';\nimport PackageDefs from '~pricing/lib/packages/packageDefs';\n\nimport COPY from '~pricing/copy';\n\nexport default function Package({\n skuCost,\n packageName,\n features,\n comparePlans,\n isLastPackage,\n discountInfo,\n}: PackageProps): React.ReactElement | null {\n const { canonicalPath = PackageType.Teams } = useParams();\n const displayFeatures = useSummaryDisplayFeatures(features, packageName);\n\n const { PricingPackageContainer, PricingPackage, Highlighted, PlanFeaturesLink } = usePackageStyles({\n packageName,\n });\n const { pageUtSource } = useTrackingDetails();\n\n if (!displayFeatures) {\n return null;\n }\n\n return (\n \n \n \n \n {!comparePlans && (\n \n {t(COPY.PLAN_FEATURES)}\n \n )}\n \n \n \n );\n}\n","import Package from './Package';\nimport DetailsPackageHeader from '../components/DetailsPackageHeader';\nimport MoreAbout from '../components/PricingFooter/MoreAbout';\n\nexport default {\n Package,\n DetailsPackageHeader,\n MoreAbout,\n};\n","import Treatments from './constants';\nimport EnterpriseFeaturesGp69 from '~pricing/experiments/EnterpriseFeaturesGp69';\nimport Grow2427SocialProof from '~app/pages/Pricing/experiments/grow_2427_social_proof';\nimport Grow2529FormsTreatment1 from '~app/pages/Pricing/experiments/grow_2529_forms/treatment1';\nimport Grow2529FormsTreatment2 from '~app/pages/Pricing/experiments/grow_2529_forms/treatment2';\nimport Grow2629FormsV2Treatment from '~app/pages/Pricing/experiments/grow_2629_forms_packages/';\n\nconst activeTreatments = {\n [Treatments.ENTERPRISE_FEATURES_GP69]: {\n name: 'ENTERPRISE_FEATURES_GP69',\n component: EnterpriseFeaturesGp69,\n },\n [Treatments.GROW_2427_TREATMENT]: {\n name: 'GROW_2427_TREATMENT',\n component: Grow2427SocialProof,\n },\n [Treatments.GROW_2529_FORMS_TREATMENT1]: {\n name: 'GROW_2529_FORMS_TREATMENT1',\n component: Grow2529FormsTreatment1,\n },\n [Treatments.GROW_2529_FORMS_TREATMENT2]: {\n name: 'GROW_2529_FORMS_TREATMENT2',\n component: Grow2529FormsTreatment2,\n },\n [Treatments.GROW_2629_FORMS_V2_TREATMENT]: {\n name: 'GROW_2629_FORMS_V2_TREATMENT',\n component: Grow2629FormsV2Treatment,\n },\n};\n\nexport default activeTreatments;\n","/*\n grow_2629_forms_pricing_page_marketing\n\tMT1: https://admin.monkeytest1.com/experiments/surveymonkey/1884\n\tMT2: https://admin.monkeytest2.com/experiments/surveymonkey/1321\n\tMT3: https://admin.monkeytest3.com/experiments/surveymonkey/698904\n\n\tThis experiment treatment has the same UI as grow-2529\n\tbut the package costs returned by the API are different.\n */\nimport Package from '../grow_2529_forms/treatment1/Package';\nimport DetailsPackageHeader from '../grow_2529_forms/components/DetailsPackageHeader';\nimport MoreAbout from '../grow_2529_forms/components/PricingFooter/MoreAbout';\n\nexport default {\n Package,\n DetailsPackageHeader,\n MoreAbout,\n};\n","import { useRef, useMemo } from 'react';\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\nimport activeTreatments from './treatments';\nimport { PricingExperiments } from '~shared/types/pricing/experiments';\n\nimport { ExperimentTreatment } from './types';\n\n/**\n * This hook returns an object containing active experiment components\n * intended for full component swaps within a page or an entire page component itself\n * @returns ExperimentTreatment\n */\n\nexport default function useTreatment(conditions = true): ExperimentTreatment {\n const assignments = usePricingExperiments();\n const treatments = useRef({} as ExperimentTreatment);\n\n useMemo(() => {\n Object.keys(assignments).forEach(assignment => {\n const exp = assignments[assignment as keyof PricingExperiments];\n\n treatments.current = {\n ...treatments.current,\n [assignment]: {},\n };\n\n if (exp.hasAssignment && exp.treatmentName in activeTreatments && conditions) {\n const { name, component } = activeTreatments[exp.treatmentName];\n treatments.current = {\n ...treatments.current,\n [assignment]: {\n ...treatments.current[assignment],\n [name]: component,\n },\n };\n }\n });\n }, [assignments, treatments, conditions]);\n\n return treatments.current;\n}\n","import { PackageType } from '~shared/types/pricing/package';\n\nexport enum LegaleseDisclaimer {\n TeamsDiscount = 'DISPLAYED_PRICING',\n OverageCost = 'PER_ADDITIONAL_RESPONSE',\n EnterpriseAddons = 'ADD_ON_FEATURES',\n // TODO @Johny this will be added back after checking with PM\n TeamsOfferExpiry = 'TEAMS_DISCOUNT_DISCLAIMER',\n}\n\nexport default {\n [PackageType.Teams]: [\n LegaleseDisclaimer.TeamsDiscount,\n LegaleseDisclaimer.OverageCost,\n LegaleseDisclaimer.EnterpriseAddons,\n LegaleseDisclaimer.TeamsOfferExpiry,\n ],\n [PackageType.Individual]: [LegaleseDisclaimer.OverageCost, LegaleseDisclaimer.TeamsOfferExpiry],\n [PackageType.Educational]: [LegaleseDisclaimer.OverageCost],\n};\n","export default [\n {\n name: 'number_of_surveys',\n included: true,\n },\n {\n name: 'questions_per_survey',\n included: true,\n },\n {\n name: 'unlimited_responses',\n included: true,\n },\n {\n name: 'email_support',\n included: true,\n },\n {\n name: 'customization',\n included: true,\n },\n {\n name: 'data_exports',\n included: true,\n },\n {\n name: 'skip_logic',\n included: true,\n },\n {\n name: 'piping',\n included: true,\n },\n {\n name: 'file_upload',\n included: false,\n },\n {\n name: 'a_b_testing',\n included: true,\n },\n {\n name: 'hide_footer',\n included: true,\n },\n {\n name: 'multilingual',\n included: true,\n },\n];\n","import React from 'react';\n\nexport default function EnabledCheckMark() {\n return (\n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nexport default function DisabledCheckMark() {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { t } from '@sm/intl';\nimport { Typography } from '@wds/typography';\nimport { Button } from '@wds/button';\nimport { Box } from '@wds/box';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport COPY from '~pricing/components/PricingFooter/copy';\n\nimport { TranslationsPlaceHolderType } from '~pricing/types';\n\nimport audienceFeatures from './config/features';\nimport EnabledCheckMark from './components/EnabledCheckMark';\nimport DisabledCheckMark from './components/DisabledCheckMark';\nimport usePricingFooterStyles from './useStyles';\n\nfunction AudiencePlaceholder({ children }: TranslationsPlaceHolderType): JSX.Element {\n return {children};\n}\n\nexport default function PricingFeatures(): JSX.Element {\n const { Features, Header, Content, Feature, FeatureList } = usePricingFooterStyles();\n const { pageUtSource } = useTrackingDetails();\n const utSource2 = pageUtSource?.includes('indv') ? 'pricing_individual' : 'pricing';\n\n return (\n \n \n \n {t(COPY.PAID_FEATURES)}\n \n \n \n \n {/* // because translation really dislike concat string since its harder to figure for different languages, context matters */}\n \n {t(\n {\n ...COPY.SURVEY_RESPONSES,\n },\n {\n audience: AudiencePlaceholder,\n }\n )}\n \n\n {t(COPY.TARGET_PEOPLE)}\n\n \n \n {t(COPY.BUY_RESPONSES)}\n \n \n\n \n {t(COPY.ADVANCE_SURVEY)}\n \n\n \n {audienceFeatures?.map(feature => {\n const copyKey = `AUDIENCE_${feature.name.toUpperCase()}` as keyof typeof COPY;\n return (\n \n {feature.included ? : }\n \n {t(COPY[copyKey])}\n \n \n );\n })}\n \n \n \n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { t } from '@sm/intl';\nimport { Box } from '@wds/box';\n\nimport FAQ from './components/FAQ';\nimport FAQAnswer from './components/FAQAnswer';\nimport usePricingFooterStyles from './useStyles';\n\nimport COPY from './copy';\nimport { MoreAboutProps } from './types';\n\nexport default function MoreAbout({\n displayEduFaq,\n displayTeamsDiscountFAQ,\n teamsDiscountPercent,\n pageUtSource,\n utSource2,\n utSource3,\n}: MoreAboutProps): ReactElement {\n const { PricingList } = usePricingFooterStyles();\n return (\n \n {displayEduFaq && (\n \n \n {t(COPY.SPECIAL_PRICING_FOR_EDUCATORS_ANSWER)}{' '}\n {t(COPY.SEE_PRICING)}\n \n \n )}\n\n \n \n {t(COPY.CORPORATE_PLANS_ANSWER)}{' '}\n \n {t(COPY.CONTACT_SALES)}\n \n \n \n\n {displayTeamsDiscountFAQ && (\n \n \n {t(COPY.DISCOUNTS_FOR_TEAMS_ANSWER, { teamsMinimumDiscount: teamsDiscountPercent })}{' '}\n {t(COPY.SEE_PRICING)}\n \n \n )}\n \n );\n}\n","import React, { useContext, useMemo } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useParams } from 'react-router';\n\nimport { t } from '@sm/intl';\nimport { StaticContext } from '@sm/webassets';\nimport { Typography } from '@wds/typography';\nimport { Box } from '@wds/box';\nimport { IconArrowRight } from '@wds/icons';\n\nimport { formatCostInLocaleCurrency, getCoreCostFromSkus, isPaidUser } from '~app/pages/Pricing/lib/lib-helpers';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport { COMPARISON_PACKAGES } from '~pricing/lib/constants';\nimport { PackageIds, Packages } from '~shared/constants/pricing';\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\nimport { PackageType } from '~shared/types/pricing/package';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { SummaryFooterPackages, SummaryDisclaimer } from './types';\nimport useTreatment from '~app/pages/Pricing/hooks/useTreatment';\n\nimport disclaimers, { LegaleseDisclaimer } from './config/disclaimers';\n\nimport usePricingFooterStyles from './useStyles';\n\nimport PricingFeatures from './PricingFeatures';\nimport COPY from './copy';\nimport MoreAbout from './MoreAbout';\n\n// List of country codes where we allow the educational discount\nconst EDU_COUNTRIES = ['US', 'GB'];\n\n// List of packages to not display in the footer FAQ\n// TODO @sking please deal with this as you see fit once forms package goes live after experiment\nconst HIDDEN_FAQ_PACKAGES = [\n Packages.StarterAnnual,\n Packages.Enterprise,\n Packages.Flex,\n Packages.FormsAnnual,\n Packages.FormsMonthly,\n];\n\nexport default function PricingFooter({ packages }: SummaryFooterPackages): React.ReactElement {\n const {\n user,\n environment: { countryCode },\n } = useContext(StaticContext);\n const { overageCost, getPackageById } = usePackages();\n const { canonicalPath, subPath } = useParams();\n const { pageUtSource } = useTrackingDetails();\n\n const {\n uiExperiment: { GROW_2529_FORMS_TREATMENT1, GROW_2529_FORMS_TREATMENT2, GROW_2629_FORMS_V2_TREATMENT },\n } = useTreatment();\n\n const GROW_2529_FORMS = GROW_2629_FORMS_V2_TREATMENT || GROW_2529_FORMS_TREATMENT1 || GROW_2529_FORMS_TREATMENT2;\n\n const { Audience, Disclaimers, Disclaimer, Footer, GetStarted, More, SeeAllLink } = usePricingFooterStyles();\n\n const displayPackages = useMemo(() => {\n const filteredPackages = packages.filter(pkg => !HIDDEN_FAQ_PACKAGES.includes(pkg.packageName));\n // Reverse the packages cost FAQ list for EDU page.\n if (canonicalPath === PackageType.Educational) {\n filteredPackages.reverse();\n }\n return filteredPackages;\n }, [packages, canonicalPath]);\n // for the sales form link\n const utSource2 = pageUtSource?.includes('summary') ? 'summary' : 'details';\n const utSource3 = `${utSource2}_bottom_${user.isAuthenticated ? 'li' : 'lo'}`;\n\n const path = canonicalPath || PackageType.Teams;\n const displayEduFaq =\n !isPaidUser(user?.package) && path !== PackageType.Educational && EDU_COUNTRIES.includes(countryCode);\n // we hide the teams FAQ only on teams details and, subsequently, canonical details\n const displayTeamsDiscountFAQ =\n !(path === PackageType.Teams && subPath) && path !== 'details' && path !== PackageType.Educational;\n\n // this value represents the lowest percentage discount of all teams <-> individual packages,\n // rounded down to the nearest ten. it's used for legalese underneath the teams packages\n const teamsDiscountPercent = useMemo(() => {\n const discountPercent = Object.keys(COMPARISON_PACKAGES).reduce((minimumPercent, teamPackageName) => {\n let newMinimumPercent = minimumPercent;\n\n const comparisonPackageName = COMPARISON_PACKAGES[teamPackageName as Packages];\n if (comparisonPackageName) {\n const teamPricingPackage = getPackageById(PackageIds[teamPackageName as Packages]);\n const comparisonPricingPackage = getPackageById(PackageIds[comparisonPackageName]);\n const teamSku = getCoreCostFromSkus(teamPricingPackage?.skuCost);\n const comparisonSku = getCoreCostFromSkus(comparisonPricingPackage?.skuCost);\n\n if (teamSku && comparisonSku) {\n const packagePercent = Math.floor(100 - (teamSku.cost / comparisonSku.cost) * 100);\n if (packagePercent < newMinimumPercent) {\n newMinimumPercent = packagePercent;\n }\n }\n }\n\n return newMinimumPercent;\n }, 100);\n\n return Math.floor(discountPercent / 10) * 10;\n }, [getPackageById]);\n\n return (\n
\n
    \n {disclaimers[path as keyof SummaryDisclaimer]?.map((disclaimer: string) => {\n if (disclaimer === LegaleseDisclaimer.EnterpriseAddons && subPath) {\n return null;\n }\n let formattedOverageCost = null;\n if (disclaimer === LegaleseDisclaimer.OverageCost && overageCost) {\n formattedOverageCost = formatCostInLocaleCurrency(overageCost, 2);\n }\n\n return (\n
  • \n {formattedOverageCost && }\n \n {t(COPY[disclaimer as keyof typeof COPY], {\n overageCost: formattedOverageCost,\n teamsMinimumDiscount: teamsDiscountPercent,\n })}\n \n
  • \n );\n })}\n
\n\n {/**\n *\n * The Audience portion of the footer should only be rendered on Summary pages.\n * subPath is required to to determine if we are on the details page or not.\n * path can be either 'educational' (details view) or 'teams', or 'individual' (summary view)\n */}\n {path !== PackageType.Educational && !subPath && (\n
\n \n\n {!user.isAuthenticated && (\n \n \n {t(COPY.BASICS)} {t(COPY.GET_STARTED)}\n \n \n )}\n\n \n \n {t(COPY.ALL_FEATURES)} \n \n \n
\n )}\n\n \n \n {t(COPY.MORE)}\n \n \n {/* if we are in forms treatment, show that treatment */}\n {GROW_2529_FORMS && (\n \n )}\n {/* if we are not in the treatment, show the default */}\n {!GROW_2529_FORMS && (\n \n )}\n
\n );\n}\n","import { createUseStyles } from 'react-jss';\n\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nexport default createUseStyles(({ spacing, type }: PricingAppTheme) => ({\n Heading: {\n '& h1': {\n display: 'block',\n fontSize: type.fontSize.sectionTitle,\n textAlign: 'center',\n margin: [spacing[5], spacing[3], spacing[2]],\n fontWeight: type.fontWeight.medium,\n [MD_MEDIA_QUERY]: {\n fontSize: type.fontSize.hero2,\n margin: [spacing[6], 'auto', spacing[2]],\n },\n },\n },\n}));\n","import React from 'react';\n\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\nimport { T } from '@sm/intl';\n\nimport COPY from '~app/pages/Pricing/copy';\n\nimport useHeadingStyles from './useStyles';\nimport { HeadingProps } from './types';\n\nexport default function MainHeading({ children }: HeadingProps): React.ReactElement {\n const { Heading } = useHeadingStyles();\n\n return (\n \n \n {children ?? }\n \n \n );\n}\n","import { Desc } from '@sm/intl';\n\nimport COPY from '~pricing/copy';\n\nexport type RouteObject = {\n [key: string]: Route;\n};\n\nexport type Route = {\n path: string;\n title: Desc;\n packageType: string;\n};\n\n/**\n *\n * During runtime route, config title cannot be picked up when it is directly translated here,\n * so it is better to send the COPY object to the component to deal with it\n */\n\nconst ROUTE_CONFIG: RouteObject = {\n teams: {\n path: '/pricing/teams',\n title: COPY.TEAM_PLANS,\n packageType: 'teams',\n },\n individual: {\n path: '/pricing/individual',\n title: COPY.INDIVIDUAL_PLANS,\n packageType: 'individual',\n },\n enterprise: {\n path: '/pricing/enterprise',\n title: COPY.ENTERPRISE,\n packageType: 'enterprise',\n },\n};\n\nexport default ROUTE_CONFIG;\n","import { createUseStyles } from 'react-jss';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nexport default createUseStyles(({ spacing, type, pricingPalette }: PricingAppTheme) => ({\n Container: {\n margin: [0, 'auto', spacing[5]],\n [MD_MEDIA_QUERY]: {\n marginBottom: spacing[8],\n },\n },\n List: {\n display: 'flex',\n listStyle: 'none',\n justifyContent: 'center',\n padding: 0,\n },\n ListItem: {\n padding: '0.6em 0.8em 0.6em 0.6em',\n margin: [0, 12],\n fontSize: type.fontSize.bodySm,\n textAlign: 'center',\n display: 'flex',\n alignItems: 'center',\n [MD_MEDIA_QUERY]: {\n fontSize: type.fontSize.body,\n },\n '& a': {\n color: pricingPalette.colors.charcoal,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n },\n '&.selected': {\n borderBottom: `3px solid ${pricingPalette.colors.sabaeus}`,\n '& a': {\n color: pricingPalette.colors.sabaeus,\n },\n },\n },\n}));\n","import React from 'react';\n\nimport { Link } from 'react-router-dom';\n\nimport { NavItemProps } from './types';\nimport usePricingNavigationStyles from './useStyles';\n\nexport default function NavItem({ title, selected, url }: NavItemProps): React.ReactElement {\n const { ListItem } = usePricingNavigationStyles();\n return (\n
  • \n \n {title}\n \n
  • \n );\n}\n","import React, { useMemo } from 'react';\nimport { useParams } from 'react-router';\n\nimport { createURL } from '@sm/utils';\nimport { t } from '@sm/intl';\n\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport { PackageType } from '~shared/types/pricing/package';\nimport { usePackages } from '~shared/hooks/usePackages';\n\nimport { NavRouteParams, NavItemType } from './types';\n\nimport ROUTE_CONFIG from './routes';\nimport NavItem from './NavItem';\nimport useNavigationStyles from './useStyles';\n\nexport default function Navigation(): React.ReactElement {\n const { canonicalPath = PackageType.Teams, subPath } = useParams();\n const { Container, List } = useNavigationStyles();\n const { comparePlans } = usePackages();\n const { pageUtSource } = useTrackingDetails();\n\n const navItems = useMemo(() => {\n return Object.keys(ROUTE_CONFIG).map((routeName): NavItemType => {\n const { title: TITLE, packageType, path } = ROUTE_CONFIG[routeName as keyof typeof ROUTE_CONFIG];\n const selected =\n canonicalPath === packageType ||\n (canonicalPath === PackageType.Educational && packageType === PackageType.Individual)\n ? 'selected'\n : '';\n const url = createURL(`${path}/${subPath ?? ''}`, { ut_source: pageUtSource });\n return {\n title: t(TITLE),\n selected,\n routeName,\n url,\n };\n });\n }, [canonicalPath, subPath, pageUtSource]);\n\n return (\n \n );\n}\n","import { createUseStyles } from 'react-jss';\n\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\n\nexport default createUseStyles(({ spacing }: PricingAppTheme) => ({\n Summary: {\n margin: [0, 'auto'],\n },\n PackagesContainer: {\n display: 'grid',\n padding: [0, spacing[3]],\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n justifyContent: 'center',\n padding: 0,\n },\n },\n}));\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport DotGrid from './assets/DotGrid.svg';\n\nexport default createUseStyles(({ spacing, pricingPalette, radius, type }: PricingAppTheme) => ({\n BannerRow: {\n padding: [0, '15%'],\n },\n BannerContainer: {\n background: `url(${DotGrid}) left bottom no-repeat ${pricingPalette.colors.dijon}`,\n width: '100%',\n height: 80,\n marginTop: spacing[6],\n borderRadius: 4,\n border: `2px solid ${pricingPalette.colors.black}`,\n overflow: 'hidden',\n display: 'none',\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n },\n },\n\n DiscountLargeText: {\n '& div': {\n fontFamily: 'National 2',\n fontStyle: 'normal',\n fontWeight: 500,\n fontSize: type.fontSize.sectionTitleSm,\n lineHeight: 1,\n marginRight: spacing[2],\n marginLeft: spacing[6],\n },\n },\n\n TryNowBox: {\n backgroundColor: pricingPalette.colors.bumblebee,\n borderRadius: '150px 0px 70px 0px',\n width: 320,\n height: 200,\n marginTop: -59,\n },\n\n ViewPlansButton: {\n padding: [spacing[1], spacing[4]],\n backgroundColor: pricingPalette.colors.navy,\n color: pricingPalette.colors.white,\n fontFamily: 'National 2',\n fontWeight: 500,\n fontSize: spacing[4],\n borderRadius: radius.small,\n width: 160,\n height: spacing[6],\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n textDecoration: 'none',\n },\n },\n}));\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n DISCOUNT_TEXT: {\n id: 'Pricing.copy.DiscountBannerText',\n defaultMessage: 'GET 15% OFF your first year of Teams',\n desc: {\n id: 'Pricing.copy.DiscountBannerText',\n message: '[Type: label][Vis: high] - Pricing discount for Teams',\n project: PROJECT_NAME,\n },\n },\n VIEW_PLANS_BUTTON: {\n id: 'Pricing.copy.ViewPlansButtonText',\n defaultMessage: 'View Plans',\n desc: {\n id: 'Pricing.copy.ViewPlansButtonText',\n message: '[Type: button][Vis: med] - Link to pricing teams details page',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { T } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\nimport useStyles from './useStyles';\nimport COPY from './copy';\n\nexport default function DiscountBanner(): JSX.Element {\n const { BannerContainer, DiscountLargeText, TryNowBox, ViewPlansButton, BannerRow } = useStyles();\n return (\n \n \n \n \n \n 1\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nimport { Box } from '@wds/box';\nimport { useExperiment } from '@sm/webassets';\nimport { Package } from '~pricing/components/Summary';\n\nimport MainHeading from '~pricing/components/MainHeading';\nimport Navigation from '~pricing/components/Navigation';\nimport SummaryFooter from '~pricing/components/PricingFooter';\nimport { Packages } from '~shared/constants/pricing';\nimport useSummaryStyles from './useStyles';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { usePricingState } from '~shared/hooks/usePricingState';\nimport useTreatment from '~pricing/hooks/useTreatment';\nimport { PricingPackage } from '~shared/types/pricing/pricingsvc';\nimport DiscountBanner from '../../components/DiscountBanner';\n\nexport default function PricingSummaryPage(): JSX.Element {\n const { PackagesContainer, Summary } = useSummaryStyles();\n const { comparePlans, discountInfo } = usePackages();\n const {\n state: {\n packages: { displayPackages, allPackages },\n },\n } = usePricingState();\n\n const {\n uiExperiment: {\n GROW_2427_TREATMENT,\n GROW_2629_FORMS_V2_TREATMENT,\n GROW_2529_FORMS_TREATMENT1,\n GROW_2529_FORMS_TREATMENT2,\n },\n } = useTreatment();\n\n const filteredPackages = displayPackages?.filter(pkg => pkg?.packageName !== Packages.Basic);\n\n const GROW_2529_TREATMENT = GROW_2629_FORMS_V2_TREATMENT || GROW_2529_FORMS_TREATMENT1 || GROW_2529_FORMS_TREATMENT2;\n\n function getPackage(pricingPackage: PricingPackage, index: number): JSX.Element {\n const props = {\n ...pricingPackage,\n comparisonSkuCost: pricingPackage.comparisonSkuCost || [],\n comparePlans,\n discountInfo,\n key: `package-${pricingPackage.packageName}`,\n isLastPackage: index + 1 === filteredPackages.length,\n };\n\n if (GROW_2529_TREATMENT) {\n return ;\n }\n\n return ;\n }\n\n const { treatments: discountBannerTreatments } = useExperiment({\n name: 'billing_20014_teams_discount',\n treatmentNames: ['billing_20014_teams_discount_control', 'billing_20014_teams_discount_treatment'],\n });\n\n const showDiscountBanner = discountBannerTreatments?.billing_20014_teams_discount_treatment?.treatmentName;\n\n return (\n
    \n {showDiscountBanner && }\n
    \n {GROW_2427_TREATMENT && }\n \n \n
    \n \n \n {filteredPackages?.map(\n (pricingPackage, index: number) => pricingPackage && getPackage(pricingPackage, index)\n )}\n \n \n \n
    \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nexport default createUseStyles(({ spacing }: PricingAppTheme) => ({\n Back: {\n maxWidth: 1200,\n margin: '0 auto',\n padding: [spacing[6], spacing[6], 0],\n '& a': {\n fontSize: 14,\n display: 'inline-flex',\n alignItems: 'center',\n '& svg': {\n marginRight: 3,\n },\n },\n },\n}));\n","import React from 'react';\nimport { t } from '@sm/intl';\nimport { Link } from 'react-router-dom';\nimport { Box } from '@wds/box';\nimport { IconArrowLeft } from '@wds/icons';\n\nimport COPY from '~app/pages/Pricing/copy';\n\nimport useStyles from './useStyles';\n\nexport default function BackToSummary({ url }: { url: string }): JSX.Element {\n const { Back } = useStyles();\n const text = t(COPY.BACK_TO_SUMMARY);\n\n return (\n \n \n {text}\n \n \n );\n}\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { HIGHLIGHT } from '~pricing/components/Summary/useStyles';\nimport { Packages } from '~shared/constants/pricing';\n\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\n\ntype Props = {\n packageName: Packages;\n};\ntype Rules = 'Highlighted' | 'Package';\n\nexport default createUseStyles(\n ({ spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n Package: {\n position: 'relative',\n border: `1px solid ${pricingPalette.colors.pebble}`,\n [MD_MEDIA_QUERY]: {\n '&:not(:last-of-type):not($Highlighted)': {\n borderRight: 'none',\n },\n },\n '& aside': {\n top: 0,\n right: 0,\n width: '100%',\n '&:before, &:after': {\n display: 'none',\n },\n '& p': {\n transform: 'none',\n top: 0,\n left: 0,\n width: '100%',\n fontSize: 13,\n },\n },\n '& header': {\n paddingTop: spacing[6],\n\n '& [class*=GROW_2529_Switch]': {\n '& [class*=Values]': {\n minHeight: 32,\n fontSize: '.75em',\n '& span': {\n padding: [0, '5%'],\n },\n },\n },\n },\n },\n Highlighted: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n borderWidth: '3px !important',\n '& header': {\n paddingTop: spacing[6] - 2,\n },\n },\n })\n);\n","import React from 'react';\n\nimport PackageDefs from '~app/pages/Pricing/lib/packages/packageDefs';\nimport PackageHeader from '~app/pages/Pricing/components/PackageHeader';\nimport { PackageHeaderProps } from '~pricing/components/Summary/types';\n\nimport useDetailsPackageHeaderStyles from './useStyles';\n\ntype DetailsHeader = {\n index: string;\n};\n\ntype DetailsPackageHeaderProps = PackageHeaderProps & DetailsHeader;\n\nexport default function DetailsPackageHeader({\n comparisonSkuCosts,\n discountInfo,\n skuCosts,\n packageName,\n index,\n}: DetailsPackageHeaderProps): JSX.Element {\n const { Highlighted, Package } = useDetailsPackageHeaderStyles({ packageName });\n\n return (\n \n \n \n );\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst COPY = defineMessages({\n AVAILABLE: {\n id: 'Pricing.copy.Available',\n defaultMessage: 'available',\n desc: {\n id: 'Pricing.copy.Available',\n message: '[Type: label][Vis: high] - Pricing details comparison feature cell value',\n project: PROJECT_NAME,\n },\n },\n UNAVAILABLE: {\n id: 'Pricing.copy.Unavailable',\n defaultMessage: 'unavailable',\n desc: {\n id: 'Pricing.copy.Unavailable',\n message: '[Type: label][Vis: high] - Pricing details comparison feature cell value',\n project: PROJECT_NAME,\n },\n },\n BUSINESS_PLANS_LINK: {\n id: 'Pricing.copy.BusinessPlansLink',\n defaultMessage: 'Included with business plans',\n desc: {\n id: 'Pricing.copy.BusinessPlansLink',\n message: '[Type: link][Vis: high] - Link to pricing teams details page',\n project: PROJECT_NAME,\n },\n },\n});\n\nexport default COPY;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { t } from '@sm/intl';\nimport COPY from './copy';\n\nexport default function IncludedLink(): React.ReactElement {\n return {t(COPY.BUSINESS_PLANS_LINK)};\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst TYPE_TEXT = '[Type: Text][Vis: high] - Feature Set Cell Value Item';\n\nexport default defineMessages({\n base_response_count: {\n id: 'Pricing.cellCopy.BaseResponseCount',\n defaultMessage: '{amount} responses per year**',\n desc: {\n id: 'Pricing.cellCopy.BaseResponseCount',\n message: `${TYPE_TEXT} - BaseResponseCount`,\n project: PROJECT_NAME,\n },\n },\n num_free_responses: {\n id: 'Pricing.cellCopy.NumFreeResponses',\n defaultMessage: '{amount} responses per month**',\n desc: {\n id: 'Pricing.cellCopy.NumFreeResponses',\n message: `${TYPE_TEXT} - NumFreeResponses`,\n project: PROJECT_NAME,\n },\n },\n create_question_limit: {\n id: 'Pricing.cellCopy.CreateQuestionLimit',\n defaultMessage: '{amount} questions per survey',\n desc: {\n id: 'Pricing.cellCopy.CreateQuestionLimit',\n message: `${TYPE_TEXT} - CreateQuestionLimit`,\n project: PROJECT_NAME,\n },\n },\n collector_create_limit: {\n id: 'Pricing.cellCopy.CollectorCreateLimit',\n defaultMessage: 'Use {amount} collectors per survey',\n desc: {\n id: 'Pricing.cellCopy.CollectorCreateLimit',\n message: `${TYPE_TEXT} - CollectorCreateLimit`,\n project: PROJECT_NAME,\n },\n },\n CONTACT_US: {\n id: 'Pricing.cellCopy.ContactUsBaseResponseCount',\n defaultMessage: 'Contact Us',\n desc: {\n id: 'Pricing.cellCopy.ContactUsBaseResponseCount',\n message: `${TYPE_TEXT} - ContactUsBaseResponseCount`,\n project: PROJECT_NAME,\n },\n },\n BASIC_COMPARE_FILTER: {\n id: 'Pricing.cellCopy.BasicCompareFilter',\n defaultMessage: '1 filter',\n desc: {\n id: 'Pricing.cellCopy.BasicCompareFilter',\n message: `${TYPE_TEXT} - BasicCompareFilter`,\n project: PROJECT_NAME,\n },\n },\n BASIC_NUM_RESPONSES: {\n id: 'Pricing.cellCopy.BasicNumberOfResponses',\n defaultMessage: 'View {amount} responses per survey',\n desc: {\n id: 'Pricing.cellCopy.BasicNumberOfResponses',\n message: `${TYPE_TEXT} - BasicNumberOfResponses`,\n project: PROJECT_NAME,\n },\n },\n MANUAL: {\n id: 'Pricing.cellCopy.Manual',\n defaultMessage: 'Manual',\n desc: {\n id: 'Pricing.cellCopy.Manual',\n message: `${TYPE_TEXT} - Manual`,\n project: PROJECT_NAME,\n },\n },\n MANUAL_RULE: {\n id: 'Pricing.cellCopy.ManualRule',\n defaultMessage: 'Manual and Rule-based',\n desc: {\n id: 'Pricing.cellCopy.ManualRule',\n message: `${TYPE_TEXT} - ManualRule`,\n project: PROJECT_NAME,\n },\n },\n TEMPLATE_ENABLED_VALUE: {\n id: 'Pricing.cellCopy.TemplateEnabledValue',\n defaultMessage: '180 +',\n desc: {\n id: 'Pricing.cellCopy.TemplateEnabledValue',\n message: `${TYPE_TEXT} - TemplateEnabledValue`,\n project: PROJECT_NAME,\n },\n },\n BASIC_TEMPLATE_ENABLED_VALUE: {\n id: 'Pricing.cellCopy.BasicTemplateEnabledValue',\n defaultMessage: '40 short survey templates',\n desc: {\n id: 'Pricing.cellCopy.BasicTemplateEnabledValue',\n message: `${TYPE_TEXT} - BasicTemplateEnabledValue`,\n project: PROJECT_NAME,\n },\n },\n UNLIMITED: {\n id: 'Pricing.cellCopy.Unlimited',\n defaultMessage: 'UNLIMITED',\n desc: {\n id: 'Pricing.cellCopy.Unlimited',\n message: `${TYPE_TEXT} - Unlimited`,\n project: PROJECT_NAME,\n },\n },\n});\n","import React from 'react';\nimport { Desc, t } from '@sm/intl';\nimport { Feature } from '~shared/types/pricing/pricingsvc';\nimport { FeatureSetMap } from '../types';\nimport { DetailsFeatureRuleOptions, ItemType } from './types';\nimport { TEAMS_PACKAGES, INDIVIDUAL_PACKAGES } from '~pricing/lib/constants';\nimport { Packages } from '~shared/constants/pricing';\nimport IncludedLink from '~pricing/components/DetailsTable/Categories/IncludedLink';\nimport CELL_COPY from '~pricing/lib/PackageFeatures/details/cellCopy';\n\nconst SETTING_UNLIMITED = 'unlimited';\n\nexport function getTeamCollaborationValues(packageName: Packages): boolean | React.ReactElement {\n let value: boolean | React.ReactElement = false;\n if (TEAMS_PACKAGES.includes(packageName)) {\n value = true;\n } else if (\n INDIVIDUAL_PACKAGES.includes(packageName) &&\n (packageName === Packages.AdvantageAnnual || packageName === Packages.PremierAnnual)\n ) {\n value = ;\n }\n\n return value;\n}\n\nexport function getStringValue(feature: Feature): string {\n const values: ItemType[] = Object.values(CELL_COPY);\n // fetch the copy corresponding to the feature setting from the COPY file\n const settingCopy = values.filter(\n (item: ItemType) => item.defaultMessage.toLowerCase() === feature?.setting?.toLowerCase()\n );\n // create a param with the correct type for the `t` function (if settingCopy array is not empty)\n const cellValue: Desc | undefined = settingCopy.length\n ? {\n id: settingCopy[0].id,\n defaultMessage: settingCopy[0].defaultMessage,\n }\n : undefined;\n // translate the value if it exists, otherwise return empty string\n return cellValue ? t(cellValue) : '';\n}\n\nexport function getUpperCaseValue(feature: Feature): string {\n return feature?.setting ? feature.setting?.toUpperCase() : '';\n}\n\nconst { MANUAL, MANUAL_RULE } = CELL_COPY;\nexport const tagValue: Record = {\n [Packages.TeamAdvantage]: MANUAL,\n [Packages.TeamPremier]: MANUAL,\n [Packages.Enterprise]: MANUAL_RULE,\n [Packages.PremierAnnual]: MANUAL,\n [Packages.AdvantageAnnual]: MANUAL,\n [Packages.StandardMonthly]: MANUAL,\n [Packages.StandardAnnual]: MANUAL,\n [Packages.StarterMonthly]: MANUAL,\n [Packages.StandardAnnual]: MANUAL,\n [Packages.StarterAnnual]: MANUAL,\n [Packages.Basic]: '',\n [Packages.AdvantageMonthly]: '',\n [Packages.PremierMonthly]: '',\n [Packages.Flex]: MANUAL,\n [Packages.FormsAnnual]: '',\n [Packages.FormsMonthly]: '',\n};\n\nexport function getTagValue(packageName: Packages): string {\n if (typeof tagValue[packageName] === 'string') {\n return tagValue[packageName] as string;\n }\n return t(tagValue[packageName] as Desc);\n}\n\nexport function getFormattedAmountValue(feature: Feature, options: DetailsFeatureRuleOptions): string {\n if (feature?.amount) {\n return t(CELL_COPY[feature.name as keyof typeof CELL_COPY], {\n amount: feature.amount.toLocaleString(options?.locale),\n });\n }\n return '';\n}\n\nexport function response_count(\n { base_response_count, num_free_responses }: FeatureSetMap,\n options: DetailsFeatureRuleOptions,\n packageName: string\n): string {\n let value = '';\n\n // Annual packages\n if (base_response_count?.amount) {\n value = t(CELL_COPY.base_response_count, { amount: base_response_count.amount.toLocaleString(options?.locale) });\n\n // Basic/Standard monthly\n } else if (num_free_responses?.amount) {\n const copy = packageName === Packages.Basic ? CELL_COPY.BASIC_NUM_RESPONSES : CELL_COPY.num_free_responses;\n value = t(copy, { amount: num_free_responses.amount.toLocaleString(options?.locale) });\n\n // Enterprise\n } else if (num_free_responses?.setting === SETTING_UNLIMITED) {\n return t(CELL_COPY.CONTACT_US);\n }\n return value;\n}\n\nexport function getBaseResponseCount(\n packageName: string,\n feature: FeatureSetMap,\n options: DetailsFeatureRuleOptions\n): string {\n return packageName === Packages.Enterprise ? t(CELL_COPY.CONTACT_US) : response_count(feature, options, packageName);\n}\n\nexport function getCompareResults(packageName: string): boolean | string {\n return packageName === Packages.Basic ? t(CELL_COPY.BASIC_COMPARE_FILTER) : true;\n}\n\nexport function getTemplatesEnabledValue(packageName: string): string {\n return packageName === Packages.Basic\n ? t(CELL_COPY.BASIC_TEMPLATE_ENABLED_VALUE)\n : t(CELL_COPY.TEMPLATE_ENABLED_VALUE);\n}\n\nexport function getCreateQuestionLimitValue(feature: Feature): string {\n return t(CELL_COPY.create_question_limit, { amount: feature.amount });\n}\n\nexport function getCollectorCreateLimitValue(feature: Feature): string {\n return t(CELL_COPY.collector_create_limit, { amount: feature.amount });\n}\n","import React from 'react';\nimport { Feature } from '~shared/types/pricing/pricingsvc';\nimport { FeatureSetMap } from '~pricing/transformers/types';\nimport { DetailsFeatureRuleOptions, DetailsFeatureRules } from '~pricing/transformers/details/types';\nimport { Packages } from '~shared/constants/pricing';\n\nimport {\n getBaseResponseCount,\n getCollectorCreateLimitValue,\n getCompareResults,\n getCreateQuestionLimitValue,\n getTagValue,\n getTeamCollaborationValues,\n getTemplatesEnabledValue,\n getStringValue,\n} from '../helpers';\n\nconst ALL_BUT_BASIC = [\n Packages.TeamAdvantage,\n Packages.TeamPremier,\n Packages.Enterprise,\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n Packages.StandardMonthly,\n Packages.StarterMonthly,\n Packages.StarterAnnual,\n Packages.StandardAnnual,\n Packages.Flex,\n];\n\nconst ADVANTAGE_AND_ABOVE = [\n Packages.TeamAdvantage,\n Packages.TeamPremier,\n Packages.Enterprise,\n Packages.PremierAnnual,\n Packages.AdvantageAnnual,\n];\n\nconst teamCollaborationRules = [\n 'add_users',\n 'build_surveys_together',\n 'analyze_results_together',\n 'custom_templates',\n 'team_themes',\n 'shared_library',\n 'collaboration',\n 'team_ownership',\n 'consolidated_billing',\n 'user_management',\n].reduce(\n (acc, key) => ({\n ...acc,\n [key]: (packageName: Packages): boolean | React.ReactElement => getTeamCollaborationValues(packageName),\n }),\n {}\n);\n\nconst stringValueRules = ['survey_create_limit'].reduce(\n (acc, key) => ({\n ...acc,\n [key]: (packageName: Packages, feature: Feature): string => getStringValue(feature),\n }),\n {}\n);\n\nconst enterpriseOnly = [\n 'admin_dashboard',\n 'team_activity',\n 'account_control',\n 'global_settings',\n 'custom_terms_of_use',\n 'enterprise_only_integrations',\n 'customer_success_manager',\n 'custom_question_bank',\n 'custom_subdomain',\n].reduce(\n (acc, key) => ({\n ...acc,\n [key]: (packageName: Packages): boolean => packageName === Packages.Enterprise,\n }),\n {}\n);\n\nconst includeInAllPackages = [\n '508_accessibility',\n 'pop_up_collector',\n 'real_time_results',\n 'share_surveys',\n 'statistical_significance',\n 'progress_bar',\n 'plans_benchmarks',\n 'benchmarks',\n 'dashboard',\n 'send_surveys',\n 'password_protection',\n 'enable_ip_blocking',\n 'mobile_apps_ios_android',\n 'video_question_type',\n 'rating_question_type',\n 'quiz_scoring_and_instant_results',\n 'require_answer',\n 'validate_answer',\n 'randomize_answer_choices',\n 'set_survey_end_date',\n 'view_respondent_ip_address',\n 'record_respondent_email_address',\n 'set_max_response_count',\n 'essential_question_types',\n 'all_languages_supported',\n 'pagination',\n 'labeling_titles_numbering',\n 'collector_mobile_sdk_enabled',\n].reduce(\n (acc, key) => ({\n ...acc,\n [key]: (): boolean => true,\n }),\n {}\n);\n\nfunction includeInPackagesOnly(packageName: Packages, packages: string[]): boolean {\n return packages.includes(packageName);\n}\n\nexport default {\n ...teamCollaborationRules,\n ...stringValueRules,\n ...includeInAllPackages,\n ...enterpriseOnly,\n analyze_can_ta_tag: (packageName: Packages): string => getTagValue(packageName),\n analyze_combine_filters: (packageName: Packages): string | boolean => getCompareResults(packageName),\n contributor_seats: (packageName: Packages): boolean => packageName !== Packages.Enterprise,\n response_count: (packageName: Packages, feature: FeatureSetMap, options: DetailsFeatureRuleOptions): string =>\n getBaseResponseCount(packageName, feature, options),\n word_cloud_combine_hide: (packageName: Packages): boolean => packageName !== Packages.TeamAdvantage,\n create_templates_enabled: (packageName: Packages): string => getTemplatesEnabledValue(packageName),\n a_b_testing: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n advanced_logic: (packageName: Packages): boolean =>\n includeInPackagesOnly(packageName, [Packages.TeamPremier, Packages.Enterprise, Packages.PremierAnnual]),\n text_formatting: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n carry_forward: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n extract_data: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n track_email_responses: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n priority_email_support: (packageName: Packages): boolean =>\n ![Packages.Basic, Packages.FormsAnnual, Packages.FormsMonthly].includes(packageName),\n rating_question_type: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ALL_BUT_BASIC),\n download_as_ppt: (packageName: Packages): boolean => includeInPackagesOnly(packageName, ALL_BUT_BASIC),\n collector_create_limit: (packageName: Packages, feature: Feature): string =>\n packageName === Packages.Basic ? getCollectorCreateLimitValue(feature) : getStringValue(feature),\n create_question_limit: (packageName: Packages, feature: Feature): string =>\n packageName === Packages.Basic ? getCreateQuestionLimitValue(feature) : getStringValue(feature),\n collector_thank_you_enabled: (packageName: Packages): boolean =>\n includeInPackagesOnly(packageName, ADVANTAGE_AND_ABOVE),\n} as DetailsFeatureRules;\n","import { t } from '@sm/intl';\nimport { DetailsFeatureRules } from '~pricing/transformers/details/types';\nimport { Packages } from '~shared/constants/pricing';\nimport CELL_COPY from '~pricing/lib/PackageFeatures/details/cellCopy';\nimport experimentDetailsCopy from '../../copy/experimentDetailsCopy';\n\nconst allExceptBasicFeatures = [\n 'grow_2529_database_response_view',\n 'create_print_enabled',\n 'download_as_ppt',\n 'create_print_enabled',\n].reduce(\n (acc, key) => ({\n ...acc,\n [key]: (packageName: Packages): boolean => packageName !== Packages.Basic,\n }),\n {}\n);\n\nconst formsAndBasic = [Packages.Basic, Packages.FormsAnnual, Packages.FormsMonthly];\nconst formsAndEnhanced = [\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n Packages.FormsAnnual,\n Packages.FormsMonthly,\n];\nconst allExceptForms = [\n Packages.AdvantageAnnual,\n Packages.PremierAnnual,\n Packages.StarterAnnual,\n Packages.StandardMonthly,\n];\nconst allPackages = [...formsAndBasic, ...allExceptForms];\n\nexport default {\n ...allExceptBasicFeatures,\n mobile_apps_ios_android: (): string | boolean => true,\n\n grow_2529_survey_create_limit: (): string => t(CELL_COPY.UNLIMITED),\n\n grow_2529_questions_per_form_survey: (packageName: Packages): string =>\n packageName === Packages.Basic ? t(CELL_COPY.create_question_limit, { amount: 10 }) : t(CELL_COPY.UNLIMITED),\n\n grow_2529_database_response_view: (packageName: Packages): boolean => allPackages.includes(packageName),\n\n collector_create_limit: (packageName: Packages): string =>\n packageName === Packages.Basic\n ? t(experimentDetailsCopy.grow_2529_use_collectors, { number: 3 })\n : t(CELL_COPY.UNLIMITED),\n\n grow_2529_recurring_surveys: (packageName: Packages): boolean =>\n packageName === Packages.PremierAnnual || packageName === Packages.AdvantageAnnual,\n\n grow_2529_payment_qt: (packageName: Packages): boolean => formsAndEnhanced.includes(packageName),\n grow_2529_file_upload: (packageName: Packages): boolean => formsAndEnhanced.includes(packageName),\n\n analyze_combine_filters: (packageName: Packages): string | boolean => {\n return formsAndBasic.includes(packageName) ? t(CELL_COPY.BASIC_COMPARE_FILTER) : true;\n },\n\n rating_question_type: (packageName: Packages): boolean => allExceptForms.includes(packageName),\n\n analyze_trends_enabled: () => true,\n\n response_quality_enabled: (packageName: Packages): boolean => packageName === Packages.PremierAnnual,\n\n analyze_can_ta_tag: (packageName: Packages): string =>\n allExceptForms.includes(packageName) ? t(CELL_COPY.MANUAL) : '',\n} as DetailsFeatureRules;\n","import { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\nimport defaultRules from './defaultRules';\n\nimport GROW_2529_FEATURE_RULES from '~pricing/experiments/grow_2529_forms/transformers/details/featureRules';\nimport { DetailsFeatureRulesMap } from '../types';\nimport { PackageType } from '~shared/types/pricing/package';\n\nconst detailsFeatureRules: DetailsFeatureRulesMap = {\n [PackageType.Teams]: {\n default: defaultRules,\n },\n [PackageType.Details]: {\n default: defaultRules,\n },\n [PackageType.Individual]: {\n default: defaultRules,\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1]: { ...defaultRules, ...GROW_2529_FEATURE_RULES },\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2]: { ...defaultRules, ...GROW_2529_FEATURE_RULES },\n [EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.treatment]: { ...defaultRules, ...GROW_2529_FEATURE_RULES },\n },\n [PackageType.Educational]: {\n default: defaultRules,\n },\n};\n\nexport default detailsFeatureRules;\n","import grow2529DetailsFakeFeatures from '~pricing/experiments/grow_2529_forms/transformers/details/fakeFeatures';\n\nexport default [...grow2529DetailsFakeFeatures];\n","export default [\n {\n name: 'grow_2529_survey_create_limit',\n },\n {\n name: 'grow_2529_questions_per_form_survey',\n },\n {\n name: 'grow_2529_recurring_surveys',\n },\n {\n name: 'grow_2529_database_response_view',\n },\n {\n name: 'grow_2529_payment_qt',\n },\n];\n","export default [\n {\n isEnabled: true,\n name: 'dashboard',\n },\n {\n isEnabled: true,\n name: 'team_activity',\n },\n {\n isEnabled: true,\n name: 'account_control',\n },\n {\n isEnabled: true,\n name: 'global_settings',\n },\n {\n isEnabled: true,\n name: 'custom_terms_of_use',\n },\n {\n isEnabled: true,\n name: 'enterprise_only_integrations',\n },\n {\n isEnabled: true,\n name: 'customer_success_manager',\n },\n {\n isEnabled: true,\n name: 'contributor_seats',\n },\n {\n isEnabled: true,\n name: 'web_social_email_responses',\n },\n {\n isEnabled: true,\n name: 'mobile_apps_ios_android',\n },\n {\n isEnabled: true,\n name: 'custom_question_bank',\n },\n {\n isEnabled: true,\n name: 'quiz_scoring_and_instant_results',\n },\n {\n isEnabled: true,\n name: 'custom_subdomain',\n },\n {\n isEnabled: true,\n name: 'word_cloud_combine_hide',\n },\n];\n","export default [\n {\n featureItemKey: 'response_count',\n features: ['base_response_count', 'num_free_responses'],\n },\n];\n","import { t } from '@sm/intl';\nimport { Feature } from '~shared/types/pricing/pricingsvc';\nimport { PackageDataSet } from '~shared/types/pricing/package';\n\nimport { formatDetailsFeature } from '~pricing/lib/PackageFeatures';\nimport { convertFeatureSetToMap } from '~pricing/lib/lib-helpers';\nimport { FeatureSetMap, FeatureMapItem } from '~pricing/transformers/types';\n\nimport detailsFeatureRules from '~pricing/transformers/details/rules';\n\nimport CELL_COPY from '~pricing/lib/PackageFeatures/details/cellCopy';\nimport COPY from '~pricing/lib/PackageFeatures/details/copy';\n\nimport {\n DetailsFeatureCategoryGroups,\n DetailsFeatureSets,\n DetailsFeatureValueType,\n DetailsFeatureRow,\n DetailsFeatureRowFeature,\n FeaturesCategoryGroup,\n DetailsFeatureRowPackages,\n DetailsFeatureRulesMap,\n} from './types';\n\nimport { getFormattedAmountValue } from './helpers';\nimport experimentFeatures from './experimentFeatures';\nimport fakeFeatures from './marketingFeatures';\nimport combinedFeatures from './combinedFeatures';\nimport { SETTING_UNLIMITED } from '../summary/rules/featureRules';\n\n/**\n * Returns an array with the following structure\n * [\n {\n name: 'Team Collaboration',\n features: [\n {\n feature: 'team_themes',\n title: 'Shared themes',\n packages: [\n {\n packageName: 'TEAM_ADVANTAGE_ANNUAL',\n value: true,\n },\n {\n packageName: 'TEAM_PREMIER_ANNUAL',\n value: true,\n },\n {\n packageName: 'ENT_PLATINUM',\n value: true,\n },\n ],\n },\n {\n feature: 'group_templates',\n title: 'Shared templates',\n packages: [\n {\n packageName: 'TEAM_ADVANTAGE_ANNUAL',\n value: false,\n },\n {\n packageName: 'TEAM_PREMIER_ANNUAL',\n value: true,\n },\n {\n packageName: 'ENT_PLATINUM',\n value: true,\n },\n ],\n },\n ],\n },\n {\n name: 'Survey Capabilities',\n features: [\n {\n feature: 'survey_create_limit',\n title: 'Number of surveys',\n packages: [\n {\n packageName: 'TEAM_ADVANTAGE_ANNUAL',\n value: 'UNLIMITED',\n },\n {\n packageName: 'TEAM_PREMIER_ANNUAL',\n value: 'UNLIMITED',\n },\n {\n packageName: 'ENT_PLATINUM',\n value: 'UNLIMITED',\n },\n ],\n },\n ],\n },\n ];\n */\n\n/**\n * Determines the value to display for that feature based on its featureRule given the following preconditions\n * @param packageName\n * @param feature\n * @param locale\n * @returns\n */\nfunction getFeatureValue(\n packageName: string,\n feature: Feature,\n locale: string,\n experience: string,\n canonicalPath: string\n): DetailsFeatureValueType {\n const featureRulesObj = canonicalPath\n ? detailsFeatureRules[canonicalPath as keyof DetailsFeatureRulesMap]\n : detailsFeatureRules.teams;\n const rules = experience && featureRulesObj[experience] ? featureRulesObj[experience] : featureRulesObj.default;\n\n if (feature?.amount) {\n return rules[feature?.name]\n ? rules[feature.name](packageName, feature, { locale })\n : getFormattedAmountValue(feature, { locale });\n }\n\n if (feature?.setting === SETTING_UNLIMITED) {\n return t(CELL_COPY.UNLIMITED);\n }\n\n if (feature?.setting) {\n return rules[feature?.name] ? rules[feature.name](packageName, feature) : feature?.setting;\n }\n\n return rules[feature?.name] ? rules[feature.name](packageName) : feature?.isEnabled;\n}\n\n/**\n * Determines if the current feature being looped over is part of a combined list,\n * meaning only show one line item for a set of given features, otherwise just show the feature as its own line item\n * @param packageName\n * @param packageFeatures\n * @param feature\n * @param locale\n * @returns\n */\nfunction determineCombinedFeature(\n packageName: string,\n packageFeatures: FeatureSetMap,\n feature: string,\n locale: string,\n experience: string,\n canonicalPath: string\n): DetailsFeatureValueType {\n const combinedFeature: FeatureMapItem =\n combinedFeatures.find(combined => combined.features.includes(feature)) ?? null;\n if (combinedFeature) {\n const features = combinedFeature?.features?.reduce((acc, key) => {\n acc[key] = packageFeatures[key];\n return acc;\n }, {});\n\n const featureRulesObj = detailsFeatureRules[canonicalPath as keyof DetailsFeatureRulesMap];\n const rules = experience && featureRulesObj[experience] ? featureRulesObj[experience] : featureRulesObj.default;\n\n return features ? rules[combinedFeature.featureItemKey](packageName, features, { locale }) : null;\n }\n return null;\n}\n\n/**\n * Transforms detail pages features\n * This is the main function that loops over all category groupings and which features they contain\n * @param displayedPackages\n * @param groupings\n * @param locale\n * @returns\n */\nexport default function getFeatureCategories(\n displayedPackages: PackageDataSet,\n groupings: DetailsFeatureCategoryGroups,\n locale: string,\n overageCost: string,\n experience: string,\n canonicalPath: string\n): DetailsFeatureSets {\n const transformedPackages = displayedPackages.map(pkg => {\n return {\n ...pkg,\n features: convertFeatureSetToMap([...pkg?.features, ...fakeFeatures, ...experimentFeatures]),\n };\n });\n\n return groupings.map(({ category, features }: FeaturesCategoryGroup): DetailsFeatureRow => {\n return {\n name: category,\n features: features?.map((feature: string): DetailsFeatureRowFeature => {\n return {\n ...formatDetailsFeature(feature as keyof typeof COPY, { overageCost }),\n packages: transformedPackages.map(pkg => {\n return {\n packageName: pkg.packageName,\n value:\n determineCombinedFeature(pkg.packageName, pkg.features, feature, locale, experience, canonicalPath) ??\n getFeatureValue(pkg.packageName, pkg.features[feature] || feature, locale, experience, canonicalPath),\n };\n }) as DetailsFeatureRowPackages[],\n };\n }),\n };\n });\n}\n","import { defineMessages } from '@sm/intl';\nimport PROJECT_NAME from '~app/pages/Pricing/constants/project';\n\nconst TYPE_TEXT = '[Type: Text][Vis: high] - Feature Set Category Name';\n\nexport default defineMessages({\n TEAM_COLLABORATION: {\n id: 'Pricing.categoryCopy.TeamCollaboration',\n defaultMessage: 'Team Collaboration',\n desc: {\n id: 'Pricing.categoryCopy.TeamCollaboration',\n message: `${TYPE_TEXT} - TeamCollaboration`,\n project: PROJECT_NAME,\n },\n },\n TEAM_MANAGEMENT: {\n id: 'Pricing.categoryCopy.TeamManagement',\n defaultMessage: 'Team Management',\n desc: {\n id: 'Pricing.categoryCopy.TeamManagement',\n message: `${TYPE_TEXT} - TeamManagement`,\n project: PROJECT_NAME,\n },\n },\n ENTERPRISE_GRADE_SECURITY: {\n id: 'Pricing.categoryCopy.EnterpriseGradeSecurity',\n defaultMessage: 'Enterprise-grade admin and security',\n desc: {\n id: 'Pricing.categoryCopy.EnterpriseGradeSecurity',\n message: `${TYPE_TEXT} - EnterpriseGradeSecurity`,\n project: PROJECT_NAME,\n },\n },\n SURVEY_CAPABILITIES: {\n id: 'Pricing.categoryCopy.SurveyCapabilities',\n defaultMessage: 'Survey Capabilities',\n desc: {\n id: 'Pricing.categoryCopy.SurveyCapabilities',\n message: `${TYPE_TEXT} - SurveyCapabilities`,\n project: PROJECT_NAME,\n },\n },\n FAST_SUPPORT: {\n id: 'Pricing.categoryCopy.FastSupport',\n defaultMessage: 'Fast Support',\n desc: {\n id: 'Pricing.categoryCopy.FastSupport',\n message: `${TYPE_TEXT} - FastSupport`,\n project: PROJECT_NAME,\n },\n },\n SURVEY_BUILDER: {\n id: 'Pricing.categoryCopy.SurveyBuilder',\n defaultMessage: 'Survey Builder',\n desc: {\n id: 'Pricing.categoryCopy.SurveyBuilder',\n message: `${TYPE_TEXT} - SurveyBuilder`,\n project: PROJECT_NAME,\n },\n },\n CUSTOMIZATION_BRANDING: {\n id: 'Pricing.categoryCopy.CustomizationBranding',\n defaultMessage: 'Customization & Branding',\n desc: {\n id: 'Pricing.categoryCopy.CustomizationBranding',\n message: `${TYPE_TEXT} - CustomizationBranding`,\n project: PROJECT_NAME,\n },\n },\n ANALYSIS_REPORTING: {\n id: 'Pricing.categoryCopy.AnalysisReporting',\n defaultMessage: 'Analysis & Reporting',\n desc: {\n id: 'Pricing.categoryCopy.AnalysisReporting',\n message: `${TYPE_TEXT} - AnalysisReporting`,\n project: PROJECT_NAME,\n },\n },\n RESPONSE_MANAGEMENT: {\n id: 'Pricing.categoryCopy.ResponseManagement',\n defaultMessage: 'Response Management',\n desc: {\n id: 'Pricing.categoryCopy.ResponseManagement',\n message: `${TYPE_TEXT} - ResponseManagement`,\n project: PROJECT_NAME,\n },\n },\n ENHANCED_SECURITY: {\n id: 'Pricing.categoryCopy.EnhancedSecurity',\n defaultMessage: 'Enhanced Security',\n desc: {\n id: 'Pricing.categoryCopy.EnhancedSecurity',\n message: `${TYPE_TEXT} - EnhancedSecurity`,\n project: PROJECT_NAME,\n },\n },\n PARTNER_INTEGRATIONS: {\n id: 'Pricing.categoryCopy.PartnerIntegrations',\n defaultMessage: 'Partner Integrations & APIs',\n desc: {\n id: 'Pricing.categoryCopy.PartnerIntegrations',\n message: `${TYPE_TEXT} - PartnerIntegrations`,\n project: PROJECT_NAME,\n },\n },\n});\n","import COPY from '~pricing/lib/PackageFeatures/details/categoryCopy';\n\nexport default [\n {\n category: COPY.TEAM_COLLABORATION,\n features: [\n 'add_users',\n 'collaboration',\n 'build_surveys_together',\n 'analyze_results_together',\n 'custom_templates',\n 'team_themes',\n 'shared_library',\n ],\n },\n {\n category: COPY.TEAM_MANAGEMENT,\n features: ['team_ownership', 'user_management', 'contributor_seats', 'consolidated_billing'],\n },\n {\n category: COPY.ENTERPRISE_GRADE_SECURITY,\n features: [\n 'admin_dashboard',\n 'team_activity',\n 'account_control',\n 'single_sign_on',\n 'global_settings',\n 'custom_terms_of_use',\n 'enterprise_only_integrations',\n 'hipaa_enabled',\n ],\n },\n {\n category: COPY.SURVEY_CAPABILITIES,\n features: [\n 'survey_create_limit',\n 'create_question_limit',\n 'base_response_count',\n 'web_social_email_responses',\n 'collector_create_limit',\n 'pop_up_collector',\n 'track_email_responses',\n 'mobile_apps_ios_android',\n 'recurring_surveys',\n 'payment_qt',\n 'kiosk_mode_inactivity_timer',\n 'kiosk_mode_passcode_lock',\n ],\n },\n {\n category: COPY.FAST_SUPPORT,\n features: ['email_support', 'priority_email_support', 'phone_support', 'customer_success_manager'],\n },\n {\n category: COPY.SURVEY_BUILDER,\n features: [\n 'essential_question_types',\n 'all_languages_supported',\n 'pagination',\n 'labeling_titles_numbering',\n 'create_templates_enabled',\n 'question_library',\n '508_accessibility',\n 'matrix_question_type',\n 'ranking_question_type',\n 'slider_question_type',\n 'collect_contact_information',\n 'video_question_type',\n 'rating_question_type',\n 'quiz_scoring_and_instant_results',\n 'quizzes_pro',\n 'create_skip_logic_enabled',\n 'menu_matrix_enabled',\n 'file_upload',\n 'create_randomization_enabled',\n 'a_b_testing',\n 'create_quotas_enabled',\n 'click_map_qt',\n 'multilingual',\n 'advanced_logic',\n 'multiple_block_rotation_enabled',\n 'custom_question_bank',\n ],\n },\n {\n category: COPY.CUSTOMIZATION_BRANDING,\n features: [\n 'progress_bar',\n 'text_formatting',\n 'create_logo_enabled',\n 'create_custom_theme_enabled',\n 'premium_themes',\n 'collector_friendly_url_enabled',\n 'collector_thank_you_enabled',\n 'customize_disqualification_page_enabled',\n 'create_custom_html_email_message_enabled',\n 'create_grayscale_footer',\n 'create_piping_enabled',\n 'carry_forward',\n 'create_custom_variables_enabled',\n 'create_toggle_footer_enabled',\n 'collector_completion_url_enabled',\n 'collector_white_label_enabled',\n 'custom_subdomain',\n ],\n },\n {\n category: COPY.ANALYSIS_REPORTING,\n features: [\n 'real_time_results',\n 'share_surveys',\n 'plans_benchmarks',\n 'benchmarks',\n 'analyze_trends_enabled',\n 'response_quality_enabled',\n 'analyze_combine_filters',\n 'analyze_ta_enabled',\n 'analyze_can_ta_tag',\n 'dashboard',\n 'analyze_dashboard_password_enabled',\n 'show_sig_diffs_enabled',\n 'analyze_can_customize_charts',\n 'create_print_enabled',\n 'analyze_export_enabled',\n 'download_as_ppt',\n 'analyze_export_spss_enabled',\n 'word_cloud_combine_hide',\n 'analyze_sentiment_enabled',\n 'show_create_crosstab',\n ],\n },\n {\n category: COPY.RESPONSE_MANAGEMENT,\n features: [\n 'require_answer',\n 'validate_answer',\n 'randomize_answer_choices',\n 'set_survey_end_date',\n 'view_respondent_ip_address',\n 'record_respondent_email_address',\n 'respondent_receipt',\n 'set_max_response_count',\n ],\n },\n {\n category: COPY.ENHANCED_SECURITY,\n features: ['password_protection', 'enable_ip_blocking'],\n },\n {\n category: COPY.PARTNER_INTEGRATIONS,\n features: [\n 'send_surveys',\n 'collector_mobile_sdk_enabled',\n 'mobile_sdk_pull_response_data_enabled',\n 'extract_data',\n 'private_apps',\n ],\n },\n];\n","import COPY from '~pricing/lib/PackageFeatures/details/categoryCopy';\n\nexport default [\n {\n category: COPY.SURVEY_CAPABILITIES,\n features: [\n 'survey_create_limit',\n 'create_question_limit',\n 'base_response_count',\n 'web_social_email_responses',\n 'collector_create_limit',\n 'pop_up_collector',\n 'track_email_responses',\n 'mobile_apps_ios_android',\n 'recurring_surveys',\n 'payment_qt',\n 'kiosk_mode_inactivity_timer',\n 'kiosk_mode_passcode_lock',\n ],\n },\n {\n category: COPY.TEAM_COLLABORATION,\n features: [\n 'add_users',\n 'build_surveys_together',\n 'analyze_results_together',\n 'custom_templates',\n 'team_themes',\n 'shared_library',\n ],\n },\n {\n category: COPY.FAST_SUPPORT,\n features: ['email_support', 'priority_email_support', 'phone_support'],\n },\n {\n category: COPY.TEAM_MANAGEMENT,\n features: ['team_ownership', 'user_management', 'consolidated_billing'],\n },\n {\n category: COPY.SURVEY_BUILDER,\n features: [\n 'essential_question_types',\n 'all_languages_supported',\n 'pagination',\n 'labeling_titles_numbering',\n 'create_templates_enabled',\n 'question_library',\n '508_accessibility',\n 'matrix_question_type',\n 'collect_contact_information',\n 'video_question_type',\n 'rating_question_type',\n 'quiz_scoring_and_instant_results',\n 'quizzes_pro',\n 'create_skip_logic_enabled',\n 'menu_matrix_enabled',\n 'file_upload',\n 'create_randomization_enabled',\n 'a_b_testing',\n 'create_quotas_enabled',\n 'advanced_logic',\n 'click_map_qt',\n 'multilingual',\n 'multiple_block_rotation_enabled',\n ],\n },\n {\n category: COPY.CUSTOMIZATION_BRANDING,\n features: [\n 'progress_bar',\n 'text_formatting',\n 'create_logo_enabled',\n 'create_custom_theme_enabled',\n 'premium_themes',\n 'collector_friendly_url_enabled',\n 'collector_thank_you_enabled',\n 'customize_disqualification_page_enabled',\n 'create_piping_enabled',\n 'carry_forward',\n 'create_custom_variables_enabled',\n 'create_toggle_footer_enabled',\n 'collector_completion_url_enabled',\n 'collector_white_label_enabled',\n ],\n },\n {\n category: COPY.ANALYSIS_REPORTING,\n features: [\n 'real_time_results',\n 'share_surveys',\n 'analyze_trends_enabled',\n 'response_quality_enabled',\n 'plans_benchmarks',\n 'benchmarks',\n 'analyze_combine_filters',\n 'analyze_can_customize_charts',\n 'create_print_enabled',\n 'analyze_export_enabled',\n 'download_as_ppt',\n 'analyze_ta_enabled',\n 'analyze_can_ta_tag',\n 'show_create_crosstab',\n 'show_sig_diffs_enabled',\n 'analyze_export_spss_enabled',\n ],\n },\n {\n category: COPY.RESPONSE_MANAGEMENT,\n features: [\n 'require_answer',\n 'validate_answer',\n 'randomize_answer_choices',\n 'set_survey_end_date',\n 'view_respondent_ip_address',\n 'record_respondent_email_address',\n 'set_max_response_count',\n 'respondent_receipt',\n ],\n },\n {\n category: COPY.ENHANCED_SECURITY,\n features: ['password_protection', 'enable_ip_blocking'],\n },\n {\n category: COPY.PARTNER_INTEGRATIONS,\n features: ['send_surveys', 'collector_mobile_sdk_enabled', 'mobile_sdk_pull_response_data_enabled', 'extract_data'],\n },\n];\n","import COPY from '~pricing/lib/PackageFeatures/details/categoryCopy';\nimport EXPERIMENT_COPY from '~pricing/experiments/grow_2529_forms/copy/experimentDetailsCopy';\n\nexport default [\n {\n category: EXPERIMENT_COPY.grow_2529_form_survey_capabilities,\n features: [\n 'grow_2529_survey_create_limit',\n 'grow_2529_questions_per_form_survey',\n 'base_response_count',\n 'web_social_email_responses',\n 'collector_create_limit',\n 'pop_up_collector',\n 'track_email_responses',\n 'mobile_apps_ios_android',\n 'grow_2529_recurring_surveys',\n 'grow_2529_payment_qt',\n 'kiosk_mode_inactivity_timer',\n 'kiosk_mode_passcode_lock',\n ],\n },\n {\n category: COPY.TEAM_COLLABORATION,\n features: [\n 'add_users',\n 'build_surveys_together',\n 'analyze_results_together',\n 'custom_templates',\n 'team_themes',\n 'shared_library',\n ],\n },\n {\n category: COPY.FAST_SUPPORT,\n features: ['email_support', 'priority_email_support', 'phone_support'],\n },\n {\n category: COPY.TEAM_MANAGEMENT,\n features: ['team_ownership', 'user_management', 'consolidated_billing'],\n },\n {\n category: EXPERIMENT_COPY.grow_2529_survey_builder,\n features: [\n 'essential_question_types',\n 'all_languages_supported',\n 'pagination',\n 'labeling_titles_numbering',\n 'create_templates_enabled',\n 'question_library',\n '508_accessibility',\n 'matrix_question_type',\n 'best_worst_qt',\n 'collect_contact_information',\n 'video_question_type',\n 'rating_question_type',\n 'quiz_scoring_and_instant_results',\n 'quizzes_pro',\n 'create_skip_logic_enabled',\n 'menu_matrix_enabled',\n 'file_upload',\n 'create_randomization_enabled',\n 'a_b_testing',\n 'create_quotas_enabled',\n 'advanced_logic',\n 'click_map_qt',\n 'multilingual',\n 'multiple_block_rotation_enabled',\n ],\n },\n {\n category: COPY.CUSTOMIZATION_BRANDING,\n features: [\n 'progress_bar',\n 'text_formatting',\n 'create_logo_enabled',\n 'create_custom_theme_enabled',\n 'premium_themes',\n 'collector_friendly_url_enabled',\n 'collector_thank_you_enabled',\n 'customize_disqualification_page_enabled',\n 'create_piping_enabled',\n 'carry_forward',\n 'create_custom_variables_enabled',\n 'create_toggle_footer_enabled',\n 'collector_completion_url_enabled',\n 'collector_white_label_enabled',\n ],\n },\n {\n category: COPY.ANALYSIS_REPORTING,\n features: [\n 'real_time_results',\n 'share_surveys',\n 'analyze_trends_enabled',\n 'response_quality_enabled',\n 'plans_benchmarks',\n 'benchmarks',\n 'analyze_combine_filters',\n 'analyze_can_customize_charts',\n 'grow_2529_database_response_view',\n 'create_print_enabled',\n 'analyze_export_enabled',\n 'download_as_ppt',\n 'analyze_ta_enabled',\n 'analyze_can_ta_tag',\n 'show_create_crosstab',\n 'show_sig_diffs_enabled',\n 'analyze_export_spss_enabled',\n ],\n },\n {\n category: COPY.RESPONSE_MANAGEMENT,\n features: [\n 'require_answer',\n 'validate_answer',\n 'randomize_answer_choices',\n 'set_survey_end_date',\n 'view_respondent_ip_address',\n 'record_respondent_email_address',\n 'set_max_response_count',\n 'respondent_receipt',\n ],\n },\n {\n category: COPY.ENHANCED_SECURITY,\n features: ['password_protection', 'enable_ip_blocking'],\n },\n {\n category: COPY.PARTNER_INTEGRATIONS,\n features: ['send_surveys', 'collector_mobile_sdk_enabled', 'mobile_sdk_pull_response_data_enabled', 'extract_data'],\n },\n];\n","import { CategoryGrouping } from '../types';\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\nimport teamGroupings from './teams';\nimport individualGroupings from './individual';\nimport { PackageType } from '~shared/types/pricing/package';\n\nimport GROW_2529_INDIVIDUAL_GROUPINGS from '~pricing/experiments/grow_2529_forms/transformers/details/groupings/individual';\n\nconst categoryGroupings: CategoryGrouping = {\n [PackageType.Teams]: {\n default: teamGroupings,\n },\n [PackageType.Details]: {\n default: teamGroupings,\n },\n [PackageType.Individual]: {\n default: individualGroupings,\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment1]: GROW_2529_INDIVIDUAL_GROUPINGS,\n [EXPERIMENT_IDENTIFIERS.GROW_2529_FORMS.treatment2]: GROW_2529_INDIVIDUAL_GROUPINGS,\n [EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.treatment]: GROW_2529_INDIVIDUAL_GROUPINGS,\n },\n [PackageType.Educational]: {\n default: individualGroupings,\n },\n};\n\nexport default categoryGroupings;\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nimport { StyleProps } from '~app/pages/Pricing/components/DetailsTable/Categories/types';\nimport grow2529Theme from '../../theme/grow2529-theme';\n\nexport default createUseStyles(({ spacing, palette, elevation, pricingPalette }: PricingAppTheme) => ({\n Highlighted: {\n backgroundColor: ({ packageName }: StyleProps) =>\n packageName ? grow2529Theme[packageName].primary : 'transparent',\n color: pricingPalette.colors.white,\n '& a': {\n color: pricingPalette.colors.white,\n },\n },\n Bullet: {\n borderRadius: '100%',\n backgroundColor: ({ packageName }: StyleProps) => (packageName ? grow2529Theme[packageName].primary : 'none'),\n width: 10,\n height: 10,\n display: 'block',\n },\n}));\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { HIGHLIGHT } from '~pricing/components/Summary/useStyles';\nimport { Packages } from '~shared/constants/pricing';\n\nimport { MD_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps, StyleRules } from './types';\n\nfunction getGridTemplateAreas(packageCount: number): string {\n let str = '.';\n let i;\n for (i = 1; i <= packageCount; i += 1) {\n str += ` package${i}`;\n }\n return `\"${str}\"`;\n}\nfunction getTemplateArea(): object {\n return {\n gridTemplateAreas: ({ packageCount }: StyleProps) => getGridTemplateAreas(packageCount),\n };\n}\n\nexport function getTemplate(): object {\n return {\n display: 'grid',\n gridTemplateColumns: ({ packageCount }: StyleProps) =>\n `minmax(10%, 350px) repeat(${packageCount}, minmax(10%, 250px))`,\n justifyContent: 'center',\n };\n}\n\nexport default createUseStyles(\n ({ elevation, spacing, pricingPalette, packageTheme }: PricingAppTheme) => ({\n Details: {\n padding: `0 ${spacing[4]}px`,\n margin: `0 auto ${spacing[4]}px`,\n display: 'block',\n maxWidth: 1200,\n [MD_MEDIA_QUERY]: {\n width: 'fit-content',\n },\n },\n Sticky: {\n [MD_MEDIA_QUERY]: {\n backgroundColor: pricingPalette.colors.white,\n ...getTemplate(),\n ...getTemplateArea(),\n top: 0,\n position: 'sticky',\n boxShadow: `0 4px 2px -2px rgb(0 0 0 / 11%)`,\n zIndex: elevation.sky - 1,\n },\n },\n Highlighted: {\n ...HIGHLIGHT(pricingPalette.colors.flint, packageTheme),\n },\n Package1: {\n gridArea: 'package1',\n },\n Package2: {\n gridArea: 'package2',\n },\n Package3: {\n gridArea: 'package3',\n },\n Package4: {\n gridArea: 'package4',\n },\n Package5: {\n gridArea: 'package5',\n },\n Package6: {\n gridArea: 'package6',\n },\n Mobile: {\n display: 'grid',\n [`& .package-${Packages.AdvantageAnnual}`]: {\n gridRow: 1,\n },\n [`& .package-${Packages.FormsAnnual}, & .package-${Packages.FormsMonthly}`]: {\n gridRow: 3,\n },\n [MD_MEDIA_QUERY]: {\n display: 'none',\n },\n },\n Desktop: {\n display: 'none',\n [MD_MEDIA_QUERY]: {\n display: 'block',\n },\n },\n })\n);\n","import { createUseStyles } from 'react-jss';\nimport { PricingAppTheme } from '~app/styles/pricing/types';\n\nimport { LG_MEDIA_QUERY, MD_MEDIA_QUERY, SM_MOBILE_MEDIA_QUERY } from '~shared/media-query';\nimport { StyleProps } from './types';\nimport { getTemplate } from '~pricing/components/DetailsPackagesView/useStyles';\n\nexport default createUseStyles(({ spacing, palette, elevation, pricingPalette, packageTheme }: PricingAppTheme) => ({\n AccordionControl: {\n marginBottom: spacing[4],\n '& [role=button]': {\n backgroundColor: palette.background.main,\n '& span:first-child': {\n paddingLeft: spacing[3],\n '& strong': {\n fontSize: 13,\n [MD_MEDIA_QUERY]: {\n fontSize: 16,\n },\n },\n },\n },\n '& ul li > div > div': {\n padding: 0,\n },\n },\n Cell: {\n border: `1px solid ${pricingPalette.colors.pebble}`,\n borderTop: 'none',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: `0 ${spacing[1]}px`,\n textAlign: 'center',\n [MD_MEDIA_QUERY]: {\n '&:not(:last-child)': {\n borderRight: 'none',\n },\n },\n },\n Highlighted: {\n backgroundColor: ({ packageName }: StyleProps) => (packageName ? packageTheme[packageName].primary : 'transparent'),\n color: pricingPalette.colors.white,\n '& a': {\n color: pricingPalette.colors.white,\n },\n },\n DetailRow: {\n ...getTemplate(),\n fontSize: 13,\n color: pricingPalette.colors.charcoal,\n },\n Feature: {\n padding: spacing[4],\n borderLeft: `1px solid ${pricingPalette.colors.pebble}`,\n borderBottom: `1px solid ${pricingPalette.colors.pebble}`,\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n [MD_MEDIA_QUERY]: {\n borderLeft: 'none',\n },\n },\n Bullet: {\n borderRadius: '100%',\n backgroundColor: ({ packageName }: StyleProps) => (packageName ? packageTheme[packageName].primary : 'none'),\n width: 10,\n height: 10,\n display: 'block',\n },\n BulletInverse: {\n composes: '$Bullet',\n backgroundColor: pricingPalette.colors.white,\n },\n ExpandCollapse: {\n fontSize: 13,\n left: spacing[3],\n backgroundColor: 'transparent',\n color: pricingPalette.colors.link,\n border: 'none',\n borderLeft: `1px solid ${pricingPalette.colors.pebble}`,\n borderRight: `1px solid ${pricingPalette.colors.pebble}`,\n padding: spacing[4],\n width: '100%',\n '&:hover, &:focus': {\n textDecoration: 'none',\n backgroundColor: 'transparent !important',\n color: [pricingPalette.colors.link, '!important'],\n border: 'none',\n },\n '& svg': {\n marginLeft: 5,\n },\n [SM_MOBILE_MEDIA_QUERY]: {\n display: 'inline-block',\n padding: 0,\n borderRadius: 0,\n left: 0,\n },\n [MD_MEDIA_QUERY]: {\n display: 'flex',\n padding: 0,\n border: 'none',\n borderRadius: 0,\n left: 0,\n position: 'sticky',\n top: 190,\n zIndex: elevation.sky - 1,\n margin: [-30, 0, 0, 10],\n width: 'auto',\n },\n [LG_MEDIA_QUERY]: {\n display: 'flex',\n },\n },\n TooltipContainer: {\n '&:hover $Tooltip': {\n display: 'inline-block',\n },\n [MD_MEDIA_QUERY]: {\n position: 'relative',\n },\n },\n TooltipIndicator: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 13,\n height: 13,\n fontSize: 13,\n color: 'white',\n borderRadius: '100%',\n backgroundColor: pricingPalette.colors.stone,\n cursor: 'help',\n '&:hover': {\n backgroundColor: pricingPalette.colors.flint,\n },\n marginLeft: 5,\n },\n Tooltip: {\n display: 'none',\n color: pricingPalette.colors.charcoal,\n cursor: 'auto',\n },\n}));\n","import React from 'react';\nimport { t } from '@sm/intl';\nimport { DetailsFeatureRowPackages } from '~app/pages/Pricing/transformers/details/types';\nimport PackageDefs from '~app/pages/Pricing/lib/packages/packageDefs';\n\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\nimport { EXPERIMENT_IDENTIFIERS } from '~server/routes/Pricing/experimentsConfig';\nimport useGrow2529CategoryStyles from '../../../experiments/grow_2529_forms/components/DetailsCategories/useStyles';\nimport useCategoryStyles from './useStyles';\nimport COPY from './copy';\n\nexport default function FeatureCell(pkg: DetailsFeatureRowPackages): JSX.Element {\n const { uiExperiment, priceExperiment } = usePricingExperiments();\n const isInGrow2629Treatment =\n (priceExperiment.hasAssignment &&\n priceExperiment.experimentName === EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name) ||\n (uiExperiment.hasAssignment && uiExperiment.experimentName === EXPERIMENT_IDENTIFIERS.GROW_2629_FORMS_V2.name);\n\n const styles = useCategoryStyles({ packageName: pkg.packageName });\n const grow2529styles = useGrow2529CategoryStyles({ packageName: pkg.packageName });\n const stylesToUse = isInGrow2629Treatment ? { ...styles, ...grow2529styles } : styles;\n\n const { Cell, Bullet, BulletInverse, Highlighted } = stylesToUse;\n let a11yValue = t(COPY.UNAVAILABLE);\n\n if (typeof pkg.value === 'string') {\n a11yValue = pkg.value;\n } else if (pkg.value) {\n a11yValue = t(COPY.AVAILABLE);\n }\n\n return (\n \n {typeof pkg.value === 'boolean'\n ? pkg.value && \n : pkg.value}\n \n );\n}\n","import React, { useMemo, useState, useContext, useCallback } from 'react';\nimport { useParams } from 'react-router';\nimport { StaticContext } from '@sm/webassets';\nimport { t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { Accordion } from '@wds/accordion';\nimport { IconCaretUp, IconCaretDown } from '@wds/icons';\nimport { Button } from '@sm/wds-react';\nimport getFeatureCategories from '~pricing/transformers/details';\nimport FeatureTooltip from '~pricing/components/Tooltip';\nimport categoryGroupings from '~app/pages/Pricing/transformers/details/groupings';\nimport { PackageDataSet } from '~shared/types/pricing/package';\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { usePricingExperiments } from '~shared/hooks/usePricingExperiments';\nimport { formatCostInLocaleCurrency } from '~app/pages/Pricing/lib/lib-helpers';\nimport { DetailsFeatureRowFeature } from '~pricing/transformers/details/types';\n\nimport FeatureCell from './FeatureCell';\nimport useCategoryStyles from './useStyles';\nimport COPY from '~app/pages/Pricing/copy';\nimport { ToggleState } from './types';\n\nconst CaretDown = ;\nconst CaretUp = ;\nconst expandAll = t(COPY.EXPAND_ALL);\nconst collapseAll = t(COPY.COLLAPSE_ALL);\n\nexport default function Categories({\n displayedPackages,\n isMobile,\n}: {\n displayedPackages: PackageDataSet;\n isMobile?: boolean;\n}): JSX.Element {\n const {\n environment: { slLanguageLocale },\n } = useContext(StaticContext);\n const { canonicalPath, subPath } = useParams();\n const { uiExperiment } = usePricingExperiments();\n\n const { overageCost } = usePackages();\n\n const { AccordionControl, DetailRow, Feature, TooltipContainer, TooltipIndicator, Tooltip, ExpandCollapse } =\n useCategoryStyles({\n packageCount: displayedPackages.length,\n });\n\n const formattedOverageCost = useMemo(\n () => overageCost && formatCostInLocaleCurrency(overageCost, 2),\n [overageCost]\n ) as string;\n\n // get the experience name if there is one\n const experience = (uiExperiment.hasAssignment && uiExperiment.treatmentName) || '';\n /**\n * Since /pricing/details is a valid route lets handle experiments categories accordingly\n * See src/app/pages/Pricing/pages/index.ts L24 for the regex path matching\n */\n const currentPath = canonicalPath ?? subPath;\n const categories = useMemo(() => {\n const groupings = categoryGroupings[currentPath][experience] ?? categoryGroupings[currentPath].default;\n return getFeatureCategories(\n displayedPackages,\n groupings,\n slLanguageLocale,\n formattedOverageCost,\n experience,\n currentPath\n );\n }, [experience, currentPath, displayedPackages, slLanguageLocale, formattedOverageCost]);\n const categoryIndices: number[] = categories.map((_category, index) => index);\n\n const initialState: ToggleState = useMemo(() => {\n return {\n initialLoad: isMobile,\n isExpanded: !isMobile,\n indices: isMobile ? [0] : categoryIndices,\n text: isMobile ? expandAll : collapseAll,\n icon: isMobile ? CaretUp : CaretDown,\n };\n }, [categoryIndices, isMobile]);\n const [toggleData, setToggleData] = useState(initialState);\n\n const handleToggle = useCallback(\n (event: React.SyntheticEvent): void => {\n event.preventDefault();\n setToggleData({\n initialLoad: false,\n isExpanded: !toggleData.isExpanded,\n indices: !toggleData.initialLoad && toggleData.indices.length ? [] : categoryIndices,\n text: toggleData.isExpanded ? expandAll : collapseAll,\n icon: toggleData.isExpanded ? CaretUp : CaretDown,\n });\n },\n [categoryIndices, toggleData]\n );\n\n const key = isMobile ? 'Mobile' : 'Desktop';\n\n const featureRowCells = (feature: DetailsFeatureRowFeature, id: string): JSX.Element => {\n return (\n <>\n {feature?.packages.map(pkg => (\n \n ))}\n \n );\n };\n\n return (\n <>\n \n \n {\n setToggleData({\n ...initialState,\n indices: isExpanding\n ? ([categoryIndices, index] as number[])\n : categoryIndices.filter(item => item !== index),\n });\n }}\n >\n {/* name: NAME rename to preserve the COPY constant format */}\n {categories.map(({ name: NAME, features }, index) => (\n \n
    \n {features?.map(feature => (\n
    \n
    \n {feature.summary}\n {feature.tooltip && feature.tooltipHeading && (\n \n ?\n \n \n \n \n )}\n
    \n {featureRowCells(feature, NAME.id)}\n
    \n ))}\n
    \n \n ))}\n \n
    \n \n );\n}\n","import React, { Fragment, useContext } from 'react';\nimport { StaticContext } from '@sm/webassets';\nimport { Box } from '@wds/box';\nimport { Responsive } from '@wds/responsive';\nimport { PricingData } from './types';\n\nimport DetailsPackageHeader from '~pricing/components/DetailsTable/PackageHeader';\nimport Categories from '~app/pages/Pricing/components/DetailsTable/Categories';\nimport useTreatment from '~pricing/hooks/useTreatment';\n\nimport useDetailsStyles from './useStyles';\n\nexport default function DetailsPackagesView({ packageData, discountInfo }: PricingData): JSX.Element {\n const { Details, Sticky, Mobile, Desktop } = useDetailsStyles({\n packageCount: packageData.length,\n });\n const {\n uiExperiment: { GROW_2529_FORMS_TREATMENT1, GROW_2529_FORMS_TREATMENT2, GROW_2629_FORMS_V2_TREATMENT },\n } = useTreatment();\n\n const { ssrEnv } = useContext(StaticContext);\n\n if (!packageData) {\n return <>;\n }\n\n const GROW_2529_TREATMENT = GROW_2629_FORMS_V2_TREATMENT || GROW_2529_FORMS_TREATMENT1 || GROW_2529_FORMS_TREATMENT2;\n\n return (\n \n \n \n {packageData.map((pricingPackage, index: number) => {\n if (pricingPackage) {\n const { comparisonSkuCost, skuCost, packageName } = pricingPackage;\n const packageClassName = GROW_2529_FORMS_TREATMENT2 ? '' : `package-${packageName}`;\n return (\n
    \n {GROW_2529_TREATMENT ? (\n \n ) : (\n \n )}\n \n
    \n );\n }\n return null;\n })}\n
    \n
    \n\n \n \n \n {packageData.map((pricingPackage, index: number) => {\n if (pricingPackage) {\n const { comparisonSkuCost, skuCost, packageName } = pricingPackage;\n return (\n \n {GROW_2529_TREATMENT ? (\n \n ) : (\n \n )}\n \n );\n }\n return null;\n })}\n \n \n \n \n
    \n );\n}\n","import React, { useEffect } from 'react';\nimport { useParams } from 'react-router';\nimport { t } from '@sm/intl';\nimport { createURL } from '@sm/utils';\nimport { useExperiment } from '@sm/webassets';\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\n\nimport BackToSummary from '~pricing/components/BackToSummary';\nimport MainHeading from '~pricing/components/MainHeading';\nimport Navigation from '~pricing/components/Navigation';\nimport DetailsFooter from '~pricing/components/PricingFooter';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport COPY from '~app/pages/Pricing/copy';\nimport DetailsPackagesView from '~pricing/components/DetailsPackagesView';\nimport { usePackages } from '~shared/hooks/usePackages';\nimport { usePricingState } from '~shared/hooks/usePricingState';\nimport DiscountBanner from '~pricing/components/DiscountBanner';\n/**\n * This only gets generated on the details page. If canonical path is missing then,\n * we must be on the /pricing/details (canonical to details), the back link should default to teams summary\n * with ut_source attached as per legacy billweb\n */\n\nexport default function PricingDetailsPage(): JSX.Element {\n const { canonicalPath } = useParams();\n const { allPackages, discountInfo } = usePackages();\n\n const {\n state: {\n packages: { displayPackages },\n },\n } = usePricingState();\n const { pageUtSource } = useTrackingDetails();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const { treatments: discountBannerTreatments } = useExperiment({\n name: 'billing_20014_teams_discount',\n treatmentNames: ['billing_20014_teams_discount_control', 'billing_20014_teams_discount_treatment'],\n });\n\n const showDiscountBanner = discountBannerTreatments?.billing_20014_teams_discount_treatment?.treatmentName;\n\n return (\n
    \n
    \n \n {showDiscountBanner && }\n {t(COPY.DETAILS_HEADING)}\n \n
    \n \n \n
    \n );\n}\n","import { createUseStyles } from 'react-jss';\n\nimport { PricingAppTheme } from '~app/styles/pricing/types';\nimport { StyleProps } from './types';\n\nconst useEnterprisePageStyles = createUseStyles(({ pricingPalette, spacing }) => ({\n ContactList: {\n lineHeight: '1.8',\n listStyleType: 'none',\n textAlign: 'center',\n marginTop: spacing[1],\n },\n FeatureItem: {\n fontSize: '16px',\n textAlign: 'left',\n lineHeight: '32px',\n '&:before': {\n content: '\"•\"',\n marginLeft: '-35px',\n marginRight: spacing[3],\n paddingRight: spacing[4],\n color: pricingPalette.colors.sabaeus,\n },\n },\n ListHeading: {\n fontSize: '16px',\n textAlign: 'left',\n marginTop: '5px',\n lineHeight: '32px',\n maxWidth: '350px',\n },\n TypographyBolded: {\n fontSize: '32px',\n fontWeight: '500',\n margin: '16px 0',\n color: pricingPalette.colors.charcoal,\n },\n HubSpotWrapper: {\n background: pricingPalette.colors.canvas,\n },\n}));\n\nexport default useEnterprisePageStyles;\n","import React from 'react';\n\nimport { Box } from '@wds/box';\nimport { t } from '@sm/intl';\nimport { Typography } from '@wds/typography';\n\nimport COPY from './copy';\n\nimport useEnterprisePageStyles from './useStyles';\n\nexport default function ContactUs(): JSX.Element {\n const { ContactList, FeatureItem, ListHeading, TypographyBolded } = useEnterprisePageStyles();\n\n return (\n <>\n \n {/* Change div line below to following once wds/typography is changed to v3+ to inherit styling\n \n also remove class in style file */}\n

    {t(COPY.CONTACT_US_TODAY)}

    \n

    {t(COPY.LEARN_MORE)}

    \n \n \n
  • {t(COPY.MANAGE_USERS)}
  • \n
  • {t(COPY.CONFIDENTIAL_DATA)}
  • \n
  • {t(COPY.FEEDBACK)}
  • \n
    \n
    \n
    \n \n );\n}\n","import React, { useMemo } from 'react';\nimport { t } from '@sm/intl';\nimport { isEnterprisePackage } from '@sm/utils';\nimport { Grid } from '@wds/grid';\nimport { Box } from '@wds/box';\n\nimport MainHeading from '~pricing/components/MainHeading';\nimport Navigation from '~pricing/components/Navigation';\nimport HubSpotForm from '~pricing/components/HubSpotForm';\nimport { usePackages } from '~shared/hooks/usePackages';\n\nimport COPY from './copy';\nimport ContactUs from './ContactUs';\n\nimport useEnterprisePageStyles from './useStyles';\n\nexport default function EnterprisePage(): JSX.Element {\n const { HubSpotWrapper } = useEnterprisePageStyles();\n const { userPackage } = usePackages();\n const isEnterpriseUser = useMemo(() => isEnterprisePackage(parseInt(userPackage?.id, 10)), [userPackage]);\n\n return (\n
    \n
    \n {t(isEnterpriseUser ? COPY.SURVEY_MONKEY_ENTERPRISE : COPY.MAIN_HEADING)}\n {!isEnterpriseUser && }\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n );\n}\n","import { createUseStyles } from 'react-jss';\n\nexport default createUseStyles({\n ViewPricingLink: {\n display: 'inline-flex',\n alignItems: 'center',\n fontSize: 14,\n '& svg': {\n marginLeft: 3,\n },\n },\n});\n","import React, { useEffect, useMemo } from 'react';\nimport { useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { t } from '@sm/intl';\nimport { createURL } from '@sm/utils';\nimport { IconArrowRight } from '@wds/icons';\nimport { Typography } from '@wds/typography';\nimport { NavRouteParams } from '~pricing/components/Navigation/types';\n\nimport COPY from '~app/pages/Pricing/copy';\nimport BackToSummary from '~pricing/components/BackToSummary';\nimport DetailsPackagesView from '~pricing/components/DetailsPackagesView';\nimport MainHeading from '~pricing/components/MainHeading';\nimport Navigation from '~pricing/components/Navigation';\nimport DetailsFooter from '~pricing/components/PricingFooter';\nimport useTrackingDetails from '~pricing/hooks/useTrackingDetails';\nimport { usePackages } from '~shared/hooks/usePackages';\n\nimport useEducationalStyles from './useStyles';\nimport EduContext from '~shared/hooks/eduContext';\n\nexport default function EducationalDetailsPage(): JSX.Element {\n const { ViewPricingLink } = useEducationalStyles();\n const { canonicalPath } = useParams();\n const { displayPackages, discountInfo } = usePackages();\n const { pageUtSource } = useTrackingDetails();\n\n const path = canonicalPath === 'educational' ? 'individual' : canonicalPath;\n const viewPricingLinkText = t(COPY.VIEW_PRICING);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const isEduValue = useMemo(\n () => ({\n isEdu: true,\n }),\n []\n );\n\n return (\n
    \n
    \n \n {t(COPY.EDUCATIONAL_HEADING)}\n \n {t(COPY.EDUCATIONAL_SUBHEADING)}{' '}\n \n {viewPricingLinkText}\n \n \n \n \n
    \n \n \n \n \n
    \n );\n}\n","import withPageHandler from '~pricing/hocs/withPageHandler';\nimport PricingSummary from './Summary';\nimport PricingDetails from './Details';\nimport EnterprisePage from './Enterprise';\nimport EducationalPage from './Educational';\n\n/**\n * Please note /pricing/details is a valid route that renders the team details page\n * We should always take into account this route in all our experiments and use cases.\n */\nexport default [\n {\n component: withPageHandler(PricingSummary),\n paths: [\n '/pricing',\n '/pricing/',\n '/pricing/upgrade/',\n '/pricing/upgrade/quickview/',\n '/pricing/:canonicalPath(individual|teams)',\n ],\n },\n {\n component: withPageHandler(EnterprisePage),\n paths: ['/pricing/:canonicalPath(enterprise)/:subPath(details)?'],\n },\n {\n component: withPageHandler(PricingDetails),\n paths: ['/pricing/:canonicalPath(details|individual|teams)?/:subPath(details)'],\n },\n {\n component: withPageHandler(EducationalPage),\n paths: ['/pricing/:canonicalPath(educational)'],\n },\n];\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { PricingRouteProps } from './types';\n\nconst UPGRADE_PATH = '/pricing/upgrade/';\n\nconst PricingRoutes: React.FC = ({ redirectPath, path, ...rest }) => {\n const { location } = rest;\n const search = location?.search;\n // Since we will eventually get rid of the upgrade path\n if (path?.includes(UPGRADE_PATH)) {\n return ;\n }\n return ;\n};\n\nexport default PricingRoutes;\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport { FourOhFourErrorPage } from '@sm/webassets';\n\nimport Layout from '~pricing/components/Layout';\nimport pages from '~pricing/pages';\nimport useTreatment from '~pricing/hooks/useTreatment';\n\nimport PricingRoutes from './PricingRoutes';\n\nconst PricingRouter = (): JSX.Element => {\n const {\n uiExperiment: { ENTERPRISE_FEATURES_GP69 },\n } = useTreatment();\n\n // GP-69: this experiment is a full page take over for enterprise users\n // viewing the pricing pages and doesn't fit into the standard page layout.\n // we'll let it provide all of its own stuff as necessary\n\n if (ENTERPRISE_FEATURES_GP69) {\n return ;\n }\n\n return (\n \n \n {pages.map(page =>\n page.paths.map((path: string) => (\n \n ))\n )}\n \n \n \n );\n};\n\nexport default PricingRouter;\n","import React from 'react';\n\nimport { PricingExperimentProvider } from '~shared/hooks/usePricingExperiments';\nimport { PackageDataProvider } from '~shared/hooks/usePricingExperience';\nimport { PricingStateProvider } from '~shared/hooks/usePricingState';\nimport { PricingPageProps } from './types';\nimport PricingRouter from './router';\n\nconst PricingPage = ({ experiments, pricingExperience }: PricingPageProps = {}): JSX.Element => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default PricingPage;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\nimport { withRouter } from 'react-router-dom';\n\nimport { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport { StaticContext, Autocomplete } from '@sm/webassets';\nimport { defineMessages } from '@sm/intl';\n\nimport './search-box.scss';\nimport publishedApplicationListingsByKeywordQuery from './SearchBox.graphql';\nimport AppPlaceHolderImg from '../../static/images/app-placeholder.png';\n\nexport const COPY = defineMessages({\n SEARCHBOX_PLACEHOLDER: {\n id: 'AppsDirectory.SearchBox.Placeholder',\n defaultMessage: 'Search the App Directory',\n description: '[Type: Label][Vis.: high] - A placeholder text for the search box indicating its intention',\n },\n});\n\nfunction mapItemsToAutocomplete({ publishedApplicationListingsByKeyword: { items } }) {\n return items.map(({ name: text, logo, id, links: { detail: link } }) => ({\n text,\n logo,\n id,\n link,\n }));\n}\n\nclass SearchBox extends Component {\n state = {\n keyword: '',\n };\n\n handleTermChanged = keyword => {\n this.setState({ keyword });\n };\n\n handleItemSelected = ({ link }) => {\n window.location.assign(link);\n };\n\n handleSubmit = keyword => {\n MetricsTracker.track({\n name: USER_EVENTS.ELEMENT_INTERACTION,\n data: {\n amplitudeEvent: 'app directory searched',\n actionType: 'directory_search.searched',\n actionFlow: 'directory_search',\n searchTerm: keyword,\n location: this.props.location,\n },\n });\n this.props.history.push(`/apps/search?q=${keyword}`);\n };\n\n render() {\n const { environment } = this.context;\n return (\n \n {({ loading, error, data }) => {\n return (\n
    \n (\n
    \n {text}\n {text}\n
    \n )}\n />\n
    \n );\n }}\n \n );\n }\n}\n\nSearchBox.propTypes = {\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n }).isRequired,\n location: PropTypes.string.isRequired,\n};\n\nexport default withRouter(SearchBox);\nSearchBox.contextType = StaticContext;\n","import React, { useContext } from 'react';\n\nimport { StaticContext } from '@sm/webassets';\nimport { defineMessages } from '@sm/intl';\nimport { Typography } from '@sm/wds-react';\n\nimport SearchBox from '../../../../components/SearchBox';\nimport './jumbo-header.scss';\n\nexport const COPY = defineMessages({\n JUMBO_TAGLINE: {\n id: 'Home.JumboHeader.Tagline',\n defaultMessage: \"We're better together\",\n description: '[Type: Header][Vis.: high] - The main tagline for the home page',\n },\n JUMBO_SUBTITLE: {\n id: 'Home.JumboHeader.Subtitle',\n defaultMessage: 'Integrate with over 100+ SurveyMonkey apps and plug-ins to get more done',\n description: \"[Type: Header][Vis.: high] - A small description of what's available on the app directory page\",\n },\n});\n\nconst JumboHeader = () => {\n const { user, HEADER_EXP: { isModernTreatment = false } = {} } = useContext(StaticContext);\n const shouldShowNewHeader = user.isAuthenticated && isModernTreatment;\n return (\n \n \n {COPY.JUMBO_TAGLINE.defaultMessage}\n \n \n {COPY.JUMBO_SUBTITLE.defaultMessage}\n \n
    \n \n
    \n \n );\n};\n\nexport default JumboHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// TODO: put this back after investigating the issue\n// import LinkWithSearch from '../LinkWithSearch';\nimport { Link } from 'react-router-dom';\n\nconst AppLink = props => {\n const {\n app: {\n isIntegration,\n links: { detail },\n },\n children,\n } = props;\n return (\n \n -1}>\n \n \n {children}\n \n \n \n \n \n \n {children}\n \n \n \n \n );\n};\n\nAppLink.propTypes = {\n app: PropTypes.shape({\n isIntegration: PropTypes.bool.isRequired,\n links: PropTypes.shape({\n detail: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default AppLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Typography, Grid, Row, Col } from '@sm/wds-react';\n\nimport AppPlaceHolderImg from '../../../../static/images/app-placeholder.png';\nimport AppLink from '../../../../components/AppLink';\n\nimport './apps-grid.scss';\n\nconst AppsGrid = ({ apps }) => {\n return (\n \n \n {apps.map(app => (\n \n \n
    \n {app.name}\n {app.name}\n \n \n \n {app.categories[0].name}\n \n \n \n
    \n
    \n \n ))}\n
    \n
    \n );\n};\n\nAppsGrid.propTypes = {\n apps: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n logo: PropTypes.string.isRequired,\n links: PropTypes.shape({\n detail: PropTypes.string.isRequired,\n }),\n categories: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired\n ),\n })\n ).isRequired,\n};\n\nexport default AppsGrid;\n","import React, { useContext } from 'react';\n\nimport { SkeletonLoader, TabletScreen, MobileScreen, StaticContext } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nconst AppsGridSkeleton = props => {\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n <>\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default AppsGridSkeleton;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\nimport { withRouter } from 'react-router-dom';\n\nimport { StaticContext, ErrorCard } from '@sm/webassets';\nimport { defineMessages } from '@sm/intl';\nimport { Typography } from '@sm/wds-react';\n\nimport publishedApplicationListingsQuery from './AppsGrid.graphql';\nimport AppsGrid from './AppsGrid';\nimport AppsGridSkeleton from './AppsGridSkeleton';\n\nexport const COPY = defineMessages({\n FEATURED_APPS_TITLE: {\n id: 'Home.AppsGrid.FeaturedTitle',\n defaultMessage: 'Featured',\n description: '[Type: Header][Vis.: high] - A section title for a grid displaying the featured apps',\n },\n RECENTLY_ADDED_APPS_TITLE: {\n id: 'Home.AppsGrid.RecentlyAddedTitle',\n defaultMessage: 'Recently Added',\n description: '[Type: Header][Vis.: high] - A section title for a grid displaying the recently apps',\n },\n MOST_RECENT_APPS_TITLE: {\n id: 'Home.AppsGrid.MostRecentTitle',\n defaultMessage: 'Most Popular',\n description: '[Type: Header][Vis.: high] - A section title for a grid displaying the most popular apps',\n },\n GRID_APPS_SEE_MORE: {\n id: 'Home.AppsGrid.SeeMore',\n defaultMessage: 'See More',\n description:\n '[Type: Link][Vis.: med] - A link to redirect the user so it can see more apps from the current displayed category',\n },\n});\n\nconst FEATURED = 'FEATURED';\nconst RECENTLY_ADDED = 'RECENTLY_ADDED';\nconst MOST_POPULAR = 'MOST_POPULAR';\n\nconst retrieveValuesForGridOption = option => {\n const page = 1;\n const defaultPageSize = 6;\n switch (option) {\n case FEATURED:\n return {\n title: COPY.FEATURED_APPS_TITLE.defaultMessage,\n moreLink: '/apps/featured-apps',\n page,\n pageSize: defaultPageSize,\n };\n\n case RECENTLY_ADDED:\n return {\n title: COPY.RECENTLY_ADDED_APPS_TITLE.defaultMessage,\n moreLink: '/apps/recently-added',\n page,\n pageSize: defaultPageSize,\n };\n\n case MOST_POPULAR:\n return {\n title: COPY.MOST_RECENT_APPS_TITLE.defaultMessage,\n moreLink: '/apps/most-popular',\n page,\n pageSize: 9,\n };\n\n default:\n return ['', '#', page, defaultPageSize];\n }\n};\n\nconst AppsGridContainer = ({ gridOption, location: { search } }) => {\n const { title, moreLink, page, pageSize } = retrieveValuesForGridOption(gridOption);\n const {\n environment: { languageId, subdomain, tld },\n } = useContext(StaticContext);\n return (\n \n {({ loading, error, data }) => {\n return (\n
    \n
    \n \n {title}\n \n \n \n {/* The query params need to be preserved between urls (needed for ut_source) */}\n \n {COPY.GRID_APPS_SEE_MORE.defaultMessage}\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n );\n }}\n \n );\n};\n\nAppsGridContainer.propTypes = {\n environment: PropTypes.shape({\n languageId: PropTypes.number.isRequired,\n }),\n gridOption: PropTypes.oneOf([FEATURED, MOST_POPULAR, RECENTLY_ADDED]).isRequired,\n location: PropTypes.shape({\n search: PropTypes.string,\n }).isRequired,\n};\n\nAppsGridContainer.defaultProps = {\n environment: {\n languageId: 1,\n },\n};\n\nexport default withRouter(AppsGridContainer);\n","import React from 'react';\n\nimport { SkeletonLoader } from '@sm/webassets';\n\nconst SidebarSkeleton = props => (\n \n \n \n \n \n);\n\nexport default SidebarSkeleton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\n\nconst LinkWithSearch = ({\n pathname,\n location: { search },\n // removes staticContext from the props that are being passed down to prevent a React warning\n staticContext, // eslint-disable-line\n ...args\n}) => {\n return (\n \n {args.children}\n \n );\n};\n\nLinkWithSearch.propTypes = {\n pathname: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n location: PropTypes.shape({\n search: PropTypes.string,\n }).isRequired,\n};\n\nexport default withRouter(LinkWithSearch);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\n\nimport { StaticContext, TabletScreen, MobileScreen } from '@sm/webassets';\nimport { defineMessages } from '@sm/intl';\nimport { Typography, Accordion, AccordionItem, List, ListItem } from '@sm/wds-react';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport './navbar.scss';\nimport publishedApplicationListingCategoriesQuery from './NavBar.graphql';\nimport SidebarSkeleton from './SideBarSkeleton';\n// LinkWithSearch should be used so it will keep any existing query arguments present in the url (needed for ut_source)\nimport LinkWithSearch from '../LinkWithSearch';\n\nexport const COPY = defineMessages({\n NAVBAR_APPS_DIRECTORY: {\n id: 'AppsDirectory.NavBar.AppsDirectory',\n defaultMessage: 'App Directory',\n description: `[Type: Header][Vis.: high] - A section title for a group of links on the page's sidebar`,\n },\n NAVBAR_CATEGORIES: {\n id: 'AppsDirectory.NavBar.Categories',\n defaultMessage: 'App Category',\n description: `[Type: Header][Vis.: high] - A section title for a group of links on the page's sidebar`,\n },\n NAVBAR_MY_APPS: {\n id: 'AppsDirectory.NavBar.MyApps',\n defaultMessage: 'My Apps',\n description: `[Type: Link][Vis.: med] - A link on the sidebar directing the user to its installed apps`,\n },\n NAVBAR_FEATURED: {\n id: 'AppsDirectory.NavBar.Featured',\n defaultMessage: 'Featured',\n description: `[Type: Link][Vis.: med] - A link on the sidebar directing the user the featured apps`,\n },\n NAVBAR_MOST_POPULAR: {\n id: 'AppsDirectory.NavBar.MostPopular',\n defaultMessage: 'Most Popular',\n description: `[Type: Link][Vis.: med] - A link on the sidebar directing the user to the most popular apps`,\n },\n NAVBAR_RECENTLY_ADDED: {\n id: 'AppsDirectory.NavBar.RecentlyAdded',\n defaultMessage: 'Recently Added',\n description: `[Type: Link][Vis.: med] - A link on the sidebar directing the user to the most recently added apps`,\n },\n});\n\nconst SidebarLink = ({ target, text, 'data-testid': dataTestId }) => (\n
  • \n \n {text}\n \n
  • \n);\n\nSidebarLink.propTypes = {\n target: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n 'data-testid': PropTypes.string,\n};\n\nSidebarLink.defaultProps = {\n 'data-testid': 'NavBar__SidebarLink',\n};\n\nconst NavBar = props => {\n const {\n environment: { languageId },\n user,\n userAgent,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n
    \n \n {({ loading, data, error }) => {\n return (\n <>\n \n \n \n \n \n \n \n \n {COPY.NAVBAR_MY_APPS.defaultMessage}\n \n \n \n \n \n \n \n \n \n {COPY.NAVBAR_FEATURED.defaultMessage}\n \n \n \n \n {COPY.NAVBAR_MOST_POPULAR.defaultMessage}\n \n \n \n \n {COPY.NAVBAR_RECENTLY_ADDED.defaultMessage}\n \n \n \n \n \n \n \n \n {data.publishedApplicationListingCategories.map(cat => (\n \n \n {cat.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n {COPY.NAVBAR_APPS_DIRECTORY.defaultMessage}\n \n
      \n \n \n \n \n \n \n
    \n \n {COPY.NAVBAR_CATEGORIES.defaultMessage}\n \n \n \n \n \n null\n \n
      \n {data.publishedApplicationListingCategories.map(cat => (\n \n ))}\n
    \n
    \n
    \n
    \n \n );\n }}\n
    \n
    \n );\n};\n\nexport default NavBar;\n","import React from 'react';\n\nimport { SkeletonLoader } from '@sm/webassets';\nimport { ProgressCircle } from '@sm/wds-react';\n\nimport './ucs-module-loaders.scss';\n\nconst TopBarSkeleton = () => (\n
    \n \n
    \n);\n\nconst DefaultLoader = () => (\n
    \n \n
    \n);\n\nconst MODULE_SKELETONS = {\n top_bar: TopBarSkeleton,\n};\n\nexport default DefaultLoader;\nexport { MODULE_SKELETONS };\n","import React, { Component } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ErrorBoundary, clientErrorHandler } from '@sm/webassets';\n\nimport { sanitizeString } from '@sm/utils';\nimport DefaultLoader, { MODULE_SKELETONS } from './UCSModuleLoaders';\n\nconst UCS_CONTAINER_ID_PREFIX = 'ucs-content';\n\n// TODO: this component is a duplicate of UCSModule from coreweb and\n// will need to be moved somewhere common\nclass UCSModule extends Component {\n static propTypes = {\n className: PropTypes.string,\n moduleName: PropTypes.string,\n customLoader: PropTypes.node,\n };\n\n static defaultProps = {\n moduleName: null,\n className: null,\n customLoader: null,\n };\n\n state = {\n data: {\n moduleHTML: null,\n },\n loading: true,\n error: false,\n };\n\n componentDidMount() {\n this._isMounted = true;\n this.getModuleHTML();\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n getPreloadedModule() {\n const { moduleName } = this.props;\n const moduleContainer = document.getElementById(`${UCS_CONTAINER_ID_PREFIX}-${moduleName}`);\n if (moduleContainer) {\n moduleContainer.remove();\n return moduleContainer.textContent;\n }\n return null;\n }\n\n async getModuleHTML() {\n const reFetchFailed = () => {\n this.setState({\n loading: false,\n error: true,\n });\n };\n\n let moduleHTML = this.getPreloadedModule();\n if (!moduleHTML) {\n try {\n moduleHTML = await this.reFetchModule();\n if (!this._isMounted) {\n return null;\n }\n } catch (error) {\n if (!this._isMounted) {\n return null;\n }\n clientErrorHandler.logError(error, 'ucsFetchFailure');\n return reFetchFailed();\n }\n }\n\n if (moduleHTML === null) {\n return reFetchFailed();\n }\n\n return this.setState({\n data: { moduleHTML },\n loading: false,\n error: false,\n });\n }\n\n async reFetchModule() {\n const { moduleName } = this.props;\n const moduleContent = await fetch(`/content/api/ucs/${moduleName}/html`, {\n credentials: 'include',\n });\n const moduleJson = await moduleContent.json();\n return moduleJson.html;\n }\n\n renderLoadingState = () => {\n const { customLoader, moduleName } = this.props;\n const ModuleLoader = MODULE_SKELETONS[moduleName];\n\n if (customLoader) {\n return customLoader;\n }\n\n if (ModuleLoader) {\n return ;\n }\n\n return ;\n };\n\n render() {\n const { className } = this.props;\n const { data, loading, error } = this.state;\n // fail silently\n const errorComponent = null;\n\n const classNames = classnames('sm-ucs-module__content-container', className);\n\n return (\n \n {this.renderLoadingState()}\n {errorComponent}\n \n \n \n \n );\n }\n}\n\nconst BoundUCSModule = props => (\n \n \n \n);\n\nexport default BoundUCSModule;\n","/**\n * Get the canonical URL for the current page\n * @returns {canonicalUrl} string\n */\nexport default function getCanonicalUrlOrNoIndex(subdomain, domain, tld, url) {\n let path = '';\n let noIndex = false;\n let canonicalUrl = '';\n\n if (subdomain !== 'www' || tld !== 'com') {\n noIndex = true;\n } else {\n if (typeof window !== 'undefined') {\n path = window.location.pathname;\n } else {\n path = url.indexOf('?') > -1 ? url.substr(0, url.indexOf('?')) : url;\n }\n\n if (path.substr(-1) !== '/') {\n path += '/';\n }\n\n canonicalUrl = `https://${subdomain}.${domain}.${tld}${path}`;\n }\n\n return { noIndex, canonicalUrl };\n}\n","export default function switchAccountsUrl(pathname, search) {\n const epParam = `ep=${encodeURIComponent(pathname + search)}`;\n const sep = search ? '&' : '?';\n return `/user/account/select${search}${sep}${epParam}`;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { Typography, Menu, MenuItem, Button } from '@sm/wds-react';\nimport { IconCaretDown } from '@sm/wds-icons';\nimport { Logo } from '@sm/webassets';\nimport { defineMessages, T } from '@sm/intl';\n// LinkWithSearch should be used so it will keep any existing query arguments present in the url (needed for ut_source)\nimport LinkWithSearch from '../LinkWithSearch';\nimport switchAccountsUrl from './switchAccountsUrl';\n\nconst COPY = defineMessages({\n NAV_MY_ACCOUNT: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.MyAccountLink',\n defaultMessage: 'My Account',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to their profile page',\n },\n NAV_SWITCH_ACCOUNTS: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.SwitchAccountsLink',\n defaultMessage: 'Switch accounts',\n description: '[Type: Label][Vis.: high] - A link that will direct the user to the switch accounts page',\n },\n NAV_HELP_CENTER: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.HelpCenterLink',\n defaultMessage: 'Help Center',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the help center page',\n },\n NAV_SIGN_OUT: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.SignOutLink',\n defaultMessage: 'Sign Out',\n description: '[Type: Link][Vis.: Low] - A link that will sign the user out',\n },\n NAV_SIGN_IN: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.SignInLink',\n defaultMessage: 'Sign In',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the sign in page',\n },\n NAV_SIGN_UP: {\n id: 'AppsDirectory.AppDirNavHeaderDesktop.SignUpLink',\n defaultMessage: 'Sign Up',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the sign up page',\n },\n});\n\nconst AppDirNavHeaderDesktop = ({\n navItems,\n shouldDisplayNavItem,\n isAuthenticated,\n username,\n showSwitchAccounts,\n location: { pathname, search },\n}) => {\n return (\n
    \n \n \n \n App Directory\n \n \n
    \n \n
    \n \n \n
    \n \n {username}\n \n
    \n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n \n \n
    \n
    \n \n \n );\n};\n\nAppDirNavHeaderDesktop.propTypes = {\n navItems: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.string.isRequired,\n text: PropTypes.node.isRequired,\n requiresAuthentication: PropTypes.bool,\n })\n ).isRequired,\n shouldDisplayNavItem: PropTypes.func.isRequired,\n isAuthenticated: PropTypes.bool.isRequired,\n username: PropTypes.string.isRequired,\n location: PropTypes.shape({\n pathname: PropTypes.string,\n search: PropTypes.string,\n }).isRequired,\n showSwitchAccounts: PropTypes.bool,\n};\n\nAppDirNavHeaderDesktop.defaultProps = {\n showSwitchAccounts: false,\n};\n\nexport default withRouter(AppDirNavHeaderDesktop);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { Menu, MenuGroup, MenuItem } from '@sm/wds-react';\nimport { IconMenu, IconLogoGoldie } from '@sm/wds-icons';\nimport { defineMessages, T } from '@sm/intl';\nimport switchAccountsUrl from './switchAccountsUrl';\n\nconst COPY = defineMessages({\n NAV_MY_ACCOUNT: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.MyAccountLink',\n defaultMessage: 'My Account',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to their profile page',\n },\n NAV_SWITCH_ACCOUNTS: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.SwitchAccountsLink',\n defaultMessage: 'Switch accounts',\n description: '[Type: Label][Vis.: high] - A link that will direct the user to the switch accounts page',\n },\n NAV_HELP_CENTER: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.HelpCenterLink',\n defaultMessage: 'Help Center',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the help center page',\n },\n NAV_SIGN_OUT: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.SignOutLink',\n defaultMessage: 'Sign Out',\n description: '[Type: Link][Vis.: Low] - A link that will sign the user out',\n },\n NAV_SIGN_IN: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.SignInLink',\n defaultMessage: 'Sign In',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the sign in page',\n },\n NAV_SIGN_UP: {\n id: 'AppsDirectory.AppDirNavHeaderMobile.SignUpLink',\n defaultMessage: 'Sign Up',\n description: '[Type: Link][Vis.: Low] - A link that will direct the user to the sign up page',\n },\n});\n\nfunction urlWithSearch(url, search) {\n return `${url}${search}`;\n}\n\nconst AppDirNavHeaderMobile = ({\n isAuthenticated,\n navItems,\n shouldDisplayNavItem,\n showSwitchAccounts,\n location: { pathname, search },\n}) => {\n const authorizedMenuItems = navItems.filter(shouldDisplayNavItem).map(nav => (\n // The query params need to be preserved between urls (needed for ut_source)\n \n {nav.text}\n \n ));\n return (\n
    \n \n \n \n \n \n
    \n \n \n \n \n
    \n }\n >\n {authorizedMenuItems}\n \n {/* fragment below is a workaround for https://code.corp.surveymonkey.com/wrench/wds/issues/904 */}\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n \n \n \n \n
    \n }\n >\n {authorizedMenuItems}\n \n \n \n \n \n \n \n \n
    \n \n \n );\n};\n\nAppDirNavHeaderMobile.propTypes = {\n navItems: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.string.isRequired,\n text: PropTypes.node.isRequired,\n requiresAuthentication: PropTypes.bool,\n })\n ).isRequired,\n shouldDisplayNavItem: PropTypes.func.isRequired,\n isAuthenticated: PropTypes.bool.isRequired,\n location: PropTypes.shape({\n pathname: PropTypes.string,\n search: PropTypes.string,\n }).isRequired,\n showSwitchAccounts: PropTypes.bool,\n};\n\nAppDirNavHeaderMobile.defaultProps = {\n showSwitchAccounts: false,\n};\n\nexport default withRouter(AppDirNavHeaderMobile);\n","import React, { useContext } from 'react';\nimport { Query } from '@apollo/react-components';\n\nimport { DesktopScreen, MobileTabletScreen, StaticContext } from '@sm/webassets';\nimport { defineMessages, T } from '@sm/intl';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport AppDirNavHeaderDesktop from './AppDirNavHeaderDesktop';\nimport AppDirNavHeaderMobile from './AppDirNavHeaderMobile';\nimport userDropDownQuery from './AppDirNavHeader.graphql';\n\nimport './app-dir-nav-header.scss';\n\nexport const COPY = defineMessages({\n NAV_EXPLORE: {\n id: 'AppsDirectory.AppDirNavHeader.ExploreLink',\n defaultMessage: 'Explore',\n description:\n '[Type: Link][Vis.: High] - A link that will direct the user to initial page of the app directory site',\n },\n NAV_MANAGE: {\n id: 'AppsDirectory.AppDirNavHeader.ManageLink',\n defaultMessage: 'Manage',\n description:\n '[Type: Link][Vis.: High] - A link that will direct the user their installed apps and will be able to manage them',\n },\n NAV_DEVELOP: {\n id: 'AppsDirectory.AppDirNavHeader.DevelopLink',\n defaultMessage: 'Develop',\n description: '[Type: Link][Vis.: High] - A link that will direct the user to the developer portal',\n },\n NAV_PARTNER: {\n id: 'AppsDirectory.AppDirNavHeader.PartnerLink',\n defaultMessage: 'Partner',\n description: '[Type: Link][Vis.: High] - A link that will direct the user to the partner form page',\n },\n});\n\nexport const subdomainUri = (altdomain, domain, subdomain, tld) => {\n if (subdomain !== 'www') {\n return `https://${altdomain}.${subdomain}.${domain}.${tld}`;\n }\n return `https://${altdomain}.${domain}.${tld}`;\n};\n\nconst navigationItems = ({ domain, subdomain, tld }) => [\n { target: '/apps', text: },\n {\n target: '/apps/my-apps',\n text: ,\n requiresAuthentication: true,\n },\n {\n target: subdomainUri('developer', domain, subdomain, tld),\n text: ,\n },\n {\n target: 'https://www.surveymonkey.com/mp/partner-program/',\n text: ,\n },\n];\n\nexport function shouldDisplayNavItem(user, nav) {\n return !nav.requiresAuthentication || (nav.requiresAuthentication && user.isAuthenticated);\n}\n\nconst AppDirNavHeader = () => {\n const { user, environment } = useContext(StaticContext);\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n \n {({ data }) => {\n const hasMultipleLinkedIdentities = data?.user?.linkedIdentities?.totalCount > 0;\n return (\n <>\n \n
    \n shouldDisplayNavItem(user, item)}\n isAuthenticated={user.isAuthenticated}\n showSwitchAccounts={hasMultipleLinkedIdentities}\n username={user && user.username ? user.username : ''}\n />\n
    \n
    \n \n
    \n shouldDisplayNavItem(user, item)}\n showSwitchAccounts={hasMultipleLinkedIdentities}\n isAuthenticated={user.isAuthenticated}\n />\n
    \n
    \n \n );\n }}\n
    \n );\n};\n\nexport default AppDirNavHeader;\n","import React, { useContext } from 'react';\nimport { SMHeader, StaticContext } from '@sm/webassets';\nimport AppDirNavHeader from '../AppDirNavHeader';\n\nconst ModernHeader = () => {\n const {\n environment: { languageCode: language },\n user,\n locale: { isEUDC },\n } = useContext(StaticContext);\n\n return (\n <>\n \n \n \n \n {/* \n \n \n \n \n \n */}\n \n \n \n );\n};\n\nexport default ModernHeader;\n","import React, { useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BasePage, TabletScreen, MobileScreen, StaticContext, Helmet } from '@sm/webassets';\nimport { Grid, Row, Col } from '@sm/wds-react';\nimport { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport NavBar from '../components/NavBar';\nimport UCSModule from '../../components/UCSModule';\n\nimport getCanonicalUrlOrNoIndex from '~app/helpers/getCanonicalUrlOrNoIndex';\n\nimport './app-directory-base-page.scss';\nimport ModernHeader from '../components/ModernHeader';\n\nconst AppDirectoryBasePage = ({ id, header, navbar, pageMetricsAttributes, children }) => {\n const {\n environment: { subdomain, domain, tld },\n userAgent,\n user,\n url,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n\n const { noIndex, canonicalUrl } = getCanonicalUrlOrNoIndex(subdomain, domain, tld, url);\n\n useEffect(() => {\n MetricsTracker.track({\n name: USER_EVENTS.PAGE_VIEW,\n data: {\n amplitudeEvent: 'page viewed',\n isMarketing: true,\n pageName: id.toLowerCase(),\n urlPath: window.location.pathname,\n referrer: document.referrer,\n networkName: 'SurveyMonkey',\n },\n });\n }, [id]);\n\n return (\n \n \n \n \n \n \n \n \n \n {header}\n \n } />\n \n \n
    \n \n \n {navbar}\n \n \n \n \n {navbar}\n \n {children}\n \n
    \n
    \n
    \n );\n};\n\nAppDirectoryBasePage.propTypes = {\n id: PropTypes.string.isRequired,\n header: PropTypes.node,\n navbar: PropTypes.node,\n children: PropTypes.node.isRequired,\n pageMetricsAttributes: PropTypes.shape({}),\n};\n\nAppDirectoryBasePage.defaultProps = {\n header: ,\n navbar: ,\n pageMetricsAttributes: null,\n};\n\nexport default AppDirectoryBasePage;\n","export default function waitForUsabilla(callback) {\n let count = 0;\n const waitForUsabillaLiveToLoad = () => {\n if (window && window.usabilla_live) {\n count = 0;\n callback();\n } else {\n count += 1;\n if (count < 10) {\n setTimeout(waitForUsabillaLiveToLoad, 250);\n } else {\n // Give up and reset count\n count = 0;\n }\n }\n };\n\n waitForUsabillaLiveToLoad();\n}\n","import React, { useEffect } from 'react';\n\nimport { Helmet } from '@sm/webassets';\n\nimport JumboHeader from './components/JumboHeader';\nimport AppsGrid from './components/AppsGrid';\nimport AppDirectoryBasePage from '../AppDirectoryBasePage';\nimport ModernHeader from '../../components/ModernHeader';\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\n\nconst Home = () => {\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n window.usabilla_live('setForm', 'APP DIRECTORY');\n });\n }, []);\n\n return (\n
    \n \n \n \n \n }\n >\n \n SurveyMonkey App Directory & Integrations\n \n \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n );\n};\n\nexport default Home;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Typography } from '@sm/wds-react';\nimport AppPlaceHolderImg from '../../static/images/app-placeholder.png';\n// LinkWithSearch should be used so it will keep any existing query arguments present in the url (needed for ut_source)\nimport AppLink from '../AppLink';\n\nimport './app-listing-list.scss';\n\nconst AppListingList = ({ title, apps }) => (\n <>\n \n {title}\n \n\n
    \n {apps.map(app => (\n \n
    \n
    \n \n
    \n
    \n {app.name}\n {app.tagline}\n
    \n
    \n
    \n ))}\n
    \n \n);\n\nAppListingList.propTypes = {\n title: PropTypes.string,\n apps: PropTypes.arrayOf(\n PropTypes.shape({\n links: PropTypes.shape({\n detail: PropTypes.string.isRequired,\n }).isRequired,\n id: PropTypes.string.isRequired,\n logo: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n tagline: PropTypes.string,\n })\n ).isRequired,\n};\n\nAppListingList.defaultProps = {\n title: null,\n};\n\nexport default AppListingList;\n","import React, { useContext } from 'react';\n\nimport { SkeletonLoader, TabletScreen, MobileScreen, StaticContext } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nconst AppListingSkeleton = props => {\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n <>\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default AppListingSkeleton;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\n\nimport { Helmet, StaticContext, ErrorCard, FourOhFourError, TabletScreen } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport NavBar from '../../components/NavBar';\nimport SearchBox from '../../components/SearchBox';\nimport AppListingList from '../../components/AppListingList';\nimport AppListingSkeleton from '../../components/AppListingList/AppListingSkeleton';\nimport AppDirectoryBasePage from '../AppDirectoryBasePage';\n\nimport { publishedApplicationListingCategory } from './listings.graphql';\n\nconst CATEGORIES_FETCH_LIMIT = 50;\n\nconst Categories = ({ match }) => {\n const {\n environment: { languageId, subdomain, tld },\n userAgent,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n const { categoryKey } = match.params;\n return (\n \n \n
    \n \n
    \n
    \n \n \n }\n >\n \n {({ loading, error, data }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {`SurveyMonkey ${data.publishedApplicationListingCategory.name} Apps and Integrations`}\n \n \n \n \n \n );\n }}\n \n \n );\n};\n\nCategories.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n categoryKey: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default Categories;\n","import React, { useContext } from 'react';\n\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\n\nimport { Helmet, StaticContext, ErrorCard, TabletScreen } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport NavBar from '../../components/NavBar';\nimport SearchBox from '../../components/SearchBox';\nimport AppListingList from '../../components/AppListingList';\nimport AppListingSkeleton from '../../components/AppListingList/AppListingSkeleton';\nimport AppDirectoryBasePage from '../AppDirectoryBasePage';\n\nimport { publishedApplicationListings } from './listings.graphql';\n\nconst LISTINGS_FETCH_LIMIT = 50;\n\nconst ListingsBasePage = ({ pageId, filter, title, pageTitle, description }) => {\n const {\n environment: { languageId, subdomain, tld },\n userAgent,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n\n return (\n \n \n
    \n \n
    \n
    \n \n \n }\n >\n \n {pageTitle}\n \n \n \n {({ loading, error, data }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }}\n \n \n );\n};\n\nListingsBasePage.propTypes = {\n pageId: PropTypes.string.isRequired,\n filter: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n pageTitle: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n};\n\nexport default ListingsBasePage;\n","import React from 'react';\n\nimport { defineMessages } from '@sm/intl';\n\nimport ListingsBasePage from './ListingsBasePage';\n\nconst COPY = defineMessages({\n PAGE_TITLE: {\n id: 'Listings.Featured.Title',\n defaultMessage: 'Featured',\n description: '[Type: Header][Vis.: high] - The title of the page for the featured apps.',\n },\n});\n\nconst Featured = () => {\n return (\n \n );\n};\n\nexport default Featured;\n","import React from 'react';\n\nimport { defineMessages } from '@sm/intl';\n\nimport ListingsBasePage from './ListingsBasePage';\n\nconst COPY = defineMessages({\n PAGE_TITLE: {\n id: 'Listings.MostPopular.Title',\n defaultMessage: 'Most Popular',\n description: '[Type: Header][Vis.: high] - The title of the page for the most popular installed apps.',\n },\n});\n\nconst MostPopular = () => {\n return (\n \n );\n};\n\nexport default MostPopular;\n","import React from 'react';\n\nimport { defineMessages } from '@sm/intl';\n\nimport ListingsBasePage from './ListingsBasePage';\n\nconst COPY = defineMessages({\n PAGE_TITLE: {\n id: 'Listings.RecentlyAdded.Title',\n defaultMessage: 'Recently Added',\n description: '[Type: Header][Vis.: high] - The title of the page for the more recently added apps.',\n },\n});\n\nconst RecentlyAdded = () => {\n return (\n \n );\n};\n\nexport default RecentlyAdded;\n","import React, { useContext } from 'react';\nimport { Query } from 'react-apollo';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { defineMessages } from '@sm/intl';\nimport { Typography, Card } from '@sm/wds-react';\nimport { StaticContext, ErrorCard, Helmet } from '@sm/webassets';\nimport { sanitizeString } from '@sm/utils';\n\nimport NavBar from '../../components/NavBar';\nimport SearchBox from '../../components/SearchBox';\nimport AppListingList from '../../components/AppListingList';\nimport AppListingSkeleton from '../../components/AppListingList/AppListingSkeleton';\nimport AppDirectoryBasePage from '../AppDirectoryBasePage';\n\nimport publishedApplicationListingsByKeywordQuery from './search.graphql';\n\nconst FETCH_LIMIT = 50;\n\nexport const COPY = defineMessages({\n SEARCH_RESULTS: {\n id: 'Search.Results',\n defaultMessage: 'Search results for',\n description: '[Type: Header][Vis.: med] - A small phrase describing the keyword used to search for apps',\n },\n RESULTS_NOT_FOUND: {\n id: 'Search.ResultsNotFound',\n defaultMessage: 'No apps were found for this keyword',\n description:\n '[Type: Paragraph][Vis.: low] - A message informing that no apps were found for the keyword used to search for apps.',\n },\n FILL_IN_KEYWORD: {\n id: 'Search.FillInKeyword',\n defaultMessage: 'You need to fill in a keyword to search for apps.',\n description:\n '[Type: Paragraph][Vis.: low] - A message informing that a keyword needs to be informed in order to search for apps',\n },\n});\n\nconst Search = ({ location: { search } }) => {\n const {\n environment: { languageId, subdomain, tld },\n } = useContext(StaticContext);\n const params = new URLSearchParams(search);\n const keyword = sanitizeString(params.get('q'));\n\n return (\n } pageMetricsAttributes={{ keyword }}>\n \n SurveyMonkey Apps & Integrations Search Results\n \n \n {({ loading, error, data }) => {\n return (\n <>\n \n \n {`${COPY.SEARCH_RESULTS.defaultMessage} \"${keyword}\"`}\n \n \n \n \n \n \n \n \n \n \n {COPY.RESULTS_NOT_FOUND.defaultMessage}\n \n \n \n \n \n \n \n {COPY.FILL_IN_KEYWORD.defaultMessage}\n \n \n \n \n );\n }}\n \n \n );\n};\n\nSearch.propTypes = {\n location: PropTypes.shape({ search: PropTypes.string }).isRequired,\n};\n\nexport default withRouter(Search);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Mutation } from 'react-apollo';\n\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Align, Button } from '@sm/wds-react';\nimport { defineMessages } from '@sm/intl';\n\nimport uninstallAppMutation from './remove-app.graphql';\n\nconst COPY = defineMessages({\n REMOVE_DIALOG_HEADER: {\n id: 'AppsDirectory.RemoveApp.DialogHeader',\n defaultMessage: 'Remove App',\n description: '[Type: Header][Vis.: low] - The header of the dialog window displaying a confirmation message',\n },\n REMOVE_DIALOG_MESSAGE: {\n id: 'AppsDirectory.RemoveApp.DialogMessage',\n defaultMessage: 'Would you like to uninstall this app?',\n description:\n '[Type: Paragraph][Vis.: low] - A message asking the user to confirm if they really want to uninstall the selected app',\n },\n REMOVE_DIALOG_CONFIRM: {\n id: 'AppsDirectory.RemoveApp.UninstallButton',\n defaultMessage: 'Uninstall',\n description: '[Type: Button][Vis.: low] - A button confirming that user will uninstall a given application',\n },\n REMOVE_DIALOG_CANCEL: {\n id: 'AppsDirectory.RemoveApp.CancelButton',\n defaultMessage: 'Cancel',\n description: '[Type: Button][Vis.: low] - A button cancelling the request to uninstall a given application',\n },\n});\n\nconst RemoveApp = ({ children, appId, onSuccess, onClose }) => {\n const [confirmDialogVisible, setConfirmDialogVisible] = useState(false);\n return (\n <>\n setConfirmDialogVisible(true)}\n role=\"button\"\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n setConfirmDialogVisible(true);\n }\n }}\n data-testid=\"RemoveApp\"\n >\n {children}\n \n {\n setConfirmDialogVisible(false);\n onSuccess();\n }}\n >\n {(uninstallApp, { loading }) => {\n return (\n {\n setConfirmDialogVisible(false);\n onClose();\n }}\n >\n \n {COPY.REMOVE_DIALOG_MESSAGE.defaultMessage}\n \n \n \n {\n setConfirmDialogVisible(false);\n onClose();\n }}\n color=\"alt\"\n >\n {COPY.REMOVE_DIALOG_CANCEL.defaultMessage}\n \n \n \n \n );\n }}\n \n \n );\n};\n\nRemoveApp.propTypes = {\n children: PropTypes.node.isRequired,\n appId: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n onSuccess: PropTypes.func,\n};\n\nRemoveApp.defaultProps = {\n onClose: () => {},\n onSuccess: () => {},\n};\n\nexport default RemoveApp;\n","import React, { useContext } from 'react';\nimport { Query } from 'react-apollo';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { StaticContext, ErrorCard, TabletScreen, Helmet } from '@sm/webassets';\nimport { defineMessages } from '@sm/intl';\nimport { Card, Typography } from '@sm/wds-react';\nimport { IconDesktop, IconTrash, IconBadge } from '@sm/wds-icons';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport NavBar from '../../components/NavBar';\nimport SearchBox from '../../components/SearchBox';\nimport RemoveApp from '../../components/RemoveApp';\nimport AppLink from '../../components/AppLink';\nimport AppListingSkeleton from '../../components/AppListingList/AppListingSkeleton';\nimport AppDirectoryBasePage from '../AppDirectoryBasePage';\n\nimport installedApplications from './myApps.graphql';\nimport './my-apps.scss';\nimport AppPlaceHolderImg from '../../static/images/app-placeholder.png';\n\nconst FETCH_LIMIT = 50;\n\nconst COPY = defineMessages({\n NO_RESULTS_FOUND: {\n id: 'MyApps.NoResultsFound',\n defaultMessage: 'You currently have no installed apps',\n description:\n '[Type: Paragraph][Vis.: med] - A message informing the current user that there are not installed apps',\n },\n PAGE_TITLE: {\n id: 'MyApps.PageTitle',\n defaultMessage: 'Installed Apps',\n description:\n '[Type: Header][Vis.: high] - The title of the page displaying the installed apps for the current user',\n },\n LAUNCH_APP_LINK: {\n id: 'MyApps.LaunchAppLink',\n defaultMessage: 'Launch',\n description: '[Type: Link][Vis.: med] - A link that will direct the user to launch page for a given application',\n },\n APP_DETAILS_LINK: {\n id: 'MyApps.AppDetailsLink',\n defaultMessage: 'Details',\n description: '[Type: Link][Vis.: med] - A link that will direct the user to details of a given application',\n },\n REMOVE_APP_LINK: {\n id: 'MyApps.RemoveAppLink',\n defaultMessage: 'Remove',\n description: '[Type: Link][Vis.: med] - A link that direct the user to uninstall a given application',\n },\n});\n\nfunction renderCategories(categories) {\n if (!categories || !categories.length) {\n return null;\n }\n return {categories.map(c => c.name).join(' ')};\n}\n\nconst MyApps = ({ location: { search } }) => {\n const {\n environment: { languageId },\n userAgent,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n\n return (\n \n \n
    \n \n
    \n
    \n \n \n }\n >\n \n SurveyMonkey Installed Apps\n \n \n {({ loading, error, data, refetch }) => {\n return (\n <>\n \n {COPY.PAGE_TITLE.defaultMessage}\n \n \n \n \n \n \n \n \n \n \n {COPY.NO_RESULTS_FOUND.defaultMessage}\n \n \n \n
    \n {data.installedApplications.items.map(app => (\n \n
    \n
    \n \n
    \n
    \n \n {app.name}\n \n {renderCategories(app.categories)}\n
    \n
    \n
    \n \n \n {COPY.LAUNCH_APP_LINK.defaultMessage}\n \n \n \n {COPY.APP_DETAILS_LINK.defaultMessage}\n \n
    \n \n refetch()}>\n
    \n \n {COPY.REMOVE_APP_LINK.defaultMessage}\n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n \n
    \n
    \n \n );\n }}\n \n \n );\n};\n\nMyApps.propTypes = {\n location: PropTypes.shape({ search: PropTypes.string }).isRequired,\n};\n\nexport default withRouter(MyApps);\n","import React, { useContext } from 'react';\n\nimport { SkeletonLoader, DesktopScreen, MobileScreen, StaticContext } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nconst AppDirectoryAppDetailsSkeleton = props => {\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n <>\n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default AppDirectoryAppDetailsSkeleton;\n","import React from 'react';\n\nimport { SkeletonLoader } from '@sm/webassets';\nimport { ProgressCircle } from '@sm/wds-react';\n\nimport './ucs-module-loaders.scss';\n\nconst TopBarSkeleton = () => (\n
    \n \n
    \n);\n\nconst DefaultLoader = () => (\n
    \n \n
    \n);\n\nconst MODULE_SKELETONS = {\n top_bar: TopBarSkeleton,\n};\n\nexport default DefaultLoader;\nexport { MODULE_SKELETONS };\n","import React, { Component } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ErrorBoundary, clientErrorHandler } from '@sm/webassets';\n\nimport { sanitizeString } from '@sm/utils';\nimport DefaultLoader, { MODULE_SKELETONS } from './UCSModuleLoaders';\n\nconst UCS_CONTAINER_ID_PREFIX = 'ucs-content';\n\n// TODO: this component is a duplicate of UCSModule from coreweb and\n// will need to be moved somewhere common\nclass UCSModule extends Component {\n static propTypes = {\n className: PropTypes.string,\n moduleName: PropTypes.string,\n customLoader: PropTypes.node,\n };\n\n static defaultProps = {\n moduleName: null,\n className: null,\n customLoader: null,\n };\n\n state = {\n data: {\n moduleHTML: null,\n },\n loading: true,\n error: false,\n };\n\n componentDidMount() {\n this._isMounted = true;\n this.getModuleHTML();\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n getPreloadedModule() {\n const { moduleName } = this.props;\n const moduleContainer = document.getElementById(`${UCS_CONTAINER_ID_PREFIX}-${moduleName}`);\n if (moduleContainer) {\n moduleContainer.remove();\n return moduleContainer.textContent;\n }\n return null;\n }\n\n async getModuleHTML() {\n const reFetchFailed = () => {\n this.setState({\n loading: false,\n error: true,\n });\n };\n\n let moduleHTML = this.getPreloadedModule();\n if (!moduleHTML) {\n try {\n moduleHTML = await this.reFetchModule();\n if (!this._isMounted) {\n return null;\n }\n } catch (error) {\n if (!this._isMounted) {\n return null;\n }\n clientErrorHandler.logError(error, 'ucsFetchFailure');\n return reFetchFailed();\n }\n }\n\n if (moduleHTML === null) {\n return reFetchFailed();\n }\n\n return this.setState({\n data: { moduleHTML },\n loading: false,\n error: false,\n });\n }\n\n async reFetchModule() {\n const { moduleName } = this.props;\n const moduleContent = await fetch(`/content/api/ucs/${moduleName}/html`, {\n credentials: 'include',\n });\n const moduleJson = await moduleContent.json();\n return moduleJson.html;\n }\n\n renderLoadingState = () => {\n const { customLoader, moduleName } = this.props;\n const ModuleLoader = MODULE_SKELETONS[moduleName];\n\n if (customLoader) {\n return customLoader;\n }\n\n if (ModuleLoader) {\n return ;\n }\n\n return ;\n };\n\n render() {\n const { className } = this.props;\n const { data, loading, error } = this.state;\n // fail silently\n const errorComponent = null;\n\n const classNames = classnames('sm-ucs-module__content-container', className);\n\n return (\n \n {this.renderLoadingState()}\n {errorComponent}\n \n \n \n \n );\n }\n}\n\nconst BoundUCSModule = props => (\n \n \n \n);\n\nexport default BoundUCSModule;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { StaticContext, DesktopScreen, MobileScreen } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nconst MediaCarousel = ({ media }) => {\n const [current, setCurrent] = useState(0);\n const currentMedia = media[current];\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n\n if (!currentMedia) {\n return null;\n }\n\n return (\n <>\n \n
    \n {media.map(m => (\n \n \n \n \n
    \n \n \n \n \n \n \n \n ))}\n \n
    \n \n <>\n
    \n \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n {media.map((m, mediaIdx) => (\n {\n if (e.key === 'Enter') {\n setCurrent(mediaIdx);\n }\n }}\n role=\"button\"\n onClick={() => {\n setCurrent(mediaIdx);\n }}\n tabIndex={0}\n >\n \n \n \n \n \n \n \n \n \n ))}\n \n \n
    \n \n );\n};\nMediaCarousel.propTypes = {\n media: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf(['youtube', 'image']).isRequired,\n url: PropTypes.string.isRequired,\n altText: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n\nexport default MediaCarousel;\n","import React from 'react';\nimport { Typography } from '@sm/wds-react';\n\nconst AppDetailsItem = (icon, label, link, linkLabel, search) => (\n
    \n
    {icon}
    \n
    \n {`${label}:`}\n {/* The query params need to be preserved between urls (needed for ut_source) */}\n \n \n {linkLabel}\n \n \n
    \n
    \n);\n\nexport default AppDetailsItem;\n","import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-apollo';\nimport ReactGA from 'react-ga';\nimport { useLocation } from 'react-router-dom';\n\nimport { defineMessages, substitute } from '@sm/intl';\nimport {\n BasePage,\n Helmet,\n StaticContext,\n ErrorCard,\n DesktopScreen,\n MobileScreen,\n FourOhFourError,\n} from '@sm/webassets';\nimport { Grid, Row, Col, Typography, Banner, Button, Card, Tabs, Tab } from '@sm/wds-react';\nimport {\n IconTag,\n IconEmail,\n IconGlobe,\n IconLock,\n IconLogoWhatsApp,\n IconMegaphone,\n IconNews,\n IconCheck,\n IconGear,\n IconUserFilled,\n} from '@sm/wds-icons';\nimport { sanitizeString, getClientEnvironmentDetails } from '@sm/utils';\nimport { MetricsTracker, generateMetricsAttribute, USER_EVENTS } from '@sm/metrics';\n\nimport AppDirectoryAppDetailsSkeleton from './AppDirectoryAppDetailsSkeleton';\n\nimport './app-directory-app-details.scss';\nimport publishedApplicationListingDetails from './published-application-listing-details.graphql';\nimport previewApplicationListingDetails from './preview-application-listing-details.graphql';\nimport RemoveApp from '../../components/RemoveApp';\nimport AppPlaceHolderImg from '../../static/images/app-placeholder.png';\n\nimport UCSModule from '../../components/UCSModule';\nimport getCanonicalUrlOrNoIndex from '~app/helpers/getCanonicalUrlOrNoIndex';\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\nimport MediaCarousel from './MediaCarousel';\nimport AppDetailsItem from './AppDetailsItem';\nimport ModernHeader from '../../components/ModernHeader';\n\nconst COPY = defineMessages({\n APP_DETAILS_HEADER: {\n id: 'Details.AppDetails',\n defaultMessage: 'App Details',\n description: '[Type: Header][Vis.: low] - A header preceding the full description of the current app',\n },\n REQUIRED_ACCESS_LABEL: {\n id: 'Details.RequiredAccess',\n defaultMessage: 'This app will require access to:',\n description:\n '[Type: Label][Vis.: low] - A label preceding a list of requirements before the current application could be installed',\n },\n REQUIRED_ACCOUNT_LABEL: {\n id: 'Details.RequiredAccount',\n defaultMessage: 'This app will require an additional {accountType} account:',\n description:\n '[Type: Label][Vis.: low] - A label preceding a description of an external account required by the app',\n },\n INSTALLED_LABEL: {\n id: 'Details.Installed',\n defaultMessage: 'Installed',\n description:\n '[Type: Label][Vis.: low] - A label indicating that the user has the current visible application installed',\n },\n INSTALL_LABEL: {\n id: 'Details.Install',\n defaultMessage: 'Install',\n description:\n '[Type: Label][Vis.: low] - A link/button that will redirect the user to the install page for the current app',\n },\n VISIT_SITE_LABEL: {\n id: 'Details.VisitSite',\n defaultMessage: 'Visit Site',\n description:\n '[Type: Link][Vis.: med] - A link/button that will redirect the user to the site of the application they are trying to install',\n },\n LAUNCH_LABEL: {\n id: 'Details.Launch',\n defaultMessage: 'Launch',\n description:\n '[Type: Link][Vis.: med] - A link/button that will redirect the user to the current visible application',\n },\n UPGRADE_LABEL: {\n id: 'Details.Upgrade',\n defaultMessage: 'Upgrade',\n description:\n '[Type: Link][Vis.: med] - A link/button that will redirect the user to the upgrade page for the visible application',\n },\n REMOVE_APP: {\n id: 'Details.RemoveApp',\n defaultMessage: 'Remove App',\n description:\n '[Type: Link][Vis.: low] - A link/button that will open a dialog requesting the user to confirm the removal of the current app',\n },\n});\n\nfunction getLangFromUrl(search) {\n return new URLSearchParams(search).get('lang') || 'en';\n}\n\nexport const useSearchParams = () => {\n const { search } = useLocation();\n return React.useMemo(() => new URLSearchParams(search), [search]);\n};\n\nconst AppDirectoryAppDetails = ({\n match: {\n params: { appId },\n },\n location: { search, pathname },\n preview,\n}) => {\n const [selectedTab, setSelectedTab] = useState(0);\n const [pageTracked, setPageTracked] = useState(false);\n const [googleTracked, setGoogleTracked] = useState(false);\n const { userAgent, user } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n const {\n environment: { subdomain, domain, tld },\n url,\n } = useContext(StaticContext);\n const language = getLangFromUrl(search);\n const { noIndex, canonicalUrl } = getCanonicalUrlOrNoIndex(subdomain, domain, tld, url);\n const urlParams = useSearchParams();\n\n const getEventNameFromSource = source => {\n switch (source) {\n case 'collector_list':\n return 'list';\n case 'website_collector':\n return 'weblink';\n case 'weblink_collector':\n return 'embedded';\n default:\n return '';\n }\n };\n\n const addCollectEventInfo = appDetails => {\n const source = urlParams.get('ut_source');\n return source\n ? {\n eventName: `collect ${getEventNameFromSource(source)} user interaction`,\n interactionType: 'click',\n interactionLocation: 'integration card',\n integrationOptionClicked: appDetails.name,\n }\n : {};\n };\n\n const onCompleted = appDetails => {\n if (appDetails && appDetails.details.googleAnalyticsTrackingId && !googleTracked) {\n const trackerName = 'app-dir-details-pageview';\n ReactGA.initialize(appDetails.details.googleAnalyticsTrackingId, {\n name: trackerName, // this is tracker name in case there are other trackers on the page\n });\n ReactGA.pageview(pathname, [trackerName]);\n setGoogleTracked(true);\n }\n\n if (appDetails && !pageTracked) {\n MetricsTracker.track({\n name: USER_EVENTS.COMPONENT_ADD,\n data: {\n actionFlow: 'browsing',\n actionType: 'app_details.page_view',\n appId: appDetails.id,\n appName: appDetails.name,\n },\n });\n setPageTracked(true);\n }\n };\n\n const getAppDetails = (data = {}) =>\n preview ? data.previewApplicationListingDetails : data.publishedApplicationListingDetails;\n\n const {\n loading,\n error,\n refetch,\n data: queryData = {},\n } = useQuery(preview ? previewApplicationListingDetails : publishedApplicationListingDetails, {\n variables: { language, appId },\n onCompleted: (data = {}) => onCompleted(getAppDetails(data)),\n });\n const appDetails = getAppDetails(queryData);\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n window.usabilla_live('setForm', 'AppDirectoryForm');\n });\n }, []);\n\n return (\n \n \n \n } />\n \n\n \n \n \n \n \n \n \n \n
    \n \n
    \n
    \n \n \n {`${appDetails.name} - SurveyMonkey App Integration`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {appDetails.name}\n \n \n \n \n {appDetails.tagline}\n \n \n \n \n
    \n \n {appDetails.name}\n \n \n \n \n
    \n {appDetails.tagline}\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {COPY.INSTALL_LABEL.defaultMessage}\n \n \n \n \n
    \n \n \n {COPY.APP_DETAILS_HEADER.defaultMessage}}\n >\n \n
    \n \n \n \n This app requires an upgraded plan to function\n \n This app requires an upgraded plan to access some functionality\n \n \n \n
    \n \n {AppDetailsItem(\n ,\n 'Publisher',\n appDetails.details.websiteUrl,\n appDetails.details.publisher,\n search\n )}\n \n {AppDetailsItem(\n ,\n 'Email',\n `mailto:${appDetails.details.supportEmail}`,\n appDetails.details.supportEmail,\n search\n )}\n \n \n {AppDetailsItem(\n ,\n 'Phone',\n `tel:${appDetails.details.supportPhoneNumber}`,\n appDetails.details.supportPhoneNumber,\n search\n )}\n \n \n {AppDetailsItem(\n ,\n 'Support Website',\n `${appDetails.details.supportUrl}`,\n appDetails.details.supportUrl,\n search\n )}\n \n {AppDetailsItem(\n ,\n 'Privacy Policy',\n appDetails.details.privacyPolicyUrl,\n appDetails.details.privacyPolicyUrl,\n search\n )}\n {AppDetailsItem(\n ,\n 'Terms of Service',\n appDetails.details.termsOfUseUrl,\n appDetails.details.termsOfUseUrl,\n search\n )}\n \n {AppDetailsItem(\n ,\n 'Blog',\n `${appDetails.details.blogUrl}`,\n appDetails.details.blogUrl,\n search\n )}\n \n \n \n refetch()}>\n \n {COPY.REMOVE_APP.defaultMessage}\n \n \n \n \n \n ({\n url: s,\n type: 'image',\n altText: appDetails.name,\n }))\n )}\n />\n
    \n {appDetails.details.featureList.map(feature => (\n
    \n \n \n {feature}\n \n
    \n ))}\n
    \n
    \n setSelectedTab(value)}>\n \n \n \n \n \n \n {substitute(COPY.REQUIRED_ACCOUNT_LABEL.defaultMessage, {\n accountType: appDetails.details.requirements.type,\n })}\n \n
      \n
    • \n \n \n \n {appDetails.details.requirements.label}\n \n \n
    • \n
    \n \n

    {appDetails.details.requirements.description}

    \n
    \n
    \n \n \n {COPY.REQUIRED_ACCESS_LABEL.defaultMessage}\n \n
      \n {appDetails.details.scopes.map(scope => (\n
    • \n \n {scope}\n
    • \n ))}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nAppDirectoryAppDetails.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n appId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n location: PropTypes.shape({\n search: PropTypes.string,\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n preview: PropTypes.bool,\n};\n\nAppDirectoryAppDetails.defaultProps = {\n preview: false,\n};\n\nexport default AppDirectoryAppDetails;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(() => {\n return {\n headerContainer: {\n height: 'auto',\n },\n headerSubtitle: {\n maxWidth: '650px',\n },\n };\n});\n\nexport default styles;\n","import React, { useContext } from 'react';\n\nimport { StaticContext } from '@sm/webassets';\nimport { Typography } from '@wds/typography';\nimport { Button } from '@wds/button';\nimport { Box } from '@wds/box';\nimport useStyles from './styles';\nimport './jumbo-header.scss';\n\nconst JumboHeader = () => {\n const { headerContainer, headerSubtitle } = useStyles();\n const { user } = useContext(StaticContext);\n return (\n \n \n \n We're better together\n \n \n \n \n \n Connect SurveyMonkey with the apps you use daily—gather holistic feedback from the right audience at the\n right time, right place, and take insights-driven actions fast.\n \n \n \n {!user.isAuthenticated && (\n \n )}\n \n );\n};\n\nexport default JumboHeader;\n","export const ALPHABETICAL = {\n label: 'Alphabetical',\n value: 'alphabetical',\n};\n\nexport const FEATURED = {\n label: 'Featured',\n value: 'featured',\n};\n\nexport const POPULAR = {\n label: 'Most Popular',\n value: 'popular',\n};\n\nexport const RELEVANCE = {\n label: 'Relevance',\n value: 'relevance',\n};\n\nexport const ALL_SORT_BY_TYPES = [ALPHABETICAL, RELEVANCE, POPULAR];\n\nexport const SORT_BY_TYPES_PRE_SEARCH = [ALPHABETICAL, POPULAR];\nexport const SORT_BY_TYPES_POST_SEARCH = [ALPHABETICAL, RELEVANCE, POPULAR];\n\nexport const SORT_ORDER = {\n ascending: 'asc',\n descending: 'desc',\n};\n\nexport const getLabelFromValue = value => {\n const sortOrder = ALL_SORT_BY_TYPES.find(e => e.value === value);\n return sortOrder ? sortOrder.label : 'Sort by';\n};\n\nexport default ALL_SORT_BY_TYPES;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { POPULAR, RELEVANCE, SORT_ORDER } from './constants';\n\nconst DEFAULT_SEARCH = '';\nconst DEFAULT_FILTERS = [];\nconst DEFAULT_SORTBY = POPULAR.value;\nconst DEFAULT_PAGENUM = 0;\nconst DEFAULT_SORTORDER = SORT_ORDER.ascending;\n\nconst SearchContext = React.createContext({\n search: DEFAULT_SEARCH,\n filters: DEFAULT_FILTERS,\n sortBy: DEFAULT_SORTBY,\n sortOrder: DEFAULT_SORTORDER,\n pageNum: DEFAULT_PAGENUM,\n});\n\nconst SearchProvider = ({ children }) => {\n const [search, setSearch] = useState(DEFAULT_SEARCH);\n const [filters, setFilters] = useState(DEFAULT_FILTERS);\n const [sortBy, setSortBy] = useState(DEFAULT_SORTBY);\n const [sortOrder, setSortOrder] = useState(DEFAULT_SORTORDER);\n const [pageNum, setPageNum] = useState(DEFAULT_PAGENUM);\n\n const updateSearch = newSearch => {\n setSearch(newSearch);\n setSortBy(RELEVANCE.value);\n setSortOrder(SORT_ORDER.descending);\n setPageNum(DEFAULT_PAGENUM);\n };\n const updateFilter = filter => {\n setFilters(filter);\n setSortBy(RELEVANCE.value);\n setSortOrder(SORT_ORDER.descending);\n setPageNum(DEFAULT_PAGENUM);\n };\n const updateSortBy = order => {\n setSortBy(order);\n if (order === RELEVANCE.value) {\n setSortOrder(SORT_ORDER.descending);\n } else {\n setSortOrder(SORT_ORDER.ascending);\n }\n\n setPageNum(DEFAULT_PAGENUM);\n };\n const updatePageNum = page => setPageNum(page);\n\n const resetSearch = () => {\n setSearch(DEFAULT_SEARCH);\n setFilters(DEFAULT_FILTERS);\n setSortBy(DEFAULT_SORTBY);\n setSortOrder(DEFAULT_SORTORDER);\n setPageNum(DEFAULT_PAGENUM);\n };\n\n const hasSearchParams = () => {\n return search !== DEFAULT_SEARCH || filters !== DEFAULT_FILTERS;\n };\n\n return (\n \n {children}\n \n );\n};\n\nSearchProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nconst SearchConsumer = SearchContext.Consumer;\n\nexport { SearchProvider, SearchConsumer, SearchContext };\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport categoriesQuery from './CategoriesContext.graphql';\n\nconst CategoriesContext = React.createContext([]);\n\nexport const CategoriesProvider = ({ children }) => {\n const [isLoading, setIsLoading] = useState(true);\n const [categories, setCategories] = useState([]);\n\n const { data, isError, loading } = useQuery(categoriesQuery);\n\n useEffect(() => {\n if (!loading && data) {\n setCategories(data.fetchAppCategories.data);\n }\n setIsLoading(loading);\n }, [data, loading]);\n\n const value = {\n isLoading,\n isError,\n categories,\n };\n\n return {children};\n};\n\nCategoriesProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\nexport default CategoriesContext;\n","import React from 'react';\n\nimport { SkeletonLoader } from '@sm/webassets';\n\nconst FilterNavSkeleton = props => {\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default FilterNavSkeleton;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Checkbox } from '@wds/checkbox';\nimport { Typography } from '@wds/typography';\nimport { ErrorCard } from '@sm/webassets';\nimport { Box } from '@wds/box';\nimport { SearchConsumer } from '../SearchContext';\n\nimport CategoriesContext from '../CategoriesContext';\nimport FilterNavSkeleton from './FilterNavSkeleton';\n\nexport const buildCategoryTree = categories => {\n const result = [];\n\n // Create the \"Others\" category\n const noParentCategories = {\n id: 0,\n title: 'Others',\n description: '',\n key: 'others',\n parentId: null,\n children: [],\n ordinal: 0,\n };\n\n // Get the items with no parents\n const parents = categories.filter(item => item.parentId === null);\n\n // For each parent, add it to the result and find its children\n parents.forEach(parent => {\n const parentWithChildren = { ...parent, children: [] };\n\n categories.forEach(item => {\n if (item.parentId === parent.id) {\n parentWithChildren.children.push(item);\n }\n });\n\n // If a parent has no children, add it to the \"Others\" category\n if (parentWithChildren.children.length === 0) {\n noParentCategories.children.push(parent);\n } else {\n // Otherwise, add it to the result\n result.push(parentWithChildren);\n }\n });\n\n // Add the \"Others\" category to the result\n if (noParentCategories.children.length > 0) {\n result.push(noParentCategories);\n }\n // Sort the result array by title\n result.sort((a, b) => a.ordinal - b.ordinal || a.title?.localeCompare(b.title));\n\n // Sort the children arrays by title\n result.forEach(item => {\n item.children.sort(({ key: aKey = '' }, { key: bKey = '' }) => aKey?.localeCompare(bKey));\n });\n\n return result;\n};\n\nconst FilterNav = () => {\n const { isLoading: isCategoriesLoading, categories = [] } = useContext(CategoriesContext);\n const [categoryTree, setCategoryTree] = useState([]);\n\n useEffect(() => {\n if (categories.length) {\n setCategoryTree(buildCategoryTree(categories));\n }\n }, [categories]);\n\n return (\n \n {({ filters, updateFilter }) => {\n const isChecked = filter => filters.includes(filter);\n const handleChange = filter => {\n updateFilter(isChecked(filter) ? filters.filter(f => f !== filter) : [...filters, filter]);\n };\n\n const renderFilter = ({ name, title, key, id }) => (\n \n handleChange(id)}\n checked={isChecked(id)}\n />\n \n );\n\n const renderCategoryTree = () => {\n return categoryTree.map(parent => (\n
    \n \n \n {parent.title}\n \n \n {parent.children.length && parent.children.map(cat => renderFilter(cat))}\n
    \n ));\n };\n\n return (\n
    \n \n Filters\n \n \n \n \n \n \n \n \n {renderCategoryTree()}\n \n
    \n );\n }}\n
    \n );\n};\n\nexport default FilterNav;\n","import React, { useContext } from 'react';\n\nimport { SkeletonLoader, TabletScreen, MobileScreen, StaticContext } from '@sm/webassets';\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nconst AppListingSkeleton = props => {\n const { userAgent } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n return (\n <>\n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default AppListingSkeleton;\n","import React, { createContext, useContext, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLazyQuery } from '@apollo/react-hooks';\nimport { clientErrorHandler } from '@sm/webassets';\nimport { useLocation } from 'react-router-dom';\nimport { SearchContext } from '../../../../components/SearchContext';\nimport appsAppListings from './AppListings.graphql';\nimport AppListingSkeleton from './AppListingSkeleton';\nimport { POPULAR } from '~app/pages/AppsDirectory/components/SearchContext/constants';\n\nconst initialState = {\n search: '',\n categories: [],\n featured: false,\n sortBy: POPULAR.value,\n page: 1,\n pageSize: 16,\n};\n\nconst flattenCategories = params => {\n return params.categories.length ? { ...params, categories: [params.categories.toString()] } : params;\n};\n\nexport const AppListingContext = createContext({\n appListings: [],\n isInitialSearch: false,\n pageInfo: {},\n});\n\nexport const AppListingProvider = ({ children }) => {\n const { state } = useLocation();\n\n const { search, filters, sortBy, sortOrder, pageNum, resetSearch } = useContext(SearchContext);\n const [appListings, setAppListings] = useState([]);\n const [isInitialSearch, setInitialSearch] = useState(true);\n const [pageInfo, setPageInfo] = useState({});\n const [paramsChanged, setParamsChanged] = useState(false);\n const [variables, setVariables] = useState(initialState);\n\n const [getAppListings, { loading: isLoading, error, data }] = useLazyQuery(appsAppListings);\n\n useEffect(() => {\n if (data?.fetchPublishedApplicationListings?.data) {\n const { data: listings, ...paging } = data.fetchPublishedApplicationListings;\n setPageInfo(paging);\n setAppListings(listings);\n }\n }, [data]);\n\n useEffect(() => {\n if (state) {\n const { moreParams = {} } = state;\n if (Object.keys(moreParams).length) {\n setParamsChanged(true);\n setVariables(prevVariables => ({\n ...prevVariables,\n ...moreParams,\n }));\n }\n }\n }, [state]);\n\n useEffect(() => {\n if (error) {\n clientErrorHandler.logError(error);\n }\n }, [error]);\n\n useEffect(() => {\n if (paramsChanged) {\n const params = flattenCategories(variables);\n const paramsWithoutSort = { ...params, sortBy: '', sortOrder: '' };\n const initialWithoutSort = { ...initialState, sortBy: '', sortOrder: '' };\n setInitialSearch(JSON.stringify(paramsWithoutSort) === JSON.stringify(initialWithoutSort));\n getAppListings({\n variables: params,\n });\n }\n }, [getAppListings, variables, paramsChanged]);\n\n useEffect(() => {\n setVariables(prevVariables => {\n if (prevVariables.search !== search) {\n setParamsChanged(true);\n return { ...prevVariables, search };\n }\n return prevVariables;\n });\n }, [search]);\n\n useEffect(() => {\n setVariables(prevVariables => {\n if (prevVariables.categories !== filters) {\n setParamsChanged(true);\n return { ...prevVariables, categories: filters };\n }\n return prevVariables;\n });\n }, [filters]);\n\n useEffect(() => {\n setVariables(prevVariables => {\n if (prevVariables.sortBy !== sortBy) {\n setParamsChanged(true);\n return { ...prevVariables, sortBy };\n }\n return prevVariables;\n });\n }, [sortBy]);\n\n useEffect(() => {\n setVariables(prevVariables => {\n if (prevVariables.sortOrder !== sortOrder) {\n setParamsChanged(true);\n return { ...prevVariables, sortOrder };\n }\n return prevVariables;\n });\n }, [sortOrder]);\n\n useEffect(() => {\n setVariables(prevVariables => {\n const nextPageNum = pageNum + 1;\n if (prevVariables.page !== nextPageNum) {\n setParamsChanged(true);\n return { ...prevVariables, page: nextPageNum };\n }\n return prevVariables;\n });\n }, [pageNum]);\n\n const clearSearch = () => {\n resetSearch();\n setVariables(initialState);\n };\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n {children}\n \n );\n};\n\nAppListingProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default AppListingContext;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(() => {\n return {\n appCardLogo: {\n height: '50px',\n },\n };\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@wds/box';\nimport { Card } from '@wds/card';\nimport { Typography } from '@wds/typography';\nimport AppPlaceHolderImg from '~app/pages/AppsDirectory/static/images/app-placeholder.png';\nimport useStyles from './styles';\n\nconst trimStringTo85 = str => {\n return str.length > 85 ? `${str.substring(0, 85)}\\u2026` : str;\n};\n\nconst AppCard = ({ app }) => {\n const { appCardLogo } = useStyles();\n\n return (\n \n \n \n {app.name}\n \n \n \n \n {app.name}\n \n \n \n {trimStringTo85(app.tagline)}\n \n \n );\n};\n\nAppCard.propTypes = {\n app: PropTypes.shape({\n encryptedAppId: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n tagline: PropTypes.string.isRequired,\n image: PropTypes.string,\n link: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default AppCard;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(() => {\n return {\n /* TODO:\n - temporary fix for using `href` params, as `wds-react` css is interfering with the Card component's styling\n - does not provide a minHeight property at the moment\n - does not have a way to remove margins, making cards in a grid look misaligned\n */\n appGrid: {\n '& a': {\n textDecoration: 'none',\n minHeight: '250px',\n\n '&:hover': {\n textDecoration: 'none',\n },\n '& div[class^=\"wrenchCardBody-\"]': {\n margin: 0,\n },\n },\n },\n };\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Card } from '@wds/card';\nimport { Box } from '@wds/box';\nimport AppCard from '../AppCard';\nimport useStyles from './styles';\n\nconst AppsGrid = ({ apps = [] }) => {\n const { appGrid } = useStyles();\n return (\n \n {apps.map(app => app && )}\n \n );\n};\n\nAppsGrid.propTypes = {\n apps: PropTypes.arrayOf(\n PropTypes.shape({\n encryptedAppId: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n tagline: PropTypes.string.isRequired,\n image: PropTypes.string,\n link: PropTypes.string.isRequired,\n categories: PropTypes.arrayOf(PropTypes.string),\n })\n ).isRequired,\n};\n\nexport default AppsGrid;\n","import React from 'react';\n\nimport { SkeletonLoader, TabletScreen, MobileScreen } from '@sm/webassets';\n\nconst CategorySectionSkeleton = props => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default CategorySectionSkeleton;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(() => ({\n textRight: {\n textAlign: 'right',\n },\n}));\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\n\nimport { ErrorCard } from '@sm/webassets';\nimport { Typography } from '@wds/typography';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\n\nimport appsAppListings from '../AppListingContext/AppListings.graphql';\nimport AppsGrid from '../AppsGrid/AppsGrid';\nimport CategorySectionSkeleton from './CategorySectionSkeleton';\nimport useStyles from './styles';\n\nexport const getCategoryFromKey = (categories, key) => {\n const results = categories.filter(cat => cat.key === key);\n return results[0] || {};\n};\n\nconst CategorySection = ({ queryParams, sectionName, moreLink, moreLinkLabel, lessLink, lessLinkLabel }) => {\n const [showMore, setShowMore] = useState(false);\n const { textRight } = useStyles();\n return (\n \n {({ loading, error, data }) => {\n return (\n
    \n \n \n {sectionName}\n \n \n {\n moreLink();\n setShowMore(true);\n }}\n >\n {moreLinkLabel}\n \n \n \n \n \n \n \n \n \n \n \n <>\n \n \n \n {\n lessLink();\n setShowMore(false);\n }}\n >\n {lessLinkLabel}\n \n \n \n \n \n \n
    \n );\n }}\n
    \n );\n};\n\nCategorySection.propTypes = {\n queryParams: PropTypes.shape({\n categories: PropTypes.arrayOf(PropTypes.string),\n featured: PropTypes.bool,\n search: PropTypes.string,\n sortOrder: PropTypes.string,\n sortBy: PropTypes.string,\n page: PropTypes.number,\n pageSize: PropTypes.number,\n }),\n sectionName: PropTypes.string,\n moreLink: PropTypes.func,\n moreLinkLabel: PropTypes.string,\n lessLink: PropTypes.func,\n lessLinkLabel: PropTypes.string,\n};\n\nCategorySection.defaultProps = {\n queryParams: {\n featured: true,\n },\n sectionName: 'Featured',\n moreLink: () => {},\n moreLinkLabel: '',\n lessLink: () => {},\n lessLinkLabel: '',\n};\n\nexport default CategorySection;\n","import React from 'react';\nimport { Menu } from '@wds/menu';\nimport { Button } from '@wds/button';\nimport { Box } from '@wds/box';\nimport { IconCaretDown, IconCheck } from '@wds/icons';\nimport { SearchConsumer } from '~app/pages/AppsDirectory/components/SearchContext';\nimport {\n SORT_BY_TYPES_POST_SEARCH,\n SORT_BY_TYPES_PRE_SEARCH,\n getLabelFromValue,\n} from '~app/pages/AppsDirectory/components/SearchContext/constants';\n\nconst MenuTrigger = order => {\n return (\n \n );\n};\n\nexport const AppListingSort = () => {\n return (\n \n {({ sortBy, updateSortBy, hasSearchParams }) => {\n const sortTypes = hasSearchParams() ? SORT_BY_TYPES_POST_SEARCH : SORT_BY_TYPES_PRE_SEARCH;\n return (\n \n {sortTypes.map(({ label, value }) => (\n updateSortBy(value)}>\n \n {label}\n \n \n \n \n \n \n \n ))}\n \n );\n }}\n \n );\n};\n\nexport default AppListingSort;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(theme => {\n const { breakpoints, palette, spacing } = theme;\n return {\n homeContainer: {\n backgroundColor: palette.background.main,\n minHeight: '1250px',\n },\n bodyContainer: {\n marginTop: `${spacing['5']}px`,\n maxWidth: '1400px',\n margin: 'auto',\n [`@media screen and (min-width: ${breakpoints.md}px)`]: {\n marginTop: `${spacing['7']}px`,\n },\n },\n tabletSearchBox: {\n [`@media screen and (min-width: ${breakpoints.md}px)`]: {\n width: '70%',\n },\n [`@media screen and (min-width: ${breakpoints.lg}px)`]: {\n width: '50%',\n },\n },\n featuredApps: {\n [`@media screen and (max-width: 1383px) and (min-width: 1133px)`]: {\n '& .appCardSelector:nth-child(n+4)': {\n display: 'none',\n },\n },\n },\n results: {\n '& button': {\n height: 'auto',\n },\n },\n fullWidth: {\n width: '100%',\n },\n };\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\nimport CategorySection from '../CategorySection';\nimport { FEATURED } from '~app/pages/AppsDirectory/components/SearchContext/constants';\nimport EmptySearchImg from '../../../../static/images/empty-search.svg';\nimport useStyles from '../../styles';\n\nexport const NoResultsCard = ({ searchTerm }) => {\n const { featuredApps, fullWidth } = useStyles();\n\n return (\n <>\n \n \n \n \n \n “{searchTerm}” returned no results\n \n \n \n We weren't able to find a match with our search.\n
    \n Take a look at the trending integrations below\n
    \n
    \n \n \"No\n \n
    \n
    \n \n \n \n \n );\n};\nNoResultsCard.propTypes = {\n searchTerm: PropTypes.string.isRequired,\n};\n\nexport default NoResultsCard;\n","import React, { useContext, useState } from 'react';\nimport { Typography } from '@wds/typography';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Pagination } from '@wds/pagination';\nimport { Grid } from '@wds/grid';\nimport AppListingContext from './components/AppListingContext/AppListingContext';\nimport AppsGrid from './components/AppsGrid/AppsGrid';\nimport CategorySection from './components/CategorySection';\nimport { SearchContext } from '../../components/SearchContext';\nimport { FEATURED } from '../../components/SearchContext/constants';\nimport AppListingSort from './components/AppListingSort/AppListingSort';\nimport useStyles from './styles';\nimport NoResultsCard from './components/NoResultsCard';\n\nconst Listings = () => {\n const { featuredApps, results } = useStyles();\n const { search: searchTerm, pageNum, updatePageNum } = useContext(SearchContext);\n const { appListings, pageInfo, isInitialSearch, clearSearch } = useContext(AppListingContext);\n const [featuredParams, setFeaturedParams] = useState({ sortBy: FEATURED.value, page: 1, pageSize: 4 });\n\n const showAllFeatured = () => {\n setFeaturedParams({ sortBy: FEATURED.value, page: 1, pageSize: 12 });\n };\n\n const hideAllFeatured = () => {\n setFeaturedParams({ sortBy: FEATURED.value, page: 1, pageSize: 4 });\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n All Apps\n \n \n \n \n \n Results\n \n \n \n \n \n \n \n \n \n \n \n \n \n 0}>\n \n \n {\n updatePageNum(newPage);\n }}\n />\n \n \n \n \n \n \n \n );\n};\n\nexport default Listings;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUseStyles } from 'react-jss';\n\nimport { TabletScreen } from '@sm/webassets';\nimport { Box } from '@wds/box';\n\nconst useStyles = createUseStyles(theme => {\n const { spacing } = theme;\n\n return {\n container: {\n [`@media screen and (max-width: 1400px)`]: {\n marginLeft: `${spacing['6']}px`,\n marginRight: `${spacing['6']}px`,\n },\n },\n leftColumn: {\n width: '300px',\n minWidth: '258px',\n position: 'sticky',\n top: 0,\n marginBottom: `${spacing['8']}px`,\n },\n };\n});\n\nexport const LeftNavLayout = ({ nav, children }) => {\n const { container, leftColumn } = useStyles();\n\n return (\n \n \n
    {nav}
    \n
    \n {children}\n
    \n );\n};\n\nLeftNavLayout.propTypes = {\n nav: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default LeftNavLayout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@wds/box';\nimport { InputGroup, InputGroupAddon } from '@wds/input-group';\nimport { Input } from '@sm/wds-react';\nimport { IconSearch } from '@wds/icons';\nimport { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport { debounce } from 'lodash';\nimport { withRouter } from 'react-router-dom';\nimport { SearchConsumer } from '~app/pages/AppsDirectory/components/SearchContext';\n\nconst SearchBox = ({ location }) => {\n return (\n \n \n {({ search, updateSearch }) => {\n const debouncedUpdateSearch = debounce(value => {\n MetricsTracker.track({\n name: USER_EVENTS.ELEMENT_INTERACTION,\n data: {\n amplitudeEvent: 'app directory searched',\n actionType: 'directory_search.searched',\n actionFlow: 'directory_search',\n searchTerm: value,\n location: location.pathname,\n },\n });\n updateSearch(value);\n }, 300);\n\n return (\n \n {\n debouncedUpdateSearch(e.target.value);\n }}\n />\n \n \n \n \n );\n }}\n \n \n );\n};\n\nSearchBox.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string,\n }).isRequired,\n};\n\nexport default withRouter(SearchBox);\n","import React, { useEffect, useContext, useState } from 'react';\n\nimport { BasePage, StaticContext, Helmet, MobileScreen, TabletScreen } from '@sm/webassets';\nimport { Box } from '@wds/box';\n\nimport JumboHeader from './components/JumboHeader';\nimport ModernHeader from '../../components/ModernHeader';\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\nimport FilterNav from '../../components/FilterNav';\nimport UCSModule from '../../../components/UCSModule';\nimport { CategoriesProvider } from '../../components/CategoriesContext';\nimport { SearchProvider } from '../../components/SearchContext';\n\nimport getCanonicalUrlOrNoIndex from '~app/helpers/getCanonicalUrlOrNoIndex';\nimport Listings from './Listings';\nimport { AppListingProvider } from './components/AppListingContext/AppListingContext';\nimport LeftNavLayout from '../../components/Layouts/LeftNavLayout';\nimport SearchBox from './components/SearchBox';\nimport useStyles from './styles';\n\nconst HomeV2 = () => {\n // render the header post SSR as it is breaking SSR\n const [renderHeader, setRenderHeader] = useState(false);\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n window.usabilla_live('setForm', 'APP DIRECTORY');\n });\n setRenderHeader(true);\n }, []);\n\n const {\n environment: { subdomain, domain, tld },\n user,\n url,\n } = useContext(StaticContext);\n\n const { tabletSearchBox, homeContainer, bodyContainer } = useStyles();\n\n const { noIndex, canonicalUrl } = getCanonicalUrlOrNoIndex(subdomain, domain, tld, url);\n\n return (\n
    \n \n \n \n SurveyMonkey App Directory & Integrations\n \n \n \n \n \n \n \n \n <>\n {renderHeader ? : null}\n \n \n \n } />\n \n \n \n \n \n \n \n \n }>\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n );\n};\n\nexport default HomeV2;\n","import { createUseStyles } from 'react-jss';\n\nconst styles = createUseStyles(theme => {\n const responsiveContainerPadding = {\n paddingLeft: `${theme.spacing['6']}px`,\n paddingRight: `${theme.spacing['6']}px`,\n [`@media screen and (min-width: ${theme.breakpoints.sm}px)`]: {\n paddingLeft: `${theme.spacing['8']}px`,\n paddingRight: `${theme.spacing['8']}px`,\n },\n };\n\n return {\n appDetailsHeader: {\n backgroundColor: '#DAEAE4',\n ...responsiveContainerPadding,\n },\n contentContainer: {\n ...responsiveContainerPadding,\n },\n appDetailsHeaderLogo: {\n borderRadius: '5px',\n backgroundColor: theme.palette.background.light,\n boxShadow: '0px 1px 2px grey',\n maxHeight: '350px',\n },\n appDetailsHeaderLogoImg: {\n maxInlineSize: '100%',\n blockSize: 'auto',\n maxWidth: '300px',\n },\n textContainer: {\n width: '860px',\n [`@media screen and (max-width: ${theme.breakpoints.sm}px)`]: {\n width: '100%',\n },\n },\n appDetailsTab: {\n minHeight: '500px',\n padding: `${theme.spacing['4']}px ${theme.spacing['6']}px`,\n width: '860px',\n [`@media screen and (max-width: ${theme.breakpoints.lg}px)`]: {\n paddingLeft: 0,\n paddingRight: 0,\n width: '100%',\n },\n },\n appDetailsMediaGallery: {\n maxHeight: '150px',\n },\n appDetailsMediaModalImg: {\n maxInlineSize: '100%',\n blockSize: 'auto',\n height: 'auto',\n maxHeight: '80vh',\n maxWidth: '80wh',\n },\n appDetailsMediaModalYoutube: {\n height: '85vh',\n width: '75vw',\n },\n appDetailsYoutubeWrapper: {\n marginTop: `${theme.spacing['5']}px`,\n position: 'relative',\n paddingBottom: '56.25%',\n height: '0',\n\n [`@media screen and (min-width: ${theme.breakpoints.lg}px)`]: {\n marginTop: 0,\n },\n },\n appDetailsMediaModalYoutubeWrapper: {\n position: 'relative',\n paddingBottom: '56.25%',\n height: '0',\n marginTop: '5vw',\n },\n appDetailsYoutubeFrame: {\n position: 'absolute',\n border: 'none',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n },\n appDetailsModalLeft: {\n display: 'flex',\n placeItems: 'center',\n },\n appDetailsModalMain: {\n display: 'flex',\n placeItems: 'center',\n justifyContent: 'center',\n },\n appDetailsModalRight: {\n display: 'flex',\n placeItems: 'center',\n },\n uninstallButton: {\n marginLeft: `${theme.spacing[2]}px`,\n },\n };\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ResponsiveImage({ src, maxHeight, alt }) {\n return (\n \n );\n}\n\nResponsiveImage.propTypes = {\n src: PropTypes.string.isRequired,\n maxHeight: PropTypes.number.isRequired,\n alt: PropTypes.string,\n};\n\nResponsiveImage.defaultProps = {\n alt: '',\n};\n\nexport default ResponsiveImage;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Modal } from '@wds/modal';\nimport { Button } from '@wds/button';\nimport { Box } from '@wds/box';\nimport { IconArrowLeft, IconArrowRight } from '@wds/icons';\nimport ResponsiveImage from './components/ResponsiveImage';\nimport useStyles from './styles';\n\nfunction* nextInArray(array, startIndex = 0, reverse = false) {\n let index = startIndex;\n const step = reverse ? -1 : 1;\n\n while (true) {\n yield array[index];\n index = (index + step + array.length) % array.length;\n }\n}\n\nconst AppDetailsMedia = ({ mediaFiles = [{}], mediaIndex = 0, maxHeight }) => {\n const media = mediaFiles[mediaIndex];\n const {\n appDetailsMediaModalImg,\n appDetailsMediaModalYoutube,\n appDetailsYoutubeWrapper,\n appDetailsYoutubeFrame,\n appDetailsMediaModalYoutubeWrapper,\n appDetailsModalLeft,\n appDetailsModalMain,\n appDetailsModalRight,\n } = useStyles();\n const [showModal, setShowModal] = useState(false);\n const [selectedMedia, setSelectedMedia] = useState(mediaFiles[mediaIndex]);\n const [nextMediaGenerator, setNextImageGenerator] = useState(null);\n const [prevMediaGenerator, setPrevImageGenerator] = useState(null);\n\n useEffect(() => {\n setNextImageGenerator(nextInArray(mediaFiles, mediaIndex, false));\n setPrevImageGenerator(nextInArray(mediaFiles, mediaIndex, true));\n }, [mediaFiles, mediaIndex]);\n\n const previousMedia = () => {\n setSelectedMedia(prevMediaGenerator.next().value);\n };\n\n const nextMedia = () => {\n setSelectedMedia(nextMediaGenerator.next().value);\n };\n\n return (\n \n \n
    \n \n
    \n
    \n \n
    \n setShowModal(true)} display=\"grid\" placeItems=\"center\">\n \n \n setShowModal(false)} closeButtonLabel=\"Close Image\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n );\n};\n\nAppDetailsMedia.propTypes = {\n mediaFiles: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n altText: PropTypes.string,\n })\n ).isRequired,\n mediaIndex: PropTypes.number.isRequired,\n maxHeight: PropTypes.number,\n};\n\nAppDetailsMedia.defaultProps = {\n maxHeight: null,\n};\n\nexport default AppDetailsMedia;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router-dom';\nimport { Button } from '@wds/button';\nimport { generateMetricsAttribute } from '@sm/metrics';\n\nexport const useSearchParams = () => {\n const { search } = useLocation();\n return React.useMemo(() => new URLSearchParams(search), [search]);\n};\n\nexport const AppDetailsActionButton = ({ appDetails, stretched }) => {\n const urlParams = useSearchParams();\n\n const getEventNameFromSource = source => {\n switch (source) {\n case 'collector_list':\n return 'list';\n case 'website_collector':\n return 'weblink';\n case 'weblink_collector':\n return 'embedded';\n default:\n return '';\n }\n };\n\n const addCollectEventInfo = () => {\n const source = urlParams.get('ut_source');\n return source\n ? {\n eventName: `collect ${getEventNameFromSource(source)} user interaction`,\n interactionType: 'click',\n interactionLocation: 'integration card',\n integrationOptionClicked: appDetails.name,\n }\n : {};\n };\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n Install\n \n \n \n );\n};\n\nAppDetailsActionButton.propTypes = {\n appDetails: PropTypes.shape({\n id: PropTypes.string,\n isIntegration: PropTypes.bool,\n name: PropTypes.string,\n tagline: PropTypes.string,\n fullDescription: PropTypes.string,\n logo: PropTypes.string,\n installed: PropTypes.bool,\n details: PropTypes.shape({\n publisher: PropTypes.string,\n featureList: PropTypes.arrayOf(PropTypes.string),\n googleAnalyticsTrackingId: PropTypes.string,\n supportEmail: PropTypes.string,\n supportPhoneNumber: PropTypes.string,\n supportUrl: PropTypes.string,\n requirements: PropTypes.arrayOf(PropTypes.string),\n screenshots: PropTypes.arrayOf(PropTypes.string),\n privacyPolicyUrl: PropTypes.string,\n termsOfUseUrl: PropTypes.string,\n blogUrl: PropTypes.string,\n youtubeUrl: PropTypes.string,\n websiteUrl: PropTypes.string,\n installUrl: PropTypes.string,\n upgradeRequired: PropTypes.bool,\n optionalUpgrade: PropTypes.bool,\n scopes: PropTypes.arrayOf(PropTypes.string),\n link: PropTypes.string,\n linkType: PropTypes.string,\n }),\n }).isRequired,\n stretched: PropTypes.bool.isRequired,\n};\n\nexport default AppDetailsActionButton;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Mutation } from 'react-apollo';\n\nimport { Button } from '@wds/button';\nimport { Modal } from '@wds/modal';\n\nimport uninstallAppMutation from '../../../components/RemoveApp/remove-app.graphql';\nimport useStyles from '../styles';\n\nconst UninstallButton = ({ appId, onSuccess, onClose, color, stretched }) => {\n const { uninstallButton } = useStyles();\n const [confirmDialogVisible, setConfirmDialogVisible] = useState(false);\n\n return (\n <>\n \n setConfirmDialogVisible(true)}\n data-testid=\"UninstallButton\"\n color={color}\n stretched={stretched}\n >\n Uninstall\n \n \n {\n setConfirmDialogVisible(false);\n onSuccess();\n }}\n >\n {(uninstallApp, { loading }) => {\n return (\n {\n setConfirmDialogVisible(false);\n onClose();\n }}\n >\n Remove App\n Would you like to uninstall this app?\n \n \n {\n setConfirmDialogVisible(false);\n onClose();\n }}\n color=\"alt\"\n >\n Cancel\n \n \n \n );\n }}\n \n \n );\n};\n\nUninstallButton.propTypes = {\n appId: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n onSuccess: PropTypes.func,\n color: PropTypes.string,\n stretched: PropTypes.bool,\n};\n\nUninstallButton.defaultProps = {\n onClose: () => {},\n onSuccess: () => {},\n color: 'alt',\n stretched: false,\n};\n\nexport default UninstallButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography } from '@wds/typography';\nimport { Grid } from '@wds/grid';\nimport { Box } from '@wds/box';\nimport { Tabs, Tab } from '@wds/tabs';\nimport { IconGear, IconUserFilled } from '@wds/icons';\nimport { List } from '@wds/list';\nimport { getClientEnvironmentDetails, sanitizeString } from '@sm/utils';\nimport { MobileScreen, TabletScreen } from '@sm/webassets';\nimport useStyles from './styles';\nimport AppDetailsMedia from './AppDetailsMedia';\nimport AppDetailsActionButton from './components/AppDetailsActionButton';\nimport UninstallButton from './components/UninstallButton';\n\nconst buildAppDetailsMediaFilesList = ({ details: { youtubeUrl = '', screenshots = [] }, name = '' }) => {\n const mediaList = [];\n\n if (youtubeUrl)\n mediaList.push({\n url: youtubeUrl,\n type: 'youtube',\n altText: name,\n });\n\n screenshots.forEach(s =>\n mediaList.push({\n url: s,\n type: 'image',\n altText: name,\n })\n );\n\n return mediaList;\n};\n\nconst removeQueryParameters = url => {\n const urlObj = new URL(url);\n urlObj.search = '';\n return urlObj.href;\n};\n\nconst stripHttp = url => url.replace(/(^\\w+:|^)\\/\\//, '');\n\nconst AppDetails = ({ appDetails, refreshDetails }) => {\n const {\n appDetailsHeader,\n appDetailsHeaderLogo,\n contentContainer,\n appDetailsTab,\n appDetailsHeaderLogoImg,\n textContainer,\n } = useStyles();\n\n const { isMobile = false } = getClientEnvironmentDetails();\n\n const mediaFiles = buildAppDetailsMediaFilesList(appDetails);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {appDetails.name}\n \n \n by {appDetails.details.publisher}\n \n \n {appDetails.tagline}\n \n \n \n \n refreshDetails()}\n color=\"alt\"\n stretched={isMobile}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {appDetails.name}\n \n by {appDetails.details.publisher}\n \n \n \n\n \n {appDetails.tagline}\n \n \n \n \n refreshDetails()}\n color=\"alt\"\n stretched=\"true\"\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n 1}>\n \n \n {mediaFiles.map(\n (media, index) =>\n index !== 0 &&\n index <= 5 && (\n \n \n \n )\n )}\n \n \n \n \n \n \n \n
      \n {appDetails.details.featureList.map(feature => (\n
    • \n {feature}\n
    • \n ))}\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {`This app will require an additional ${appDetails.details.requirements.type} account:`}\n \n \n \n }>\n \n \n {appDetails.details.requirements.label}\n \n \n \n \n \n

    {appDetails.details.requirements.description}

    \n
    \n
    \n \n \n \n This app will require access to:\n \n \n \n {appDetails.details.scopes.map(scope => (\n }>\n {scope}\n \n ))}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n Email\n \n {appDetails.details.supportEmail}\n \n \n \n Privacy\n \n \n {stripHttp(removeQueryParameters(appDetails.details.privacyPolicyUrl))}\n \n \n \n \n Terms of service\n \n \n {stripHttp(removeQueryParameters(appDetails.details.termsOfUseUrl))}\n \n \n \n \n
    \n );\n};\n\nAppDetails.propTypes = {\n appDetails: PropTypes.shape({\n id: PropTypes.string,\n isIntegration: PropTypes.bool,\n name: PropTypes.string,\n tagline: PropTypes.string,\n fullDescription: PropTypes.string,\n logo: PropTypes.string,\n installed: PropTypes.bool,\n details: PropTypes.shape({\n publisher: PropTypes.string,\n featureList: PropTypes.arrayOf(PropTypes.string),\n googleAnalyticsTrackingId: PropTypes.string,\n supportEmail: PropTypes.string,\n supportPhoneNumber: PropTypes.string,\n supportUrl: PropTypes.string,\n requirements: PropTypes.arrayOf(PropTypes.string),\n screenshots: PropTypes.arrayOf(PropTypes.string),\n privacyPolicyUrl: PropTypes.string,\n termsOfUseUrl: PropTypes.string,\n blogUrl: PropTypes.string,\n youtubeUrl: PropTypes.string,\n websiteUrl: PropTypes.string,\n installUrl: PropTypes.string,\n upgradeRequired: PropTypes.bool,\n optionalUpgrade: PropTypes.bool,\n scopes: PropTypes.arrayOf(PropTypes.string),\n link: PropTypes.string,\n linkType: PropTypes.string,\n }),\n }).isRequired,\n refreshDetails: PropTypes.func.isRequired,\n};\n\nexport default AppDetails;\n","import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-apollo';\nimport ReactGA from 'react-ga';\nimport { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport { BasePage, Helmet, ErrorCard, FourOhFourError, StaticContext } from '@sm/webassets';\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\nimport publishedApplicationListingDetails from '../Details/published-application-listing-details.graphql';\nimport previewApplicationListingDetails from '../Details/preview-application-listing-details.graphql';\nimport AppDirectoryAppDetailsSkeleton from '../Details/AppDirectoryAppDetailsSkeleton';\nimport AppDetails from './AppDetails';\nimport getCanonicalUrlOrNoIndex from '~app/helpers/getCanonicalUrlOrNoIndex';\nimport ModernHeader from '../../components/ModernHeader';\n\nexport const DetailsPage = ({\n match: {\n params: { appId },\n },\n location: { pathname },\n preview = false,\n}) => {\n const {\n environment: { subdomain, domain, tld },\n url,\n } = useContext(StaticContext);\n const [appDetails, setAppDetails] = useState();\n const [pageTracked, setPageTracked] = useState(false);\n const [googleTracked, setGoogleTracked] = useState(false);\n const { noIndex, canonicalUrl } = getCanonicalUrlOrNoIndex(subdomain, domain, tld, url);\n\n const onQueryComplete = data => {\n const newAppDetails = preview ? data.previewApplicationListingDetails : data.publishedApplicationListingDetails;\n\n const { details = {}, id, name } = newAppDetails;\n if (newAppDetails && details.googleAnalyticsTrackingId && !googleTracked) {\n const trackerName = 'app-dir-details-pageview';\n ReactGA.initialize(details.googleAnalyticsTrackingId, {\n name: trackerName, // this is tracker name in case there are other trackers on the page\n });\n ReactGA.pageview(pathname, [trackerName]);\n setGoogleTracked(true);\n }\n\n if (newAppDetails && !pageTracked) {\n MetricsTracker.track({\n name: USER_EVENTS.COMPONENT_ADD,\n data: {\n actionFlow: 'browsing',\n actionType: 'app_details.page_view',\n appId: id,\n appName: name,\n },\n });\n setPageTracked(true);\n }\n setAppDetails(newAppDetails);\n };\n\n const { loading, error, refetch } = useQuery(\n preview ? previewApplicationListingDetails : publishedApplicationListingDetails,\n {\n variables: { language: 'en', appId },\n onCompleted: (response = {}) => onQueryComplete(response),\n }\n );\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n window.usabilla_live('setForm', 'AppDirectoryForm');\n });\n }, []);\n\n return (\n \n \n \n \n <>\n {loading} {error}\n \n \n \n \n <>\n {loading} {error}\n \n \n \n \n
    \n {loading} {error}\n \n
    \n
    \n \n \n {`${appDetails.name} - SurveyMonkey App Integration`}\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nDetailsPage.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n appId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n preview: PropTypes.bool,\n};\n\nDetailsPage.defaultProps = {\n preview: false,\n};\n\nexport default DetailsPage;\n","import React, { useEffect, useContext } from 'react';\nimport { Route, withRouter, Switch } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { FourOhFourError, StaticContext, useExperiment, ExperimentProvider } from '@sm/webassets';\nimport { MetricsTracker } from '@sm/metrics';\n\nimport {\n HomePage,\n CategoriesPage,\n FeaturedPage,\n MostPopularPage,\n RecentlyAddedPage,\n SearchPage,\n MyAppsPage,\n DetailsPage,\n HomePageV2,\n DetailsV2Page,\n} from './pages';\n\nconst APP_DIRECTORY_V2_EXPERIMENT = {\n name: 'integrate_4500_app_dir_v2',\n treatmentNames: ['integrate_4500_app_dir_v2_control', 'integrate_4500_app_dir_v2_enabled'],\n};\n\nconst HomePageExperiment = props => {\n const { treatments } = useExperiment(APP_DIRECTORY_V2_EXPERIMENT);\n const showV2 = treatments?.integrate_4500_app_dir_v2_enabled?.treatmentName;\n\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nconst AppDetailsExperiment = props => {\n const { treatments } = useExperiment(APP_DIRECTORY_V2_EXPERIMENT);\n const showV2 = treatments?.integrate_4500_app_dir_v2_enabled?.treatmentName;\n\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nconst AppPreviewExperiment = props => {\n const { treatments } = useExperiment(APP_DIRECTORY_V2_EXPERIMENT);\n const showV2 = treatments?.integrate_4500_app_dir_v2_enabled?.treatmentName;\n\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nconst AppsDirectoryRouter = ({ history }) => {\n const {\n user,\n environment: { countryCode: country },\n 'client-config': { loggingAPIPath, amplitudeToken },\n } = useContext(StaticContext);\n\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n };\n }, [history]);\n\n useEffect(() => {\n MetricsTracker.initialize({\n user: { id: user.id, isAuthenticated: user.isAuthenticated },\n loggingAPIPath,\n country,\n pageId: 'AppDirectory',\n amplitudeToken,\n });\n }, [user, country, loggingAPIPath, amplitudeToken]);\n\n // Hide usabilla for all pages - each individual page will set usabilla configs and show if enabled\n // Note the load of usabilla hides the button so this code is included if usabilla has already been loaded\n if (typeof window !== 'undefined' && window && window.usabilla_live) {\n window.usabilla_live('virtualPageView');\n window.usabilla_live('hide');\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n \n );\n};\n\nAppsDirectoryRouter.propTypes = {\n history: PropTypes.shape({\n listen: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default withRouter(AppsDirectoryRouter);\n","export const PRODUCT_CATEGORY = Object.freeze({\n AUDIENCE: 'audience_panel',\n EXPERT_SOLUTIONS: 'expert_solutions',\n});\n\nexport const FILTER_KEY = Object.freeze({\n CATEGORY: 'category',\n});\n\nexport const NAV_VARIANT = Object.freeze({\n LIGHT: 'light',\n DARK: 'dark',\n});\n","import { useContext } from 'react';\nimport { StaticContext } from '@sm/webassets';\n\nexport const BROWSER = Object.freeze({\n IE: 'IE',\n UNKNOWN: 'UNKNOWN',\n});\n\nconst useBrowser = () => {\n const { userAgent } = useContext(StaticContext);\n /*\n This kind of naive browser testing should be replaced by Thiago's (MOD-312)\n when it is ready. This is just a stop-gap until it becomes available.\n This only detects IE 11; since we do not support earlier versions anyway.\n */\n if (typeof window === 'undefined') {\n if (userAgent.indexOf('Trident/7.0') >= 0) return BROWSER.IE;\n return BROWSER.UNKNOWN;\n }\n if (!!window.MSInputMethodContext && !!document.documentMode) {\n return BROWSER.IE;\n }\n return BROWSER.UNKNOWN;\n};\n\nexport default useBrowser;\n","const getOnClickHandlers = handler => ({\n onClick: handler,\n onKeyPress: e => {\n if (e.key === 'Enter') handler();\n },\n});\n\nexport default getOnClickHandlers;\n","import { useEffect, useLayoutEffect } from 'react';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n ? useLayoutEffect\n : useEffect;\n\nexport default useIsomorphicLayoutEffect;\n","/**\n * Takes a base link along with some query parameters and an anchor tag and\n * returns a formed link given the parameters given. Example:\n * getLinkWithParams('example.com', { queryParams: { key: 'value&' }, anchor: 'top' })\n * returns: 'example.com?key=value%26#top'\n * @param {string} href String base link\n * @param {object} config Can contain keys queryParams as an object and anchor as a string\n */\nconst getLinkWithParams = (href, config) => {\n const { queryParams = {}, anchor } = config;\n const mHref = `${href}?`;\n const mQueryParams = Object.keys(queryParams)\n .map(paramKey => `${encodeURIComponent(paramKey)}=${encodeURIComponent(queryParams[paramKey])}`)\n .join('&');\n const mAnchor = anchor ? `#${anchor}` : '';\n return mHref + mQueryParams + mAnchor;\n};\n\nexport default getLinkWithParams;\n","import PropTypes from 'prop-types';\nimport { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport getLinkWithParams from './getLinkWithParams';\n\nconst buildEventData =\n actionFlow =>\n (actionType, data = {}) => ({\n data: {\n actionFlow,\n actionType,\n ...data,\n },\n });\n\nconst trackEvent = actionFlow => (actionType, data) => {\n MetricsTracker.track({\n name: USER_EVENTS.ELEMENT_INTERACTION,\n ...buildEventData(actionFlow)(actionType, data),\n });\n};\n\nconst createLogger = actionFlow => ({\n trackEvent: trackEvent(actionFlow),\n buildEventData: buildEventData(actionFlow),\n});\n\nexport const LOGGER_NAME = Object.freeze({\n SOLUTIONS: 'mrx_solutions',\n NAV: 'mrx_navigation_menu',\n BI_MARKETPLACE_MODAL: 'marketplace_modal',\n});\n\nclass ActionFlowLogger {\n constructor(actionFlow) {\n this.logger = createLogger(actionFlow);\n }\n\n registerActionKey = (key, handlerName, handler) => {\n if (!handlerName) {\n this[key] = (...args) => this.logger.trackEvent(...handler(...args));\n } else {\n if (!this[key]) {\n this[key] = {};\n }\n this[key][handlerName] = (...args) => this.logger.trackEvent(...handler(...args));\n }\n return this;\n };\n}\n\nconst removeSpaces = str => str.replace(' ', '_');\n\nconst getLoggedModuleType = moduleType => {\n if (moduleType === 'CONCEPT_TESTING') {\n return 'CTM';\n }\n return moduleType;\n};\n\nconst getLogger = loggerName => {\n switch (loggerName) {\n case LOGGER_NAME.SOLUTIONS:\n case LOGGER_NAME.NAV:\n return new ActionFlowLogger(loggerName)\n .registerActionKey('click', 'learnMore', moduleTitle => [`CLICK_${removeSpaces(moduleTitle)}_LEARN_MORE`])\n .registerActionKey('click', 'getStarted', moduleTitle => [`CLICK_${removeSpaces(moduleTitle)}_TRY_IT_NOW`])\n .registerActionKey('click', 'navigateTo', dest => [`CLICK_NAVIGATE_TO_${removeSpaces(dest)}`])\n .registerActionKey('click', 'contactUs', moduleTitle => [`CLICK_${removeSpaces(moduleTitle)}_CONTACT_US`]);\n case LOGGER_NAME.BI_MARKETPLACE_MODAL:\n return new ActionFlowLogger(loggerName)\n .registerActionKey('click', 'getStarted', (moduleType, moduleSubType) => [\n 'button_click',\n {\n page: 'marketplace',\n button: 'done',\n moduleType: getLoggedModuleType(moduleType),\n module_subtype: moduleSubType,\n },\n ])\n .registerActionKey('click', 'learnMore', () => [\n 'button_click',\n {\n page: 'marketplace',\n button: 'learn_more',\n },\n ])\n .registerActionKey('pageLoad', null, () => ['page_load', { page: 'marketplace' }]);\n default:\n throw new Error(`Unrecognized logger type \"${loggerName}\"`);\n }\n};\n\nexport const loggerPropType = PropTypes.objectOf(\n PropTypes.oneOfType([PropTypes.func, PropTypes.objectOf(PropTypes.func)])\n);\n\nexport const getLinkGenerator = config => {\n const { ut_source: utSource, ut_source2: utSource2, ut_source3: utSource3 } = config;\n return (link, conf = {}) => {\n const { ut_source3: utSource3sub, ut_ctatext: utCtaText, anchor } = conf;\n const linkConfig = {\n queryParams: {\n ut_source: utSource,\n ut_source2: utSource2,\n },\n };\n if (utSource3 || utSource3sub) {\n linkConfig.queryParams.ut_source3 = utSource3sub || utSource3;\n }\n if (utCtaText) linkConfig.queryParams.ut_ctatext = utCtaText;\n if (anchor) linkConfig.anchor = anchor;\n return getLinkWithParams(link, linkConfig);\n };\n};\n\nexport default getLogger;\n","export const MENU = Object.freeze({\n SOLUTIONS: 'SOLUTIONS',\n MORE_RESOURCES: 'MORE_RESOURCES',\n});\n\nexport const GLOBAL_NAV_HEIGHT = 50;\n","import { GLOBAL_NAV_HEIGHT } from './enums';\n\nconst isAtTop = () => window.pageYOffset <= GLOBAL_NAV_HEIGHT;\n\nconst getScrollListener = handler => () => {\n const listenerArgs = ['scroll', () => handler(isAtTop())];\n window.addEventListener(...listenerArgs);\n return () => window.removeEventListener(...listenerArgs);\n};\n\nexport default getScrollListener;\n","import getLogger, { LOGGER_NAME } from '../../../helpers/logging';\n\nconst logger = getLogger(LOGGER_NAME.NAV);\n\nexport default logger;\n","const COPY = {\n marketResearchSolutions: {\n id: 'mrx.MRXNav.marketResearchSolutions',\n defaultMessage: 'Market Research Solutions logo',\n description: '[Type: Header][Vis: med] - Navigation menu logo label',\n },\n homeLink: {\n id: 'mrx.MRXNav.homeLink',\n defaultMessage: 'Link to market research home page',\n description: '[Type: Link][Vis: med] - Link to market research home page',\n },\n solutions: {\n id: 'mrx.MRXNav.solutions',\n defaultMessage: 'Solutions',\n description: '[Type: Button][Vis: med] - Labels the sub-menu for market research product links',\n },\n globalSurveyPanel: {\n id: 'mrx.MRXNav.globalSurveyPanel',\n defaultMessage: 'Global survey panel',\n description: '[Type: Link][Vis: med] - Labels the link to the Audience market research product page',\n },\n expertSolutions: {\n id: 'mrx.MRXNav.expertSolutions',\n defaultMessage: 'Expert solutions',\n description: '[Type: Link][Vis: med] - Labels the link to the solutions market research product page',\n },\n services: {\n id: 'mrx.MRXNav.services',\n defaultMessage: 'Services',\n description: '[Type: Link][Vis: med] - Labels the link to the market research services page',\n },\n moreResources: {\n id: 'mrx.MRXNav.moreResources',\n defaultMessage: 'More Resources',\n description: '[Type: Button][Vis: med] - Labels the sub-menu for market research product links',\n },\n audienceTargeting: {\n id: 'mrx.MRXNav.audienceTargeting',\n defaultMessage: 'Audience targeting',\n description: '[Type: Link][Vis: med] - Labels the link to the Audience targeting market research help page',\n },\n dataQuality: {\n id: 'mrx.MRXNav.dataQuality',\n defaultMessage: 'Data quality',\n description: '[Type: Link][Vis: med] - Labels the link to the data quality market research help page',\n },\n budgetingOptions: {\n id: 'mrx.MRXNav.budgetingOptions',\n defaultMessage: 'Budgeting options',\n description: '[Type: Link][Vis: med] - Labels the link to the market research credits page',\n },\n guidesAndCaseStudies: {\n id: 'mrx.MRXNav.guidesAndCaseStudies',\n defaultMessage: 'Guides & case studies',\n description: '[Type: Link][Vis: med] - Labels the link to the market research help page',\n },\n getADemo: {\n id: 'mrx.MRXNav.getADemo',\n defaultMessage: 'Get a demo',\n description: '[Type: Button][Vis: med] - Labels the link to the market research demo page',\n },\n};\n\nexport default COPY;\n","import { t } from '@sm/intl';\nimport COPY from './copy';\nimport logger from './logger';\nimport { getLinkGenerator } from '../../../helpers/logging';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'subnav',\n});\n\nconst MENU_CONFIG = Object.freeze({\n solutions: {\n text: t(COPY.solutions),\n menuItems: [\n {\n text: t(COPY.globalSurveyPanel),\n href: getLink('/market-research/solutions/audience-panel', {\n ut_ctatext: 'Global survey panel',\n }),\n logging: () => logger.click.navigateTo('global_survey_panel'),\n },\n {\n text: t(COPY.expertSolutions),\n href: getLink('/market-research/solutions', {\n ut_ctatext: 'Expert solutions',\n }),\n logging: () => logger.click.navigateTo('expert_solutions'),\n },\n ],\n },\n services: {\n text: t(COPY.services),\n href: getLink('/market-research/services', {\n ut_ctatext: 'Services',\n }),\n onClick: () => logger.click.navigateTo('services'),\n },\n moreResources: {\n text: t(COPY.moreResources),\n menuItems: [\n {\n text: t(COPY.audienceTargeting),\n href: getLink('/market-research/audience-targeting', {\n ut_ctatext: 'Audience targeting',\n }),\n logging: () => logger.click.navigateTo('audience_targeting'),\n },\n {\n text: t(COPY.dataQuality),\n href: getLink('/market-research/data-quality', {\n ut_ctatext: 'Data quality',\n }),\n logging: () => logger.click.navigateTo('data_quality'),\n },\n {\n text: t(COPY.budgetingOptions),\n href: getLink('/market-research/credits', {\n ut_ctatext: 'Budgeting options',\n }),\n logging: () => logger.click.navigateTo('credits'),\n },\n {\n text: t(COPY.guidesAndCaseStudies),\n href: getLink('/market-research/resources', {\n ut_ctatext: 'Guides and case studies',\n }),\n logging: () => logger.click.navigateTo('resources'),\n },\n ],\n },\n});\n\nexport default MENU_CONFIG;\n","import PropTypes from 'prop-types';\n\nexport const linkPropType = PropTypes.shape({\n href: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n text: PropTypes.string.isRequired,\n logging: PropTypes.func,\n});\n\nexport const productPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n ctaLink: linkPropType,\n learnMoreLink: linkPropType,\n});\n\nexport const productCategoryPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n priority: PropTypes.number,\n products: PropTypes.arrayOf(productPropType).isRequired,\n});\n\nexport const menuItemPropType = PropTypes.shape({\n text: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n logging: PropTypes.func,\n});\n","import { useRef, useEffect } from 'react';\n\nconst useCursor = () => {\n const cursorPos = useRef({ x: 0, y: 0 });\n useEffect(() => {\n const listenerArgs = [\n 'mousemove',\n e => {\n cursorPos.current.x = e.clientX;\n cursorPos.current.y = e.clientY;\n },\n ];\n window.addEventListener(...listenerArgs);\n return () => window.removeEventListener(...listenerArgs);\n });\n\n return {\n isCursorOverElement: element => {\n if (!element) return false;\n const rect = element.getBoundingClientRect();\n let isInBound = true;\n if (cursorPos.current.y < rect.top || cursorPos.current.y > rect.bottom) isInBound = false;\n if (cursorPos.current.x < rect.left || cursorPos.current.x > rect.right) isInBound = false;\n return isInBound;\n },\n };\n};\n\nexport default useCursor;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { DesktopScreen, MobileTabletScreen, TabletScreen } from '@sm/webassets';\nimport { Typography, List, ListItem, Row, Col } from '@sm/wds-react';\nimport { IconChevronDown, IconChevronUp } from '@sm/wds-icons';\n\nimport { menuItemPropType } from '../../../propTypes';\nimport getClickHandlers from '../../../helpers/getClickHandlers';\nimport useCursor from '../../../helpers/useCursor';\nimport './expandable-menu.scss';\nimport { NAV_VARIANT } from '../../../enums';\n\nexport const getLinkTestId = text => `ExpandableMenu__link-${text}`;\n\nconst ExpandableMenu = ({ text, href, target, menuItems, isOpen, onClick, onBlur, variant }) => {\n const boundingElementId = 'expandable-menu-bounding-box';\n const cursor = useCursor();\n useEffect(() => {\n const listenerArgs = [\n 'mouseup',\n () => {\n const element = document.getElementById(boundingElementId);\n if (!cursor.isCursorOverElement(element)) {\n onBlur();\n }\n },\n ];\n window.addEventListener(...listenerArgs);\n return () => window.removeEventListener(...listenerArgs);\n });\n const getText = () => {\n const textClasses = classnames({\n 'sm-expandable-menu__title': true,\n 'wds-m-r-2': !href,\n });\n if (href) {\n return (\n {\n if (onClick) onClick();\n })}\n data-testid={getLinkTestId(text)}\n >\n \n {text}\n \n \n );\n }\n return (\n \n {\n if (onClick) onClick();\n })}\n className=\"sm-expandable-menu__open-text\"\n >\n {text}\n
    \n \n \n \n \n \n \n \n \n
    \n \n
    \n );\n };\n\n return (\n <>\n \n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n {\n if (e.key === 'Escape') onBlur();\n }}\n >\n {getText()}\n \n
    \n \n {menuItems.map(item => (\n \n {item.text}\n \n ))}\n \n
    \n
    \n \n
    \n \n \n \n \n \n {getText()}\n \n \n \n \n \n
    \n {menuItems.map(item => (\n \n \n \n \n \n\n \n {item.text}\n \n\n \n \n \n \n \n ))}\n
    \n
    \n
    \n \n );\n};\n\nExpandableMenu.propTypes = {\n text: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n menuItems: PropTypes.arrayOf(menuItemPropType),\n isOpen: PropTypes.bool,\n onClick: PropTypes.func,\n // This can either be a handler or ID to attach to the element\n // the event handler would attach to (for IE 11)\n onBlur: PropTypes.func,\n variant: PropTypes.oneOf(Object.values(NAV_VARIANT)).isRequired,\n};\n\nExpandableMenu.defaultProps = {\n href: null,\n target: '',\n menuItems: [],\n isOpen: false,\n onClick: () => null,\n onBlur: () => null,\n};\n\nexport default ExpandableMenu;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { Grid, Row, Col, Button } from '@sm/wds-react';\nimport { t, T } from '@sm/intl';\n\nimport { NAV_VARIANT } from '../../enums';\nimport getClickHandlers from '../../helpers/getClickHandlers';\nimport useIsomorphicLayoutEffect from '../../helpers/useIsomorphicLayoutEffect';\nimport { getLinkGenerator } from '../../helpers/logging';\nimport addScrollListener from './helpers/scrollListener';\nimport { MENU } from './helpers/enums';\nimport logger from './helpers/logger';\nimport COPY from './helpers/copy';\nimport MENU_CONFIG from './helpers/menuConfig';\nimport mrxLogoDark from './helpers/logo-marketresearch.svg';\nimport mrxLogoLight from './helpers/logo-marketresearch--white.svg';\nimport ExpandableMenu from './ExpandableMenu';\n\nexport const TEST_ID = 'NavForDesktop__MRX';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'subnav',\n});\n\nconst NavForDesktop = ({ openMenu, setOpenMenu }) => {\n const [scrolledToTop, setScrolledToTop] = useState(true);\n const navId = 'sm-mrx-nav-id';\n // Need to add this after layout is painted to fix flickering for MRX-21\n useIsomorphicLayoutEffect(addScrollListener(isAtTop => setScrolledToTop(isAtTop)));\n const classes = classnames({\n 'sm-mrx-nav__wrapper': true,\n 'sm-mrx-nav--scroll': !scrolledToTop,\n });\n const image = scrolledToTop ? mrxLogoLight : mrxLogoDark;\n const buttonColor = scrolledToTop ? 'muted' : 'upgrade';\n const buttonVariant = !scrolledToTop ? 'solid' : 'ghost';\n const buttonClass = classnames({\n 'sm-mrx-nav__cta-button--light': scrolledToTop,\n 'sm-mrx-nav__cta-button': true,\n });\n const textVariant = scrolledToTop ? 'light' : 'dark';\n const onBlur = () => setOpenMenu(null);\n\n return (\n
    \n \n \n \n {\n logger.click.navigateTo('mrx_home');\n })}\n >\n {t(COPY.marketResearchSolutions)}\n \n \n \n
    \n setOpenMenu(MENU.SOLUTIONS)}\n onBlur={onBlur}\n variant={textVariant}\n />\n
    \n
    \n \n
    \n
    \n setOpenMenu(MENU.MORE_RESOURCES)}\n onBlur={onBlur}\n variant={textVariant}\n />\n
    \n \n \n {\n logger.click.navigateTo('get_a_demo');\n })}\n >\n \n \n \n
    \n
    \n
    \n );\n};\n\nNavForDesktop.propTypes = {\n openMenu: PropTypes.oneOf(Object.values(MENU)),\n setOpenMenu: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(Object.values(NAV_VARIANT)).isRequired,\n};\n\nNavForDesktop.defaultProps = {\n openMenu: undefined,\n};\n\nexport default NavForDesktop;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { Grid, Row, Col, Typography, Button } from '@sm/wds-react';\nimport { IconChevronDown, IconChevronUp } from '@sm/wds-icons';\nimport { t, T } from '@sm/intl';\nimport { TabletScreen } from '@sm/webassets';\n\nimport useIsomorphicLayoutEffect from '../../helpers/useIsomorphicLayoutEffect';\nimport getClickHandlers from '../../helpers/getClickHandlers';\nimport { getLinkGenerator } from '../../helpers/logging';\nimport addScrollListener from './helpers/scrollListener';\nimport COPY from './helpers/copy';\nimport { MENU } from './helpers/enums';\nimport MENU_CONFIG from './helpers/menuConfig';\nimport logger from './helpers/logger';\nimport mrxLogoDark from './helpers/logo-marketresearch.svg';\nimport mrxLogoLight from './helpers/logo-marketresearch--white.svg';\nimport ExpandableMenu from './ExpandableMenu';\n\nexport const TEST_ID = 'NavForTablet__MRX';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'subnav',\n});\n\nconst NavForTablet = ({ openMenu, setOpenMenu, isOpen, setIsOpen }) => {\n const [scrolledToTop, setScrolledToTop] = useState(true);\n const navId = 'sm-mrx-nav-id-mobile';\n // Need to add this after layout is painted to fix flickering for MRX-21\n useIsomorphicLayoutEffect(addScrollListener(isAtTop => setScrolledToTop(isAtTop)));\n const useLight = scrolledToTop && !isOpen;\n const image = useLight ? mrxLogoLight : mrxLogoDark;\n const chevronColor = useLight ? 'light' : 'dark';\n\n return (\n \n \n setIsOpen(!isOpen))}\n >\n \n {t(COPY.marketResearchSolutions)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n setOpenMenu(MENU.SOLUTIONS)}\n variant=\"dark\"\n />\n \n setOpenMenu(MENU.MORE_RESOURCES)}\n variant=\"dark\"\n />\n \n \n \n \n \n {\n logger.click.navigateTo('get_a_demo');\n })}\n className=\"sm-mrx-nav__cta-button--mobile\"\n stretched\n >\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nNavForTablet.propTypes = {\n openMenu: PropTypes.oneOf(Object.values(MENU)),\n setOpenMenu: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setIsOpen: PropTypes.func.isRequired,\n scrollPosRef: PropTypes.shape({\n current: PropTypes.number,\n }),\n isScrolledToTop: PropTypes.bool,\n};\n\nNavForTablet.defaultProps = {\n openMenu: undefined,\n scrollPosRef: { current: 0 },\n isScrolledToTop: true,\n};\n\nexport default NavForTablet;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { Grid, Row, Col, Button } from '@sm/wds-react';\nimport { t, T } from '@sm/intl';\n\nimport useIsomorphicLayoutEffect from '../../../helpers/useIsomorphicLayoutEffect';\nimport getClickHandlers from '../../../helpers/getClickHandlers';\nimport { getLinkGenerator } from '../../../helpers/logging';\nimport addScrollListener from '../helpers/scrollListener';\nimport { MENU } from '../helpers/enums';\nimport logger from '../helpers/logger';\nimport COPY from '../helpers/copy';\nimport MENU_CONFIG from '../helpers/menuConfig';\nimport mrxLogoDark from '../helpers/logo-marketresearch.svg';\nimport mrxLogoLight from '../helpers/logo-marketresearch--white.svg';\nimport ExpandableMenu from '../ExpandableMenu';\nimport './nav-for-ie.scss';\n\nexport const TEST_ID = 'DesktopNavForIE';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'subnav',\n});\n\nconst NavForIE = ({ openMenu, setOpenMenu }) => {\n const [scrolledToTop, setScrolledToTop] = useState(true);\n const navId = 'sm-mrx-nav-id';\n useIsomorphicLayoutEffect(() => {\n const removeListener = addScrollListener(isAtTop => setScrolledToTop(isAtTop));\n document.body.classList.add('sm-nav-for-ie--hide-overflow-x');\n return () => {\n removeListener();\n document.body.classList.remove('sm-nav-for-ie--hide-overflow-x');\n };\n });\n const classes = classnames({\n 'sm-nav-for-ie__wrapper': true,\n 'sm-nav-for-ie__wrapper--scroll': !scrolledToTop,\n 'sm-nav-for-ie__wrapper--top': scrolledToTop,\n });\n const image = scrolledToTop ? mrxLogoLight : mrxLogoDark;\n const buttonColor = scrolledToTop ? 'muted' : 'upgrade';\n const buttonVariant = !scrolledToTop ? 'solid' : 'ghost';\n const buttonClass = classnames({\n 'sm-nav-for-ie__cta-button': true,\n 'sm-nav-for-ie__cta-button--light': scrolledToTop,\n });\n const textVariant = scrolledToTop ? 'light' : 'dark';\n\n return (\n
    \n
    \n \n \n \n {\n logger.click.navigateTo('mrx_home');\n })}\n >\n {t(COPY.marketResearchSolutions)}\n \n \n \n
    \n setOpenMenu(MENU.SOLUTIONS)}\n onBlur={() => setOpenMenu(null)}\n variant={textVariant}\n />\n
    \n
    \n setOpenMenu(null)} />\n
    \n
    \n setOpenMenu(MENU.MORE_RESOURCES)}\n onBlur={() => setOpenMenu(null)}\n variant={textVariant}\n />\n
    \n \n \n {\n logger.click.navigateTo('get_a_demo');\n })}\n >\n \n \n \n
    \n
    \n
    \n
    \n );\n};\n\nNavForIE.propTypes = {\n openMenu: PropTypes.oneOf(Object.values(MENU)),\n setOpenMenu: PropTypes.func.isRequired,\n};\n\nNavForIE.defaultProps = {\n openMenu: undefined,\n};\n\nexport default NavForIE;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { Grid, Row, Col, Typography, Button } from '@sm/wds-react';\nimport { IconChevronDown, IconChevronUp } from '@sm/wds-icons';\nimport { t, T } from '@sm/intl';\nimport { TabletScreen } from '@sm/webassets';\n\nimport useIsomorphicLayoutEffect from '../../../helpers/useIsomorphicLayoutEffect';\nimport getClickHandlers from '../../../helpers/getClickHandlers';\nimport { getLinkGenerator } from '../../../helpers/logging';\nimport addScrollListener from '../helpers/scrollListener';\nimport COPY from '../helpers/copy';\nimport { MENU } from '../helpers/enums';\nimport MENU_CONFIG from '../helpers/menuConfig';\nimport logger from '../helpers/logger';\nimport mrxLogoDark from '../helpers/logo-marketresearch.svg';\nimport mrxLogoLight from '../helpers/logo-marketresearch--white.svg';\nimport ExpandableMenu from '../ExpandableMenu';\nimport './nav-for-ie.scss';\n\nexport const TEST_ID = 'MobileNavForIE';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'subnav',\n});\n\nconst NavForTablet = ({ openMenu, setOpenMenu, isOpen, setIsOpen }) => {\n const [scrolledToTop, setScrolledToTop] = useState(true);\n const navId = 'sm-mrx-nav-id-mobile';\n // Need to add this after layout is painted to fix flickering for MRX-21\n useIsomorphicLayoutEffect(() => {\n const removeScrollListener = addScrollListener(isAtTop => setScrolledToTop(isAtTop))();\n // This is because there is some element on IE 11 forcing the page to\n // be scroll-able to the right.\n document.body.classList.add('sm-nav-for-ie--hide-overflow-x');\n return () => {\n removeScrollListener();\n document.body.classList.remove('sm-nav-for-ie--hide-overflow-x');\n };\n });\n const useLight = scrolledToTop && !isOpen;\n const image = useLight ? mrxLogoLight : mrxLogoDark;\n const chevronColor = useLight ? 'light' : 'dark';\n\n return (\n
    \n \n \n setIsOpen(!isOpen))}\n >\n \n {t(COPY.marketResearchSolutions)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n setOpenMenu(MENU.SOLUTIONS)}\n variant=\"dark\"\n />\n \n setOpenMenu(MENU.MORE_RESOURCES)}\n variant=\"dark\"\n />\n \n \n \n \n \n {\n logger.click.navigateTo('get_a_demo');\n })}\n className=\"sm-mrx-nav__cta-button--mobile\"\n stretched\n >\n \n \n \n \n \n \n \n \n \n
    \n \n );\n};\n\nNavForTablet.propTypes = {\n openMenu: PropTypes.oneOf(Object.values(MENU)),\n setOpenMenu: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setIsOpen: PropTypes.func.isRequired,\n scrollPosRef: PropTypes.shape({\n current: PropTypes.number,\n }),\n isScrolledToTop: PropTypes.bool,\n};\n\nNavForTablet.defaultProps = {\n openMenu: undefined,\n scrollPosRef: { current: 0 },\n isScrolledToTop: true,\n};\n\nexport default NavForTablet;\n","import React from 'react';\nimport { MobileTabletScreen, DesktopScreen } from '@sm/webassets';\n\nimport DesktopNav from './DesktopNavForIE';\nimport MobileNav from './MobileNavForIE';\n\nexport { TEST_ID as DESKTOP_TEST_ID } from './DesktopNavForIE';\nexport { TEST_ID as MOBILE_TEST_ID } from './MobileNavForIE';\n\nconst NavForIE = props => (\n <>\n \n \n \n \n \n \n \n);\n\nexport default NavForIE;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { DesktopScreen, MobileTabletScreen } from '@sm/webassets';\n\nimport { NAV_VARIANT } from '../../enums';\nimport useBrowser, { BROWSER } from '../../helpers/useBrowser';\nimport NavForDesktop, { TEST_ID as DESKTOP_TEST_ID } from './NavForDesktop';\nimport NavForTablet, { TEST_ID as TABLET_TEST_ID } from './NavForTablet';\nimport NavForIE, { DESKTOP_TEST_ID as IE_DESKTOP_TEST_ID, MOBILE_TEST_ID as IE_MOBILE_TEST_ID } from './NavForIE';\nimport './mrx-nav.scss';\n\nexport const TEST_ID = {\n DESKTOP: DESKTOP_TEST_ID,\n TABLET: TABLET_TEST_ID,\n IE_DESKTOP: IE_DESKTOP_TEST_ID,\n IE_TABLET: IE_MOBILE_TEST_ID,\n};\n\nconst MRXNav = ({ variant, mobileOpen, setMobileOpen }) => {\n const [openMenu, _setOpenMenu] = useState(undefined);\n const setOpenMenu = menu => {\n if (menu === openMenu) _setOpenMenu(undefined);\n else _setOpenMenu(menu);\n };\n const isIE11 = useBrowser() === BROWSER.IE;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nMRXNav.propTypes = {\n variant: PropTypes.oneOf(Object.values(NAV_VARIANT)),\n mobileOpen: PropTypes.bool.isRequired,\n setMobileOpen: PropTypes.func.isRequired,\n};\n\nMRXNav.defaultProps = {\n variant: NAV_VARIANT.LIGHT,\n};\n\nexport default MRXNav;\n","import React, { useState, useRef, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BasePage, Helmet, StaticContext } from '@sm/webassets';\nimport { t } from '@sm/intl';\n\nimport MRXNav from './MRXNav';\nimport { NAV_VARIANT } from '../enums';\nimport previewImage from './featured-image.png';\n\nconst COPY = {\n pageTitle: {\n id: 'mrx.MRXPage.pageTitle',\n defaultMessage: 'Market Research Solutions | SurveyMonkey',\n description: '[Type: Label][Vis: med] - Page title for all Market Research Experience pages',\n },\n pageDescription: {\n id: 'mrx.MRXPage.pageDescription',\n defaultMessage:\n 'Collect quality data from your target market with expert solutions, ' +\n 'global online panels, and market research services to help you get the insights you need, fast.',\n description: '[Type: Label][Vis: med] - Page meta description for all Market Research Experience pages',\n },\n};\n\nconst MRXPage = ({ pageTitle, previewImageHref, noIndex, children, canonicalLink }) => {\n const {\n environment: { subdomain, domain, tld },\n req: { url },\n } = useContext(StaticContext);\n const requestUrl = `https://${subdomain}.${domain}.${tld}${url}`;\n const [mobileNavOpen, _setMobileNavOpen] = useState(false);\n const scrollPosition = useRef(0);\n const setMobileNavOpen = () => {\n if (window && !mobileNavOpen) scrollPosition.current = window.pageYOffset;\n _setMobileNavOpen(!mobileNavOpen);\n };\n useEffect(() => {\n if (mobileNavOpen) document.body.classList.add('sm-mrx-nav--no-scroll');\n else document.body.classList.remove('sm-mrx-nav--no-scroll');\n }, [mobileNavOpen]);\n // Have to manually append this to comply with Twitter's requirements\n const mPreviewImageHref = previewImageHref.startsWith('http') ? previewImageHref : `https:${previewImageHref}`;\n\n return (\n \n \n {t(COPY.pageTitle)}\n \n\n \n \n \n \n \n \n \n\n {/* TWITTER META */}\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n {children}\n
    \n );\n};\n\nMRXPage.propTypes = {\n pageTitle: PropTypes.string.isRequired,\n noIndex: PropTypes.bool,\n previewImageHref: PropTypes.string,\n children: PropTypes.node,\n canonicalLink: PropTypes.string,\n};\n\nMRXPage.defaultProps = {\n children: null,\n previewImageHref: previewImage,\n noIndex: false,\n canonicalLink: null,\n};\n\nexport default MRXPage;\n","import React from 'react';\nimport classnames from 'classnames';\nimport { T } from '@sm/intl';\nimport './mrx-header.scss';\n\nexport const COPY = {\n title: {\n id: 'mrx.MRXHeader.title',\n defaultMessage: 'Explore our market research solutions',\n description: '[Type: Header][Vis: med] - Page header for market research hub',\n },\n subtitle: {\n id: 'mrx.MRXHeader.subtitle',\n defaultMessage:\n 'Quickly collect quality data from your target market. ' +\n 'Choose from expert solutions, global online panels, or market research services to help you get answers, fast.',\n description: '[Type: Paragraph][Vis: med] - Description of the market research hub',\n },\n};\n\nexport const TEST_ID = 'MRXHeader';\n\nconst MRXHeader = () => {\n const isIE = !!window.MSInputMethodContext && !!document.documentMode;\n const classes = classnames({\n 'sm-mrx-header': !isIE,\n 'sm-mrx-header--ie': isIE,\n });\n return (\n
    \n

    \n \n

    \n
    \n \n
    \n
    \n );\n};\n\nexport default MRXHeader;\n","const MIN_SWIPE_DISTANCE = 40;\nconst VECTOR = Object.freeze({\n UP: 'UP',\n DOWN: 'DOWN',\n RIGHT: 'RIGHT',\n LEFT: 'LEFT',\n});\n\nconst getQuadrant = vector => {\n const isUpperHemisphere = vector[1] < 0;\n const isLeftHemisphere = vector[0] < 0;\n if (isUpperHemisphere && isLeftHemisphere) return 2;\n if (isUpperHemisphere && !isLeftHemisphere) return 1;\n if (!isUpperHemisphere && isLeftHemisphere) return 3;\n return 4;\n};\n\nconst convertToAbsoluteAngle = (vector, vectorDeg) => {\n const quadrant = getQuadrant(vector);\n if (quadrant === 1) return -1 * vectorDeg;\n if (quadrant === 2) return 90 - vectorDeg + 90;\n if (quadrant === 3) return 180 - vectorDeg;\n return 360 - vectorDeg;\n};\n\nconst getSwipeVectorFromPoints = (start, end) => {\n const vector = [end.x - start.x, end.y - start.y];\n const vectorDeg = convertToAbsoluteAngle(vector, Math.atan(vector[1] / vector[0]) * (180 / Math.PI));\n if (vectorDeg > 315 || vectorDeg <= 45) return VECTOR.RIGHT;\n if (vectorDeg > 45 && vectorDeg <= 120) return VECTOR.DOWN;\n if (vectorDeg > 120 && vectorDeg <= 210) return VECTOR.LEFT;\n return VECTOR.UP;\n};\n\nconst getDistanceBetweenPoints = (start, end) => Math.trunc(Math.sqrt((end.x - start.x) ** 2 + (end.y - start.y) ** 2));\n\nexport const hasSwipedLeft = (touchStartPos, touchEndPos) =>\n getDistanceBetweenPoints(touchStartPos, touchEndPos) >= MIN_SWIPE_DISTANCE &&\n getSwipeVectorFromPoints(touchStartPos, touchEndPos) === VECTOR.LEFT;\n\nexport const hasSwipedRight = (touchStartPos, touchEndPos) =>\n getDistanceBetweenPoints(touchStartPos, touchEndPos) >= MIN_SWIPE_DISTANCE &&\n getSwipeVectorFromPoints(touchStartPos, touchEndPos) === VECTOR.RIGHT;\n\nexport const hasSwipedUp = (touchStartPos, touchEndPos) =>\n getDistanceBetweenPoints(touchStartPos, touchEndPos) >= MIN_SWIPE_DISTANCE &&\n getSwipeVectorFromPoints(touchStartPos, touchEndPos) === VECTOR.UP;\n\nexport const hasSwipedDown = (touchStartPos, touchEndPos) =>\n getDistanceBetweenPoints(touchStartPos, touchEndPos) >= MIN_SWIPE_DISTANCE &&\n getSwipeVectorFromPoints(touchStartPos, touchEndPos) === VECTOR.DOWN;\n","import React, { Children, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport { hasSwipedLeft, hasSwipedRight } from '../../helpers/swipe';\n\nimport './mrx-carousel.scss';\n\nconst Carousel = ({ children }) => {\n const [currentOffset, setCurrentOffset] = useState(0);\n const touchDownPosition = useRef({ x: 0, y: 0 });\n return (\n
    \n {\n touchDownPosition.current = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n };\n }}\n onTouchEnd={e => {\n const pos = {\n x: e.changedTouches[0].clientX,\n y: e.changedTouches[0].clientY,\n };\n if (hasSwipedLeft(touchDownPosition.current, pos) && currentOffset < children.length - 1) {\n setCurrentOffset(currentOffset + 1);\n } else if (hasSwipedRight(touchDownPosition.current, pos) && currentOffset) {\n setCurrentOffset(currentOffset - 1);\n }\n }}\n >\n {Children.map(children, (child, idx) => {\n const isFocused = idx === currentOffset;\n const myOffset = currentOffset * 100;\n return (\n \n {child}\n
    \n );\n })}\n \n \n );\n};\n\nCarousel.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Carousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport useIsomorphicLayoutEffect from '../helpers/useIsomorphicLayoutEffect';\n\nlet timeout;\n\nconst getOffsetTop = element => {\n if (!element) return 0;\n return getOffsetTop(element.offsetParent) + element.offsetTop;\n};\n\nconst scrollToElement = element => {\n if (element) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n timeout = setTimeout(() => {\n const offset = getOffsetTop(element);\n if (window.pageYOffset !== offset) {\n element.focus();\n window.scrollTo(0, offset);\n scrollToElement(element);\n }\n }, 200);\n }\n};\n\nconst Anchor = ({ location, children, className, id }) => {\n const { hash } = location;\n useIsomorphicLayoutEffect(() => {\n if (hash) {\n const hashId = hash.slice(1);\n if (hashId === id) {\n const element = document.getElementById(hashId);\n scrollToElement(element);\n }\n }\n }, [children, hash, id]);\n return (\n <>\n
    \n {children}\n \n );\n};\n\nAnchor.propTypes = {\n location: PropTypes.shape({\n hash: PropTypes.string,\n }).isRequired,\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n id: PropTypes.string.isRequired,\n};\n\nAnchor.defaultProps = {\n className: '',\n};\n\nexport default withRouter(Anchor);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { Card, Typography, Grid, Row, Col, Button } from '@sm/wds-react';\n\nimport './product-tile.scss';\nimport { linkPropType } from '../../../propTypes';\nimport useBrowser, { BROWSER } from '../../../helpers/useBrowser';\nimport getClickHandlers from '../../../helpers/getClickHandlers';\n\nexport const TEST_ID = 'ProductTile';\n\nconst ProductTile = ({ title, image, body, ctaButton, link }) => {\n const isIE = useBrowser() === BROWSER.IE;\n const outerClasses = classnames({\n 'sm-product-tile': !isIE,\n 'sm-product-tile--ie': isIE,\n });\n\n return (\n \n \n \n \n {title}\n \n \n \n \n \n \n \n {title}\n \n

    \n \n {body}\n \n

    \n \n
    \n \n \n \n \n {\n if (ctaButton.logging) ctaButton.logging();\n })}\n >\n {ctaButton.text}\n \n \n \n \n \n \n {\n if (link.logging) link.logging();\n })}\n >\n {link.text}\n \n \n \n \n \n \n
    \n
    \n
    \n
    \n );\n};\n\nProductTile.propTypes = {\n title: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n body: PropTypes.string.isRequired,\n ctaButton: linkPropType,\n link: linkPropType,\n};\n\nProductTile.defaultProps = {\n ctaButton: null,\n link: null,\n};\n\nexport default ProductTile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { Grid, Row, Col, Typography } from '@sm/wds-react';\nimport { MobileScreen, TabletScreen, DesktopScreen, MobileTabletScreen } from '@sm/webassets';\n\nimport Carousel from '../../sharedComponents/MRXCarousel';\nimport Anchor from '../../sharedComponents/Anchor';\nimport { productPropType } from '../../propTypes';\nimport ProductTile from './ProductTile';\nimport './product-category.scss';\n\nexport const TEST_ID = 'ProductCategory';\n\nconst ProductCategory = ({ products, title, description, first, anchor }) => (\n \n \n \n \n
    \n \n \n \n \n {title}\n \n {description}\n \n \n \n \n \n \n \n {title}\n \n {description}\n \n \n \n \n \n \n {products.map((product, idx) => (\n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n {products.map((product, idx) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n);\n\nProductCategory.propTypes = {\n title: PropTypes.string.isRequired,\n products: PropTypes.arrayOf(productPropType).isRequired,\n description: PropTypes.string.isRequired,\n first: PropTypes.bool.isRequired,\n anchor: PropTypes.string.isRequired,\n};\n\nexport default ProductCategory;\n","import React from 'react';\nimport { Grid, Row, Col, Button, Typography } from '@sm/wds-react';\nimport { TabletScreen, DesktopScreen, MobileScreen } from '@sm/webassets';\nimport { T } from '@sm/intl';\n\nimport { getLinkGenerator } from '../../helpers/logging';\nimport expertsImage from './experts.png';\nimport './here-to-help.scss';\n\nexport const COPY = {\n title: {\n id: 'mrx.HereToHelp.title',\n defaultMessage: 'Expert help for your market research program',\n description:\n '[Type: Header][Vis: med] - Title of a section of the market research experience page where we explain our customer support',\n },\n description1: {\n id: 'mrx.HereToHelp.description1',\n defaultMessage:\n 'Looking for an online panel to pinpoint hard-to-reach groups? Need to get a market research survey translated into Spanish? ' +\n 'Want reassurance that your survey logic is set up correctly? We have you covered with support and services that scale to meet your needs.',\n description: '[Type: Paragraph][Vis: med] - Description of our market research customer support',\n },\n description2: {\n id: 'mrx.HereToHelp.description2',\n defaultMessage: 'Choose from bundled or pay-as-you-go market research services.',\n description: '[Type: Paragraph][Vis: med] - Description of our market research customer support',\n },\n learnMore: {\n id: 'mrx.HereToHelp.learnMore',\n defaultMessage: 'Learn more',\n description: '[Type: Link][Vis: med] - Link to learn more about our market research solutions',\n },\n};\n\nexport const TEST_ID = 'HereToHelp';\n\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'sm-button',\n});\n\nconst getBodySection = isMobile => (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n);\n\nconst HereToHelp = () => (\n \n \n \n \n \"\"\n \n {getBodySection(false)}\n \n \n \n \n \n \n {getBodySection(true)}\n \n \n \"\"\n \n \n \n \n);\n\nexport default HereToHelp;\n","import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const BREAK_POINT = Object.freeze({\n MD: 768,\n LG: 1200,\n XL: 1400,\n});\n\nexport const SCREEN = Object.freeze({\n MOBILE: `(max-width: ${BREAK_POINT.MD - 1}px)`,\n TABLET: `(min-width: ${BREAK_POINT.MD}px)`,\n MOBILE_TABLET: `(max-width: ${BREAK_POINT.LG - 1}px)`,\n SMALL_DESKTOP: `(min-width: ${BREAK_POINT.LG}px) and (max-width: ${BREAK_POINT.XL - 1}px)`,\n LARGE_DESKTOP: `(min-width: ${BREAK_POINT.XL}px)`,\n DESKTOP: `(min-width: ${BREAK_POINT.LG}px)`,\n});\n\nconst CustomScreen = ({ screen, children }) => {\n const m = window.matchMedia(screen);\n const [matches, setMatches] = useState(m.matches);\n useEffect(() => {\n const listenerArgs = [\n 'resize',\n () => {\n const doesMatch = window.matchMedia(screen).matches;\n if (matches !== doesMatch) setMatches(doesMatch);\n },\n ];\n window.addEventListener(...listenerArgs);\n return () => window.removeEventListener(...listenerArgs);\n });\n return matches ? children : null;\n};\n\nCustomScreen.propTypes = {\n screen: PropTypes.string.isRequired,\n children: PropTypes.node,\n};\n\nCustomScreen.defaultProps = {\n children: null,\n};\n\nexport default CustomScreen;\n","import { t } from '@sm/intl';\n\nconst COPY = {\n allbirds: {\n id: 'mrx.getLocalizedLogos.allbirds',\n defaultMessage: 'Allbirds company logo',\n description: '[Type: Label][Vis: low] - Labels Allbirds logo',\n },\n ibm: {\n id: 'mrx.getLocalizedLogos.ibm',\n defaultMessage: 'IBM company logo',\n description: '[Type: Label][Vis: low] - Labels IBM company logo',\n },\n just: {\n id: 'mrx.getLocalizedLogos.just',\n defaultMessage: 'JUST company logo',\n description: '[Type: Label][Vis: low] - Labels JUST company logo',\n },\n rj: {\n id: 'mrx.getLocalizedLogos.rj',\n defaultMessage: 'Raymond James company logo',\n description: '[Type: Label][Vis: low] - Labels Raymond James company logo',\n },\n tweezerman: {\n id: 'mrx.getLocalizedLogos.tweezerman',\n defaultMessage: 'Tweezerman company logo',\n description: '[Type: Label][Vis: low] - Labels Tweezerman company logo',\n },\n};\n\nconst _getImage = (imgName, useBig) =>\n useBig ? import(`./images/${imgName}--lg.png`) : import(`./images/${imgName}.png`);\n\nconst getLocalizedLogos = async (locale = 'en_US', size = 'lg') => {\n const useBig = size === 'lg';\n const getImage = async imgName => (await _getImage(imgName, useBig)).default;\n\n if (locale === 'en_US') {\n return [\n {\n id: 'ibmLogo',\n name: t(COPY.ibm),\n image: await getImage('ibm_logo'),\n },\n {\n id: 'tweezermanLogo',\n name: t(COPY.tweezerman),\n image: await getImage('tweezerman_logo'),\n },\n\n {\n id: 'justLogo',\n name: t(COPY.just),\n image: await getImage('just_logo'),\n },\n {\n id: 'raymondJamesLogo',\n name: t(COPY.rj),\n image: await getImage('rj_logo'),\n },\n {\n id: 'allbirdsLogo',\n name: t(COPY.allbirds),\n image: await getImage('allbirds_logo'),\n },\n ];\n }\n return [];\n};\n\nexport default getLocalizedLogos;\n","import React, { useState, useEffect } from 'react';\nimport classnames from 'classnames';\n\nimport { Grid, Row, Col, Typography } from '@sm/wds-react';\nimport { DesktopScreen } from '@sm/webassets';\nimport { T } from '@sm/intl';\n\nimport useBrowser, { BROWSER } from '../../helpers/useBrowser';\nimport { SCREEN } from '../../sharedComponents/CustomScreen';\nimport getLocalizedLogos from './getLocalizedLogos';\nimport './used-in-orgs.scss';\n\nexport const COPY = {\n title: {\n id: 'mrx.UsedInOrgs.title',\n defaultMessage: 'Leading brands use SurveyMonkey for market research',\n description:\n '[Type: Header][Vis: med] - Title of the section of the market research hub where we show companies that use our products',\n },\n};\n\nexport const TEST_ID = 'UsedInOrgs';\n\nconst UsedInOrgs = () => {\n const [logos, setLogos] = useState(null);\n const [screenSize, setScreenSize] = useState('lg');\n useEffect(() => {\n const listenerArgs = [\n 'resize',\n () => {\n const isMobileTablet = window.matchMedia(SCREEN.MOBILE).matches;\n if (isMobileTablet && screenSize !== 'sm') setScreenSize('sm');\n else if (screenSize !== 'lg') setScreenSize('lg');\n },\n ];\n window.addEventListener(...listenerArgs);\n getLocalizedLogos('en_US', screenSize).then(data => setLogos(data));\n return () => window.removeEventListener(...listenerArgs);\n }, [screenSize]);\n const isIE = useBrowser() === BROWSER.IE;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {logos.map(logo => (\n \n {logo.name}\n \n ))}\n \n \n \n );\n};\n\nexport default UsedInOrgs;\n","import { FILTER_KEY } from '../enums';\n\nconst FILTERS = Object.freeze({\n [FILTER_KEY.CATEGORY]: (products, filterValues) =>\n Object.keys(products).reduce((prod, productCategory) => {\n if (filterValues.includes(productCategory)) return { ...prod, [productCategory]: products[productCategory] };\n return prod;\n }, {}),\n});\n\nexport const getFilterParamsFromUrlLocation = location => {\n if (!location) return {};\n const searchParams = new URLSearchParams(location.search);\n const filterParams = {};\n const validFilterKeys = Object.values(FILTER_KEY);\n searchParams.forEach((value, key) => {\n if (validFilterKeys.includes(key) && value) {\n filterParams[key] = value.split(',').map(x => x.trim());\n }\n });\n return filterParams;\n};\n\nconst filterProducts = (products, filterParams) => {\n return Object.keys(filterParams).reduce(\n (prod, filterKey) => FILTERS[filterKey](prod, filterParams[filterKey]),\n products\n );\n};\n\nexport default filterProducts;\n","/**\n * Helper class for making queries that depend on each other or for groups of\n * queries that all need to resolve before taking an action. Just cleans up\n * all of the '.then' statements needed for that kind of thing.\n */\n\nexport default class SynchronousQueryStream {\n constructor(apolloClient) {\n this.client = apolloClient;\n this.actions = [];\n this.catchHandlers = [];\n this.ctx = {};\n }\n\n /**\n * Basically a pass-through to the Apollo client.query\n */\n query = args => {\n this.actions.push(() => this.client.query(args));\n return this;\n };\n\n /**\n * Takes the result of the previous chained action and adds it to the collected\n * context\n */\n resolveToContext = () => {\n this.actions.push(data => {\n this.ctx = { ...this.ctx, ...data };\n });\n return this;\n };\n\n /**\n * Does basically the same thing as resolveToContext but destructures the\n * query result for you.\n */\n resolveQueryResultToContext = () => {\n this.actions.push(data => {\n this.ctx = { ...this.ctx, ...data.data };\n });\n return this;\n };\n\n /**\n * You get the result of the previous chained command and the context and the\n * result is transformed for the next chained command.\n */\n map = handler => {\n this.actions.push(handler);\n return this;\n };\n\n /**\n * You get the result of the previous chained command and the context but\n * this doesn't expect a return value and just passes the previous result\n * through to the next command.\n */\n peek = handler => {\n this.actions.push((...args) => {\n handler(...args);\n return args;\n });\n return this;\n };\n\n /**\n * This is a non-blocking catch that catches any error that has occurred since\n * the last catch. If this error isn't thrown, the return value of the handler\n * is passed to the next chained command after the catch.\n */\n catch = handler => {\n const startIdx = this.catchHandlers.length ? this.catchHandlers[this.catchHandlers.length - 1].range[0] : 0;\n this.catchHandlers.push({\n range: [startIdx, this.actions.length],\n handler,\n });\n return this;\n };\n\n /**\n * The commands will not be executed unless this is put at the end. This is\n * the final command that executes the chain of commands. Takes a handler that\n * will be passed the final result value as well as the final context value.\n */\n collect = async handler => {\n let result;\n for (let i = 0; i < this.actions.length; i += 1) {\n try {\n // eslint-disable-next-line no-await-in-loop\n result = await this.actions[i](result, this.ctx);\n } catch (err) {\n let handled = false;\n for (let j = 0; j < this.catchHandlers.length; j += 1) {\n const catchHandler = this.catchHandlers[j];\n if (i >= catchHandler.range[0] && i < catchHandler.range[1]) {\n result = catchHandler.handler(err, result, this.ctx);\n handled = true;\n // eslint-disable-next-line prefer-destructuring\n i = catchHandler.range[1];\n break;\n }\n }\n if (!handled) throw err;\n }\n }\n\n handler(result, this.ctx);\n };\n}\n","import React, { useState, useEffect, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withApollo } from 'react-apollo';\n\nimport { StaticContext, FiveHundredError } from '@sm/webassets';\nimport { Grid, Row, Col, ProgressCircle } from '@sm/wds-react';\nimport { t } from '@sm/intl';\n\nimport MRXPage from '../MRXPage';\nimport MRXHeader from './MRXHeader';\nimport ProductCategory from './ProductCategory';\nimport HereToHelp from './HereToHelp';\nimport UsedInOrgs from './UsedInOrgs';\nimport { modules as modulesQuery, user as userQuery } from './solutions.graphql';\nimport { PRODUCT_CATEGORY } from '../enums';\nimport filterProducts, { getFilterParamsFromUrlLocation } from './filter';\nimport { productCategoryPropType } from '../propTypes';\nimport getLogger, { LOGGER_NAME, getLinkGenerator } from '../helpers/logging';\nimport SynchronousQueryStream from '../helpers/SynchronousQueryStream';\n\nimport audienceImage from './audience-image.png';\nimport './mrx-solutions.scss';\n\nexport const COPY = {\n audiencePanel: {\n id: 'mrx.Solutions.audiencePanel',\n defaultMessage: 'Global survey panel',\n description: '[Type: Header][Vis: med] - Title of the Audience panel product solutions category',\n },\n expertSolutions: {\n id: 'mrx.Solutions.expertSolutions',\n defaultMessage: 'Expert solutions',\n description: '[Type: Header][Vis: med] - Title of the market research ready-made solutions category',\n },\n audiencePanelDescription: {\n id: 'mrx.Solutions.audiencePanelDescription',\n defaultMessage:\n 'Run your own global market research in minutes. Design a custom survey in the SurveyMonkey platform, ' +\n 'launch to your target audience, and receive real-time results.',\n description: '[Type: Paragraph][Vis: med] - Description of the Audience panel category of products',\n },\n expertSolutionsDescription: {\n id: 'mrx.Solutions.expertSolutionsDescription',\n defaultMessage:\n 'Get powerful insights without doing a single calculation. Customize your study using our built-in expert methodology, ' +\n 'launch to your target audience, and receive presentation-ready reports automatically.',\n description: '[Type: Paragraph][Vis: med] - Description of the market research ready-made category of products',\n },\n getStarted: {\n id: 'mrx.Solutions.getStarted',\n defaultMessage: 'Get started',\n description: '[Type: Link][Vis: med] - CTA for user to try out a market research product',\n },\n learnMore: {\n id: 'mrx.Solutions.learnMore',\n defaultMessage: 'Learn more',\n description: '[Type: Link][Vis: med] - CTA for user to learn more about a market research product',\n },\n contactUs: {\n id: 'mrx.Solutions.contactUs',\n defaultMessage: 'Contact us',\n description: '[Type: Link][Vis: med] - CTA for user to contact our support team about a market research product',\n },\n tryItNow: {\n id: 'mrx.Solutions.tryItNow',\n defaultMessage: 'Try it now',\n description: '[Type: Link][Vis: med] - CTA for user to contact our support team about a market research product',\n },\n surveyMonkeyAudience: {\n id: 'mrx.Solutions.surveyMonkeyAudience',\n defaultMessage: 'SurveyMonkey Audience',\n description: '[Type: Header][Vis: med] - Title of the Audience product',\n },\n surveyMonkeyAudienceDescription: {\n id: 'mrx.Solutions.surveyMonkeyAudienceDescription',\n defaultMessage:\n 'Find people who fit your criteria from our global panel of respondents. Select region, age, gender, income, and more.',\n description: '[Type: Paragraph][Vis: med] - Description of the Audience product',\n },\n};\n\nconst logger = getLogger(LOGGER_NAME.SOLUTIONS);\nconst biLogger = getLogger(LOGGER_NAME.BI_MARKETPLACE_MODAL);\nconst getLink = getLinkGenerator({\n ut_source: 'market_research',\n ut_source2: 'solutions',\n ut_source3: 'marketplace-cards',\n});\n\nconst getAudienceCategory = ctaCopy => ({\n name: t(COPY.audiencePanel),\n description: t(COPY.audiencePanelDescription),\n priority: 1,\n products: [\n {\n name: t(COPY.surveyMonkeyAudience),\n description: t(COPY.surveyMonkeyAudienceDescription),\n image: audienceImage,\n ctaLink: {\n href: getLink('/collect/audience/preview', {\n ut_ctatext: ctaCopy.defaultMessage,\n ut_source3: 'sm-button',\n }),\n text: t(ctaCopy),\n logging: () => logger.click.getStarted('audience_panel'),\n },\n learnMoreLink: {\n href: getLink('/market-research/solutions/audience-panel', {\n ut_ctatext: 'Learn more',\n }),\n text: t(COPY.learnMore),\n logging: () => logger.click.learnMore('audience_panel'),\n },\n },\n ],\n});\n\nconst MRX = ({ location, productCategories }) => {\n const [filterParams] = useState(getFilterParamsFromUrlLocation(location));\n const mProductCategories = filterProducts(productCategories, filterParams);\n const orderedCategories = Object.keys(mProductCategories);\n orderedCategories.sort((keyA, keyB) => {\n const priorityA = mProductCategories[keyA].priority;\n const priorityB = mProductCategories[keyB].priority;\n if (priorityA === undefined || priorityA === null) return 1;\n if (priorityB === undefined || priorityB === null) return -1;\n return priorityA - priorityB;\n });\n\n return (\n \n \n \n \n \n \n {orderedCategories.map((pcKey, idx) => (\n \n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nMRX.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string,\n hash: PropTypes.string,\n }),\n productCategories: PropTypes.objectOf(productCategoryPropType).isRequired,\n};\n\nMRX.defaultProps = {\n location: null,\n};\n\nconst mapModules = (modules, ctaCopy) =>\n modules.map(module => {\n return {\n name: module.title,\n description: module.description,\n image: module.image,\n ctaLink: {\n href: getLink(`/solutions/create/${module.id}`, {\n ut_ctatext: ctaCopy.defaultMessage,\n }),\n text: t(ctaCopy),\n logging: () => {\n logger.click.getStarted(module.title);\n biLogger.click.getStarted(module.type, module.subtype);\n },\n },\n learnMoreLink: {\n href: getLink(module.links.marketingPage, {\n ut_ctatext: 'Learn more',\n }),\n text: t(COPY.learnMore),\n logging: () => {\n logger.click.learnMore(module.title);\n biLogger.click.learnMore();\n },\n },\n };\n });\n\nconst FETCH_STATE = Object.freeze({\n LOADING: 'LOADING',\n ERROR: 'ERROR',\n IDLE: 'IDLE',\n});\n\nconst Wrapper = ({ location, client, useIntercom }) => {\n const {\n user: { isAuthenticated },\n } = useContext(StaticContext);\n const ctmProducts = useRef();\n const [fetchState, setFetchState] = useState(FETCH_STATE.LOADING);\n const ctaCopy = useRef(COPY.tryItNow);\n useEffect(() => biLogger.pageLoad(), []);\n useEffect(() => {\n new SynchronousQueryStream(client)\n .query({ query: modulesQuery })\n .resolveQueryResultToContext()\n .catch(err => {\n setFetchState(FETCH_STATE.ERROR);\n throw err;\n })\n .query({ query: userQuery })\n .resolveQueryResultToContext()\n // Don't block on this error; just move on since the user doesn't\n // have to be logged in\n .catch(() => null)\n .collect((_, context) => {\n const {\n modules: { items: modules },\n user,\n } = context;\n const hasPurchasedModule = user ? user.preferences.hasPurchasedModule : false;\n ctaCopy.current = isAuthenticated && hasPurchasedModule ? COPY.getStarted : COPY.tryItNow;\n ctmProducts.current = mapModules(modules, ctaCopy.current);\n setFetchState(FETCH_STATE.IDLE);\n });\n });\n let inner;\n if (fetchState === FETCH_STATE.LOADING) {\n inner = (\n
    \n \n
    \n );\n } else if (fetchState === FETCH_STATE.ERROR) {\n inner = ;\n } else {\n inner = (\n \n );\n }\n return (\n \n {inner}\n \n );\n};\n\nWrapper.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string,\n hash: PropTypes.string,\n }),\n client: PropTypes.shape({\n query: PropTypes.func.isRequired,\n }).isRequired,\n useIntercom: PropTypes.bool,\n};\n\nWrapper.defaultProps = {\n location: null,\n useIntercom: true,\n};\n\nexport default withRouter(withApollo(Wrapper));\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CreateWizardConfigContext = React.createContext();\n\nconst CreateWizardConfigContextProvider = ({ createWizardConfig: defaultConfig, children }) => {\n const [createWizardConfig, _setCreateWizardConfig] = useState(defaultConfig);\n useEffect(() => {\n _setCreateWizardConfig(defaultConfig);\n }, [defaultConfig]);\n\n const setCreateWizardConfig = newCreateWizardConfig => {\n _setCreateWizardConfig(newCreateWizardConfig);\n };\n\n return (\n \n {children}\n \n );\n};\n\nCreateWizardConfigContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n createWizardConfig: PropTypes.shape({}),\n};\n\nCreateWizardConfigContextProvider.defaultProps = {\n createWizardConfig: {},\n};\n\nexport { CreateWizardConfigContext, CreateWizardConfigContextProvider };\n","export const SINGLE_CHOICE = 'single_choice';\nexport const DROPDOWN = 'dropdown';\nexport const MULTIPLE_CHOICE = 'multiple_choice';\nexport const SINGLE_TEXTBOX = 'single_textbox';\nexport const COMMENT_BOX = 'comment_box';\nexport const STAR_RATING = 'star_rating';\nexport const SLIDER = 'slider';\n\nexport const QUESTION_TYPES = [\n { id: 1, value: SINGLE_CHOICE, text: 'Multiple choice' },\n { id: 2, value: DROPDOWN, text: 'Dropdown' },\n { id: 3, value: MULTIPLE_CHOICE, text: 'Checkboxes' },\n { id: 4, value: SINGLE_TEXTBOX, text: 'Single textbox' },\n { id: 5, value: COMMENT_BOX, text: 'Comment box' },\n { id: 6, value: STAR_RATING, text: 'Star rating' },\n { id: 7, value: SLIDER, text: 'Slider' },\n];\n\nexport const MULTI_CHOICE_QUESTIONS = [SINGLE_CHOICE, DROPDOWN, MULTIPLE_CHOICE];\nexport const NON_MULTI_CHOICE_QUESTIONS = [SINGLE_TEXTBOX, COMMENT_BOX, STAR_RATING, SLIDER];\nexport const DEFAULT_POLL_QUESTION_TYPES = [SINGLE_CHOICE, DROPDOWN];\n\nexport const getQuestionTypes = (questionArray = []) => QUESTION_TYPES.filter(q => questionArray.includes(q.value));\n\nexport default QUESTION_TYPES;\n","import React from 'react';\nimport { Button } from '@sm/wds-react';\nimport { IconX, IconArrowDown, IconArrowUp } from '@sm/wds-icons';\nimport { PropTypes } from 'prop-types';\n\nexport const ChoiceOptions = ({ index, questionAnswersLength, moveAnswer, deleteAnswer }) => (\n
    \n {index !== 0 && (\n moveAnswer(index)}\n tabIndex=\"-1\"\n >\n \n \n \n \n )}\n {index !== questionAnswersLength - 1 && (\n moveAnswer(index, true)}\n tabIndex=\"-1\"\n >\n \n \n \n \n )}\n {questionAnswersLength > 2 && (\n deleteAnswer(index)}\n tabIndex=\"-1\"\n >\n \n \n \n \n )}\n
    \n);\n\nChoiceOptions.propTypes = {\n index: PropTypes.number,\n questionAnswersLength: PropTypes.number,\n moveAnswer: PropTypes.func,\n deleteAnswer: PropTypes.func,\n};\n\nChoiceOptions.defaultProps = {\n index: 0,\n questionAnswersLength: 0,\n moveAnswer: () => {},\n deleteAnswer: () => {},\n};\n\nexport default ChoiceOptions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Container, Input, InputGroup, InputGroupAddon } from '@sm/wds-react';\nimport { ChoiceOptions } from './ChoiceOptions';\n\nexport const SurveyChoice = ({\n index,\n readOnlySurvey,\n questionId,\n answersLength,\n answerValue,\n moveAnswer,\n deleteAnswer,\n handleAnswerChange,\n}) => (\n \n \n \n handleAnswerChange(index, event)}\n disabled={readOnlySurvey}\n />\n \n \n \n \n \n \n);\n\nSurveyChoice.propTypes = {\n index: PropTypes.number,\n readOnlySurvey: PropTypes.bool,\n questionId: PropTypes.string,\n answersLength: PropTypes.number,\n answerValue: PropTypes.string,\n moveAnswer: PropTypes.func,\n deleteAnswer: PropTypes.func,\n handleAnswerChange: PropTypes.func,\n};\n\nSurveyChoice.defaultProps = {\n index: 0,\n readOnlySurvey: false,\n questionId: 0,\n answersLength: 0,\n answerValue: '',\n moveAnswer: () => {},\n deleteAnswer: () => {},\n handleAnswerChange: () => {},\n};\n\nexport default SurveyChoice;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Container, Input, InputGroupAddon } from '@sm/wds-react';\nimport { ChoiceOptions } from './ChoiceOptions';\n\nexport const QuizChoice = ({\n index,\n readOnlySurvey,\n questionId,\n answersLength,\n answer,\n moveAnswer,\n deleteAnswer,\n handleAnswerChange,\n handleScoreChange,\n}) => (\n \n
    \n \n handleAnswerChange(index, event)}\n disabled={readOnlySurvey}\n />\n \n \n handleScoreChange(index, event)}\n disabled={readOnlySurvey}\n />\n \n \n \n \n \n \n
    \n \n);\n\nQuizChoice.propTypes = {\n index: PropTypes.number,\n readOnlySurvey: PropTypes.bool,\n questionId: PropTypes.string,\n answersLength: PropTypes.number,\n answer: PropTypes.shape({\n answer: PropTypes.string,\n score: PropTypes.string,\n }),\n moveAnswer: PropTypes.func,\n deleteAnswer: PropTypes.func,\n handleAnswerChange: PropTypes.func,\n handleScoreChange: PropTypes.func,\n};\n\nQuizChoice.defaultProps = {\n index: 0,\n readOnlySurvey: false,\n questionId: '',\n answersLength: 0,\n answer: {\n answer: '',\n score: '',\n },\n moveAnswer: () => {},\n deleteAnswer: () => {},\n handleAnswerChange: () => {},\n handleScoreChange: () => {},\n};\n\nexport default QuizChoice;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Container, Button } from '@sm/wds-react';\nimport { IconPlusCircle } from '@sm/wds-icons';\nimport { SINGLE_CHOICE } from '../../pages/NewSurvey/questionTypes';\nimport SurveyChoice from './SurveyChoice';\nimport { QuizChoice } from './QuizChoice';\n\nconst MultipleChoice = ({ question, surveyType, updateQuestion, maxAnsChoices, readOnlySurvey }) => {\n const handleAnswerChange = (idx, event) => {\n const currentQuestion = cloneDeep(question);\n const answers = [...currentQuestion.answers];\n answers[idx].answer = event.target.value;\n\n currentQuestion.answers = answers;\n updateQuestion(currentQuestion);\n };\n\n const moveAnswer = (idx, down) => {\n if (idx === 0 && !down) {\n return;\n }\n if (idx === question.answers.length - 1 && down) {\n return;\n }\n\n const currentQuestion = cloneDeep(question);\n const answers = [...currentQuestion.answers];\n\n const answer = answers[idx];\n const to = down ? idx + 1 : idx - 1;\n answers.splice(idx, 1);\n answers.splice(to, 0, answer);\n\n currentQuestion.answers = answers;\n updateQuestion(currentQuestion);\n };\n\n const deleteAnswer = idx => {\n const currentQuestion = cloneDeep(question);\n const answers = [...currentQuestion.answers];\n answers.splice(idx, 1);\n\n currentQuestion.answers = answers;\n updateQuestion(currentQuestion);\n };\n\n const addAnswer = () => {\n const currentQuestion = cloneDeep(question);\n const answers = [...currentQuestion.answers];\n answers.push({ answer: '', score: '' });\n\n currentQuestion.answers = answers;\n updateQuestion(currentQuestion);\n };\n\n const handleScoreChange = (idx, event) => {\n const val = event.target.value.replace(/[^0-9]+/g, '');\n const currentQuestion = cloneDeep(question);\n const answers = [...currentQuestion.answers];\n answers[idx].score = val;\n\n currentQuestion.answers = answers;\n updateQuestion(currentQuestion);\n };\n\n return (\n \n {question.answers.length > maxAnsChoices && (\n
    \n Multiple choice will only display a maximum of \n {maxAnsChoices}\n  poll choices\n
    \n )}\n {question.answers.map((answer, index) => {\n if (index < maxAnsChoices) {\n const id = `mc-${question.id}-answer-${index}`;\n return (\n
    \n \n \n \n \n \n \n
    \n );\n }\n return null;\n })}\n {question.answers.length < maxAnsChoices && !readOnlySurvey && (\n \n )}\n
    \n );\n};\n\nMultipleChoice.propTypes = {\n question: PropTypes.shape({\n id: PropTypes.string,\n question: PropTypes.string,\n questionType: PropTypes.string,\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n answer: PropTypes.string,\n score: PropTypes.string,\n })\n ),\n min: PropTypes.number,\n max: PropTypes.number,\n allowComments: PropTypes.bool,\n required: PropTypes.bool,\n isNew: PropTypes.bool,\n isUpdated: PropTypes.bool,\n }),\n surveyType: PropTypes.string,\n updateQuestion: PropTypes.func,\n maxAnsChoices: PropTypes.number,\n readOnlySurvey: PropTypes.bool,\n};\n\nMultipleChoice.defaultProps = {\n question: {\n id: '',\n question: '',\n questionType: SINGLE_CHOICE,\n answers: [\n { answer: '', score: '' },\n { answer: '', score: '' },\n { answer: '', score: '' },\n ],\n min: 0,\n max: 100,\n allowComments: false,\n required: false,\n isNew: true,\n isUpdated: false,\n },\n surveyType: 'poll',\n updateQuestion: () => {},\n maxAnsChoices: 50,\n readOnlySurvey: false,\n};\n\nexport default MultipleChoice;\n","import { DEFAULT_POLL_QUESTION_TYPES, MULTI_CHOICE_QUESTIONS, NON_MULTI_CHOICE_QUESTIONS } from './questionTypes';\n\nconst defaultPollQuestionConfig = [\n {\n forTypes: DEFAULT_POLL_QUESTION_TYPES,\n maxOptions: 10,\n customConfigs: [\n {\n id: 'comments',\n label: 'Allow comments',\n },\n ],\n hideRequired: true,\n },\n];\n\nconst defaultSurveyQuestionConfig = [\n {\n forTypes: MULTI_CHOICE_QUESTIONS,\n maxOptions: 20,\n customConfigs: [\n {\n id: 'comments',\n label: 'Allow comments',\n },\n ],\n hideRequired: true,\n },\n {\n forTypes: NON_MULTI_CHOICE_QUESTIONS,\n customConfigs: [{}],\n hideRequired: true,\n },\n];\n\nexport const getDefaultQuestionConfig = surveyType => {\n if (surveyType === 'poll') {\n return defaultPollQuestionConfig;\n }\n return defaultSurveyQuestionConfig;\n};\n\nexport const getQuestionConfigs = (configs, surveyType) => {\n let questionArray = [];\n let disabledQuestionTypes = [];\n let maxAnsChoices;\n\n const questionConfigOverride = !configs ? getDefaultQuestionConfig(surveyType) : configs;\n\n questionConfigOverride.forEach(({ forTypes = [], maxOptions, disabled }) => {\n const isMCQuestions = forTypes.every(val => MULTI_CHOICE_QUESTIONS.includes(val));\n if (isMCQuestions && maxOptions) {\n maxAnsChoices = maxOptions;\n }\n if (disabled) {\n disabledQuestionTypes = disabledQuestionTypes.concat(forTypes);\n } else {\n questionArray = questionArray.concat(forTypes);\n }\n });\n\n return {\n enabledQuestionTypes: questionArray,\n disabledQuestionTypes,\n config: questionConfigOverride,\n maxAnsChoices,\n };\n};\n\nexport const sendMessage = (msg, domain) => {\n window.parent.postMessage(msg, domain);\n};\n","const ACTION_TYPES = {\n PREVIEW: 'preview',\n READ_ONLY: 'read_only',\n NO_CHANGE: 'no_change',\n UPDATE: 'update',\n SAVE: 'save',\n CANCEL: 'cancel',\n BACK: 'back',\n};\n\nexport default ACTION_TYPES;\n\nexport const determineActionType = (readOnlySurvey, changeIds, edit) => {\n if (readOnlySurvey) {\n return ACTION_TYPES.READ_ONLY;\n }\n if (edit) {\n return ACTION_TYPES.UPDATE;\n }\n if (changeIds.length === 0) {\n return ACTION_TYPES.NO_CHANGE;\n }\n return ACTION_TYPES.SAVE;\n};\n","import { SINGLE_CHOICE, MULTI_CHOICE_QUESTIONS, SLIDER } from './questionTypes';\n\nexport const createNewQuestion = () => {\n return {\n id: new Date().getUTCMilliseconds().toString(),\n question: '',\n questionType: SINGLE_CHOICE,\n min: 0,\n max: 100,\n required: false,\n isNew: true,\n isUpdated: false,\n answers: [\n { answer: '', score: '' },\n { answer: '', score: '' },\n { answer: '', score: '' },\n ],\n };\n};\n\nexport const validateSliderQuestionType = ({ min, max, id }, errors) => {\n if (\n min === '' ||\n max === '' ||\n parseInt(min, 10) > 1000000 ||\n parseInt(max, 10) > 1000000 ||\n parseInt(min, 10) < -1000000 ||\n parseInt(max, 10) < -1000000 ||\n parseInt(min, 10) >= parseInt(max, 10)\n ) {\n const minmaxid = max === '' || max > 1000000 || max < -1000000 ? '-max' : '-min';\n errors.push({\n focus: `question-${id}${minmaxid}`,\n message: 'Please enter valid slider min and max values',\n });\n }\n};\n\nexport const validateQuestionType = ({ questionType, id }, errors, disabledQuestionTypes) => {\n if (!questionType) {\n errors.push({\n focus: `question-${id}`,\n message: 'Please select a question type or remove the question',\n });\n }\n\n if (disabledQuestionTypes.includes(questionType)) {\n errors.push({\n focus: `question-${id}`,\n message: 'Please change question type or remove question',\n });\n }\n};\n\nexport const validateMultipleChoiceQuestionType = ({ id, answers }, surveyType, errors) => {\n if (answers.filter(({ answer }) => answer !== '').length < 2) {\n errors.push({\n focus: `question-${id}-answer1`,\n message: 'Please enter at least two choices',\n });\n }\n\n if (surveyType === 'quiz' && answers.filter(({ score }) => score > 0).length === 0) {\n errors.push({\n focus: `question-${id}-score1`,\n message: 'Please enter at least one score for your answers',\n });\n }\n};\n\nexport const isQuestionInvalid = (question, surveyType, { disabledQuestionTypes = [] }) => {\n const errors = [];\n validateQuestionType(question, errors, disabledQuestionTypes);\n\n if (question.question === '') {\n errors.push({\n focus: `question-${question.id}`,\n message: 'Please enter question text',\n });\n }\n\n if (MULTI_CHOICE_QUESTIONS.includes(question.questionType)) {\n validateMultipleChoiceQuestionType(question, surveyType, errors);\n }\n\n if (question.questionType === SLIDER) {\n validateSliderQuestionType(question, errors);\n }\n\n return errors;\n};\n\nexport default createNewQuestion;\n","import { COMMENT_BOX, DROPDOWN, SINGLE_CHOICE, SINGLE_TEXTBOX, SLIDER, STAR_RATING } from '../questionTypes';\n\nexport const mapAnswersFromAPI = (apiQuestion = {}) => {\n if (apiQuestion.family === 'single_choice' || apiQuestion.family === 'multiple_choice') {\n const answers = [];\n apiQuestion.answers.choices.forEach(choice => {\n const answer = { answer: choice.text, score: '' };\n if (choice.quiz_options) {\n answer.score = choice.quiz_options.score.toString();\n }\n answers.push(answer);\n });\n\n return answers;\n }\n\n return [];\n};\n\nexport const mapQuestionTypeFromAPI = (family, subtype, displayOptions = {}) => {\n const singleChoiceSubType = subtype === 'vertical' || subtype === 'vertical_two_col' ? SINGLE_CHOICE : DROPDOWN;\n switch (family) {\n case 'single_choice':\n return singleChoiceSubType;\n case 'multiple_choice':\n return 'multiple_choice';\n case 'open_ended':\n if (subtype === 'single') {\n if (displayOptions.display_type === 'slider') {\n return SLIDER;\n }\n return SINGLE_TEXTBOX;\n }\n if (subtype === 'essay') {\n return COMMENT_BOX;\n }\n break;\n case 'matrix':\n if (\n subtype === 'rating' &&\n displayOptions.display_type === 'emoji' &&\n displayOptions.display_subtype === 'star'\n ) {\n return STAR_RATING;\n }\n break;\n default:\n return singleChoiceSubType;\n }\n\n return null;\n};\n\nexport const mapQuestionFromApi = (question, surveyDetails) => {\n return {\n id: question.id || question.question_id,\n question: question.headings[0].heading,\n questionType: mapQuestionTypeFromAPI(question.family, question.subtype, question.display_options),\n answers: mapAnswersFromAPI(question),\n min: question.validation ? question.validation.min : 0,\n max: question.validation ? question.validation.max : 100,\n allowComments: false,\n required: !!question.required,\n isNew: surveyDetails && surveyDetails.id === undefined,\n isUpdated: false,\n initialPosition: question.position,\n };\n};\n","import {\n COMMENT_BOX,\n DROPDOWN,\n MULTIPLE_CHOICE,\n MULTI_CHOICE_QUESTIONS,\n SINGLE_CHOICE,\n SINGLE_TEXTBOX,\n SLIDER,\n STAR_RATING,\n} from '../questionTypes';\n\nexport const mapQuestionTypeToAPI = type => {\n switch (type) {\n case SINGLE_CHOICE:\n return { family: 'single_choice', subtype: 'vertical' };\n case DROPDOWN:\n return { family: 'single_choice', subtype: 'menu' };\n case MULTIPLE_CHOICE:\n return { family: 'multiple_choice', subtype: 'vertical' };\n case SINGLE_TEXTBOX:\n return { family: 'open_ended', subtype: 'single' };\n case COMMENT_BOX:\n return { family: 'open_ended', subtype: 'essay' };\n case STAR_RATING:\n return { family: 'matrix', subtype: 'rating' };\n case SLIDER:\n return { family: 'open_ended', subtype: 'single' };\n default:\n return { family: 'single_choice', subtype: 'vertical' };\n }\n};\n\nexport const mapAnswersToAPI = (question = {}, isQuiz = false) => {\n let mappedAnwers = null;\n if (MULTI_CHOICE_QUESTIONS.includes(question.questionType)) {\n const choices = [];\n let position = 1;\n question.answers.forEach(answer => {\n if (answer.answer) {\n const choice = {\n text: answer.answer,\n visible: true,\n position,\n };\n if (isQuiz) {\n choice.quiz_options = {\n score: answer.score ? parseInt(answer.score, 10) : 0,\n };\n }\n choices.push(choice);\n position += 1;\n }\n });\n mappedAnwers = {\n choices,\n };\n } else if (question.questionType === STAR_RATING) {\n mappedAnwers = {\n rows: [\n {\n visible: true,\n text: '',\n position: 1,\n },\n ],\n choices: [\n {\n weight: 1,\n text: '',\n },\n {\n weight: 2,\n text: '',\n },\n {\n weight: 3,\n text: '',\n },\n {\n weight: 4,\n text: '',\n },\n {\n weight: 5,\n text: '',\n },\n ],\n };\n }\n return mappedAnwers;\n};\n\nexport const handleRequired = (question, apiQuestion) => {\n const updatedQuestion = { ...apiQuestion };\n\n if (question.required) {\n updatedQuestion.required = {\n text: 'Response is required',\n type: question.questionType === MULTIPLE_CHOICE ? 'at_least' : 'all',\n amount: '1',\n };\n } else {\n delete updatedQuestion.required;\n }\n\n return updatedQuestion;\n};\n\nexport const handleStarQuestionType = (question, apiQuestion) => {\n const updatedQuestion = { ...apiQuestion };\n if (question.questionType === STAR_RATING) {\n updatedQuestion.display_options = {\n display_type: 'emoji',\n display_subtype: 'star',\n };\n updatedQuestion.forced_ranking = false;\n }\n\n return updatedQuestion;\n};\n\nexport const handleSliderQuestionType = (question, apiQuestion) => {\n const updatedQuestion = { ...apiQuestion };\n if (question.questionType === SLIDER) {\n updatedQuestion.display_options = {\n right_label: `${question.max}` || '100',\n display_type: 'slider',\n custom_options: {\n starting_position: 0,\n step_size: 1,\n },\n left_label: `${question.min}` || '0',\n };\n\n updatedQuestion.validation = {\n sum_text: '',\n min: question.min ? parseInt(question.min, 10) : 0,\n text: 'Please enter a whole number between {0} and {1}.',\n max: question.max ? parseInt(question.max, 10) : 100,\n type: 'integer',\n };\n }\n return updatedQuestion;\n};\n\nexport const mapQuestionToAPI = (question, position, isQuiz, originalQuestionFromApi) => {\n const familySubType = mapQuestionTypeToAPI(question.questionType);\n\n let apiQuestion = {\n family: familySubType.family,\n subtype: familySubType.subtype,\n ...(originalQuestionFromApi || {}),\n ...{\n headings: [\n {\n heading: question.question,\n },\n ],\n position,\n },\n };\n\n delete apiQuestion.href;\n delete apiQuestion.layout;\n\n if (!question.isNew) {\n apiQuestion.id = question.id;\n }\n\n apiQuestion = handleRequired(question, apiQuestion);\n\n if (MULTI_CHOICE_QUESTIONS.includes(question.questionType) || question.questionType === STAR_RATING) {\n apiQuestion.answers = mapAnswersToAPI(question, isQuiz);\n }\n\n apiQuestion = handleStarQuestionType(question, apiQuestion);\n\n apiQuestion = handleSliderQuestionType(question, apiQuestion);\n\n if (isQuiz && MULTI_CHOICE_QUESTIONS.includes(question.questionType)) {\n apiQuestion.quiz_options = {\n scoring_enabled: true,\n feedback: {\n correct_text: \"Nice! That's correct\",\n incorrect_text: \"Nope, that's wrong\",\n },\n };\n }\n\n return apiQuestion;\n};\n\nexport const buildQuestionData = (questions, surveyType) => {\n const questionsToSend = [];\n questions.forEach((question, position) => {\n const mappedQuestion = mapQuestionToAPI(question, position + 1, surveyType === 'quiz');\n\n questionsToSend.push(mappedQuestion);\n });\n return { questionsToSend };\n};\n","export const getInputConfig = ({ survey, surveyType, style }) => {\n if (surveyType === 'poll') {\n return {\n survey,\n maxQuestions: 1,\n maxQuestionsBasic: 10,\n types: ['poll'],\n selectedType: surveyType,\n showBadge: false,\n sendPayloadOnAllUpdates: false,\n hideCreateSurveyButton: false,\n hideCancelSurveyButton: true,\n style,\n };\n }\n return {\n survey,\n maxQuestions: 20,\n maxQuestionsBasic: 10,\n types: ['Survey', 'Quiz'],\n selectedType: surveyType,\n showBadge: false,\n sendPayloadOnAllUpdates: false,\n hideCreateSurveyButton: false,\n hideCancelSurveyButton: true,\n style,\n };\n};\n\nexport default getInputConfig;\n","import React, { useState, useEffect, useCallback, useContext } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport {\n Alert,\n Badge,\n Container,\n Typography,\n Grid,\n Row,\n Col,\n Button,\n Menu,\n MenuItem,\n Option,\n Select,\n Switch,\n Input,\n Toast,\n ToastTitle,\n} from '@sm/wds-react';\nimport { IconStarFilled, IconMore, IconArrowLeft, IconArrowRight } from '@sm/wds-icons';\nimport MultipleChoice from '../../components/MultipleChoice';\nimport { sendMessage, getQuestionConfigs } from './helper';\n\nimport { CreateWizardConfigContext } from '../../CreateWizardConfigContext';\n\nimport './new-survey.scss';\nimport ACTION_TYPES, { determineActionType } from './actionTypes';\n\nimport {\n MULTI_CHOICE_QUESTIONS,\n SINGLE_TEXTBOX,\n COMMENT_BOX,\n STAR_RATING,\n SLIDER,\n getQuestionTypes,\n} from './questionTypes';\nimport createNewQuestion, { isQuestionInvalid } from './questions';\nimport { mapQuestionFromApi } from './questionTransformer/questionFromApi';\nimport { buildQuestionData, mapQuestionToAPI } from './questionTransformer/questionToApi';\nimport { getInputConfig } from './inputConfig';\n\nconst NewSurvey = ({ match }) => {\n const { createWizardConfig, setCreateWizardConfig } = useContext(CreateWizardConfigContext);\n const {\n primaryCtaCopy,\n secondaryCtaCopy,\n style,\n survey,\n redirectToEditorPage,\n redirectTo,\n readOnlySurvey,\n showPrimaryCtaIcon,\n parentDomain,\n questionConfig,\n } = createWizardConfig;\n const surveyTypeSelected = redirectToEditorPage ? redirectTo : match.params.surveyTypeSelected;\n\n const defaultInputConfig = getInputConfig({ survey, surveyType: surveyTypeSelected, style });\n\n const {\n hideCreateSurveyButton,\n hideCancelSurveyButton,\n sendPayloadOnAllUpdates,\n maxQuestions: MAX_QUESTIONS,\n types,\n } = defaultInputConfig;\n\n const [inputData] = useState(defaultInputConfig);\n\n const [surveyDetails, setSurveyDetails] = useState(survey);\n\n const [questions, setQuestions] = useState([createNewQuestion()]);\n\n const [surveyTitle, setSurveyTitle] = useState(survey && survey.title);\n\n const [surveyType, setSurveyType] = useState(surveyTypeSelected);\n\n const [shouldRedirectBackToHome, setShouldRedirectBackToHome] = useState(false);\n\n const [redirectUrl, setRedirectUrl] = useState('/createwizard/');\n\n const isNewSurvey = Object.keys(survey).length === 0;\n\n const edit = redirectToEditorPage && !isNewSurvey;\n\n const [questionsFromApiMap, setQuestionsFromApiMap] = useState({});\n\n const [questionConfigs] = useState(getQuestionConfigs(questionConfig, surveyTypeSelected));\n\n const [showUnsupportedAlert, setUnsupportedAlert] = useState(false);\n\n const loadMappedQuestionsList = useCallback(\n surveyData => {\n const questionsList = [];\n const questionsFromAPIList = [];\n if (edit && surveyData) {\n surveyData.pages.forEach(page => {\n page.questions.forEach(question => {\n const q = mapQuestionFromApi(question, surveyDetails);\n if (q) {\n if (questionConfigs.disabledQuestionTypes.includes(q.questionType)) {\n q.unsupported = true;\n setUnsupportedAlert(true);\n }\n\n questionsList.push(q);\n questionsFromAPIList.push(question);\n }\n });\n });\n setQuestions(questionsList);\n setQuestionsFromApiMap(\n questionsFromAPIList.reduce((map, question) => {\n const newMap = map;\n if (question.id) {\n newMap[question.id] = question;\n }\n return newMap;\n }, {})\n );\n }\n },\n [edit, surveyDetails, questionConfigs]\n );\n\n useEffect(() => {\n loadMappedQuestionsList(survey);\n setSurveyDetails(survey);\n }, [edit, loadMappedQuestionsList, survey]);\n\n const {\n iconColor,\n buttonColor,\n buttonTextColor,\n secondaryButtonColor,\n secondaryButtonTextColor,\n badgeColor,\n badgeTextColor,\n containerBackgroundColor,\n middleContainerBackgroundColor = 'transparent',\n inputBackgroundColor,\n inputBorderColor,\n inputBorderHoverColor,\n inputBorderFocusColor,\n inputLabelBackgroundColor,\n } = style;\n\n useEffect(() => {\n const root = document.documentElement;\n\n root.style.setProperty('--customIconColor', iconColor);\n root.style.setProperty('--customButtonColor', buttonColor);\n root.style.setProperty('--customTextColor', buttonTextColor);\n root.style.setProperty('--customSecondaryButtonColor', secondaryButtonColor);\n root.style.setProperty('--customSecondaryTextColor', secondaryButtonTextColor);\n root.style.setProperty('--customBadgeColor', badgeColor);\n root.style.setProperty('--customBadgeTextColor', badgeTextColor);\n root.style.setProperty('--customContainerBackgroundColor', containerBackgroundColor);\n root.style.setProperty('--customMiddleContainerBackgroundColor', middleContainerBackgroundColor);\n root.style.setProperty('--customInputBackgroundColor', inputBackgroundColor);\n root.style.setProperty('--customInputBorderColor', inputBorderColor);\n root.style.setProperty('--customInputBorderHoverColor', inputBorderHoverColor);\n root.style.setProperty('--customInputBorderFocusColor', inputBorderFocusColor);\n root.style.setProperty('--customInputLabelBackgroundColor', inputLabelBackgroundColor || '#F3F2F1');\n }, [\n iconColor,\n buttonColor,\n buttonTextColor,\n secondaryButtonColor,\n secondaryButtonTextColor,\n badgeColor,\n badgeTextColor,\n containerBackgroundColor,\n middleContainerBackgroundColor,\n inputBackgroundColor,\n inputBorderColor,\n inputBorderHoverColor,\n inputBorderFocusColor,\n inputLabelBackgroundColor,\n ]);\n\n const showMore = false;\n\n const hasresponses = false;\n const [showToast, setShowToast] = useState(false);\n const [errorText, setErrorText] = useState('');\n const [setDeletePromptQuestion] = useState(undefined);\n const [questionsToDelete, setQuestionsToDelete] = useState([]);\n\n const hasErrors = () => {\n if (!surveyTitle && surveyType !== 'poll') {\n return { focus: 'surveyTitle', message: 'Please enter survey title' };\n }\n\n for (let x = 0; x < questions.length; x += 1) {\n const question = questions[x];\n\n const questionErrors = isQuestionInvalid(question, surveyType, questionConfigs);\n if (questionErrors.length > 0) {\n return questionErrors[0];\n }\n }\n\n return null;\n };\n\n const saveSurvey = ({ overrideAction }) => {\n let dataToSend = {};\n\n const { questionsToSend } = buildQuestionData(questions, surveyType);\n\n dataToSend = {\n action: overrideAction || (readOnlySurvey ? 'read_only' : 'save'),\n changeIds: [],\n survey: {\n title: surveyTitle,\n pages: [\n {\n questions: questionsToSend,\n },\n ],\n },\n customConfigs: questionConfigs.config.customConfigs,\n };\n sendMessage(`${JSON.stringify(dataToSend)}`, parentDomain);\n };\n\n const handleSurveyTypeChange = e => {\n setSurveyType(e.target.attributes.value.value);\n\n if (sendPayloadOnAllUpdates) {\n saveSurvey();\n }\n };\n\n const errorClass = 'sm-new-survey__error-outline';\n\n const updateQuestion = _question => {\n const updatedQuestion = { ..._question, isUpdated: true };\n const questionsTemp = questions;\n const foundIndex = questionsTemp.findIndex(q => q.id === updatedQuestion.id);\n if (foundIndex > -1) {\n questionsTemp[foundIndex] = updatedQuestion;\n setQuestions([...questionsTemp]);\n }\n\n if (sendPayloadOnAllUpdates) {\n saveSurvey();\n }\n\n const errOutline = document.querySelector('.sm-new-survey__input.sm-new-survey__error-outline');\n if (errOutline) {\n errOutline.classList.remove(errorClass);\n }\n };\n\n const handleQuestionTypeChange = (_question, e) => {\n const tmpQuestion = _question;\n const { value } = e.target.attributes.value;\n tmpQuestion.questionType = value;\n updateQuestion(tmpQuestion);\n };\n\n const handleQuestionChange = (_question, event) => {\n const tmpQuestion = _question;\n tmpQuestion.question = event.target.value;\n if (surveyType === 'poll') {\n setSurveyTitle(tmpQuestion.question);\n }\n updateQuestion(tmpQuestion);\n };\n\n const handleMinChange = (_question, e) => {\n const tmpQuestion = _question;\n\n tmpQuestion.min = `${e.target.value === '-' ? '-' : parseInt(e.target.value, 10) || ''}`;\n updateQuestion(tmpQuestion);\n };\n\n const handleMaxChange = (_question, e) => {\n const tmpQuestion = _question;\n\n tmpQuestion.max = `${e.target.value === '-' ? '-' : parseInt(e.target.value, 10) || ''}`;\n updateQuestion(tmpQuestion);\n };\n\n const handleRequiredChange = (_question, e) => {\n const tmpQuestion = _question;\n tmpQuestion.required = e.target.checked;\n updateQuestion(tmpQuestion);\n };\n\n const addQuestion = () => {\n setQuestions([...questions, createNewQuestion()]);\n const questionTitles = document.getElementsByClassName('sm-new-survey__question-title');\n questionTitles[questionTitles.length - 1].focus();\n };\n\n const deleteQuestion = question => {\n if (!question.isNew && hasresponses) {\n setDeletePromptQuestion(question);\n } else {\n const questionsToDeleteList = questionsToDelete;\n const filteredQuestions = questions.filter(q => q.id !== question.id);\n if (!question.isNew) {\n questionsToDeleteList.push(question);\n }\n setQuestions([...filteredQuestions]);\n setQuestionsToDelete([...questionsToDeleteList]);\n }\n };\n\n const handleSurveyTitleChange = e => {\n setSurveyTitle(e.target.value);\n\n if (sendPayloadOnAllUpdates) {\n saveSurvey();\n }\n\n const errOutline = document.querySelector('.sm-new-survey__input.sm-new-survey__error-outline');\n if (errOutline) {\n errOutline.classList.remove(errorClass);\n }\n };\n\n const moveQuestion = (question, down) => {\n const questionsList = questions;\n const from = questionsList.findIndex(q => q.id === question.id);\n const to = down ? from + 1 : from - 1;\n questionsList.splice(from, 1);\n questionsList.splice(to, 0, question);\n setQuestions([...questionsList]);\n };\n\n const showErrors = errObj => {\n if (errObj?.focus) {\n const input = document.getElementById(errObj.focus);\n input.focus();\n input.classList.add(errorClass);\n }\n setShowToast(true);\n setErrorText(errObj ? errObj.message : '');\n };\n\n const handleUpdate = ({ overrideAction }) => {\n const questionsToSend = [];\n const errors = hasErrors();\n if (errors) {\n showErrors(errors);\n return;\n }\n setShowToast(false);\n\n const changeIds = [];\n\n questions.forEach((question, position) => {\n const questionFromApi = questionsFromApiMap[question.id] || null;\n const mappedQuestion = mapQuestionToAPI(question, position + 1, surveyType === 'quiz', questionFromApi);\n\n if (question.initialPosition !== mappedQuestion.position || question.isUpdated || question.isNew) {\n changeIds.push(question.id);\n questionsToSend.push(mappedQuestion);\n }\n });\n\n questionsToDelete.forEach(questionToDelete => {\n changeIds.push(questionToDelete.id);\n });\n\n const action = determineActionType(readOnlySurvey, changeIds, edit);\n\n const dataToSend = {\n action: overrideAction || action,\n changeIds,\n survey: {\n id: surveyDetails.id,\n title: surveyTitle,\n pages: [\n {\n questions: questionsToSend,\n },\n ],\n },\n customConfigs: questionConfigs.config.customConfigs,\n };\n sendMessage(`${JSON.stringify(dataToSend)}`, parentDomain);\n };\n\n const handleSave = ({ overrideAction }) => {\n const errors = hasErrors();\n if (errors) {\n showErrors(errors);\n return;\n }\n setShowToast(false);\n saveSurvey({ overrideAction });\n };\n\n const handleSubmit = ({ overrideAction = '' } = {}) => {\n if (questions.length === 0) {\n return;\n }\n\n localStorage.removeItem('createExperiencePayload');\n if (edit && surveyDetails.id) {\n handleUpdate({ overrideAction });\n } else {\n handleSave({ overrideAction });\n }\n };\n\n const handleCancel = actionType => {\n if (redirectTo === 'templates') {\n setRedirectUrl('/createwizard/templates');\n setShouldRedirectBackToHome(true);\n } else if (redirectToEditorPage || readOnlySurvey) {\n const dataToSend = {\n action: actionType,\n };\n sendMessage(`${JSON.stringify(dataToSend)}`, parentDomain);\n localStorage.removeItem('createExperiencePayload');\n setCreateWizardConfig({\n ...createWizardConfig,\n redirectTo: '',\n redirectToEditorPage: false,\n readOnlySurvey: false,\n survey: {},\n });\n setRedirectUrl('/createwizard');\n setShouldRedirectBackToHome(true);\n } else {\n setRedirectUrl('/createwizard');\n setShouldRedirectBackToHome(true);\n }\n };\n\n const onCloseToast = () => setShowToast(false);\n\n const isSubmitDisabled = () =>\n (questions && questions.length === 0) || (MAX_QUESTIONS && questions && questions.length > MAX_QUESTIONS);\n\n let primaryCtaIcon = '';\n if (showPrimaryCtaIcon) {\n primaryCtaIcon = ;\n }\n\n return (\n \n \n \n \n \n \n \n \n handleCancel(ACTION_TYPES.BACK)}\n >\n \n Back\n \n \n \n \n Create \n {surveyTypeSelected}\n \n \n \n \n \n \n setUnsupportedAlert(false)}>\n This survey contains question types that are not supported with your current SurveyMonkey plan.{' '}\n \n Upgrade your plan or update the paid question types to use this template.\n \n \n \n Upgrade\n \n   your plan or update the paid question types to use this template. \n \n Learn More\n \n \n  \n \n \n \n {types && types.length >= 1 && (\n \n Poll\n \n \n \n {types.map(supportedSurveyType => {\n return (\n \n );\n })}\n \n \n \n )}\n \n \n {MAX_QUESTIONS !== 1 && (\n \n \n \n )}\n {questions?.map((question, index) => {\n const questionID = `question-${question.id}`;\n return (\n \n {MAX_QUESTIONS !== 1 && !readOnlySurvey && (\n <>\n
    \n \n \n Q {index + 1}\n \n \n \n }\n >\n deleteQuestion(question)}>Delete question\n {index !== 0 && (\n moveQuestion(question, false)}>Move question up\n )}\n {questions && questions.length - 1 !== index && (\n moveQuestion(question, true)}>Move question down\n )}\n \n \n \n \n )}\n \n handleQuestionTypeChange(question, event)}\n disabled={(edit && !question.isNew) || readOnlySurvey}\n >\n {getQuestionTypes(questionConfigs.enabledQuestionTypes).map(questionType => {\n return (\n \n {questionType.text}\n \n );\n })}\n \n \n \n handleQuestionChange(question, event)}\n disabled={readOnlySurvey}\n />\n \n {MULTI_CHOICE_QUESTIONS.includes(question.questionType) && (\n \n )}\n {question.questionType === SINGLE_TEXTBOX && (\n \n
    \n \n )}\n {question.questionType === COMMENT_BOX && (\n \n
    \n \n )}\n {question.questionType === STAR_RATING && (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )}\n {question.questionType === SLIDER && (\n \n \n \n \n {\n handleMinChange(question, event);\n }}\n value={question.min}\n disabled={readOnlySurvey}\n />\n \n \n {\n handleMaxChange(question, event);\n }}\n value={question.max}\n disabled={readOnlySurvey}\n />\n \n \n \n \n
    \n \n \n )}\n {MAX_QUESTIONS !== 1 && (\n \n handleRequiredChange(question, event)}\n />\n Required\n \n )}\n \n );\n })}\n \n \n \n \n {MAX_QUESTIONS !== 1 && questions.length < MAX_QUESTIONS && !readOnlySurvey && (\n \n \n \n )}\n \n \n \n \n Error creating {surveyType}. {errorText}\n \n \n\n \n {!hideCancelSurveyButton && (\n handleCancel(ACTION_TYPES.CANCEL)}\n >\n Cancel\n \n )}\n {!hideCreateSurveyButton && (\n <>\n {secondaryCtaCopy && (\n handleSubmit({ overrideAction: 'preview' })}\n disabled={isSubmitDisabled()}\n >\n {secondaryCtaCopy}\n \n )}\n handleSubmit()}\n disabled={isSubmitDisabled()}\n >\n {primaryCtaCopy}\n {primaryCtaIcon}\n \n \n )}\n \n \n \n \n \n );\n};\n\nNewSurvey.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n surveyTypeSelected: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default NewSurvey;\n","import React from 'react';\n\nconst IconPoll = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconPoll;\n","import React from 'react';\n\nconst IconSurvey = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconSurvey;\n","import React from 'react';\n\nconst IconTemplate = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconTemplate;\n","import React from 'react';\n\nconst IconQuiz = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconQuiz;\n","import React, { useState, useEffect, useCallback, useContext } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { Card, Container, Typography, Grid, Row, Col } from '@sm/wds-react';\n\nimport { CreateWizardConfigContext } from '../../CreateWizardConfigContext';\n\nimport { IconPoll, IconSurvey, IconTemplate } from '../../components/IconWrapper';\n\nimport './home.scss';\nimport IconQuiz from '../../components/IconWrapper/IconQuiz';\n\nconst Home = () => {\n const { createWizardConfig, setCreateWizardConfig } = useContext(CreateWizardConfigContext);\n const [shouldRedirect, setShouldRedirect] = useState(false);\n const [redirectUrl, setRedirectUrl] = useState('/createwizard/new-survey/poll');\n const [showCreatePollCard, setShowCreatePollCard] = useState(createWizardConfig.showCreatePollCard);\n const [showCreateSurveyCard, setShowCreateSurveyCard] = useState(createWizardConfig.showCreateSurveyCard);\n const [showStartFromTemplateCard, setShowStartFromTemplateCard] = useState(\n createWizardConfig.showStartFromTemplateCard\n );\n const [showCreateQuizCard, setShowCreateQuizCard] = useState(createWizardConfig.showCreateQuizCard);\n const [customStylings, setCustomStylings] = useState(createWizardConfig.style);\n\n useEffect(() => {\n setShouldRedirect(createWizardConfig.redirectToEditorPage);\n if (createWizardConfig.redirectToEditorPage) {\n if (createWizardConfig.redirectTo === 'templates') {\n setRedirectUrl(`/createwizard/${createWizardConfig.redirectTo}`);\n } else {\n setRedirectUrl(`/createwizard/new-survey/${createWizardConfig.redirectTo}`);\n }\n }\n setShowCreatePollCard(createWizardConfig.showCreatePollCard);\n setShowCreateSurveyCard(createWizardConfig.showCreateSurveyCard);\n setShowStartFromTemplateCard(createWizardConfig.showStartFromTemplateCard);\n setShowCreateQuizCard(createWizardConfig.showCreateQuizCard);\n setCustomStylings(createWizardConfig.style);\n }, [createWizardConfig]);\n\n const onMessageReceivedFromIframe = useCallback(\n event => {\n if (\n event.data &&\n event.data.message &&\n typeof event.data.message !== 'object' &&\n event.data.source === 'create-wizard-app'\n ) {\n const data = JSON.parse(event.data.message);\n setCreateWizardConfig(data);\n }\n },\n [setCreateWizardConfig]\n );\n\n useEffect(() => {\n window.addEventListener('message', onMessageReceivedFromIframe);\n return () => window.removeEventListener('message', onMessageReceivedFromIframe);\n }, [onMessageReceivedFromIframe]);\n\n useEffect(() => {\n document.documentElement.style.setProperty('--customIconColor', customStylings.iconColor);\n document.documentElement.style.setProperty(\n '--customContainerBackgroundColor',\n customStylings.containerBackgroundColor\n );\n }, [customStylings]);\n\n return (\n <>\n \n Get started\n \n \n \n \n \n \n \n \n \n \n {\n setShouldRedirect(true);\n setRedirectUrl('/createwizard/new-survey/poll');\n }}\n className=\"sm-home__cards sm-home__poll\"\n >\n
    \n \n
    \n \n Create poll\n \n Write a 1-question poll to share\n \n
    \n \n {\n setShouldRedirect(true);\n setRedirectUrl('/createwizard/new-survey/survey');\n }}\n className=\"sm-home__cards sm-home__survey\"\n >\n
    \n \n
    \n \n Create survey\n \n \n Write a survey to share\n \n \n
    \n \n {\n setShouldRedirect(true);\n setRedirectUrl('/createwizard/templates');\n }}\n className=\"sm-home__cards sm-home__template\"\n >\n
    \n \n
    \n \n Start from template\n \n \n Start from an expertly written poll or survey template\n \n \n
    \n \n {\n setShouldRedirect(true);\n setRedirectUrl('/createwizard/new-survey/quiz');\n }}\n className=\"sm-home__cards sm-home__template\"\n >\n
    \n \n
    \n \n Create Quiz\n \n \n Add scores to questions and grade responses\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n );\n};\n\nexport default Home;\n","import React, { useState, useEffect, useCallback, useContext } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { Card, Container, Grid, Row, Col, Button, Typography } from '@sm/wds-react';\n\nimport { IconArrowLeft } from '@sm/wds-icons';\n\nimport { sendMessage } from '../NewSurvey/helper';\n\nimport { CreateWizardConfigContext } from '../../CreateWizardConfigContext';\n\nimport './templates.scss';\n\nconst Templates = () => {\n const { createWizardConfig, setCreateWizardConfig } = useContext(CreateWizardConfigContext);\n const { templatesList, style, redirectToEditorPage, parentDomain } = createWizardConfig;\n const [shouldRedirectBackToHome, setShouldRedirectBackToHome] = useState(false);\n const [showCreatePollCard, setShowCreatePollCard] = useState(createWizardConfig.showCreatePollCard);\n\n const { badgeColor, secondaryButtonTextColor, badgeTextTransform, containerBackgroundColor } = style;\n\n useEffect(() => {\n setShowCreatePollCard(createWizardConfig.showCreatePollCard);\n }, [createWizardConfig]);\n\n useEffect(() => {\n const root = document.documentElement;\n root.style.setProperty('--customBadgeColor', badgeColor);\n root.style.setProperty('--customSecondaryTextColor', secondaryButtonTextColor);\n root.style.setProperty('--customBadgeTextTransform', badgeTextTransform);\n root.style.setProperty('--customContainerBackgroundColor', containerBackgroundColor);\n }, [badgeColor, secondaryButtonTextColor, badgeTextTransform, containerBackgroundColor]);\n\n const handleBackToHome = actionType => {\n if (redirectToEditorPage) {\n const dataToSend = {\n action: actionType,\n };\n sendMessage(`${JSON.stringify(dataToSend)}`, parentDomain);\n setShouldRedirectBackToHome(true);\n setCreateWizardConfig({\n ...createWizardConfig,\n redirectTo: '',\n redirectToEditorPage: false,\n readOnlySurvey: false,\n survey: {},\n });\n } else {\n setShouldRedirectBackToHome(true);\n }\n };\n\n const handleTemplateSelect = template => {\n const dataToSend = {\n action: 'template_selected',\n details: template,\n };\n sendMessage(`${JSON.stringify(dataToSend)}`, parentDomain);\n };\n\n const onMessageReceivedFromIframe = useCallback(\n event => {\n if (\n event.data &&\n event.data.message &&\n typeof event.data.message !== 'object' &&\n event.data.source === 'create-wizard-app'\n ) {\n const data = JSON.parse(event.data.message);\n setCreateWizardConfig(data);\n setShouldRedirectBackToHome(true);\n }\n },\n [setCreateWizardConfig]\n );\n\n useEffect(() => {\n window.addEventListener('message', onMessageReceivedFromIframe);\n return () => window.removeEventListener('message', onMessageReceivedFromIframe);\n }, [onMessageReceivedFromIframe]);\n\n return (\n <>\n
    \n \n \n \n \n handleBackToHome('back')}\n >\n \n Back\n \n \n \n Start from template\n \n
    \n\n \n \n \n \n {templatesList &&\n templatesList.map(template => {\n return (\n handleTemplateSelect(template)}\n className=\"sm-templates__cards\"\n >\n \n \n {template.type}\n \n \n {template.title}\n \n );\n })}\n \n \n \n \n \n );\n};\n\nexport default Templates;\n","export const DEFAULT_STYLES = {\n buttonColor: '#00BF6F',\n buttonTextColor: '#FFFFFF',\n secondaryButtonColor: '#FFFFFF',\n secondaryButtonTextColor: '#00BF6F',\n badgeColor: '#00BF6F',\n badgeTextColor: '#FFFFFF',\n iconColor: '#00BF6F',\n containerBackgroundColor: '#FFFFFF',\n inputBackgroundColor: '#f3f2f1',\n inputBorderColor: 'transparent',\n inputBorderHoverColor: 'transparent',\n inputBorderFocusColor: 'transparent',\n};\n\nexport const DEFAULT_CREATE_WIZARD_CONFIG = {\n redirectToEditorPage: false,\n redirectTo: 'poll',\n readOnlySurvey: false,\n showCreatePollCard: true,\n showCreateSurveyCard: false,\n showStartFromTemplateCard: false,\n showCreateQuizCard: false,\n primaryCtaCopy: 'Create poll',\n secondaryCtaCopy: '',\n showPrimaryCtaIcon: false,\n parentDomain: '*',\n questionConfig: [\n {\n forTypes: ['single_choice', 'dropdown'],\n maxOptions: 10,\n customConfigs: [\n {\n id: 'comments',\n label: 'Allow comments',\n },\n ],\n hideRequired: true,\n },\n ],\n style: DEFAULT_STYLES,\n survey: {},\n templatesList: [],\n};\n\nexport default DEFAULT_CREATE_WIZARD_CONFIG;\n","import React, { useEffect, useCallback, useState } from 'react';\nimport { Route, withRouter, Switch } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { CreateWizardConfigContextProvider } from './CreateWizardConfigContext';\n\nimport { HomePage, NewSurveyPage, TemplatesPage } from './pages';\nimport { DEFAULT_STYLES, DEFAULT_CREATE_WIZARD_CONFIG } from './DefaultCreateWizardConfig';\n\nconst CreateWizardRouter = ({ history }) => {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n };\n }, [history]);\n\n const [createWizardConfig, setCreateWizardConfig] = useState(DEFAULT_CREATE_WIZARD_CONFIG);\n\n const updateCreateWizardConfig = newConfigs => {\n const configs = { ...newConfigs, style: { ...DEFAULT_STYLES, ...newConfigs.style } };\n setCreateWizardConfig(configs);\n };\n\n const onMessageReceivedFromIframe = useCallback(event => {\n if (\n event.data &&\n event.data.message &&\n typeof event.data.message !== 'object' &&\n event.data.source === 'create-wizard-app'\n ) {\n const data = JSON.parse(event.data.message);\n localStorage.setItem('createExperiencePayload', event.data.message);\n updateCreateWizardConfig(data);\n }\n }, []);\n\n useEffect(() => {\n window.addEventListener('message', onMessageReceivedFromIframe);\n return () => window.removeEventListener('message', onMessageReceivedFromIframe);\n }, [onMessageReceivedFromIframe]);\n\n useEffect(() => {\n const payload = localStorage.getItem('createExperiencePayload');\n if (payload) {\n const data = JSON.parse(payload);\n updateCreateWizardConfig(data);\n }\n }, []);\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nCreateWizardRouter.propTypes = {\n history: PropTypes.shape({\n listen: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default withRouter(CreateWizardRouter);\n","/**\n * Change provided set of anchors from relative to static for pages not hosted on www\n * @returns {canonicalUrl} string\n */\nexport default function makeLinksStatic(links, domain, subdomain) {\n links.forEach(link => {\n const linkHref = link.getAttribute('href');\n if (!linkHref.startsWith('http')) {\n if (link.pathname !== '/') {\n const linkElement = link;\n let targetSubdomain = 'www';\n if (subdomain.endsWith('eu')) {\n targetSubdomain = 'eu';\n }\n linkElement.href = `https://${targetSubdomain}.${domain}.com${linkHref}`;\n }\n }\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Typography } from '@wds/typography';\n\nimport { Logo } from '@sm/webassets';\n\nconst DeveloperWebNavHeaderDesktop = ({ navItems, domain, subdomain, url }) => {\n return (\n
    \n \n \n \n \n \n \n Developer\n \n \n \n \n \n \n \n \n Sign in\n \n \n \n \n Sign up\n \n \n \n \n
    \n );\n};\n\nDeveloperWebNavHeaderDesktop.propTypes = {\n navItems: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.string.isRequired,\n text: PropTypes.node.isRequired,\n class: PropTypes.string,\n })\n ).isRequired,\n domain: PropTypes.string.isRequired,\n subdomain: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default withRouter(DeveloperWebNavHeaderDesktop);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { Menu } from '@wds/menu';\nimport { IconMenu, IconLogoGoldie } from '@sm/wds-icons';\n\nconst DeveloperWebNavHeaderMobile = ({ navItems, domain, subdomain, url }) => {\n return (\n
    \n \n \n \n
    \n \n \n \n \n
    \n }\n >\n {navItems.map(nav => (\n // The query params need to be preserved between urls (needed for ut_source)\n \n {nav.text}\n \n ))}\n \n Sign In\n \n \n Sign Up\n \n \n
    \n
    \n );\n};\n\nDeveloperWebNavHeaderMobile.propTypes = {\n navItems: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.string.isRequired,\n text: PropTypes.node.isRequired,\n class: PropTypes.string,\n })\n ).isRequired,\n domain: PropTypes.string.isRequired,\n subdomain: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default withRouter(DeveloperWebNavHeaderMobile);\n","import React, { useContext } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { getClientEnvironmentDetails } from '@sm/utils';\n\nimport { DesktopScreen, MobileTabletScreen, StaticContext } from '@sm/webassets';\n\nimport DeveloperWebNavHeaderDesktop from './DeveloperWebNavHeaderDesktop';\nimport DeveloperWebNavHeaderMobile from './DeveloperWebNavHeaderMobile';\n\nimport './developer-web-nav-header.scss';\n\nconst navigationItems = location => {\n const items = [\n { target: '/', text: 'Home' },\n { target: '/apps/', text: 'My Apps' },\n { target: '/api/v3/', text: 'Docs' },\n { target: '/tools/api_status/', text: 'Status' },\n { target: '/faq/', text: 'FAQ' },\n ];\n\n items.forEach(item => {\n const headerItem = item;\n headerItem.class = 'sm-dev-web-nav-header__nav__button';\n if (location.pathname === item.target) {\n headerItem.class = `${item.class} sm-dev-web-nav-header__nav__button--active`;\n }\n });\n\n return items;\n};\n\nconst DeveloperWebNavHeader = () => {\n const {\n environment: { domain, subdomain },\n userAgent,\n url,\n } = useContext(StaticContext);\n const { isDesktop } = getClientEnvironmentDetails(userAgent);\n const location = useLocation();\n\n let redirectUrl = url;\n if (subdomain === 'developer' || subdomain === 'developer.eu') {\n if (window && window.location) {\n redirectUrl = window.location.href;\n }\n }\n\n let targetSubdomain = 'www';\n if (subdomain.endsWith('eu')) {\n targetSubdomain = 'eu';\n }\n\n return (\n <>\n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n \n );\n};\n\nexport default DeveloperWebNavHeader;\n","import { SMHeader, StaticContext } from '@sm/webassets';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { createUseStyles } from 'react-jss';\nimport makeLinksStatic from '~app/helpers/makeLinksStatic';\nimport DeveloperWebNavHeader from '../DeveloperWebNavHeader';\n\nconst portedPages = [\n '/',\n '/home/?ut_source=header',\n '/api/v3/',\n '/api/v3/?ut_source=header',\n '/faq/',\n '/faq/?ut_source=header',\n];\n\nconst useStyles = createUseStyles({\n headerPlaceholderSabeus: {\n height: '48px',\n width: '100%',\n background: '#00BF6F',\n },\n headerPlaceholderBlack: {\n height: '48px',\n width: '100%',\n background: '#404040',\n },\n});\n\nconst fixLinks = domain => {\n const header = document.getElementsByTagName('header')[0];\n if (header) {\n const headerLinks = [...header.getElementsByTagName('a')];\n headerLinks.forEach(headerLink => {\n const headerLinkHref = headerLink.getAttribute('href');\n if (!headerLinkHref.startsWith('http') && !headerLinkHref.startsWith('/developer')) {\n const headerLinkElement = headerLink;\n headerLinkElement.href = portedPages.includes(headerLinkHref)\n ? `/developer${headerLinkHref}`\n : `https://developer.${domain}.com${headerLinkHref}`;\n }\n });\n }\n};\n\nconst fixSubdomainLinks = domain => {\n const mobileButtons = document.querySelectorAll('header [class^=\"mobileNavBoxFull\"] > button');\n if (mobileButtons.length) {\n mobileButtons.forEach(mobileButton => {\n mobileButton.addEventListener('click', () => {\n setTimeout(() => {\n fixLinks(domain);\n });\n });\n });\n }\n};\n\nconst fixAccountLinks = (domain, subdomain) => {\n let tryAttachCount = 0;\n const attachAccountAction = setInterval(() => {\n const accountButton = document.querySelectorAll('header [class^=\"navBarBox\"] button');\n if (accountButton[0]) {\n clearInterval(attachAccountAction);\n accountButton[0].addEventListener('click', () => {\n setTimeout(() => {\n const menuItems = document.querySelectorAll('header [class^=\"navBarBox\"] [class^=\"wrenchList\"] a');\n if (menuItems) {\n makeLinksStatic([...menuItems], domain, subdomain);\n }\n });\n });\n tryAttachCount += 1;\n }\n if (tryAttachCount > 10) {\n clearInterval(attachAccountAction);\n }\n }, 100);\n};\n\nconst ModernHeader = () => {\n const {\n environment: { subdomain, domain },\n user,\n locale: { isEUDC },\n } = useContext(StaticContext);\n const { headerPlaceholderSabeus, headerPlaceholderBlack } = useStyles();\n\n const [postRenderHeader, setPostRenderHeader] = useState(false);\n\n useEffect(() => {\n setPostRenderHeader(true);\n }, []);\n\n useEffect(() => {\n // code for modifying header while testing on /developer path for mobile/tablet\n if (postRenderHeader) {\n if (subdomain !== 'developer' && subdomain !== 'developer.eu') {\n fixSubdomainLinks(domain);\n } else {\n fixAccountLinks(domain, subdomain);\n }\n }\n }, [domain, subdomain, postRenderHeader]);\n\n useEffect(() => {\n // code for modifying header while testing on /developer path\n if (subdomain !== 'developer' && subdomain !== 'developer.eu') {\n setTimeout(() => {\n fixLinks(domain);\n });\n }\n }, [domain, subdomain]);\n\n return (\n <>\n \n \n \n \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n \n );\n};\n\nexport default ModernHeader;\n","import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BasePage, StaticContext, Helmet } from '@sm/webassets';\nimport { Grid } from '@wds/grid';\n\nimport UCSModule from '../../components/UCSModule';\n\nimport getCanonicalUrlOrNoIndex from '~app/helpers/getCanonicalUrlOrNoIndex';\nimport makeLinksStatic from '~app/helpers/makeLinksStatic';\n\nimport './developer-web-base-page.scss';\nimport ModernHeader from '../components/ModernHeader';\n\nconst fixLanguagerDropdown = (domain, subdomain) => {\n const languageButtons = document.querySelectorAll('.sm-footer [class^=\"wrenchMenuContainer\"] button');\n languageButtons.forEach(languageButton => {\n languageButton.addEventListener('click', () => {\n setTimeout(() => {\n const languageMenuItems = document.querySelectorAll(\n '.sm-footer [class^=\"wrenchMenuContainer\"] [class^=\"wrenchList\"] a'\n );\n if (languageMenuItems) {\n makeLinksStatic([...languageMenuItems], domain, subdomain);\n }\n });\n });\n });\n};\n\nconst DeveloperWebBasePage = ({ id, title, header, footer, pageMetricsAttributes, children }) => {\n const {\n environment: { subdomain, domain, tld },\n user,\n url,\n } = useContext(StaticContext);\n const { noIndex, canonicalUrl } = getCanonicalUrlOrNoIndex(subdomain, domain, tld, url);\n\n const [postRenderFooter, setPostRenderFooter] = useState(false);\n\n useEffect(() => {\n if (postRenderFooter) {\n // make relative footer links static\n const staticFooter = document.getElementsByClassName('sm-footer')[0];\n if (staticFooter) {\n makeLinksStatic([...staticFooter.getElementsByTagName('a')], domain, subdomain);\n\n fixLanguagerDropdown(domain, subdomain);\n }\n }\n }, [postRenderFooter, domain, subdomain]);\n\n useEffect(() => {\n setPostRenderFooter(footer);\n }, [domain, footer]);\n\n return (\n \n \n {title}\n \n \n \n \n \n \n \n {header}\n \n } />\n \n
    \n \n {children}\n \n
    \n \n );\n};\n\nDeveloperWebBasePage.propTypes = {\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n footer: PropTypes.bool,\n header: PropTypes.node,\n children: PropTypes.node.isRequired,\n pageMetricsAttributes: PropTypes.shape({}),\n};\n\nDeveloperWebBasePage.defaultProps = {\n header: ,\n pageMetricsAttributes: null,\n footer: true,\n};\n\nexport default DeveloperWebBasePage;\n","import React, { useContext, useState, useEffect } from 'react';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Grid } from '@wds/grid';\nimport { Typography } from '@wds/typography';\nimport { StaticContext } from '@sm/webassets';\n\nimport { Query } from '@apollo/react-components';\nimport developerApplications from './home.graphql';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\n\nimport './home.scss';\n\nconst Home = () => {\n const {\n environment: { domain, subdomain },\n user,\n url,\n } = useContext(StaticContext);\n const [targetUrl, setTargetUrl] = useState(url);\n\n const developerEUSubdomain = 'developer.eu';\n const developerSubdomain = 'developer';\n\n const prependUrl = subdomain !== developerSubdomain && subdomain !== developerEUSubdomain ? '/developer' : '';\n const prependStatic =\n subdomain !== developerSubdomain && subdomain !== developerEUSubdomain ? `https://developer.${domain}.com` : '';\n\n let targetSubdomain = 'www';\n\n if (subdomain.endsWith('eu')) {\n targetSubdomain = 'eu';\n }\n\n useEffect(() => {\n if (subdomain === developerSubdomain || subdomain === developerEUSubdomain) {\n if (window && window.location) {\n setTargetUrl(window.location.href);\n }\n }\n }, [url, subdomain]);\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n });\n }, []);\n\n return (\n
    \n \n \n \n {({ loading, error, data }) => {\n return (\n <>\n 0 || error || loading}>\n
    \n \n \n \n Power your app with the SurveyMonkey API\n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n \n Learn\n \n \n \n Start by reading our documentation and decide whether you're building a public or\n private app.\n \n \n \n
    \n \n \n Develop\n \n \n \n As you're building, decide what scopes you'll need to request from users or ask\n for higher call limits.\n \n \n \n
    \n \n \n Deploy\n \n \n \n Once you're ready, deploy your app on the “Overview” page and track your user totals!\n \n \n \n
    \n \n \n
    \n \n \n \n Create with the SurveyMonkey API!\n \n \n \n \n Enable high-powered data collection\n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n Build a public app for the App Directory\n \n
      \n
    • \n \n An unlimited number of users can access the app\n \n
    • \n
    • \n \n Developer only needs a basic account to start building\n \n
    • \n
    • \n Apps must be approved\n
    • \n
    \n
    \n \n \n \n \n \n \n \n
    \n \n \n Build a private app for you and your Team\n \n
      \n
    • \n Developer purchases all accounts\n
    • \n
    • \n Developer needs an ENTERPRISE seat\n
    • \n
    • \n API limits apply\n
    • \n
    \n
    \n \n \n \n \n \n \n
    \n \n \n );\n }}\n \n \n \n
    \n \n \n \n Welcome to the SurveyMonkey API!\n \n \n \n \n Let's build together\n \n \n \n \n \n Get Started\n \n \n \n \n \n \n
    \n \n \n Customize\n \n \n \n Power your app with customer behavior data.\n \n \n \n
    \n \n \n Automate\n \n \n \n As your data starts rolling in, take action on your findings immediately.\n \n \n \n
    \n \n \n Engage\n \n \n \n Respond instantly to customer feedback.\n \n \n \n
    \n \n \n
    \n );\n};\n\nexport default Home;\n","import React, { useContext, useEffect, useRef } from 'react';\nimport { StaticContext } from '@sm/webassets';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport './docs.scss';\n\nconst Docs = () => {\n const {\n environment: { domain, subdomain, tld },\n } = useContext(StaticContext);\n const frameRef = useRef(null);\n\n const addEu = subdomain === 'developer.eu' ? 'eu.' : '';\n const comOrCa = tld === 'ca' ? 'ca' : 'com';\n\n useEffect(() => {\n // Listen to message from child window\n window.addEventListener(\n 'message',\n e => {\n if (e.origin !== `https://api.${addEu}${domain}.${comOrCa}`) {\n return;\n }\n const data = e[e.message ? 'message' : 'data'];\n if (data.anchor) {\n window.location.hash = data.anchor;\n }\n\n if (data.query_string && window.history.pushState) {\n const newurl = `${window.location.protocol}//${window.location.host}${window.location.pathname}${data.query_string}${window.location.hash}`;\n window.history.pushState({ path: newurl }, '', newurl);\n }\n },\n false\n );\n\n if (window.location.hash) {\n const anchor = window.location.hash;\n frameRef.current.src += anchor;\n }\n }, [domain, addEu, comOrCa]);\n\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default Docs;\n","import { StaticContext } from '@sm/webassets';\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router-dom';\n\nimport { Table } from '@wds/table';\nimport { Typography } from '@wds/typography';\n\nconst AppTable = ({ privateTable }) => {\n const {\n environment: { domain },\n user,\n } = useContext(StaticContext);\n const location = useLocation();\n\n const planLabel = () => {\n if (user.id === '1' || !user.user_data) {\n return (\n \n Sign In to View Plan\n \n );\n }\n if (user.user_data.features.private_apps) {\n return Your current plan;\n }\n\n return (\n \n ENTERPRISE\n \n );\n };\n\n const col1 = [\n Criteria,\n \n \n Eligible for the App Directory \n \n ,\n \n SurveyMonkey account needed by Developer\n ,\n \n Plan needed to utilize app functionality\n ,\n \n Who purchases user's SM accounts\n ,\n \n How many accounts can access the app\n ,\n \n API call limits*\n ,\n \n Requires approval before launching\n ,\n ];\n\n const col2 = [\n Public Apps,\n Yes,\n Any,\n SurveyMonkey account needs to be an enduser of the app,\n End User,\n Unlimited,\n Unlimited,\n Yes ,\n ];\n\n const col3 = [\n Private Apps,\n No,\n {planLabel()},\n {planLabel()},\n Developer,\n \n One SurveyMonkey account or one Team\n ,\n \n 500/day, more available (Contact sales)\n ,\n No,\n ];\n\n const firstCol = privateTable ? col3 : col2;\n const secondCol = privateTable ? col2 : col3;\n\n return (\n \n \n \n {col1[0]}\n {firstCol[0]}\n {secondCol[0]}\n \n \n \n \n \n {col1[1]}\n \n {firstCol[1]}\n {secondCol[1]}\n \n \n {col1[2]}\n {firstCol[2]}\n {secondCol[2]}\n \n \n {col1[3]}\n {firstCol[3]}\n {secondCol[3]}\n \n \n {col1[4]}\n {firstCol[4]}\n {secondCol[4]}\n \n \n {col1[5]}\n {firstCol[5]}\n {secondCol[5]}\n \n \n {col1[6]}\n {firstCol[6]}\n {secondCol[6]}\n \n \n {col1[7]}\n {firstCol[7]}\n {secondCol[7]}\n \n \n
    \n );\n};\n\nAppTable.propTypes = {\n privateTable: PropTypes.bool,\n};\n\nAppTable.defaultProps = {\n privateTable: false,\n};\n\nexport default AppTable;\n","import React, { useContext, useEffect } from 'react';\n\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\n\nimport { StaticContext } from '@sm/webassets';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\n\nimport AppTable from '../../components/AppTable';\n\nimport './faq.scss';\n\nconst FAQ = () => {\n const {\n environment: { domain, subdomain },\n } = useContext(StaticContext);\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n });\n }, []);\n\n // For testing only, when this goes live to the devekoper subdomain this will not be required\n const prependUrl = subdomain !== 'developer' && subdomain !== 'developer.eu' ? '/developer' : '';\n\n return (\n
    \n \n
    \n \n \n \n \n Frequently Asked Questions\n \n \n \n \n Building an app is hard work. We'll help answer any questions that you may have.\n \n \n \n\n \n \n \n What's the difference between building an app for the{' '}\n App Directory and building an app for my team?\n \n \n \n \n Based on your needs, most developers either fall into one bucket or the other. You'll find a\n quick rundown of the differences below.\n \n \n \n \n If you're looking for more info on either camp, visit{' '}\n Creating a Public App or{' '}\n Creating a Private App.\n \n \n\n \n \n \n\n \n \n *Please see our API Developer Terms for more guidelines when\n building with our API.\n \n \n \n\n \n \n How do I get support or suggest a feature for the SurveyMonkey API?\n \n \n \n Reach out to our team for help or feedback by{' '}\n visiting our contact page.\n \n \n \n\n \n \n Where can I read about the SurveyMonkey API scopes?\n \n \n \n Public app developers should understand which scopes they'll need. You can read more about scopes\n in our API Documentation.\n \n \n \n\n \n \n How do I download the actual text responses from my survey?\n \n \n \n Visit our SurveyMonkey API documentation to read about this and the other\n things you can achieve with our endpoints!\n \n \n \n\n \n \n How do I purchase more API calls?\n \n \n \n If you're building a Private app and think you need a higher API limit you should reach out to\n our sales team.\n \n \n \n\n \n \n How do I revoke an access token?\n \n \n \n You can refresh your app's credential in the settings for your app in the{' '}\n developer portal. This will refresh your secret, revoking all access to your app.\n \n \n \n\n \n \n Something missing? Reach out through our help center\n \n \n \n
    \n
    \n
    \n );\n};\n\nexport default FAQ;\n","import React from 'react';\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport './tou.scss';\n\nconst renderSection1 = () => {\n return (\n \n \n \n 1. INTRODUCTION\n \n \n \n \n Thanks for your interest in using SurveyMonkey’s API for products and services branded as\n “SurveyMonkey” (“Services”).{' '}\n \n \n \n \n These Terms are a living document and may be changed by SurveyMonkey at any time. SurveyMonkey will post all\n changes online, and may notify you by email if SurveyMonkey regard the changes as significant and material.\n \n \n \n );\n};\n\nconst renderSection2 = () => {\n return (\n \n \n 2. USING THE API\n \n \n \n 2.1. Use Subject to Terms. Your use of the API and any API Content (including use of the API\n through a third party application that uses the API) is subject to compliance with these Terms. SurveyMonkey\n grants you a non-exclusive, non-transferable license (without the right to sublicense) to: (a) use the API\n solely as necessary to develop, test, operate and support your App using certain API Content accessed via the\n API; and (b) distribute or allow access to your integration of the API within your App to end users of your\n App. You may not sell, rent or redistribute access to the API or any API Content to any third party without\n SurveyMonkey’s prior written approval.\n \n \n \n \n 2.2. General Terms. If you use the Services as a user, such use remains subject to the\n SurveyMonkey Terms of Use for Services\n purchased on SurveyMonkey’s websites or the SurveyMonkey Governing Services Agreement (or similar\n governing service agreement) for Services purchased through SurveyMonkey’s enterprise sales team{' '}\n (“General Terms”). Your App’s interactions with a SurveyMonkey account must\n also comply with and be consistent with the General Terms.\n \n \n \n );\n};\n\nconst renderSection3 = () => {\n return (\n \n \n 3. DEVELOPER ACCOUNTS\n \n \n \n 3.1. Developer Account. Usage of the API is limited to owners of a SurveyMonkey account\n (“Developer Account”). After creation of your Developer Account, you may create\n applications, for which you will receive access credentials (“\n Access Credentials”). Keep your Access Credentials secure and confidential, as you are\n solely responsible for any activities occurring under your Developer Account.\n \n \n \n \n 3.2. Restrictions. You may open multiple Developer Accounts, but SurveyMonkey may close your\n accounts if SurveyMonkey regards that you have opened an excessive number of them. SurveyMonkey may also close\n your accounts if SurveyMonkey believes that you have created multiple accounts to bypass API call limits or\n restrictions. If your Developer Account is suspended, you must not attempt to circumvent such suspension by\n registering for a new Developer Account. You may not open a Developer Account if you are a competitor of\n SurveyMonkey.\n \n \n \n \n 3.3. Access Tokens and Credentials. If SurveyMonkey issues an Access Token for your App, you\n may only use that Access Token with that specific App, and cannot use that Access Token with any other\n application. SurveyMonkey may also issue credentials for your App. You may not sell, trade, or give your\n Access Token or credentials to any third party without SurveyMonkey’s prior written consent. You will\n take reasonable measures to safeguard Access Tokens and credentials from unauthorized use or access.\n \n \n \n );\n};\n\nconst renderSection4 = () => {\n return (\n \n \n 4. PRINCIPLES OF USER RESPECT\n \n \n \n SurveyMonkey’s goal is to ensure a great experience for SurveyMonkey’s Users. SurveyMonkey treat\n SurveyMonkey’s Users and their data with respect, so SurveyMonkey expects SurveyMonkey’s API\n developers to do the same.\n \n \n \n \n 4.1 Respect User Data. Your App must use User data in a way that the User expects. Avoid\n surprising Users by clearly describing what you are doing with their data. Obtain their permission before\n performing actions on their data, such as:\n \n \n
      \n
    • \n editing survey data\n
    • \n
    • \n disclosing survey data to third parties\n
    • \n
    • \n using survey data in a way not expressly instructed\n
    • \n
    • \n editing survey questions or survey settings\n
    • \n
    • \n distributing surveys\n
    • \n
    • \n closing surveys\n
    • \n
    • \n altering account settings\n
    • \n
    • \n taking an account action on a User’s behalf\n
    • \n
    \n \n \n 4.2. Don’t Mislead Users. Your App must not be presented in a way\n which misleads Users. For example, your App must not:\n \n \n
      \n
    • \n be publicized in a way which is misleading to Users\n
    • \n
    • \n use logos or trademarks in a manner that misleads or confuses\n
    • \n
    • \n impersonate a third party without their authorization\n
    • \n
    • \n \n link to spam or malware sites or use shortened URLs to mask destinations in a misleading way\n \n
    • \n
    \n \n \n 4.3. Don’t Encourage Bad Behavior. Your App must not induce your Users\n to act in an inappropriate or illegal manner. Specifically, you must not:\n \n \n
      \n
    • \n \n encourage or cause Users to violate any law, terms of use or privacy policy (such as, for example, causing\n or facilitating the User to violate SurveyMonkey’s{' '}\n Acceptable Uses Policy through\n abusive use of email collectors)\n \n
    • \n
    • \n facilitate or encourage the infringement of intellectual property\n
    • \n
    • \n \n facilitate or encourage the publishing of a third party’s private or confidential information\n \n
    • \n
    • \n \n encourage collection of information SurveyMonkey doesn’t allow users to collect (like social security\n numbers, credit card numbers and passwords)\n \n
    • \n
    • \n \n encourage publishing of links to illegal or malicious content (including age restricted content to minors)\n \n
    • \n
    \n
    \n );\n};\n\nconst renderSection5 = () => {\n return (\n \n \n 5. APP REQUIREMENTS\n \n \n \n 5.1. Privacy Content. Your App must include a privacy policy and/or privacy\n notices which describe in reasonably adequate detail how you handle any User data and personally identifiable\n information that may be collected from Users via the API. You must abide by your own privacy notices and\n policies.\n \n \n \n \n 5.2. Disconnection. You will make it easy for Users to disconnect or disassociate their\n account from your App, and you will not hide or obscure such functionality.\n \n \n \n );\n};\n\nconst renderSection6 = () => {\n return (\n \n \n 6. APP RESTRICTIONS\n \n \n \n 6.1. Category Restrictions. The following types of Apps are not permitted to use the API:\n \n \n
      \n
    • \n \n Apps which are not related to facilitating surveys (e.g. you may not use SurveyMonkey as an email service\n provider to send out non-survey content).\n \n
    • \n
    • \n \n Apps which attempt to replicate core functionality of the Services, such as an App which white-labels the\n Services.\n \n
    • \n
    • \n \n Apps which facilitate the exporting of API Content for importation into a SurveyMonkey’s\n competitor’s product or service.\n \n
    • \n
    \n \n \n 6.2. Presentation Restrictions. Your App cannot replicate, frame or mirror the SurveyMonkey\n websites or their design.\n \n \n \n \n 6.3. Functionality Restrictions. Your App may not:\n \n \n
      \n
    • \n Crawl or datamine the API Content without each relevant User or Users’ consent\n
    • \n
    • \n \n Use the API to monitor the availability, performance or functionality of any our Services, or for other\n benchmarking or competitive purposes\n \n
    • \n
    • \n \n Alter, remove, replace or mask any aspect of a SurveyMonkey survey without SurveyMonkey’s prior\n written consent\n \n
    • \n
    • \n \n Be used in a way which lets Users circumvent any restrictions or limitations placed on their account due to\n the type of SurveyMonkey subscription plan they have (for example, the limitation on the number of survey\n responses that can be viewed by a User on a free subscription plan).\n \n
    • \n
    \n
    \n );\n};\n\nconst renderSection7 = () => {\n return (\n \n \n 7. TECHNICAL RESTRICTIONS\n \n \n \n 7.1. API Call Limits. Monentive may impose limits on the number of API calls in any given\n period that your App is permitted to make. Public Apps and Private Apps may be subject to different\n limitations. If SurveyMonkey imposes such limits, SurveyMonkey may describe them on SurveyMonkey’s\n website. If you exceed the quantity of API calls you had purchased as specified in your order form,\n SurveyMonkey may charge additional fees for the excess. Unused API calls will not roll over to the next\n period.\n \n \n \n \n 7.2. Excessive Use. Abusive or excessive use of the API (as determined by SurveyMonkey) may\n result in the temporary suspension or termination of your access to the API. If your use of the API is likely\n to generate a volume of API calls materially in excess of what an average API developer would generate, or\n above the limits for your particular App, please contact SurveyMonkey first and SurveyMonkey may be able to\n agree to an arrangement in relation to your proposed use case.\n \n \n \n \n 7.3 Other Technical Limitations. Other technical restrictions imposed on Apps are:\n \n \n
      \n
    • \n \n If you provide an application programming interface that uses the API to return the data of Users, you may\n only return Users’ usernames or unique identification numbers. You must pull all other User data by\n using the API.\n \n
    • \n
    • \n \n You may not use the API to aggregate, cache or store any place or geographic location information contained\n in API Content.\n \n
    • \n
    \n
    \n );\n};\n\nconst renderSection8 = () => {\n return (\n \n \n 8. LEGAL RESTRICTIONS\n \n \n \n 8.1. Stay on the Right Side of the Law. Your App and your App’s use of the API must\n comply with all applicable laws, regulations and rules. Your App must not engage in (and must not facilitate)\n spamming, phishing or linking to illegal content. It is your responsibility to be familiar with, and abide by,\n the laws that apply to you.\n \n \n \n );\n};\n\nconst renderSection9 = () => {\n return (\n \n \n 9. SURVEYMONKEY BRAND ASSETS\n \n \n \n 9.1. Use of SurveyMonkey Brand Assets. SurveyMonkey’s name, logo, and other trademarks\n (“Marks”) are valuable brand assets of SurveyMonkey. Your use of SurveyMonkey’s name in\n conjunction with your Apps must be in accordance with the rules in this section. SurveyMonkey may publish\n brand use or trademark use guidelines from time to time on SurveyMonkey’s website, including as part of\n SurveyMonkey’s Brand and Trademark Use Policy\n , and use of SurveyMonkey’s Marks will be subject to all such guidelines. All goodwill arising out of or\n related to the use of the Marks by you shall inure to the benefit of SurveyMonkey.\n \n \n \n \n 9.2. No Endorsement. You may not use SurveyMonkey Marks in a way that creates a sense of\n affiliation, endorsement, or sponsorship by SurveyMonkey, unless you have SurveyMonkey’s express written\n permission to do so. Your Apps must be clearly labeled as your own, and not SurveyMonkey’s. While you\n may use SurveyMonkey’s name to indicate that your App integrates with or is compatible with the\n Services, or that SurveyMonkey was the source of the API Content, you may not label your product as a\n SurveyMonkey product or use the Marks as part of your own logo. You may not use SurveyMonkey’s Marks as\n part of the name of your company or of any App or other product or service created by you.\n \n \n \n \n 9.3. Proprietary Notices. You may not remove, modify or obfuscate any proprietary notices or\n marks on the API or in any API Content you obtain.\n \n \n \n );\n};\n\nconst renderSection10 = () => {\n return (\n \n \n 10. FEES\n \n \n \n 10.1. Fees. Access to the API for a basic level of API calls is currently provided at no\n additional fee apart from any applicable fees for your SurveyMonkey account. Contact Sales at SurveyMonkey for\n higher API call limit tiers.\n \n \n \n );\n};\n\nconst renderSection11 = () => {\n return (\n \n \n 11. MORE LEGAL TERMS\n \n \n \n 11.1. Limited License to Your Content. You grant SurveyMonkey a worldwide, royalty free\n license to use, reproduce, distribute, modify, adapt, create derivative works, make publicly available, and\n otherwise exploit your copyrights, trademarks, patents, publicity, moral, database, and/or other intellectual\n property rights in and to your App, but only for the limited purposes of promoting and marketing SurveyMonkey,\n SurveyMonkey’s API, and any API content in any media. This license also extends to any trusted third\n parties SurveyMonkey works with.\n \n \n \n \n 11.2. Integration Directory. SurveyMonkey may include and promote your application in\n SurveyMonkey’s integration directory of applications for SurveyMonkey users that have been developed by\n developers. Notwithstanding your application appearing in the integration directory, you agree that\n SurveyMonkey may for any reason demote or remove it from the integration directory.\n \n \n \n \n 11.3. Suspension and Termination. SurveyMonkey will endeavor to warn you if there is an issue\n with your App’s compliance with these Terms, or a compliance issue with the manner in which you are\n accessing the API, so that you can attempt to remedy the problem. Notwithstanding the foregoing, if\n SurveyMonkey believes that you have violated these terms or are accessing or using the API in any way that\n SurveyMonkey regards as abusive, or that causes liability or detriment to SurveyMonkey, SurveyMonkey may\n immediately, and without notice, suspend or terminate your access to the API, your Developer Account, and any\n API Content. SurveyMonkey may terminate these Terms for any reason, with or without notice to the email\n address associated with your Developer Account. You may terminate these Terms for any reason by ceasing to\n access the API, ceasing to use any API Content, and canceling your Developer Account.\n \n \n \n \n 11.4. Consequences of Termination. Upon termination of these Terms, you will cease accessing\n the API and will delete all API Content. Sections 3.2 (Restrictions), 9 (SurveyMonkey Brand Assets), 11.4\n (Consequences of Termination), and 11.7 (IP Ownership) to 11.14 (Terms for Non-U.S. Developers) will survive\n the termination of these Terms.\n \n \n \n \n 11.5. Cooperation. You agree to assist SurveyMonkey, at its request, to verify compliance\n with these Terms by providing SurveyMonkey with information about your App, including providing SurveyMonkey\n with access to it and/or other materials related to your use of the API.\n \n \n \n \n 11.6. Modifications and Support. SurveyMonkey may provide you with support for the API in\n SurveyMonkey’s sole discretion. SurveyMonkey may modify the API at any time without notice or liability\n to you. If you continue to access the API after such modifications, such act will be deemed your acceptance of\n the modifications.\n \n \n \n \n 11.7. IP Ownership. You acknowledge that SurveyMonkey and SurveyMonkey’s Users retain\n all worldwide rights, title and interest (including intellectual property rights) in and to the API Content.\n You acknowledge that SurveyMonkey or its licensors retain all rights, title and interest (including\n intellectual property rights) in and to the API and the Marks (and any derivative works or enhancements). You\n shall not do anything inconsistent with such ownership. Rights not expressly granted by these Terms are\n reserved by SurveyMonkey.\n \n \n \n \n Subject to the foregoing, you retain all worldwide rights, title and interest (including intellectual property\n rights) in and to your App. If you provide SurveyMonkey with any feedback or comments concerning the API or\n API Content, you agree that SurveyMonkey may use, reproduce, license, distribute and exploit in any other way,\n such feedback or comments.\n \n \n \n \n 11.8. Similar or Competitive Products or Services. You acknowledge that SurveyMonkey may\n independently develop, or have developed for it by other parties, products or services that are similar to or\n otherwise compete with your App, and nothing in these Terms will be construed against that.\n \n \n \n \n 11.9. Disclaimer of Warranties. ACCESS TO THE API AND THE API CONTENT IS PROVIDED “AS\n IS” WITH NO WARRANTY, EXPRESS OR IMPLIED, OF ANY KIND AND SURVEYMONKEY EXPRESSLY DISCLAIMS ALL\n WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AVAILABILITY,\n SECURITY, TITLE, AND NON-INFRINGEMENT. SOME API FEATURES MAY BE EXPERIMENTAL AND UNTESTED. SURVEYMONKEY DOES\n NOT REPRESENT OR WARRANT THAT THE API IS FREE OF INACCURACIES, ERRORS, BUGS, OR INTERRUPTIONS, OR ARE\n RELIABLE, ACCURATE, COMPLETE, OR OTHERWISE VALID. YOUR USE OF THE API AND API CONTENT IS AT YOUR RISK AND YOU\n WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE THAT RESULTS FROM USE OF THE API, INCLUDING FOR ANY DAMAGE TO YOUR\n COMPUTER SYSTEMS OR LOSS OF DATA. WHILE SURVEYMONKEY STRIVES TO MAKE THE API AVAILABLE WITHOUT INTERRUPTION,\n SURVEYMONKEY DOES NOT GUARANTEE THAT THE API WILL ALWAYS BE AVAILABLE AND DOES NOT PROVIDE ANY GUARANTEES AS\n TO SERVICE LEVELS.\n \n \n \n \n 11.10. Indemnity. You agree to indemnify and hold harmless SurveyMonkey, its affiliates, and\n their directors, officers, employees and agents, from and against any third party claim, losses, damages,\n suits, judgments, liability, and litigation costs (including reasonable attorneys’ fees) arising from or\n related to your use of the API or the API Content or your violation of these Terms.\n \n \n \n \n 11.11. Limitation of Liability. YOU AGREE THAT SURVEYMONKEY SHALL NOT BE LIABLE FOR ANY\n INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO, DAMAGES FOR\n LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF SURVEYMONKEY HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGES), RESULTING FROM YOUR USE OF THE API OR THIRD PARTY PRODUCTS THAT ACCESS API\n CONTENT. IN ANY EVENT, SURVEYMONKEY’S AGGREGATE, CUMULATIVE LIABILITY TO YOU ARISING IN CONNECTION WITH\n THESE TERMS WILL NOT EXCEED US$100.00.\n \n \n \n \n 11.12. General. If any provision of these Terms is determined to be invalid or unenforceable\n by a court, such provision shall be deemed severable and the remainder of these Terms shall remain in full\n force and effect. The failure by SurveyMonkey to enforce any right or provision of these Terms shall not\n constitute a waiver of that provision or of any other provision of these Terms. You agree that you, and not\n SurveyMonkey, is responsible for determining which laws may apply to your use of the API and the API Content\n and assessing your obligations under such laws. These Terms comprise the entire agreement between you and\n SurveyMonkey with respect to its subject matter and supersede any prior or contemporaneous understandings,\n representations and other communications (written or oral) between you and SurveyMonkey.\n \n \n \n \n 11.13. Terms for U.S. Developers. If you are located in the United States, these Terms shall\n be governed by the laws of the State of California, without reference to its conflicts of law rules, and the\n parties hereby submit to the exclusive jurisdiction and venue of the state and federal courts located in that\n State.\n \n \n \n \n 11.14. Terms for Non-U.S. Developers. If you are located outside of the United States, these\n Terms shall be governed by the laws of Ireland, and the parties hereby submit to the exclusive jurisdiction of\n the courts of Ireland in relation to any claim arising under or in connection with these Terms which cannot be\n solved through a mutually agreed conciliation procedure.\n \n \n \n );\n};\n\nconst renderSection12 = () => {\n return (\n \n \n 12. DEFINITIONS\n \n \n \n “Access Token” means a token that permits your App to access or modify data in a\n User’s account.\n \n \n \n \n “API” means the application programming interface and associated code, tools,\n documentation and related material that SurveyMonkey provides to you in relation to our Services.\n \n \n \n \n “API Content” means any content made available to you through use of the API.\n \n \n \n \n “App” or “Application” means a software application,\n website, product or service that you create or offer.\n \n \n \n \n “Access Credentials” means the security keys, secrets, tokens, passwords,\n usernames and other identifiers and credentials used to access the API.\n \n \n \n \n “Developer Account” means the account for which you are required to register in\n order to obtain the Access Credentials and access to the API.\n \n \n \n \n “SurveyMonkey” means SurveyMonkey Inc. if you are located in the United States,\n SurveyMonkey Brasil Internet Ltda. if you are located inside of Brazil, and by SurveyMonkey Europe UC if you\n are located elsewhere.\n \n \n \n \n “Terms” means these SurveyMonkey API Developer Terms\n \n \n \n \n “User” means a SurveyMonkey user or a user of your Application that uses the API.\n \n \n \n );\n};\n\nconst TOU = () => {\n return (\n
    \n \n
    \n \n \n \n SurveyMonkey API Developer Terms\n \n \n VERSION DATE: November 1, 2023\n \n LAST UPDATED: November 1, 2023\n \n\n {renderSection1()}\n\n {renderSection2()}\n\n {renderSection3()}\n\n {renderSection4()}\n\n {renderSection5()}\n\n {renderSection6()}\n\n {renderSection7()}\n\n {renderSection8()}\n\n {renderSection9()}\n\n {renderSection10()}\n\n {renderSection11()}\n\n {renderSection12()}\n\n \n \n Changelog\n \n \n \n Jul 22, 2013 updates to Feb 14, 2013 version:\n \n \n
      \n
    • \n Added provisions relating to Access Tokens and secret keys.\n
    • \n
    \n \n \n Jan 1, 2015 updates to Jul 22, 2013 version:\n \n \n
      \n
    • \n \n \n Changed contracting entity from our old Luxembourg entity (SurveyMonkey Europe Sarl) to our Irish\n entity (SurveyMonkey Europe).\n \n \n
    • \n
    \n \n \n Nov 29, 2016 updates to Jan 1, 2015 version:\n \n \n
      \n
    • \n \n \n Changed contracting entity from our old Irish entity (SurveyMonkey Europe) to our new entity\n (SurveyMonkey Europe UC).\n \n \n
    • \n
    \n \n \n Jan 10, 2017 updates to Nov 29, 2016 version:\n \n \n
      \n
    • \n \n \n Clarified that SurveyMonkey may charge for API calls that reach certain limits and these fees and\n quantities will be specified in the developer’s order form. Also clarified that unused API\n calls do not roll over to the next period.\n \n \n
    • \n
    • \n \n \n Added a license grant to developer's intellectual property rights for the limited purpose of\n SurveyMonkey's promotional activities.\n \n \n
    • \n
    • \n \n Clarified when a developer's App may appear in our integration directory.\n \n
    • \n
    \n \n \n Mar 28, 2017 updates to Jan 10, 2017 version:\n \n \n
      \n
    • \n Revise brand and trademark use guidelines.\n
    • \n
    \n \n \n May 31, 2017 updates to March 28, 2017 version:\n \n \n
      \n
    • \n \n Clarified SurveyMonkey may independently develop similar or competitive products or services.\n \n
    • \n
    \n \n \n August 10, 2021 updates to May 31, 2017 version:\n \n \n
      \n
    • \n \n Clarified that effective as of July 1, 2021, SurveyMonkey Inc. became Momentive Inc., SurveyMonkey\n Europe UC became Momentive Europe UC, and SurveyMonkey Brasil Internet Eireli became Momentive\n Brasil Internet Eireli.\n \n
    • \n
    \n \n \n November 1, 2023 updates to August 10, 2021 version:\n \n \n
      \n
    • \n \n Effective as of August 1, 2023, Momentive Inc. became SurveyMonkey Inc., Momentive Europe UC became\n SurveyMonkey Europe UC, and Momentive Brasil Internet Eireli became SurveyMonkey Brasil Internet\n Ltda.\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default TOU;\n","import React, { useContext, useEffect } from 'react';\nimport { IconFolderUser, IconChartSegment, IconEmail, IconCheckCircle } from '@sm/wds-icons';\n\nimport { Box } from '@wds/box';\nimport { Grid } from '@wds/grid';\nimport { List } from '@wds/list';\nimport { Typography } from '@wds/typography';\n\nimport { StaticContext } from '@sm/webassets';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\n\nimport AppTable from '../../components/AppTable';\n\nimport './build-a-private-app.scss';\n\nconst renderAppChecklist = () => {\n return (\n \n \n \n Here's a sample guide for creating an end-to-end customer feedback app using the SurveyMonkey API:{' '}\n \n \n \n \n After authorizing into a SurveyMonkey account, the user chooses from a list of existing surveys, a\n SurveyMonkey template, or creates a new survey.{' '}\n \n \n \n \n If the survey results need to correspond to an existing object (e.g. product, customer, support case), the\n developer can automatically add a custom variable to the survey.{' '}\n \n \n \n \n An app can then grab a weblink and send a survey through either their own email tool, or use\n SurveyMonkey's email system.\n \n \n \n \n Response data is stored in SurveyMonkey, and automatically returned via the API to the partner in real time\n (using webhooks).\n \n \n \n );\n};\n\nconst renderAPIChecklist = () => {\n return (\n \n \n \n \n }\n >\n \n Use webhooks instead of polling. Besides providing added stability, webhooks reduce the\n number of calls needed to be made on the client side by only calling the API when there's new activity\n (rather than on a regular basis).\n \n \n \n \n \n }\n >\n \n Caching on the client side. We see lots of apps continually requesting details for the same\n resource from the API. If the resource isn't going to change, cache it, and use webhooks to signal a\n refresh, if available.\n \n \n \n \n \n }\n >\n \n Queue up your changes. Bundle incremental updates to resources together, if they don't\n need to be sent over immediately.\n \n \n \n \n \n }\n >\n \n Use the Bulk API endpoints. Where applicable and available (survey details, responses,\n recipients, contacts), try making bulk calls.\n \n \n \n );\n};\n\nconst BuildAPrivateApp = () => {\n const {\n environment: { subdomain },\n } = useContext(StaticContext);\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n });\n }, []);\n\n // For testing only, when this goes live to the devekoper subdomain this will not be required\n const prependUrl = subdomain !== 'developer' && subdomain !== 'developer.eu' ? '/developer' : '';\n\n return (\n
    \n \n
    \n \n \n \n \n Creating a Private App\n \n \n \n \n Apps built for private use can take many forms.\n
    \n Some examples may include:\n
    \n
    \n
    \n \n \n \n
    \n \n
    \n \n \n An organization purchases multiple seats for employees and creates an app for internal use\n \n \n
    \n \n
    \n \n
    \n \n \n A developer automates sending surveys and/or exporting survey data for an SM account or Team\n \n \n
    \n \n
    \n \n
    \n \n \n A team creates functionality to send thank you emails when their survey is completed\n \n \n
    \n
    \n
    \n\n \n \n \n Private apps have different guidelines than apps publicly available in the App Directory. Here are a\n few key differences:\n \n \n\n \n\n \n \n Think your app is better suited to be Public? Check out{' '}\n Creating a Public App.\n \n \n \n \n *Please see our API Developer Terms for more guidelines when building with our\n API.\n \n \n\n \n \n Building a Private App\n \n \n\n {renderAppChecklist()}\n\n \n \n Tips for reducing your API call usage\n \n \n\n {renderAPIChecklist()}\n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default BuildAPrivateApp;\n","import React, { useContext, useEffect } from 'react';\nimport { IconLogoGoldie, IconLogoOutlook, IconListChecks, IconCheckCircle } from '@sm/wds-icons';\n\nimport { Box } from '@wds/box';\nimport { Grid } from '@wds/grid';\nimport { List } from '@wds/list';\nimport { Typography } from '@wds/typography';\n\nimport { StaticContext } from '@sm/webassets';\n\nimport DeveloperWebBasePage from '../DeveloperWebBasePage';\n\nimport waitForUsabilla from '~app/helpers/waitForUsabilla';\n\nimport AppTable from '../../components/AppTable';\n\nimport './build-a-public-app.scss';\n\nconst renderAppChecklist = () => {\n return (\n \n \n \n \n }\n >\n \n Your app should have unique value and be attracting new users regularly.{' '}\n \n \n \n \n \n }\n >\n \n Your app should NOT replicate functionality already offered by SurveyMonkey's survey tools.{' '}\n \n \n \n \n \n }\n >\n \n Your app's name should NOT be a generic term (i.e. "Analytics"), include versioning (i.e.\n "App V3.0"), and/or include the word "SurveyMonkey".{' '}\n \n \n \n \n \n }\n >\n \n Your app should have at least five OAuth sign ins in the first three months.{' '}\n \n \n \n \n \n }\n >\n \n You must state if users will need a free or paid account from your service to use your app.{' '}\n \n \n \n \n \n }\n >\n Your team must provide easily-accessible app support.\n \n \n \n \n }\n >\n \n All communication should be over HTTPS using a valid SSL certificate (we value security!)\n \n \n \n );\n};\n\nconst renderListingChecklist = () => {\n return (\n \n \n \n Listings help users gain a better understanding of your app's core functionality and scope requirements.\n Therefore, they should be written honestly and truthfully.{' '}\n \n \n \n \n Visit the listings tab in the My Apps view to create an app listing and submit it for approval.{' '}\n \n \n \n \n Your first app listing should be in English, but we encourage you to make additional app listings in other\n languages.{' '}\n \n \n \n );\n};\n\nconst BuildAPublicApp = () => {\n const {\n environment: { subdomain },\n } = useContext(StaticContext);\n\n useEffect(() => {\n waitForUsabilla(() => {\n window.usabilla_live('show');\n });\n }, []);\n\n const prependUrl = subdomain !== 'developer' && subdomain !== 'developer.eu' ? '/developer' : '';\n\n return (\n
    \n \n
    \n \n \n \n \n Creating a Public App\n \n \n \n \n Public apps can be listed on SurveyMonkey's App Directory after meeting certain criteria and\n receiving approval.\n
    \n Some examples may include:\n
    \n
    \n
    \n \n \n \n
    \n \n
    \n \n \n A service that offers complementary functionality to SurveyMonkey\n \n \n
    \n \n
    \n \n
    \n \n \n An integration of SurveyMonkey functionality into a pre-existing tool\n \n \n
    \n \n
    \n \n
    \n \n \n A popular app that extends SurveyMonkey's functionality\n \n \n
    \n
    \n
    \n\n \n \n \n Public apps have different guidelines than apps built for private use. Here are a few key differences:\n \n \n\n \n\n \n \n Think your app is better suited to be Private? Check out{' '}\n Creating a Private App.\n \n \n \n \n *Please see our API Developer Terms for more guidelines when building with our\n API.\n \n \n\n \n \n {' '}\n App Approval Checklist{' '}\n \n \n \n \n SurveyMonkey has strict standards for publishing public apps. Meet the criteria below and we'll\n help promote your app in our App Directory.\n \n \n\n \n \n Basic Requirements\n \n \n\n {renderAppChecklist()}\n\n \n \n Creating a Listing\n \n \n\n {renderListingChecklist()}\n\n \n NOTES:\n \n \n \n SurveyMonkey retains the right to reject an app based on criteria not listed above. Approval of your\n app by SurveyMonkey does not guarantee its compliance with the criteria above.\n \n \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default BuildAPublicApp;\n","import React, { useEffect, useContext } from 'react';\nimport { Route, withRouter, Switch } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { FourOhFourError, StaticContext } from '@sm/webassets';\n\nimport { HomePage, DocsPage, FAQPage, TOUPage, BuildAPrivateAppPage, BuildAPublicAppPage } from './pages';\n\nconst DeveloperWebRouter = ({ history }) => {\n const {\n environment: { domain },\n } = useContext(StaticContext);\n\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n };\n }, [history]);\n\n // Hide usabilla for all pages - each individual page will set usabilla configs and show if enabled\n // Note the load of usabilla hides the button so this code is included if usabilla has already been loaded\n if (typeof window !== 'undefined' && window && window.usabilla_live) {\n window.usabilla_live('virtualPageView');\n window.usabilla_live('hide');\n }\n\n return (\n \n \n \n \n \n \n \n \n\n {\n window.location.href = `https://www.${domain}.com/user/account`;\n return null;\n }}\n />\n {\n window.location.href = `https://www.${domain}.com/user/account/select?ep=https://developer.${domain}.com`;\n return null;\n }}\n />\n {\n window.location.href = `https://www.${domain}.com/team/libraries`;\n return null;\n }}\n />\n {\n window.location.href = `https://www.${domain}.com/addressbook`;\n return null;\n }}\n />\n {\n window.location.href = `https://www.${domain}.com/user/sign-out?ep=https://developer.${domain}.com`;\n return null;\n }}\n />\n\n \n \n );\n};\n\nDeveloperWebRouter.propTypes = {\n history: PropTypes.shape({\n listen: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default withRouter(DeveloperWebRouter);\n","import React, { useContext } from 'react';\nimport { Route, Switch, useLocation } from 'react-router-dom';\nimport { StaticContext } from '@sm/webassets';\nimport LinkBlocked from './pages/LinkBlocked';\nimport Pricing from './pages/Pricing';\nimport AppsDirectory from './pages/AppsDirectory';\nimport MRXSolutions from './pages/MRX/MRXSolutions';\nimport CreateWizard from './pages/CreateWizard';\nimport DeveloperWeb from './pages/DeveloperWeb';\n\nconst App = () => {\n const {\n environment: { subdomain },\n } = useContext(StaticContext);\n\n // From the developer subdomain prepend /developer to the path\n const location = useLocation();\n if (subdomain === 'developer' || subdomain === 'developer.eu') {\n if (!location.pathname.startsWith('/developer')) {\n location.pathname = `/developer${location.pathname}`;\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport { BrowserRouter } from 'react-router-dom';\nimport React from 'react';\nimport { render, hydrate } from 'react-dom';\nimport { ApolloProvider } from 'react-apollo';\nimport createBrowserApolloClient from '@sm/apollo-clients/dist/browser';\nimport { L10nProvider } from '@sm/intl';\nimport { WrenchTheme } from '@wds/styles';\nimport merge from 'lodash.merge';\n\nimport './entry.scss';\n\nimport { getClientEnvironmentDetails } from '@sm/utils';\nimport {\n ErrorBoundary,\n FiveHundredErrorPage,\n HelmetProvider,\n StaticProvider,\n GlobalThemeProvider,\n initializeClientErrorHandler,\n} from '@sm/webassets';\n\nimport getGraphQLFragmentMatcher from './helpers/fragmentMatcher';\n\nimport ContentWebApp from './App';\nimport { getPricingTheme } from './styles/theme';\n\nconst target = document.getElementById('reactApp');\n\nconst allClientStaticData = getClientEnvironmentDetails().isBrowser ? window.SM.__LOAD_PAYLOAD_CACHE__ || {} : {};\n\n/**\n * Our servers inject the payload with the `user` details and, rightfully so, leave out the authentication attribute.\n * Hence, the client/webs need to calculate whether the user is authenticated or not by looking at the userId in the webs.\n * Now, we don't want every app/page to do this; hence, we abstract the calculation out.\n * In addition, we do not want the attribute readily available in the `window` object; hence, we\n * calculate it here and directly add it to the context.\n * Yes, the user can still access it (debugging JS/React Dev Tools) but this way, it's not readily exposed.\n *\n * With this in place, the webs can retrieve the authentication status via the context.\n */\nallClientStaticData.user = allClientStaticData.user || {};\nallClientStaticData.user.isAuthenticated = allClientStaticData.user.id && allClientStaticData.user.id !== '1';\nconst {\n environment,\n pageRequestId,\n 'client-config': { appName, appVersion, graphQLUri },\n gql: { gqlCache = {} } = {},\n} = allClientStaticData;\n\n// Setup error handler to be available across the web\ninitializeClientErrorHandler();\n\nlet localeMessages = null;\n\nconst apolloClient = createBrowserApolloClient({\n uri: graphQLUri,\n cacheHydration: gqlCache,\n pageRequestId,\n fragmentMatcherFn: getGraphQLFragmentMatcher,\n linkOptions: {\n credentials: 'include',\n batchInterval: 30,\n },\n metadata: { appName, appVersion },\n availableLoggedOutPaths: [],\n});\n\n/**\n * Merge any user defined theme objects\n * See http://storybook.jungle.tech/wrench/?path=/story/intro-theming--page\n */\nconst globalTheme = merge({}, WrenchTheme, getPricingTheme());\n\nconst rendered = messages => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\n/**\n * For SSR apps we need to render the CSR version with messages. If we don't do that,\n * - SSR would send localized content\n * - CSR wouldn't have the messages; hence, it'd render `null`\n * - CSR would then fetch the messages via `ComponentDidMount`\n * - CSR would eventually show the same content\n *\n * Instead, let's fetch the messages before hand so that the initial CSR paint\n * is the same as the SSR paint.\n *\n * Note - This has no performance impact as L10NProvider was waiting for messages before\n * displaying anything anyways.\n */\nconst renderAppWithLocaleMessages = () => {\n return new Promise(resolve => {\n if (environment.slLanguageLocale === 'en-US') {\n resolve(localeMessages);\n } else {\n Promise.all([\n import(/* webpackChunkName: \"i18n/[request]\" */ `../locales/translated/${environment.slLanguageLocale}`),\n import(\n /* webpackChunkName: \"i18n/webassets/[request]\" */ `@sm/webassets/dist/locales/translated/${environment.slLanguageLocale}`\n ),\n ]).then(([appMessages, webassetsMessages]) => {\n resolve({\n ...appMessages,\n ...webassetsMessages,\n });\n });\n }\n });\n};\n\nrenderAppWithLocaleMessages()\n .then(messages => {\n localeMessages = messages;\n })\n .finally(() => {\n (target.innerHTML.trim().length ? hydrate : render)(rendered(localeMessages), document.getElementById('reactApp'));\n });\n","import { IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';\nimport introspectionQueryResultData from './fragmentTypes';\n\n/**\n * Get the GraphQL fragment matcher\n * @memberof module:@sm/utils\n * @returns {IntrospectionFragmentMatcher} IntrospectionFragmentMatcher\n */\nexport default function getGraphQLFragmentMatcher() {\n return new IntrospectionFragmentMatcher({\n introspectionQueryResultData,\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"userDropDownQuery\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkedIdentities\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":94}};\n doc.loc.source = {\"body\":\"query userDropDownQuery {\\n user {\\n id\\n linkedIdentities {\\n totalCount\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"userDropDownQuery\"] = oneQuery(doc, \"userDropDownQuery\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"categoriesQuery\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fetchAppCategories\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentId\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":143}};\n doc.loc.source = {\"body\":\"query categoriesQuery {\\n fetchAppCategories {\\n data {\\n id\\n title\\n description\\n key\\n parentId\\n }\\n }\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"categoriesQuery\"] = oneQuery(doc, \"categoriesQuery\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingCategories\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingCategories\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":155}};\n doc.loc.source = {\"body\":\"query publishedApplicationListingCategories($language: ID!) {\\n publishedApplicationListingCategories(language: $language) {\\n id\\n key\\n name\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"publishedApplicationListingCategories\"] = oneQuery(doc, \"publishedApplicationListingCategories\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"uninstallApp\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UninstallAppInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uninstallApp\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":100}};\n doc.loc.source = {\"body\":\"mutation uninstallApp($input: UninstallAppInput!) {\\n uninstallApp(input: $input) {\\n appId\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"uninstallApp\"] = oneQuery(doc, \"uninstallApp\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingsByKeyword\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingsByKeyword\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":323}};\n doc.loc.source = {\"body\":\"query publishedApplicationListingsByKeyword($subdomain: String, $tld: String, $language: ID!, $keyword: String!) {\\n publishedApplicationListingsByKeyword(subdomain: $subdomain, tld: $tld, language: $language, keyword: $keyword) {\\n items {\\n id\\n name\\n logo\\n links {\\n detail\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"publishedApplicationListingsByKeyword\"] = oneQuery(doc, \"publishedApplicationListingsByKeyword\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"previewApplicationListingDetails\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previewApplicationListingDetails\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullDescription\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publisher\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"googleAnalyticsTrackingId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportEmail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportPhoneNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"requirements\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pricingUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"screenshots\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"privacyPolicyUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"termsOfUseUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blogUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"youtubeUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"websiteUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"upgradeRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"optionalUpgrade\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scopes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":689}};\n doc.loc.source = {\"body\":\"query previewApplicationListingDetails($language: ID!, $appId: ID!) {\\n previewApplicationListingDetails(language: $language, appId: $appId) {\\n id\\n isIntegration\\n name\\n tagline\\n fullDescription\\n logo\\n installed\\n details {\\n publisher\\n featureList\\n googleAnalyticsTrackingId\\n supportEmail\\n supportPhoneNumber\\n supportUrl\\n requirements {\\n label\\n pricingUrl\\n type\\n description\\n }\\n screenshots\\n privacyPolicyUrl\\n termsOfUseUrl\\n blogUrl\\n youtubeUrl\\n websiteUrl\\n installUrl\\n upgradeRequired\\n optionalUpgrade\\n scopes\\n link\\n linkType\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"previewApplicationListingDetails\"] = oneQuery(doc, \"previewApplicationListingDetails\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingDetails\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingDetails\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"appId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullDescription\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publisher\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"googleAnalyticsTrackingId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportEmail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportPhoneNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"requirements\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pricingUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"screenshots\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"privacyPolicyUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"termsOfUseUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blogUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"youtubeUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"websiteUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"upgradeRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"optionalUpgrade\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scopes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":693}};\n doc.loc.source = {\"body\":\"query publishedApplicationListingDetails($language: ID!, $appId: ID!) {\\n publishedApplicationListingDetails(language: $language, appId: $appId) {\\n id\\n isIntegration\\n name\\n tagline\\n fullDescription\\n logo\\n installed\\n details {\\n publisher\\n featureList\\n googleAnalyticsTrackingId\\n supportEmail\\n supportPhoneNumber\\n supportUrl\\n requirements {\\n label\\n pricingUrl\\n type\\n description\\n }\\n screenshots\\n privacyPolicyUrl\\n termsOfUseUrl\\n blogUrl\\n youtubeUrl\\n websiteUrl\\n installUrl\\n upgradeRequired\\n optionalUpgrade\\n scopes\\n link\\n linkType\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"publishedApplicationListingDetails\"] = oneQuery(doc, \"publishedApplicationListingDetails\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"appsGridPublishedApplicationListings\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PublishedApplicationListingFilter\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":501}};\n doc.loc.source = {\"body\":\"query appsGridPublishedApplicationListings(\\n $subdomain: String\\n $tld: String\\n $language: ID!\\n $filter: PublishedApplicationListingFilter\\n $page: Int\\n $pageSize: Int\\n) {\\n publishedApplicationListings(\\n subdomain: $subdomain\\n tld: $tld\\n language: $language\\n filter: $filter\\n page: $page\\n pageSize: $pageSize\\n ) {\\n items {\\n id\\n name\\n logo\\n isIntegration\\n links {\\n detail\\n }\\n categories {\\n id\\n name\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"appsGridPublishedApplicationListings\"] = oneQuery(doc, \"appsGridPublishedApplicationListings\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"appsAppListings\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"defaultValue\":{\"kind\":\"IntValue\",\"value\":\"1\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"defaultValue\":{\"kind\":\"IntValue\",\"value\":\"50\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"defaultValue\":{\"kind\":\"ListValue\",\"values\":[]},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortBy\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortOrder\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fetchPublishedApplicationListings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sortBy\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortBy\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sortOrder\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortOrder\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"encryptedAppId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"perPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":471}};\n doc.loc.source = {\"body\":\"query appsAppListings(\\n $page: Int = 1\\n $pageSize: Int = 50\\n $categories: [String!] = []\\n $sortBy: String\\n $sortOrder: String\\n $search: String\\n) {\\n fetchPublishedApplicationListings(\\n page: $page\\n pageSize: $pageSize\\n categories: $categories\\n search: $search\\n sortBy: $sortBy\\n sortOrder: $sortOrder\\n ) {\\n data {\\n encryptedAppId\\n name\\n tagline\\n image\\n link\\n categories \\n }\\n perPage\\n page\\n total\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"appsAppListings\"] = oneQuery(doc, \"appsAppListings\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingCategory\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"categoryKey\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingCategory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"categoryKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"categoryKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}},{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListings\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PublishedApplicationListingFilter\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1020}};\n doc.loc.source = {\"body\":\"query publishedApplicationListingCategory(\\n $subdomain: String\\n $tld: String\\n $language: ID!\\n $categoryKey: ID!\\n $page: Int!\\n $pageSize: Int!\\n) {\\n publishedApplicationListingCategory(\\n subdomain: $subdomain\\n tld: $tld\\n language: $language\\n categoryKey: $categoryKey\\n ) {\\n id\\n name\\n publishedApplicationListings(subdomain: $subdomain, tld: $tld, page: $page, pageSize: $pageSize) {\\n items {\\n id\\n name\\n tagline\\n logo\\n isIntegration\\n links {\\n detail\\n }\\n }\\n }\\n }\\n}\\n\\nquery publishedApplicationListings(\\n $subdomain: String\\n $tld: String\\n $language: ID!\\n $filter: PublishedApplicationListingFilter!\\n $page: Int\\n $pageSize: Int\\n) {\\n publishedApplicationListings(\\n subdomain: $subdomain\\n tld: $tld\\n language: $language\\n filter: $filter\\n page: $page\\n pageSize: $pageSize\\n ) {\\n items {\\n id\\n name\\n tagline\\n logo\\n isIntegration\\n links {\\n detail\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"publishedApplicationListingCategory\"] = oneQuery(doc, \"publishedApplicationListingCategory\");\n \n module.exports[\"publishedApplicationListings\"] = oneQuery(doc, \"publishedApplicationListings\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"installedApplications\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installedApplications\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"launch\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":285}};\n doc.loc.source = {\"body\":\"query installedApplications($language: ID!) {\\n installedApplications(language: $language) {\\n items {\\n id\\n isIntegration\\n name\\n tagline\\n logo\\n links {\\n detail\\n launch\\n }\\n categories {\\n id\\n name\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"installedApplications\"] = oneQuery(doc, \"installedApplications\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"searchPublishedApplicationListingsByKeyword\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publishedApplicationListingsByKeyword\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"tld\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"language\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"keyword\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIntegration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detail\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":363}};\n doc.loc.source = {\"body\":\"query searchPublishedApplicationListingsByKeyword($subdomain: String, $tld: String, $language: ID!, $keyword: String!) {\\n publishedApplicationListingsByKeyword(subdomain: $subdomain, tld: $tld, language: $language, keyword: $keyword) {\\n items {\\n id\\n name\\n tagline\\n logo\\n isIntegration\\n links {\\n detail\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"searchPublishedApplicationListingsByKeyword\"] = oneQuery(doc, \"searchPublishedApplicationListingsByKeyword\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"developerAppListingsCount\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"developerApplications\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":81}};\n doc.loc.source = {\"body\":\"query developerAppListingsCount {\\n developerApplications {\\n totalCount\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"developerAppListingsCount\"] = oneQuery(doc, \"developerAppListingsCount\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"modules\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"modules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tagline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subtype\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cost\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currency\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"links\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"marketingPage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preferences\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasPurchasedModule\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":338}};\n doc.loc.source = {\"body\":\"query modules {\\n modules {\\n items {\\n id\\n title\\n tagline\\n description\\n image\\n type\\n subtype\\n price {\\n cost\\n locale\\n currency\\n }\\n links {\\n marketingPage\\n }\\n }\\n }\\n}\\n\\nquery user {\\n user {\\n id\\n preferences {\\n hasPurchasedModule\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"modules\"] = oneQuery(doc, \"modules\");\n \n module.exports[\"user\"] = oneQuery(doc, \"user\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAccountInfo\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"features\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"smsCollector\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isTableauEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOfflineModeEnterpriseEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isResponseManagerEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSalesForceEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPowerBIEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isHipaaEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":285}};\n doc.loc.source = {\"body\":\"query UserAccountInfo {\\n user {\\n id\\n email\\n firstName\\n lastName\\n features { \\n smsCollector\\n isTableauEnabled\\n isOfflineModeEnterpriseEnabled\\n isResponseManagerEnabled\\n isSalesForceEnabled\\n isPowerBIEnabled\\n isHipaaEnabled\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UserAccountInfo\"] = oneQuery(doc, \"UserAccountInfo\");\n \n","module.exports = jsdom;"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","__schema","types","kind","name","possibleTypes","COPY","defineMessages","LINK_BLOCKED_MAIN_MESSAGE","defaultMessage","description","LINK_BLOCKED_PAGE_TITLE","LINK_BLOCKED_SIGN_UP_BLURB","LINK_BLOCKED_SIGN_UP","LINK_BLOCKED_HOME","LINK_BLOCKED_TERMS_OF_USE","LinkBlocked","React","BasePage","color","includeHeader","includeFooter","pageId","legacyWeb","Helmet","T","content","className","href","generateMetricsAttribute","data","actionType","actionFlow","LogoWithText","Typography","variant","desc","component","Button","displayName","win","window","undefined","payloadCache","_win$SM","SM","__LOAD_PAYLOAD_CACHE__","defaultContextValue","experiments","priceExperiment","hasAssignment","experimentName","treatmentName","featureExperiment","uiExperiment","PricingExperimentContext","createContext","PricingExperimentProvider","children","Provider","value","usePricingExperiments","useContext","initialPricingExperience","pricingExperience","PackageDataContext","PackageDataProvider","usePricingExperience","GROW2529_ACTIONS","PACKAGE_ACTIONS","_objectSpread","packageReducer","state","action","type","payload","ACTIONS","allPackages","displayPackages","packagesToDisplayState","packagesToDisplay","_state$displayPackage","replacementPackage","find","pkg","Number","replacedWith","newPackages","packageToBeReplaced","MAIN_HEADING","message","project","PROJECT_NAME","DETAILS_HEADING","EDUCATIONAL_HEADING","EDUCATIONAL_SUBHEADING","VIEW_PRICING","TEAM_PLANS","INDIVIDUAL_PLANS","ENTERPRISE","BACK_TO_SUMMARY","EXPAND_ALL","COLLAPSE_ALL","BASIC","STANDARD_MONTHLY","STANDARD_ANNUAL","STARTER_MONTHLY","STARTER_ANNUAL","ADVANTAGE_MONTHLY","ADVANTAGE_ANNUAL","PREMIER_MONTHLY","PREMIER_ANNUAL","TEAM_ADVANTAGE","TEAM_PREMIER","ENT_PLATINUM","FLEX","FORMS","PLAN_FEATURES","Sources","Packages","PackageIds","Basic","StandardMonthly","StandardAnnual","StarterMonthly","StarterAnnual","AdvantageMonthly","AdvantageAnnual","PremierMonthly","PremierAnnual","TeamAdvantage","TeamPremier","Enterprise","Flex","FormsMonthly","FormsAnnual","ComparePlanIds","LanguageCodes","SkuTypes","PackageDisplayNames","grow2529State","toggleChecked","Grow2529Reducer","newState","filter","push","packageState","combinedStates","packages","grow2529","PricingStateContext","dispatch","PricingStateProvider","_useCombinedReducers","useCombinedReducers","useReducer","_useCombinedReducers2","_slicedToArray","useMemo","usePricingState","HelmetWithChildren","_ref","rest","_objectWithoutProperties","_excluded","ORDER","languages","freeze","langCode","order","None","Last","de","ru","Skipped","es","First","pt","nl","fr","it","da","sv","ja","ko","zh","tr","no","fi","LINKS","lang","Seo","canonicalPath","_useContext","StaticContext","domain","environment","url","path","hrefLangs","getLinks","language","links","SeoHeadTags","HrefLangsTags","rel","key","hrefLang","pageTitle","pageDescription","pageKeywords","PackageType","PACKAGE_PRICE_TYPE","EXTERNAL_SCRIPTS","MONTHLY_PACKAGES","INDIVIDUAL_PACKAGES","INDIVIDUAL_PACKAGES_WITH_STARTER","INDIVIDUAL_PACKAGES_WITH_FORMS","INDIVIDUAL_PACKAGES_WITH_FORMS_REVERSED","INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL","INDIVIDUAL_PACKAGES_WITH_FORMS_PARTIAL_REVERSED","EDUCATIONAL_PACKAGES","TEAMS_PACKAGES","STRIPE_ELIGIBLE_PACKAGES","GUAC_COUNTRY_CODES","STARTER_ENABLED_COUNTRIES","USTerritoryCountryCodes","GBCountryCodes","COMPARISON_PACKAGES","ROUTE_PACKAGE_MAP","Individual","Teams","Educational","createUseStyles","Main","maxWidth","margin","Layout","useScript","urls","scriptElements","useRef","useEffect","current","existingScriptElement","document","querySelector","script","createElement","src","async","setAttribute","body","appendChild","_scriptElements$curre","forEach","scriptElement","removeChild","routerLocation","useLocation","useMainStyles","sticky","SEO","pathname","PAGE_NAME_MAP","pricing","UT_SOURCE_MAP","useTrackingDetails","_useLocation","search","utSource","URLSearchParams","get","pageName","replace","trim","pageUtSource","useStarterEnabled","_useState","useState","_useState2","isStarterEnabled","setIsStarterEnabled","_useContext$user","user","packageID","package","isAuthenticated","subscribedAt","billingCountry","convertedPackageID","parseInt","isQualifiedBasedOnAuthAndCountry","includes","isBrowser","AMPLITUDE_PAGE_EVENTS","pageView","selectedPlans","experimentEvent","AMPLITUDE_SELECTED_PACKAGE_MAP","getCookieValue","cname","cookieValue","decodedCookies","decodeURIComponent","cookie","split","c","cSub","startsWith","substring","length","generateCTAMetricsAttribute","packageId","packageName","_AMPLITUDE_SELECTED_P","USER_EVENTS","amplitudeEvent","selectedPackageId","selectedPackageName","toLowerCase","source","PRICINGWEB","EXPERIMENT_IDENTIFIERS","GROW_2197","treatment","ENTERPRISE_FEATURES_GP69","GROW_2529_FORMS","treatment1","treatment2","GROW_2629_FORMS_V2","GROW_2427","GROW_2763","getSkuCostByType","skuCosts","skuType","sku","getCoreCostFromSkus","CoreSeat","calculateSavingsPercent","skuCostOriginal","skuCostDiscounted","retVal","costDifference","cost","Math","floor","formatCostInSkuCurrency","skuCost","minimumFractionDigits","_skuCost$currency","FormattedNumber","formatStyle","currency","currencyDisplay","formatCostInLocaleCurrency","formatMonthlyCostInLocaleCurrency","monthlyCostInDollars","getDiscountedSkuCost","discountInfo","tempSkuCost","discountPercentage","convertFeatureSetToMap","featureSet","reduce","acc","feature","getPackageSetBasedOnPath","packageType","isForms","_ROUTE_PACKAGE_MAP$pa","getPackagesBasedOnQueryStringIds","NULL_PACKAGE","PackagesContext","userPackage","showEduDiscount","comparePlans","overageCost","getPackageById","PackagesProvider","_usePricingExperience","_usePricingState","_usePricingState$stat","packagesForExperience","setPackagesForExperience","_useState3","_useState4","packageIdToPackageMap","setPackageIdToPackageMap","updatedPackageMap","updatedPackages","_pkg$comparisonSkuCos","newPackage","comparisonSkuCost","useCallback","teamPremier","TEAM_PREMIER_ANNUAL","ResponseOverage","displayedPackages","hookApi","usePackages","withPageHandler","WrappedComponent","props","_useParams$canonicalP","useParams","_useTrackingDetails","logPricingPageLoad","setTimeout","MetricsTracker","upgradeTriggerSource","isROWStarterAnnualEnabled","error","Array","isArray","FiveHundredErrorPage","Boolean","SELECT","SIGN_UP","YOUR_PLAN","CONTACT_US","useCta","pricingPackage","_usePackages","isEnabled","setIsEnabled","isUserPackage","setIsUserPackage","_useState5","_useState6","ctaUrl","setCtaUrl","_useState7","_useState8","ctaLabel","setCtaLabel","isUpgradeable","details","tier","packageIsUserPackage","useStripeCheckout","isStripeEligible","newCtaUrl","utSource2","encryptedEduParam","encryptedCtaParam","SIZE_OPTIONS","convertToObject","a","v","default","sm","WrenchTheme","md","lg","xl","xs","none","lowerBPMediaQuery","size","overrideSize","DISPLAY_SIZE_OPTIONS","LG_MEDIA_QUERY","MD_MEDIA_QUERY","SM_MEDIA_QUERY","SM_MOBILE_MEDIA_QUERY","XS_MEDIA_QUERY","XL_MEDIA_QUERY","pricingPalette","packageTheme","spacing","CTAMargin","marginTop","CTA","extend","display","padding","borderRadius","flex","backgroundColor","_packageTheme$package","primary","border","_packageTheme$package2","noCTA","justifyContent","background","colors","black","PackageCta","isSummaryPage","_useStyles","useStyles","_useCta","disabled","PackageByline","byline","align","ALWAYS_FREE","PER_MONTH","PER_USER_PER_MONTH","BILLED_ANNUALLY","PER_MONTH_ANNUALLY","BR_BILLED_ANNUALLY","priceUnit","highlighted","PriceLabel","fontSize","fontWeight","medium","whiteSpace","textDecoration","light","stone","lineHeight","Price","marginRight","SwissPriceUnit","bodySm","packagePriceVariantMap","SUMMARY","DETAIL","COMPARISON","packagePriceComponentMap","PackagePrice","formattedPrice","packagePriceType","costUnit","_usePackagePriceStyle","usePackagePriceStyles","unitClass","endsWith","sabaeus","midnight","link","arctic","concord","raspberry","bengal","bumblebee","charcoal","slate","flint","pebble","canvas","white","navy","dijon","packageColors","advantageAnnual","advantageMonthly","basic","enterprise","premierAnnual","starterMonthly","premierMonthly","starterAnnual","standardMonthly","standardAnnual","teamAdvantage","forms","pricingElevation","zero","minusOne","plusOne","RibbonStyle","position","right","top","zIndex","overflow","width","height","left","borderTopLeftRadius","borderBottomRightRadius","bottom","textAlign","transform","boxShadow","Ribbon","useRibbonStyles","Header","marginBottom","minHeight","flexDirection","alignItems","BILLED_MONTHLY","TEAMS_BILLED_ANNUALLY","BR_TEAMS_BILLED_ANNUALLY","ENT_PLATINUM_BYLINE","usePriceDisplay","countryCode","isBasic","isBrazil","CountryCodes","isMonthlyPackage","isTeamsPackage","isGrow2529FormsMonthlyPackage","isGrow2529Forms","_useMemo","coreSeatSku","getCoreCostReplicaForBasicPackage","_packages$find","referencePackageSkuCost","packageData","additionalSeatSku","AdditionalSeat","_useMemo2","coreSeatCost","additionalSeatCost","discountedCoreSeatCost","discountedAdditionalSeatCost","monthlyFormattedCost","annualFormattedCost","monthlyFormattedDiscountedCost","annualFormattedDiscountedCost","annualTeamsFormattedCost","annualTeamsFormattedDiscountedCost","headerCost","headerDiscountedCost","headerUnit","headerByline","packageCopyKey","toUpperCase","copyKey","countryOverrideCopyKey","price","BEST_VALUE","SAVE_PERCENTAGE","PackageHeader","comparisonSkuCosts","usePackageHeaderStyles","comparisonPackageName","_usePriceDisplay","comparisonCoreSeatCost","comparisonFormattedPrice","comparisonFormattedMonthlyPrice","comparisonPackage","packageObj","comparisonSeatCost","savingsPercentage","getRibbon","_packageDefs$packageN","ribbonText","packageDefs","percentage","HIGHLIGHT","defaultColor","PricingPackageContainer","marginLeft","gridRow","PricingPackage","transition","Highlighted","paddingTop","PlanFeaturesLink","Highlight","Features","listStyle","FeatureItem","wordBreak","paddingRight","alignSelf","FeatureSummary","paddingLeft","TooltipContainer","elevation","Tooltip","space","textTransform","locale","TooltipArrow","TooltipLeft","TooltipRight","FeatureTooltip","tooltipHeading","tooltip","isLastPackage","slLanguageLocale","_useTooltipStyles","useTooltipStyles","Box","dangerouslySetInnerHTML","__html","sanitizeString","ADD_ATTR","contributor_seats","response_count","support","skip_logic","statistical_significance","grow_2529_create_limit","grow_2529_unlimited_questions","grow_2529_question_types","grow_2529_analysis_filter","FeatureSet","features","_useFeatureSetStyles","useFeatureSetStyles","isMobile","getClientEnvironmentDetails","handleFeatureHover","featureName","querySelectorAll","classList","add","handleFeatureLeave","remove","getUniqueFeatureName","uniqueFeature","uniqueFeatureNameMap","_uniqueFeatureNameMap","summary","onMouseEnter","bind","onMouseLeave","TYPE_LABEL","a_b_testing","account_control","add_users","admin_dashboard","advanced_analyze_features","advanced_collaboration","advanced_logic","all_data_exports","all_languages_supported","analyze_can_share_customize_branding","analyze_combine_filters","analyze_export_enabled","analyze_export_spss_enabled","analyze_integrations","analyze_results_together","sentiment","analyze_trends_enabled","asset_library","base_response_count","benchmarks","block_randomization","build_surveys_together","carry_forward","click_map_qt","collaborate","collect_contact_information","collector_completion_url_enabled","collector_mobile_sdk_enabled","collector_popup_enabled","collector_friendly_url_enabled","collector_white_label_enabled","consolidated_billing","create_advanced_features","create_custom_theme_enabled","create_custom_variables_enabled","create_piping_enabled","create_question_limit","create_toggle_footer_enabled","custom_templates","customer_success","download_as_ppt","email_support","enable_ip_blocking","enhanced_governance","essential_question_types","extended_piping","extract_data","file_upload","flexible_plan_types","footer_branding","gather_comments","hipaa_enabled","integrations","kiosk_mode_inactivity_timer","kiosk_mode_passcode_lock","matrix_question_type","multilingual","num_free_responses","pagination","password_protection","payment_qt","phone_support","benchmark_logic","pop_up_collector","premium_themes","priority_email_support","private_apps","progress_bar","question_library","quizzes_pro","randomize_answer_choices","ranking_question_type","rating_question_type","real_time_results","record_respondent_email_address","recurring_surveys","response_alerts","response_quality_enabled","send_surveys","set_max_response_count","set_survey_end_date","share_surveys","shared_assets","shared_library","show_create_crosstab","single_sign_on","slider_question_type","survey_branding","survey_create_limit","team_activity","team_logic","team_ownership","team_themes","text_analysis","text_formatting","track_email_responses","unlimited_questions","unlimited_responses","user_management","validate_answer","video_question_type","view_respondent_ip_address","RESPONSES_PER_YEAR","SHARED_LIBRARY","advanced_survey_features","analyze_can_customize_charts","analyze_can_export_hide_branding","analyze_can_ta_tag","analyze_dashboard_password_enabled","analyze_sentiment_enabled","analyze_ta_enabled","collaboration","collector_create_limit","collector_thank_you_enabled","create_custom_html_email_message_enabled","create_grayscale_footer","create_logo_enabled","create_print_enabled","create_quotas_enabled","create_randomization_enabled","create_skip_logic_enabled","create_templates_enabled","custom_question_bank","custom_subdomain","custom_terms_of_use","customize_disqualification_page_enabled","customer_success_manager","dashboard","global_settings","enterprise_only_integrations","labeling_titles_numbering","menu_matrix_enabled","mobile_apps_ios_android","mobile_sdk_pull_response_data_enabled","multiple_block_rotation_enabled","onboarding","plans_benchmarks","quiz_scoring_and_instant_results","require_answer","respondent_receipt","show_sig_diffs_enabled","web_social_email_responses","word_cloud_combine_hide","TYPE_HEADER","TYPE_PARAGRAPH","NUM_RESPONSES","NUM_RESPONSES_TOOLTIP","SUPPORT","SUPPORT_TOOLTIP","CONTRIBUTOR_SEATS","CONTRIBUTOR_SEATS_TOOLTIP","SENTIMENT_ANALYSIS","SENTIMENT_ANALYSIS_TOOLTIP","DATA_EXPORTS","DATA_EXPORTS_TOOLTIP","ADVANCED_LOGIC","ADVANCED_LOGIC_TOOLTIP","ADVANCED_SURVEY_LOGIC","ADVANCED_SURVEY_LOGIC_TOOLTIP","a_b_testing_tooltip_heading","a_b_testing_tooltip","account_control_tooltip_heading","account_control_tooltip","add_users_tooltip_heading","add_users_tooltip","admin_dashboard_tooltip_heading","admin_dashboard_tooltip","advanced_analyze_features_tooltip_heading","advanced_analyze_features_tooltip","advanced_collaboration_tooltip_heading","advanced_collaboration_tooltip","advanced_logic_tooltip_heading","advanced_logic_tooltip","all_data_exports_tooltip_heading","all_data_exports_tooltip","all_languages_supported_tooltip_heading","all_languages_supported_tooltip","analyze_can_share_customize_branding_tooltip_heading","analyze_can_share_customize_branding_tooltip","analyze_can_ta_tag_tooltip_heading","analyze_can_ta_tag_tooltip","analyze_combine_filters_tooltip_heading","analyze_combine_filters_tooltip","analyze_dashboard_password_enabled_tooltip_heading","analyze_dashboard_password_enabled_tooltip","analyze_export_enabled_tooltip_heading","analyze_export_enabled_tooltip","analyze_export_spss_enabled_tooltip_heading","analyze_export_spss_enabled_tooltip","analyze_integrations_tooltip_heading","analyze_integrations_tooltip","analyze_results_together_tooltip_heading","analyze_results_together_tooltip","analyze_sentiment_enabled_tooltip_heading","analyze_sentiment_enabled_tooltip","sentiment_tooltip_heading","sentiment_tooltip","analyze_ta_enabled_tooltip_heading","analyze_ta_enabled_tooltip","analyze_trends_enabled_tooltip_heading","analyze_trends_enabled_tooltip","base_response_count_tooltip_heading","base_response_count_tooltip","benchmarks_tooltip_heading","benchmarks_tooltip","block_randomization_tooltip_heading","block_randomization_tooltip","build_surveys_together_tooltip_heading","build_surveys_together_tooltip","carry_forward_tooltip_heading","carry_forward_tooltip","click_map_qt_tooltip_heading","click_map_qt_tooltip","collaboration_tooltip_heading","collaboration_tooltip","collaborate_tooltip_heading","collaborate_tooltip","collector_completion_url_enabled_tooltip_heading","collector_completion_url_enabled_tooltip","collector_create_limit_tooltip_heading","collector_create_limit_tooltip","collector_mobile_sdk_enabled_tooltip_heading","collector_mobile_sdk_enabled_tooltip","collector_friendly_url_enabled_tooltip_heading","collector_friendly_url_enabled_tooltip","collector_white_label_enabled_tooltip_heading","collector_white_label_enabled_tooltip","consolidated_billing_tooltip_heading","consolidated_billing_tooltip","contributor_seats_tooltip_heading","contributor_seats_tooltip","create_advanced_features_tooltip_heading","create_advanced_features_tooltip","create_custom_html_email_message_enabled_tooltip_heading","create_custom_html_email_message_enabled_tooltip","create_custom_theme_enabled_tooltip_heading","create_custom_theme_enabled_tooltip","create_custom_variables_enabled_tooltip_heading","create_custom_variables_enabled_tooltip","create_logo_enabled_tooltip_heading","create_logo_enabled_tooltip","create_piping_enabled_tooltip_heading","create_piping_enabled_tooltip","create_quotas_enabled_tooltip_heading","create_quotas_enabled_tooltip","create_randomization_enabled_tooltip_heading","create_randomization_enabled_tooltip","create_skip_logic_enabled_tooltip_heading","create_skip_logic_enabled_tooltip","create_templates_enabled_tooltip_heading","create_templates_enabled_tooltip","custom_question_bank_tooltip_heading","custom_question_bank_tooltip","custom_subdomain_tooltip_heading","custom_subdomain_tooltip","custom_templates_tooltip_heading","custom_templates_tooltip","customer_success_tooltip_heading","customer_success_tooltip","custom_terms_of_use_tooltip_heading","custom_terms_of_use_tooltip","customer_success_manager_tooltip_heading","customer_success_manager_tooltip","dashboard_tooltip_heading","dashboard_tooltip","email_support_tooltip_heading","email_support_tooltip","enhanced_governance_tooltip_heading","enhanced_governance_tooltip","essential_question_types_tooltip_heading","essential_question_types_tooltip","extended_piping_tooltip_heading","extended_piping_tooltip","extract_data_tooltip_heading","extract_data_tooltip","file_upload_tooltip_heading","file_upload_tooltip","flexible_plan_types_tooltip_heading","flexible_plan_types_tooltip","footer_branding_tooltip_heading","footer_branding_tooltip","gather_comments_tooltip_heading","gather_comments_tooltip","global_settings_tooltip_heading","global_settings_tooltip","hipaa_enabled_tooltip_heading","hipaa_enabled_tooltip","integrations_tooltip_heading","integrations_tooltip","enterprise_only_integrations_tooltip_heading","enterprise_only_integrations_tooltip","kiosk_mode_inactivity_timer_tooltip_heading","kiosk_mode_inactivity_timer_tooltip","kiosk_mode_passcode_lock_tooltip_heading","kiosk_mode_passcode_lock_tooltip","labeling_titles_numbering_tooltip_heading","labeling_titles_numbering_tooltip","menu_matrix_enabled_tooltip_heading","menu_matrix_enabled_tooltip","mobile_apps_ios_android_tooltip_heading","mobile_apps_ios_android_tooltip","mobile_sdk_pull_response_data_enabled_tooltip_heading","mobile_sdk_pull_response_data_enabled_tooltip","multilingual_tooltip_heading","multilingual_tooltip","multiple_block_rotation_enabled_tooltip_heading","multiple_block_rotation_enabled_tooltip","num_free_responses_tooltip_heading","num_free_responses_tooltip","payment_qt_tooltip_heading","payment_qt_tooltip","phone_support_tooltip_heading","phone_support_tooltip","benchmark_logic_tooltip_heading","benchmark_logic_tooltip","plans_benchmarks_tooltip_heading","plans_benchmarks_tooltip","premium_themes_tooltip_heading","premium_themes_tooltip","priority_email_support_tooltip_heading","priority_email_support_tooltip","private_apps_tooltip_heading","private_apps_tooltip","question_library_tooltip_heading","question_library_tooltip","quizzes_pro_tooltip_heading","quizzes_pro_tooltip","randomize_answer_choices_tooltip_heading","randomize_answer_choices_tooltip","record_respondent_email_address_tooltip_heading","record_respondent_email_address_tooltip","recurring_surveys_tooltip_heading","recurring_surveys_tooltip","respondent_receipt_tooltip_heading","respondent_receipt_tooltip","response_alerts_tooltip_heading","response_alerts_tooltip","response_quality_enabled_tooltip_heading","response_quality_enabled_tooltip","send_surveys_tooltip_heading","send_surveys_tooltip","share_surveys_tooltip_heading","share_surveys_tooltip","shared_assets_tooltip_heading","shared_assets_tooltip","shared_library_tooltip_heading","shared_library_tooltip","show_create_crosstab_tooltip_heading","show_create_crosstab_tooltip","show_sig_diffs_enabled_tooltip_heading","show_sig_diffs_enabled_tooltip","single_sign_on_tooltip_heading","single_sign_on_tooltip","skip_logic_tooltip_heading","skip_logic_tooltip","statistical_significance_tooltip_heading","statistical_significance_tooltip","survey_branding_tooltip_heading","survey_branding_tooltip","survey_create_limit_tooltip_heading","survey_create_limit_tooltip","team_activity_tooltip_heading","team_activity_tooltip","team_logic_tooltip_heading","team_logic_tooltip","team_ownership_tooltip_heading","team_ownership_tooltip","team_themes_tooltip_heading","team_themes_tooltip","text_analysis_tooltip_heading","text_analysis_tooltip","unlimited_questions_tooltip_heading","unlimited_questions_tooltip","unlimited_responses_tooltip_heading","unlimited_responses_tooltip","user_management_tooltip_heading","user_management_tooltip","validate_answer_tooltip_heading","validate_answer_tooltip","view_respondent_ip_address_tooltip_heading","view_respondent_ip_address_tooltip","word_cloud_combine_hide_tooltip_heading","word_cloud_combine_hide_tooltip","DESC_MESSAGE","grow_2529_forms_question_types","grow_2529_unlimited_forms","grow_2529_website_embed","grow_2529_zapier_integrations","grow_2529_file_upload","grow_2529_payment_qt","grow_2529_quizzes_pro","grow_2529_survey_create_limit","grow_2529_forms_analysis_filter","grow_2529_forms_unlimited_questions","grow_2529_survey_branding","grow_2529_data_exports","grow_2529_statistical_significance","grow_2529_multilingual","grow_2529_survey_quiz","grow_2529_unlimited_analysis_filters","grow_2529_forms_features","grow_2529_starter_features","grow_2529_advantage_features","grow_2529_premier_features","grow_2529_phone_support","grow_2529_analyze_sentiment_enabled","grow_2529_survey_branding_t2","grow_2529_analyze_export_spss_enabled_t2","grow_2529_skip_logic","grow_2529_collector_white_label_enabled","grow_2529_text_analysis","TYPE_DESCRIPTION","EXPERIMENT_DESCRIPTION","grow_2529_questions_per_form_survey","grow_2529_everything_in_forms_plus","grow_2529_everything_in_starter_plus","grow_2529_everything_in_advantage_plus","grow_2529_form_survey_capabilities","grow_2529_xls_csv","grow_2529_analyze_trends_enabled","grow_2529_best_value","grow_2529_extended_piping","grow_2529_recurring_surveys","grow_2529_standard_monthly","grow_2529_survey_builder","grow_2529_database_response_view","best_worst_qt","grow_2529_use_collectors","GROW_2529_EXPERIMENT_DETAILS_COPY","NUM_SURVEYS_FORMS","NUM_SURVEYS_FORMS_TOOLTIP","QUESTIONS_PER_SURVEY_FORMS","QUESTIONS_PER_SURVEY_FORMS_TOOLTIP","QUESTION_TYPES","QUESTION_TYPES_TOOLTIP","FILTER_COMPARE","grow_2529_unlimited_forms_tooltip_heading","grow_2529_unlimited_forms_tooltip","grow_2529_database_response_view_tooltip_heading","grow_2529_database_response_view_tooltip","grow_2529_question_types_tooltip_heading","grow_2529_question_types_tooltip","grow_2529_forms_question_types_tooltip_heading","grow_2529_forms_question_types_tooltip","grow_2529_website_embed_tooltip_heading","grow_2529_website_embed_tooltip","grow_2529_zapier_integrations_tooltip_heading","grow_2529_zapier_integrations_tooltip","grow_2529_analysis_filter_tooltip_heading","grow_2529_analysis_filter_tooltip","grow_2529_forms_analysis_filter_tooltip_heading","grow_2529_forms_analysis_filter_tooltip","grow_2529_survey_create_limit_tooltip_heading","grow_2529_survey_create_limit_tooltip","grow_2529_recurring_surveys_tooltip_heading","grow_2529_recurring_surveys_tooltip","grow_2529_unlimited_questions_tooltip_heading","grow_2529_unlimited_questions_tooltip","grow_2529_forms_unlimited_questions_tooltip_heading","grow_2529_forms_unlimited_questions_tooltip","grow_2529_survey_branding_tooltip_heading","grow_2529_survey_branding_tooltip","best_worst_qt_tooltip_heading","best_worst_qt_tooltip","grow_2529_multilingual_tooltip_heading","grow_2529_multilingual_tooltip","grow_2529_analyze_sentiment_enabled_tooltip","grow_2529_analyze_sentiment_enabled_tooltip_heading","grow_2529_phone_support_tooltip_heading","grow_2529_phone_support_tooltip","grow_2529_survey_branding_t2_tooltip_heading","grow_2529_survey_branding_t2_tooltip","grow_2529_statistical_significance_tooltip_heading","grow_2529_statistical_significance_tooltip","grow_2529_data_exports_tooltip_heading","grow_2529_data_exports_tooltip","grow_2529_analyze_export_spss_enabled_t2_tooltip_heading","grow_2529_analyze_export_spss_enabled_t2_tooltip","grow_2529_survey_quiz_tooltip_heading","grow_2529_survey_quiz_tooltip","grow_2529_unlimited_analysis_filters_tooltip_heading","grow_2529_unlimited_analysis_filters_tooltip","grow_2529_payment_qt_tooltip_heading","grow_2529_payment_qt_tooltip","grow_2529_file_upload_tooltip_heading","grow_2529_file_upload_tooltip","grow_2529_skip_logic_tooltip_heading","grow_2529_skip_logic_tooltip","grow_2529_text_analysis_tooltip_heading","grow_2529_text_analysis_tooltip","grow_2529_quizzes_pro_tooltip_heading","grow_2529_quizzes_pro_tooltip","grow_2529_collector_white_label_enabled_tooltip_heading","grow_2529_collector_white_label_enabled_tooltip","SUMMARY_MERGED_COPY","COMMON_TOOLTIP_COPY","SUMMARY_COPY","EXPERIMENT_SUMMARY_COPY","EXPERIMENT_TOOLTIP_COPY","DETAILS_MERGED_COPY","DETAILS_TOOLTIP_COPY","DETAILS_COPY","EXPERIMENT_DETAILS_COPY","createFeatureFormatter","COPY_MAP","formatValues","tooltipKey","String","tooltipHeadingKey","formatSummaryFeature","formatDetailsFeature","formsPackages","formsAndEnhanced","obj","setting","SETTING_UNLIMITED","_","dataCenter","everything_in","singleEnabledFeaturesRules","featureItem","nonConditionalFeatureRules","create_limit","amount","toLocaleString","funneling_enabled","share_with_your_organization","disable_footer_branding_enabled","hide_export_branding_enabled","group_templates","lite_library","shared_group_library","analyze_access_benchmarking","sa_en_ga","hasSentiment","allowedPackages","crosstabs","filter_crosstab","disAllowedPackages","ExperimentFeatureRules","featureItemKey","summaryFeaturesTransformer","featureList","featureListRules","packageFeatures","options","featureListItem","_SummaryFeatureMap$fi","SummaryFeatureMap","item","_featureItem$features","featureValues","featureKey","SummaryTransformer","constructor","_defaultIndividualList","DefaultIndividualsFeatureList","_featureRules","FeatureRules","_defaultTeamsList","TeamsFeatureList","instance","this","individualSummaryFeatureTransform","featureListConfig","_featureListConfig$li","includesDefaultList","list","featureRules","rules","teamsSummaryFeatureTransform","_featureListConfig$li2","PlanTransformers","initializeList","createFeatureList","super","_featureList","_this$_featureList$th","_this$featureList","DefaultIndividualFeatureList","FormsIndividualFeatureList","PremierAndAdvantageAnnualFeatureList","FormsOverrideRules","StarterRulesOverride","FormsDefaultIndividualFeatureList","FormsRulesOverride","AdvantageAnnualRulesOverride","PremierAnnuaRulesOverride","StarterMonthlyFeatureList","PremierAnnualOverrideRules","StandardMonthlyFeatureList","StandardMonthlyOverrideRules","StarterAnnualOverrideRules","FlexFeatureList","FlexFeatureOverrideRules","GROW2529FeatureListMapTreatment1","GROW2529FeatureListMapTreatment2","AdvantageAnnualFeatureList","TeamPremierFeatureList","EnterpriseFeatureList","summaryTransformer","getInstance","useSummaryDisplayFeatures","displayFeatures","setDisplayFeatures","_useContext$environme","hostname","experience","getDataCenterById","getDataCenterIdFromCurrentUrl","featureTransformer","getSummaryFeatureTransformer","transformerConfigObject","FeatureList","featureSetMap","usePackageFeatureSet","setFeatureSetMap","useFeatureSet","formattedOverageCost","featureSetData","regionCode","Package","_PackageDefs$packageN","_usePackageStyles","usePackageStyles","element","PackageDefs","Link","to","GROW_2427_TREATMENT","GROW_2529_FORMS_TREATMENT1","GROW_2529_FORMS_TREATMENT2","GROW_2629_FORMS_V2_TREATMENT","require","isOfflineModeEnterpriseEnabled","title","image","desiredProduct","programId","isResponseManagerEnabled","smsCollector","isTableauEnabled","isUnlimitedApiEnabled","isHipaaEnabled","isSalesForceEnabled","chimeTestimonial","logo","img","quottedPerson","company","pumaTestimonial","colgateTestimonial","conceptTesting","ctaLink","learnMoreLink","adTesting","brandTracking","BrandTrackingSvg","priceOptimization","maxDiff","boldText","theme","root","topBanner","innerWidth","bannerTitle","bannerBody","bannerButton","bannerCTA","linkIcon","sectionTitle","centerText","addOnCard","addOnContainer","addOnCardTitle","addOnCardButton","expertServicesPanel","lightTitle","lightBody","row","testimonialCard","chimeBox","pumaBox","colgateBox","testimonialBody","quoteBox","mrxCard","mrxCardInnerBox","mrxButton","mrxCardBody","modalContainer","modalTitle","fontFamily","base","modalButton","checkMark","inlineLink","MrxSection","flexJustify","target","Grid","my","px","MrxCard","solution","_useStyles2","flexAlign","alt","LinkIcon","CONTACT_US_TODAY","SURVEY_MONKEY_ENTERPRISE","LEARN_MORE","MANAGE_USERS","CONFIDENTIAL_DATA","FEEDBACK","INVALID_EMAIL","BLOCKED_EMAIL","INVALID_PHONE_NUMBER","REQUIRED","CONTACT_SALES","HUBSPOT_FORM_ERROR","ERROR","CONSENT","CONSENT_FOR_SUBMISSION","ValidationColor","HubspotApiStatus","FIELDS","email","phone","defaultType","ERROR_MAP","REQUIRED_FIELD","GENERIC_ERROR","PHONE_NUMBER_REGEX","RegExp","VALIDATOR_SUCCESS","success","minLengthValidator","FIELD_VALIDATORS","emailValidator","isValidEmail","phoneValidator","test","validateAndGetFormData","fieldType","validatorType","validator","applyValidators","validators","validatorResult","every","validate","errorMessage","HS_ERROR_STATUS","mapFieldAndValues","fields","formData","defaultValue","formDTO","saveFormData","dataOptions","autoSubmit","apiRoute","formFields","formValues","values","some","isFormValid","submitData","mapHubspotSubmissionData","_formData$consent","_formData$consent2","legalConsentOptions","consent","communications","text","subscriptionTypeId","consentToProcess","context","hutk","pageUri","location","response","fetch","method","JSON","stringify","headers","json","HUBSPOT_FORM_ID","mapHiddenField","hidden","mapHubSpotFormFields","hsData","form","mappedData","redirect","guid","portalId","temp","formFieldGroups","field","label","required","hideLabel","labelHidden","placeholder","flat","useHubSpotFormAPI","formId","status","Loading","setData","append","fetchHubSpotForm","catch","err","buildHubspotPayload","firstname","firstName","lastname","lastName","jobtitle","contact_country__c","cleanUpFormFields","editedFormFields","leadSource","hubspotProgram","NotifyInterestModal","toggleModal","showModal","Modal","show","onClose","ModalBody","onClick","ExpertServices","showThankYouModal","setShowThankYouModal","submitted","setSubmitted","expertServicesInterest","localStorage","getItem","toggleThankYouModal","open","autoFilledFormData","hubspotUrlRoute","_res$status","res","errors","clientErrorHandler","notifyInterest","setItem","IconCheck","TestimonialCard","testimonial","cssClass","cardColor","style","HubSpotErrorBanner","p","Banner","showIcon","HubspotInput","handleOnBlur","_formData$field$name","_formData$field$name2","_formData$field$name3","FormField","Input","stretched","onBlur","CheckBoxWrapper","gap","overflowX","SubscriptionLink","PrivacyLink","HubSpotForm","customOnSubmitFunction","setFormData","_useHubSpotFormAPI","useHubSpotStyles","handleChange","validatedData","handleConsentChecked","checked","handleFormSubmission","event","preventDefault","newFormData","submitErrors","redirectUri","assign","parseHubspotApiResponse","responseData","_responseData$status","_responseData$errors","errorType","match","fieldName","fs","Success","onSubmit","noValidate","FormGroup","Checkbox","defaultChecked","onChange","subLink","privacyNotice","buttonType","ProgressCircle","valueText","continuous","AddOnSection","AddOnCard","addOn","showHubspotModal","setShowHubspotModal","desiredProductInterestSent","EnterpriseFeatures","setUser","setFeatures","ssoInterestSent","urlPath","useQuery","UserAccountInfo","onCompleted","hookData","userResp","userFeatures","activeFeatures","keyValue","powerBIEnabled","SSOSVG","SocialProof","flexWrap","paddingBottom","borderBottom","objectFit","SocialProofLogos","Grow2427SocialProof","_grow2529Theme$packag","grow2529Theme","_grow2529Theme$packag2","Grow2529ExperimentPackages","Grow2529ExperimentPackagesPartial","PACKAGE_SWAP","FORMS_ANNUAL","swap","FORMS_MONTHLY","PRICING_DESCRIPTION","grow_2529_annual_billing","grow_2529_monthly_billing","GROW_2529_Switch","opacity","Values","cursor","Checked","ToggleSwitch","annualPackage","monthlyPackage","annualSkuCost","monthlySkuCost","isChecked","annualSavings","htmlFor","role","tabIndex","packageSwap","logAmplitudeEvent","eventName","userEvent","otherData","selectedPackage","billingToggleCopy","isEdu","GROW2529Ribbon","EduContext","PackagesSupported","borderRight","borderWidth","DetailsPackageHeader","index","_useDetailsPackageHea","useDetailsPackageHeaderStyles","gridArea","PRICING_DISCLAIMER","BUY_RESPONSES","ADVANCE_SURVEY","TARGET_PEOPLE","SURVEY_RESPONSES","PAID_FEATURES","DISPLAYED_PRICING","PER_ADDITIONAL_RESPONSE","ADD_ON_FEATURES","BASICS","GET_STARTED","ALL_FEATURES","MORE","SURVEYMONKEY_COST","SEE_PRICING","SPECIAL_PRICING_FOR_EDUCATORS_FAQ","SPECIAL_PRICING_FOR_EDUCATORS_ANSWER","DISCOUNTS_FOR_TEAMS_FAQ","DISCOUNTS_FOR_TEAMS_ANSWER","CORPORATE_PLANS_FAQ","CORPORATE_PLANS_ANSWER","BASIC_FREE","PLAN_PRICE","AUDIENCE_NUMBER_OF_SURVEYS","AUDIENCE_QUESTIONS_PER_SURVEY","AUDIENCE_UNLIMITED_RESPONSES","AUDIENCE_EMAIL_SUPPORT","AUDIENCE_CUSTOMIZATION","AUDIENCE_DATA_EXPORTS","AUDIENCE_SKIP_LOGIC","AUDIENCE_PIPING","AUDIENCE_FILE_UPLOAD","AUDIENCE_A_B_TESTING","AUDIENCE_HIDE_FOOTER","AUDIENCE_MULTILINGUAL","TEAMS_DISCOUNT_DISCLAIMER","Footer","Content","Audience","Accordion","AccordionContent","FAQHeading","pointerEvents","Answer","Spacer","Active","Inactive","Toggle","footerImg","backgroundSize","Feature","Disclaimers","Disclaimer","GetStarted","More","borderTop","PricingList","flexBasis","flexGrow","SeeAllLink","FAQ","heading","testid","isActive","setIsActive","_usePricingFooterStyl","usePricingFooterStyles","handleClick","onKeyUp","IconChevronUp","IconChevronDown","FAQAnswer","grow_2529_can_i_build","grow_2529_all_our_plans","MoreAbout","displayEduFaq","displayTeamsDiscountFAQ","teamsDiscountPercent","utSource3","formsAnnual","formsMonthly","formsAnnualCost","formsMonthlyCost","experimentCopy","monthlyCost","annualMonthlyCost","teamsMinimumDiscount","FeatureItemOverride","visibility","EverythingIn","_styleOverrides","styleOverrides","Treatments","EnterpriseFeaturesGp69","Grow2529FormsTreatment1","useTreatment","conditions","assignments","treatments","assignment","exp","activeTreatments","_activeTreatments$exp","LegaleseDisclaimer","TeamsDiscount","OverageCost","EnterpriseAddons","TeamsOfferExpiry","included","EnabledCheckMark","viewBox","xmlns","fill","fillRule","d","stroke","strokeLinecap","strokeLinejoin","strokeWidth","DisabledCheckMark","cx","cy","r","AudiencePlaceholder","PricingFeatures","audience","mb","audienceFeatures","EDU_COUNTRIES","HIDDEN_FAQ_PACKAGES","PricingFooter","_disclaimers","_useParams","subPath","_useTreatment$uiExper","filteredPackages","reverse","isPaidUser","discountPercent","minimumPercent","teamPackageName","newMinimumPercent","teamPricingPackage","comparisonPricingPackage","teamSku","comparisonSku","packagePercent","disclaimers","disclaimer","IconArrowRight","Heading","hero2","MainHeading","useHeadingStyles","teams","individual","Container","List","ListItem","NavItem","selected","usePricingNavigationStyles","Navigation","_useNavigationStyles","useNavigationStyles","navItems","ROUTE_CONFIG","routeName","_ROUTE_CONFIG","TITLE","createURL","ut_source","Summary","PackagesContainer","radius","BannerRow","BannerContainer","DotGrid","DiscountLargeText","fontStyle","sectionTitleSm","TryNowBox","ViewPlansButton","small","DISCOUNT_TEXT","VIEW_PLANS_BUTTON","DiscountBanner","html","PricingSummaryPage","_discountBannerTreatm","_useSummaryStyles","useSummaryStyles","GROW_2529_TREATMENT","discountBannerTreatments","useExperiment","treatmentNames","showDiscountBanner","billing_20014_teams_discount_treatment","getPackage","SummaryFooter","Back","BackToSummary","IconArrowLeft","AVAILABLE","UNAVAILABLE","BUSINESS_PLANS_LINK","IncludedLink","TYPE_TEXT","BASIC_COMPARE_FILTER","BASIC_NUM_RESPONSES","MANUAL","MANUAL_RULE","TEMPLATE_ENABLED_VALUE","BASIC_TEMPLATE_ENABLED_VALUE","UNLIMITED","getStringValue","settingCopy","CELL_COPY","_feature$setting","cellValue","tagValue","getBaseResponseCount","copy","ALL_BUT_BASIC","ADVANTAGE_AND_ABOVE","teamCollaborationRules","getTeamCollaborationValues","stringValueRules","enterpriseOnly","includeInAllPackages","includeInPackagesOnly","getTagValue","getCompareResults","getTemplatesEnabledValue","getCollectorCreateLimitValue","getCreateQuestionLimitValue","allExceptBasicFeatures","formsAndBasic","allExceptForms","experimentDetailsCopy","number","defaultRules","Details","GROW_2529_FEATURE_RULES","getFeatureValue","featureRulesObj","detailsFeatureRules","getFormattedAmountValue","determineCombinedFeature","_combinedFeatures$fin","combinedFeature","combinedFeatures","combined","_combinedFeature$feat","TEAM_COLLABORATION","TEAM_MANAGEMENT","ENTERPRISE_GRADE_SECURITY","SURVEY_CAPABILITIES","FAST_SUPPORT","SURVEY_BUILDER","CUSTOMIZATION_BRANDING","ANALYSIS_REPORTING","RESPONSE_MANAGEMENT","ENHANCED_SECURITY","PARTNER_INTEGRATIONS","category","EXPERIMENT_COPY","teamGroupings","individualGroupings","GROW_2529_INDIVIDUAL_GROUPINGS","palette","Bullet","Sticky","gridTemplateColumns","packageCount","gridTemplateAreas","getGridTemplateAreas","i","str","sky","Package1","Package2","Package3","Package4","Package5","Package6","Mobile","Desktop","AccordionControl","main","Cell","DetailRow","borderLeft","BulletInverse","composes","ExpandCollapse","TooltipIndicator","FeatureCell","_PackageDefs$pkg$pack","_PackageDefs$pkg$pack2","_usePricingExperiment","isInGrow2629Treatment","styles","useCategoryStyles","grow2529styles","useGrow2529CategoryStyles","stylesToUse","a11yValue","CaretDown","IconCaretDown","CaretUp","IconCaretUp","expandAll","collapseAll","Categories","_useCategoryStyles","currentPath","categories","_categoryGroupings$cu","groupings","categoryGroupings","getFeatureCategories","transformedPackages","fakeFeatures","experimentFeatures","_determineCombinedFea","categoryIndices","_category","initialState","initialLoad","isExpanded","indices","icon","toggleData","setToggleData","handleToggle","multiple","_expandedIndices","_id","isExpanding","NAME","expanded","featureRowCells","DetailsPackagesView","_useDetailsStyles","useDetailsStyles","ssrEnv","Responsive","defaultMatches","packageClassName","minWidth","isDesktop","Fragment","PricingDetailsPage","scrollTo","DetailsFooter","ContactList","listStyleType","ListHeading","TypographyBolded","HubSpotWrapper","ContactUs","_useEnterprisePageSty","useEnterprisePageStyles","EnterprisePage","isEnterpriseUser","isEnterprisePackage","pb","ViewPricingLink","EducationalDetailsPage","useEducationalStyles","viewPricingLinkText","isEduValue","PricingSummary","paths","PricingDetails","EducationalPage","PricingRoutes","redirectPath","Redirect","Route","PricingRouter","Switch","pages","page","exact","FourOhFourErrorPage","PricingPage","SEARCHBOX_PLACEHOLDER","mapItemsToAutocomplete","publishedApplicationListingsByKeyword","items","detail","SearchBox","Component","args","keyword","handleTermChanged","setState","handleItemSelected","handleSubmit","searchTerm","history","render","Query","query","publishedApplicationListingsByKeywordQuery","skip","variables","subdomain","tld","languageId","loading","Autocomplete","onTextChanged","onItemSelected","isLoading","hasError","renderItem","AppPlaceHolderImg","withRouter","contextType","JUMBO_TAGLINE","JUMBO_SUBTITLE","JumboHeader","_useContext$HEADER_EX","HEADER_EXP","_useContext$HEADER_EX3","isModernTreatment","shouldShowNewHeader","AppLink","_props$app","app","isIntegration","indexOf","AppsGrid","apps","noBleeds","Row","Col","userAgent","TabletScreen","SkeletonLoader","x","y","rx","ry","MobileScreen","FEATURED_APPS_TITLE","RECENTLY_ADDED_APPS_TITLE","MOST_RECENT_APPS_TITLE","GRID_APPS_SEE_MORE","AppsGridContainer","gridOption","_retrieveValuesForGri","option","moreLink","pageSize","retrieveValuesForGridOption","publishedApplicationListingsQuery","ErrorCard","AppsGridSkeleton","publishedApplicationListings","defaultProps","SidebarSkeleton","LinkWithSearch","staticContext","NAVBAR_APPS_DIRECTORY","NAVBAR_CATEGORIES","NAVBAR_MY_APPS","NAVBAR_FEATURED","NAVBAR_MOST_POPULAR","NAVBAR_RECENTLY_ADDED","SidebarLink","dataTestId","NavBar","publishedApplicationListingCategoriesQuery","AccordionItem","dense","transparent","publishedApplicationListingCategories","cat","TopBarSkeleton","DefaultLoader","MODULE_SKELETONS","top_bar","UCSModule","moduleHTML","renderLoadingState","_this$props","customLoader","moduleName","ModuleLoader","componentDidMount","_isMounted","getModuleHTML","componentWillUnmount","getPreloadedModule","moduleContainer","getElementById","textContent","reFetchFailed","reFetchModule","moduleContent","credentials","_this$state","classNames","classnames","BoundUCSModule","ErrorBoundary","getCanonicalUrlOrNoIndex","noIndex","canonicalUrl","substr","switchAccountsUrl","encodeURIComponent","NAV_MY_ACCOUNT","NAV_SWITCH_ACCOUNTS","NAV_HELP_CENTER","NAV_SIGN_OUT","NAV_SIGN_IN","NAV_SIGN_UP","AppDirNavHeaderDesktop","shouldDisplayNavItem","username","showSwitchAccounts","Logo","nav","Menu","autoClose","noRules","placement","menuTrigger","MenuItem","isNavigable","navigationTarget","urlWithSearch","AppDirNavHeaderMobile","authorizedMenuItems","IconLogoGoldie","IconMenu","MenuGroup","NAV_EXPLORE","NAV_MANAGE","NAV_DEVELOP","NAV_PARTNER","subdomainUri","altdomain","navigationItems","requiresAuthentication","AppDirNavHeader","userDropDownQuery","_data$user","_data$user$linkedIden","hasMultipleLinkedIdentities","linkedIdentities","totalCount","DesktopScreen","MobileTabletScreen","ModernHeader","languageCode","isEUDC","SMHeader","isUserAuthenticated","wrenchVariant","AppDirectoryBasePage","header","navbar","pageMetricsAttributes","_getCanonicalUrlOrNoI","isMarketing","referrer","networkName","fluid","waitForUsabilla","callback","count","waitForUsabillaLiveToLoad","usabilla_live","Home","AppListingList","tagline","categoryKey","params","publishedApplicationListingCategory","AppListingSkeleton","FourOhFourError","ListingsBasePage","PAGE_TITLE","Featured","MostPopular","RecentlyAdded","SEARCH_RESULTS","RESULTS_NOT_FOUND","FILL_IN_KEYWORD","Search","Card","REMOVE_DIALOG_HEADER","REMOVE_DIALOG_MESSAGE","REMOVE_DIALOG_CONFIRM","REMOVE_DIALOG_CANCEL","RemoveApp","appId","onSuccess","confirmDialogVisible","setConfirmDialogVisible","Mutation","mutation","uninstallAppMutation","input","uninstallApp","ModalHeader","ModalFooter","Align","NO_RESULTS_FOUND","LAUNCH_APP_LINK","APP_DETAILS_LINK","REMOVE_APP_LINK","renderCategories","join","MyApps","installedApplications","refetch","launch","IconDesktop","IconBadge","IconTrash","MediaCarousel","media","setCurrent","currentMedia","m","allowFullScreen","altText","mediaIdx","AppDetailsItem","linkLabel","APP_DETAILS_HEADER","REQUIRED_ACCESS_LABEL","REQUIRED_ACCOUNT_LABEL","INSTALLED_LABEL","INSTALL_LABEL","VISIT_SITE_LABEL","LAUNCH_LABEL","UPGRADE_LABEL","REMOVE_APP","AppDirectoryAppDetails","preview","selectedTab","setSelectedTab","pageTracked","setPageTracked","googleTracked","setGoogleTracked","_useContext2","_useContext2$environm","getLangFromUrl","urlParams","useSearchParams","getEventNameFromSource","getAppDetails","previewApplicationListingDetails","publishedApplicationListingDetails","_useQuery","appDetails","googleAnalyticsTrackingId","trackerName","ReactGA","appName","_useQuery$data","AppDirectoryAppDetailsSkeleton","installed","linkType","interactionType","interactionLocation","integrationOptionClicked","addCollectEventInfo","mdOrder","noRule","upgradeRequired","optionalUpgrade","IconTag","websiteUrl","publisher","supportEmail","IconEmail","supportPhoneNumber","IconLogoWhatsApp","supportUrl","IconGlobe","IconLock","privacyPolicyUrl","IconNews","termsOfUseUrl","blogUrl","IconMegaphone","concat","youtubeUrl","screenshots","s","Tabs","Tab","fullDescription","requirements","substitute","accountType","IconUserFilled","pricingUrl","scopes","scope","IconGear","headerContainer","headerSubtitle","ALPHABETICAL","FEATURED","POPULAR","RELEVANCE","ALL_SORT_BY_TYPES","SORT_BY_TYPES_PRE_SEARCH","SORT_BY_TYPES_POST_SEARCH","SORT_ORDER","DEFAULT_FILTERS","DEFAULT_SORTBY","DEFAULT_SORTORDER","SearchContext","filters","sortBy","sortOrder","pageNum","SearchProvider","setSearch","setFilters","setSortBy","setSortOrder","_useState9","_useState10","setPageNum","updateSearch","newSearch","updateFilter","updateSortBy","updatePageNum","resetSearch","hasSearchParams","SearchConsumer","Consumer","CategoriesContext","CategoriesProvider","setIsLoading","setCategories","categoriesQuery","isError","fetchAppCategories","FilterNav","isCategoriesLoading","_useContext$categorie","categoryTree","setCategoryTree","result","noParentCategories","parentId","ordinal","parent","parentWithChildren","sort","b","_a$title","localeCompare","aKey","bKey","buildCategoryTree","renderFilter","f","weight","FilterNavSkeleton","featured","AppListingContext","appListings","isInitialSearch","pageInfo","AppListingProvider","setAppListings","setInitialSearch","setPageInfo","paramsChanged","setParamsChanged","setVariables","_useLazyQuery","useLazyQuery","appsAppListings","_useLazyQuery2","getAppListings","_useLazyQuery2$","_data$fetchPublishedA","fetchPublishedApplicationListings","_data$fetchPublishedA2","listings","paging","_state$moreParams","moreParams","prevVariables","toString","flattenCategories","paramsWithoutSort","initialWithoutSort","nextPageNum","clearSearch","appCardLogo","AppCard","encryptedAppId","origin","appGrid","textRight","CategorySection","queryParams","sectionName","moreLinkLabel","lessLink","lessLinkLabel","showMore","setShowMore","placeItems","CategorySectionSkeleton","mt","MenuTrigger","mr","getLabelFromValue","AppListingSort","sortTypes","breakpoints","homeContainer","bodyContainer","tabletSearchBox","featuredApps","results","fullWidth","NoResultsCard","gridTemplateRows","alignContent","EmptySearchImg","Listings","featuredParams","setFeaturedParams","showAllFeatured","hideAllFeatured","noGutters","Pagination","total","rowsPerPage","perPage","onChangePage","newPage","container","leftColumn","LeftNavLayout","flexItemGrow","debouncedUpdateSearch","debounce","InputGroup","InputGroupAddon","IconSearch","HomeV2","renderHeader","setRenderHeader","v2","responsiveContainerPadding","appDetailsHeader","contentContainer","appDetailsHeaderLogo","maxHeight","appDetailsHeaderLogoImg","maxInlineSize","blockSize","textContainer","appDetailsTab","appDetailsMediaGallery","appDetailsMediaModalImg","appDetailsMediaModalYoutube","appDetailsYoutubeWrapper","appDetailsMediaModalYoutubeWrapper","appDetailsYoutubeFrame","appDetailsModalLeft","appDetailsModalMain","appDetailsModalRight","uninstallButton","ResponsiveImage","nextInArray","array","startIndex","step","_regeneratorRuntime","nextInArray$","_context","prev","next","stop","_marked","AppDetailsMedia","mediaFiles","mediaIndex","setShowModal","selectedMedia","setSelectedMedia","nextMediaGenerator","setNextImageGenerator","prevMediaGenerator","setPrevImageGenerator","closeButtonLabel","previousMedia","nextMedia","AppDetailsActionButton","UninstallButton","removeQueryParameters","urlObj","URL","stripHttp","AppDetails","refreshDetails","_getClientEnvironment2","buildAppDetailsMediaFilesList","mediaList","py","addOnLeft","DetailsPage","setAppDetails","newAppDetails","_newAppDetails$detail","onQueryComplete","APP_DIRECTORY_V2_EXPERIMENT","HomePageExperiment","_treatments$integrate","showV2","integrate_4500_app_dir_v2_enabled","HomePageV2","HomePage","AppDetailsExperiment","_treatments$integrate2","DetailsV2Page","AppPreviewExperiment","_treatments$integrate3","AppsDirectoryRouter","country","_useContext$clientCo","loggingAPIPath","amplitudeToken","unlisten","listen","ExperimentProvider","MyAppsPage","RecentlyAddedPage","MostPopularPage","FeaturedPage","SearchPage","CategoriesPage","PRODUCT_CATEGORY","AUDIENCE","EXPERT_SOLUTIONS","FILTER_KEY","CATEGORY","NAV_VARIANT","LIGHT","DARK","BROWSER","IE","UNKNOWN","useBrowser","MSInputMethodContext","documentMode","handler","onKeyPress","useLayoutEffect","getLinkWithParams","config","_config$queryParams","anchor","paramKey","buildEventData","trackEvent","LOGGER_NAME","SOLUTIONS","NAV","BI_MARKETPLACE_MODAL","ActionFlowLogger","registerActionKey","handlerName","logger","createLogger","removeSpaces","getLoggedModuleType","moduleType","getLinkGenerator","PropTypes","ut_source2","ut_source3","conf","utSource3sub","utCtaText","ut_ctatext","linkConfig","loggerName","moduleTitle","dest","moduleSubType","button","module_subtype","MENU","MORE_RESOURCES","listenerArgs","pageYOffset","addEventListener","removeEventListener","getLogger","marketResearchSolutions","homeLink","solutions","globalSurveyPanel","expertSolutions","services","moreResources","audienceTargeting","dataQuality","budgetingOptions","guidesAndCaseStudies","getADemo","getLink","menuItems","logging","linkPropType","productPropType","priority","products","isRequired","useCursor","cursorPos","clientX","clientY","isCursorOverElement","rect","getBoundingClientRect","isInBound","getLinkTestId","ExpandableMenu","isOpen","boundingElementId","getText","textClasses","getClickHandlers","interactive","TEST_ID","NavForDesktop","openMenu","setOpenMenu","scrolledToTop","setScrolledToTop","useIsomorphicLayoutEffect","addScrollListener","isAtTop","classes","mrxLogoLight","mrxLogoDark","buttonColor","buttonVariant","buttonClass","textVariant","MENU_CONFIG","NavForTablet","setIsOpen","useLight","chevronColor","scrollPosRef","isScrolledToTop","NavForIE","removeListener","removeScrollListener","DesktopNav","MobileNav","MRXNav","mobileOpen","setMobileOpen","_setOpenMenu","menu","MRXPage","previewImageHref","canonicalLink","requestUrl","mobileNavOpen","_setMobileNavOpen","scrollPosition","mPreviewImageHref","isMRX","property","setMobileNavOpen","previewImage","subtitle","MRXHeader","isIE","VECTOR","UP","DOWN","RIGHT","LEFT","getSwipeVectorFromPoints","start","end","vector","vectorDeg","convertToAbsoluteAngle","quadrant","isUpperHemisphere","isLeftHemisphere","getQuadrant","atan","PI","getDistanceBetweenPoints","trunc","sqrt","Carousel","currentOffset","setCurrentOffset","touchDownPosition","onTouchStart","touches","onTouchEnd","pos","changedTouches","hasSwipedLeft","touchStartPos","touchEndPos","hasSwipedRight","Children","child","idx","isFocused","myOffset","timeout","getOffsetTop","offsetParent","offsetTop","scrollToElement","clearTimeout","offset","focus","Anchor","hash","hashId","slice","ProductTile","ctaButton","outerClasses","ProductCategory","first","product","description1","description2","learnMore","getBodySection","HereToHelp","expertsImage","BREAK_POINT","MD","LG","XL","SCREEN","MOBILE","TABLET","MOBILE_TABLET","SMALL_DESKTOP","LARGE_DESKTOP","DESKTOP","CustomScreen","screen","matchMedia","matches","setMatches","doesMatch","propTypes","useBig","getImage","_getImage","imgName","UsedInOrgs","logos","setLogos","screenSize","setScreenSize","getLocalizedLogos","FILTERS","filterValues","prod","productCategory","filterProducts","filterParams","filterKey","SynchronousQueryStream","apolloClient","actions","client","resolveToContext","ctx","resolveQueryResultToContext","peek","startIdx","catchHandlers","range","collect","handled","j","catchHandler","audiencePanel","audiencePanelDescription","expertSolutionsDescription","getStarted","contactUs","tryItNow","surveyMonkeyAudience","surveyMonkeyAudienceDescription","biLogger","getAudienceCategory","ctaCopy","audienceImage","click","MRX","productCategories","searchParams","validFilterKeys","getFilterParamsFromUrlLocation","mProductCategories","orderedCategories","keyA","keyB","priorityA","priorityB","pcKey","FETCH_STATE","LOADING","IDLE","Wrapper","useIntercom","ctmProducts","fetchState","setFetchState","inner","pageLoad","modulesQuery","userQuery","modules","hasPurchasedModule","preferences","mapModules","subtype","marketingPage","FiveHundredError","withApollo","CreateWizardConfigContext","CreateWizardConfigContextProvider","createWizardConfig","defaultConfig","_setCreateWizardConfig","setCreateWizardConfig","newCreateWizardConfig","SINGLE_CHOICE","DROPDOWN","MULTIPLE_CHOICE","SINGLE_TEXTBOX","COMMENT_BOX","STAR_RATING","SLIDER","MULTI_CHOICE_QUESTIONS","NON_MULTI_CHOICE_QUESTIONS","DEFAULT_POLL_QUESTION_TYPES","ChoiceOptions","questionAnswersLength","moveAnswer","deleteAnswer","IconArrowUp","IconArrowDown","IconX","SurveyChoice","readOnlySurvey","questionId","answersLength","answerValue","handleAnswerChange","QuizChoice","answer","handleScoreChange","score","MultipleChoice","question","surveyType","updateQuestion","maxAnsChoices","currentQuestion","cloneDeep","answers","down","splice","val","addAnswer","IconPlusCircle","questionType","min","max","allowComments","isNew","isUpdated","defaultPollQuestionConfig","forTypes","maxOptions","customConfigs","hideRequired","defaultSurveyQuestionConfig","getQuestionConfigs","configs","questionArray","disabledQuestionTypes","questionConfigOverride","getDefaultQuestionConfig","enabledQuestionTypes","sendMessage","msg","postMessage","ACTION_TYPES","PREVIEW","READ_ONLY","NO_CHANGE","UPDATE","SAVE","CANCEL","BACK","isQuestionInvalid","validateQuestionType","validateMultipleChoiceQuestionType","validateSliderQuestionType","minmaxid","createNewQuestion","Date","getUTCMilliseconds","mapAnswersFromAPI","apiQuestion","family","choices","choice","quiz_options","mapQuestionTypeFromAPI","displayOptions","singleChoiceSubType","display_type","display_subtype","mapQuestionToAPI","isQuiz","originalQuestionFromApi","familySubType","mapQuestionTypeToAPI","headings","layout","handleRequired","updatedQuestion","mapAnswersToAPI","mappedAnwers","visible","rows","handleStarQuestionType","display_options","forced_ranking","handleSliderQuestionType","right_label","custom_options","starting_position","step_size","left_label","validation","sum_text","scoring_enabled","feedback","correct_text","incorrect_text","getInputConfig","survey","maxQuestions","maxQuestionsBasic","selectedType","showBadge","sendPayloadOnAllUpdates","hideCreateSurveyButton","hideCancelSurveyButton","NewSurvey","primaryCtaCopy","secondaryCtaCopy","redirectToEditorPage","redirectTo","showPrimaryCtaIcon","parentDomain","questionConfig","surveyTypeSelected","defaultInputConfig","MAX_QUESTIONS","inputData","surveyDetails","setSurveyDetails","questions","setQuestions","surveyTitle","setSurveyTitle","setSurveyType","_useState11","_useState12","shouldRedirectBackToHome","setShouldRedirectBackToHome","_useState13","_useState14","redirectUrl","setRedirectUrl","isNewSurvey","edit","_useState15","_useState16","questionsFromApiMap","setQuestionsFromApiMap","_useState17","questionConfigs","_useState19","_useState20","showUnsupportedAlert","setUnsupportedAlert","loadMappedQuestionsList","surveyData","questionsList","questionsFromAPIList","q","mapQuestionFromApi","question_id","initialPosition","unsupported","newMap","iconColor","buttonTextColor","secondaryButtonColor","secondaryButtonTextColor","badgeColor","badgeTextColor","containerBackgroundColor","_style$middleContaine","middleContainerBackgroundColor","inputBackgroundColor","inputBorderColor","inputBorderHoverColor","inputBorderFocusColor","inputLabelBackgroundColor","documentElement","setProperty","_useState21","_useState22","showToast","setShowToast","_useState23","_useState24","errorText","setErrorText","_useState25","_useState27","_useState28","questionsToDelete","setQuestionsToDelete","hasErrors","questionErrors","saveSurvey","overrideAction","dataToSend","questionsToSend","buildQuestionData","mappedQuestion","changeIds","errorClass","_question","questionsTemp","foundIndex","findIndex","errOutline","moveQuestion","from","showErrors","errObj","handleUpdate","questionFromApi","questionToDelete","determineActionType","removeItem","handleSave","handleCancel","isSubmitDisabled","primaryCtaIcon","ml","pl","Alert","Badge","Select","attributes","supportedSurveyType","Option","uuid","questionID","IconMore","questionsToDeleteList","filteredQuestions","deleteQuestion","handleQuestionTypeChange","tmpQuestion","getQuestionTypes","handleQuestionChange","IconStarFilled","handleMinChange","handleMaxChange","handleRequiredChange","addQuestion","questionTitles","getElementsByClassName","Toast","onCloseToast","dismissible","ToastTitle","IconPoll","version","x1","y1","x2","y2","IconSurvey","points","IconTemplate","IconQuiz","strokeMiterlimit","shouldRedirect","setShouldRedirect","showCreatePollCard","setShowCreatePollCard","showCreateSurveyCard","setShowCreateSurveyCard","showStartFromTemplateCard","setShowStartFromTemplateCard","showCreateQuizCard","setShowCreateQuizCard","customStylings","setCustomStylings","onMessageReceivedFromIframe","parse","Templates","templatesList","badgeTextTransform","handleBackToHome","template","handleTemplateSelect","DEFAULT_STYLES","DEFAULT_CREATE_WIZARD_CONFIG","CreateWizardRouter","updateCreateWizardConfig","newConfigs","NewSurveyPage","TemplatesPage","makeLinksStatic","linkHref","getAttribute","linkElement","targetSubdomain","DeveloperWebNavHeaderDesktop","class","DeveloperWebNavHeaderMobile","headerItem","DeveloperWebNavHeader","portedPages","headerPlaceholderSabeus","headerPlaceholderBlack","fixLinks","getElementsByTagName","headerLink","headerLinkHref","postRenderHeader","setPostRenderHeader","mobileButtons","mobileButton","fixSubdomainLinks","fixAccountLinks","tryAttachCount","attachAccountAction","setInterval","accountButton","clearInterval","DeveloperWebBasePage","footer","postRenderFooter","setPostRenderFooter","staticFooter","fixLanguagerDropdown","languageButton","languageMenuItems","targetUrl","setTargetUrl","developerEUSubdomain","developerSubdomain","prependUrl","prependStatic","developerApplications","_data$developerApplic","_data$developerApplic2","mx","Docs","frameRef","addEu","comOrCa","query_string","pushState","newurl","protocol","host","frameBorder","ref","AppTable","privateTable","planLabel","user_data","col1","col2","col3","firstCol","secondCol","Table","renderSection1","renderSection2","renderSection3","renderSection4","renderSection5","renderSection6","renderSection7","renderSection8","renderSection9","renderSection10","renderSection11","renderSection12","TOU","renderAppChecklist","renderAPIChecklist","IconCheckCircle","BuildAPrivateApp","IconFolderUser","IconChartSegment","renderListingChecklist","BuildAPublicApp","IconLogoOutlook","IconListChecks","DeveloperWebRouter","DocsPage","FAQPage","TOUPage","BuildAPrivateAppPage","BuildAPublicAppPage","App","Pricing","AppsDirectory","MRXSolutions","CreateWizard","DeveloperWeb","allClientStaticData","pageRequestId","_allClientStaticData$","appVersion","graphQLUri","_allClientStaticData$2","gql","_allClientStaticData$4","gqlCache","initializeClientErrorHandler","localeMessages","createBrowserApolloClient","uri","cacheHydration","fragmentMatcherFn","getGraphQLFragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","linkOptions","batchInterval","metadata","availableLoggedOutPaths","globalTheme","merge","getPricingTheme","rendered","messages","GlobalThemeProvider","FallbackComponent","HelmetProvider","ApolloProvider","BrowserRouter","StaticProvider","L10nProvider","localeCode","ContentWebApp","all","appMessages","webassetsMessages","finally","innerHTML","hydrate","doc","loc","collectFragmentReferences","node","refs","selectionSet","selections","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","extractReferences","Set","oneQuery","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","jsdom"],"sourceRoot":""}