@clickview/lite 0.52.5-rc.2 → 0.52.5-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{1329-9abd7031af-lite.chunk.js → 1329-d48379c043-lite.chunk.js} +3 -3
  3. package/dist/scripts/1329-d48379c043-lite.chunk.js.map +1 -0
  4. package/dist/scripts/{2676-05aaf9a93a-lite.chunk.js → 2676-a4c770b74a-lite.chunk.js} +3 -3
  5. package/dist/scripts/2676-a4c770b74a-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{3093-17f99fa638-lite.chunk.js → 3093-fdb61ccf08-lite.chunk.js} +2 -2
  7. package/dist/scripts/{3093-17f99fa638-lite.chunk.js.map → 3093-fdb61ccf08-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/{338-11f04732e5-lite.chunk.js → 338-3abba340df-lite.chunk.js} +3 -3
  9. package/dist/scripts/338-3abba340df-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{6102-01c59f900c-lite.chunk.js → 6102-ca7a024369-lite.chunk.js} +3 -3
  11. package/dist/scripts/{6102-01c59f900c-lite.chunk.js.map → 6102-ca7a024369-lite.chunk.js.map} +1 -1
  12. package/dist/scripts/{6480-2ee0d11dc5-lite.chunk.js → 6480-02d62e92b1-lite.chunk.js} +2 -2
  13. package/dist/scripts/6480-02d62e92b1-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{bundle-f5457849d4.min.js → bundle-b3f8f61cd6.min.js} +3 -3
  15. package/dist/scripts/bundle-b3f8f61cd6.min.js.map +1 -0
  16. package/package.json +1 -1
  17. package/dist/scripts/1329-9abd7031af-lite.chunk.js.map +0 -1
  18. package/dist/scripts/2676-05aaf9a93a-lite.chunk.js.map +0 -1
  19. package/dist/scripts/338-11f04732e5-lite.chunk.js.map +0 -1
  20. package/dist/scripts/6480-2ee0d11dc5-lite.chunk.js.map +0 -1
  21. package/dist/scripts/bundle-f5457849d4.min.js.map +0 -1
  22. /package/dist/scripts/{1329-9abd7031af-lite.chunk.js.LICENSE.txt → 1329-d48379c043-lite.chunk.js.LICENSE.txt} +0 -0
  23. /package/dist/scripts/{2676-05aaf9a93a-lite.chunk.js.LICENSE.txt → 2676-a4c770b74a-lite.chunk.js.LICENSE.txt} +0 -0
  24. /package/dist/scripts/{338-11f04732e5-lite.chunk.js.LICENSE.txt → 338-3abba340df-lite.chunk.js.LICENSE.txt} +0 -0
  25. /package/dist/scripts/{6102-01c59f900c-lite.chunk.js.LICENSE.txt → 6102-ca7a024369-lite.chunk.js.LICENSE.txt} +0 -0
  26. /package/dist/scripts/{bundle-f5457849d4.min.js.LICENSE.txt → bundle-b3f8f61cd6.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/6480-2ee0d11dc5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/general/existing-account-sign-in/ExistingAccountSignIn.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/onboarding-footer.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/OnboardingFooter.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-grid/SubjectPreferenceGrid.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-item/SubjectPreferenceItem.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx","file:///app/packages/libs/shared/src/apps/subjects/contexts/TopicPreferencesContext.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/views/welcome-popup/welcome-popup.scss","file:///app/packages/projects/lite/src/shared/views/welcome-popup/WelcomePopupView.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-grid/subject-preference-grid.scss"],"sourcesContent":["import React from 'react';\n\ninterface ExistingAccountSignInProps {\n onClick: (e: React.MouseEvent<Element, MouseEvent>) => void;\n link: string;\n}\n\nexport function ExistingAccountSignIn(props: ExistingAccountSignInProps): JSX.Element {\n return (\n <>\n Have a ClickView account already?\n <a href={props.link} className='info-link ms-1' onClick={props.onClick}>\n Sign in\n </a>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyFooter\":\"rIUL4\",\"nonStickyFooter\":\"PuC_F\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nimport styles from './onboarding-footer.scss';\n\nconst SCROLL_TOLERANCE = 50; // value in px\n\ninterface OnboardingFooterProps extends React.PropsWithChildren<unknown> {\n justify?: 'end' | 'center' | 'between';\n}\n\nOnboardingFooter.defaultProps = {\n justify: 'between'\n};\n\nfunction StickyFooter(props: OnboardingFooterProps): JSX.Element {\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`py-3 bg-white ${styles.stickyFooter}`}>\n <div className={`w-75 mx-auto d-flex ${justifyClass}`}>\n {props.children}\n </div>\n </div>\n );\n}\n\nfunction NonStickyFooter(props: OnboardingFooterProps): JSX.Element {\n const mediaQuery = useGetMediaQueryString();\n const widthClass = (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS) ? 'w-100' : 'w-75';\n\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`${widthClass} ${justifyClass} ${styles.nonStickyFooter} d-flex px-3`}>\n {props.children}\n </div>\n );\n}\n\nexport function OnboardingFooter(props: OnboardingFooterProps): JSX.Element {\n const isScrolledToBottom = () => {\n return (window.innerHeight + window.scrollY) >= (document.body.offsetHeight - SCROLL_TOLERANCE);\n };\n\n const [ isSticky, setIsSticky ] = React.useState(false);\n\n React.useEffect(() => setIsSticky(!isScrolledToBottom()), []);\n\n function onViewportChange(): void {\n const shouldSetToSticky = !isScrolledToBottom();\n\n if (isSticky && !shouldSetToSticky) {\n setIsSticky(false);\n return;\n }\n\n if (!isSticky && shouldSetToSticky)\n setIsSticky(true);\n }\n\n const throttledOnViewportChange = FunctionHelper.throttle(onViewportChange, 100);\n\n React.useEffect(() => {\n window.addEventListener('scroll', throttledOnViewportChange);\n return () => window.removeEventListener('scroll', throttledOnViewportChange);\n }, [ isSticky, setIsSticky ]);\n\n useResizeListener(throttledOnViewportChange, throttledOnViewportChange, [ isSticky, setIsSticky ]);\n\n return isSticky\n ? <StickyFooter {...props}>{props.children}</StickyFooter>\n : <NonStickyFooter {...props}>{props.children}</NonStickyFooter>;\n}","import * as React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SubjectPreferenceItem } from 'libs/shared/apps/subjects/components/preferences';\nimport { TopicPreferencesContext } from 'libs/shared/apps/subjects/contexts/TopicPreferencesContext';\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport styles from './subject-preference-grid.scss';\n\nfunction useGetRowItemCapacity(): number {\n const viewportWidth = useGetMediaQueryString();\n\n switch (viewportWidth) {\n case MediaQueryStrings.LG:\n default:\n return 5;\n\n case MediaQueryStrings.MD:\n return 4;\n\n case MediaQueryStrings.SM:\n return 3;\n\n case MediaQueryStrings.XS:\n return 2;\n }\n}\n\nfunction isDisabled(subject: ClassificationPreference, expandedSubject: ClassificationPreference): boolean {\n if (!expandedSubject || subject.id === expandedSubject.id)\n return false;\n\n if (expandedSubject.children.find(child => child.id === subject.id))\n return false;\n\n return true;\n}\n\ninterface SubjectPreferenceGridRowProps extends SubjectPreferenceGridProps {}\n\nfunction SubjectPreferenceGridRow(props: SubjectPreferenceGridRowProps): JSX.Element {\n const { expandedSubject, selectedSubjects: selections } = React.useContext(TopicPreferencesContext);\n\n return (\n <>\n {props.subjects.map(subject => {\n const itemDisabled = isDisabled(subject, expandedSubject);\n\n let clickHandler = props.onSelect;\n\n if (subject.isExpandableOption)\n clickHandler = props.onExpand;\n\n if (itemDisabled)\n clickHandler = props.onCollapse;\n\n if (props.hasSelectedBulk)\n clickHandler = () => {};\n\n return (\n <SubjectPreferenceItem\n key={subject.id}\n subject={subject}\n selected={!props.hasSelectedBulk && selections.includes(subject.id)}\n disabled={props.hasSelectedBulk || itemDisabled}\n onClick={() => clickHandler(subject)}\n hasSelectedBulk={props.hasSelectedBulk}\n />\n );\n })}\n </>\n );\n}\n\ninterface SubjectPreferenceGridProps {\n subjects: ClassificationPreference[];\n onSelect: (subject: Classification) => void;\n onExpand: (subject: Classification) => void;\n onCollapse: (subject: Classification) => void;\n hasSelectedBulk?: boolean;\n}\n\nexport function SubjectPreferenceGrid(props: SubjectPreferenceGridProps): JSX.Element {\n const { subjects, hasSelectedBulk, ...eventHandlers } = props;\n const { expandedSubject } = React.useContext(TopicPreferencesContext);\n\n const itemsPerRow = useGetRowItemCapacity();\n\n /**\n * This is an array of arrays, where each sub-array is a row of classifications.\n * We do this to make sure any sub-grid's of child preference options get rendered in the row\n * directly beneath their parent's row.\n */\n const subjectRows = subjects.reduce((\n acc: ClassificationPreference[][],\n subject: ClassificationPreference,\n index: number\n ) => {\n index % itemsPerRow === 0\n ? acc.push([subject]) // Start a new row\n : ArrayHelper.last(acc).push(subject); // Fill up an existing row\n\n return acc;\n }, []);\n\n return (\n <ul className={styles.grid}>\n {subjectRows.map((row, i) => {\n const isExpanded = expandedSubject && !!row.find(subject => {\n return expandedSubject.id === subject.id && subject.isExpandableOption;\n });\n\n return (\n <React.Fragment key={i}>\n <SubjectPreferenceGridRow\n subjects={row}\n hasSelectedBulk={hasSelectedBulk}\n {...eventHandlers}\n />\n\n {isExpanded && (\n <li className={`${styles.subgrid} m-0`}>\n <SubjectPreferenceGrid\n subjects={expandedSubject.children as ClassificationPreference[]}\n hasSelectedBulk={hasSelectedBulk}\n {...eventHandlers}\n />\n </li>\n )}\n </React.Fragment>\n );\n })}\n </ul>\n );\n}","import * as React from 'react';\n\nimport { PreferenceItem } from 'libs/shared/apps/subjects/components/preferences/preference-item/PreferenceItem';\nimport { TopicPreferencesContext } from 'libs/shared/apps/subjects/contexts/TopicPreferencesContext';\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\ninterface SubjectPreferenceItemProps {\n subject: ClassificationPreference;\n selected: boolean;\n disabled?: boolean;\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n extraClasses?: string;\n hideStatus?: boolean;\n hasSelectedBulk?: boolean;\n}\n\nexport function SubjectPreferenceItem(props: SubjectPreferenceItemProps): JSX.Element {\n const context = React.useContext(TopicPreferencesContext);\n\n const coverUrl = props.subject.cover ? ImageHelper.createUrl(props.subject.cover.url, { size: ImageSize.Small }) : '';\n\n const childIds = props.subject.isExpandableOption ? props.subject.children.map(child => child.id) : [];\n const selectedChildCount = !props.hasSelectedBulk\n ? context?.selectedSubjects?.filter(selection => childIds.includes(selection)).length\n : 0;\n\n const component = (\n <PreferenceItem\n name={props.subject.name}\n imageUrl={coverUrl}\n onClick={props.onClick}\n isSelected={props.selected}\n isDisabled={props.disabled}\n isExpandable={props.subject.isExpandableOption}\n expand={context?.expandedSubject?.id === props.subject.id}\n selectedChildCount={selectedChildCount}\n extraClasses={props.extraClasses}\n hideStatus={props.hideStatus}\n />\n );\n\n return props.disabled\n ? <span>{component}</span>\n : <Tooltip title={props.subject.name}><span>{component}</span></Tooltip>;\n}","// extracted by mini-css-extract-plugin\nexport default {\"preferenceItem\":\"PSWHa\",\"expandCaret\":\"CCsqs\",\"up\":\"w7N1R\",\"down\":\"mO0Kn\",\"disabled\":\"Oyw2x\",\"selected\":\"Czk2N\",\"noBorder\":\"_e7oe\",\"textBox\":\"pfksF\",\"itemStatus\":\"H4u81\",\"unchecked\":\"iYkPv\",\"green\":\"w5g0e\"};","import * as React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './preference-item.scss';\n\ninterface ExpandableItemStatusProps {\n selectedChildrenCount: number;\n}\n\nexport const ExpandableItemStatus = (props: ExpandableItemStatusProps): JSX.Element => {\n if (!props.selectedChildrenCount)\n return <></>;\n\n return (\n <div className={`${styles.itemStatus} ${styles.green}`}>\n {props.selectedChildrenCount}\n </div>\n );\n};\n\ninterface SelectableItemStatusProps {\n selected: boolean;\n radioButton?: boolean;\n}\n\nexport const SelectableItemStatus = (props: SelectableItemStatusProps): JSX.Element => {\n let svg;\n\n if (props.selected)\n svg = <SvgContainer svgName={cvSvgLibrary.Check} />;\n else if (!props.radioButton)\n svg = <SvgContainer svgName={cvSvgLibrary.Plus} />;\n else\n svg = <>&nbsp;</>;\n\n return (\n <div className={`${styles.itemStatus} ${props.selected ? styles.green : styles.unchecked}`}>\n {svg}\n </div>\n );\n};\n","import React from 'react';\n\nimport { ExpandableItemStatus, SelectableItemStatus } from './PreferenceItemStatus';\n\nimport styles from './preference-item.scss';\n\ninterface PreferenceItemProps {\n name: string;\n imageUrl: string;\n\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n isDisabled?: boolean;\n isSelected: boolean;\n hideStatus?: boolean;\n radioButton?: boolean;\n\n isExpandable?: boolean;\n expand?: boolean;\n selectedChildCount?: number;\n\n extraClasses?: string;\n}\n\nexport function PreferenceItem(props: PreferenceItemProps): JSX.Element {\n function getContainerClass(): string {\n let baseClass = `rounded-3 ${styles.preferenceItem}`;\n\n if (props.extraClasses)\n baseClass += ' ' + props.extraClasses;\n\n if (props.isDisabled)\n baseClass += ' ' + styles.disabled;\n\n if (props.isSelected && !props.isExpandable)\n baseClass += ' ' + styles.selected;\n\n if (props.hideStatus)\n baseClass += ' ' + styles.noBorder;\n\n return baseClass;\n }\n\n const caretClass = `${styles.expandCaret} ${props.expand ? styles.up : styles.down}`;\n\n return (\n <li\n className={getContainerClass()}\n onClick={props.onClick}\n aria-checked={props.isSelected}\n aria-haspopup={props.isExpandable}\n role={props.isExpandable ? 'button' : 'checkbox'}\n style={{ backgroundImage: `url(${props.imageUrl})` }}\n tabIndex={0}\n title={props.name}\n >\n <div className={`${styles.textBox} p-2`}>\n <p className='text-truncate mb-0'>\n {props.name}\n <span className={props.isExpandable ? caretClass : ''} />\n </p>\n\n {!props.hideStatus && (\n <>{props.isExpandable\n ? <ExpandableItemStatus selectedChildrenCount={props.selectedChildCount} />\n : <SelectableItemStatus selected={props.isSelected} radioButton={props.radioButton} />\n }</>\n )}\n </div>\n </li>\n );\n}","import { createContext } from 'react';\n\nimport { ClassificationPreference } from '../interfaces/ClassificationPreference';\n\ninterface TopicPreferencesContextFields {\n selectedSubjects: string[];\n expandedSubject: ClassificationPreference;\n}\n\nexport const TopicPreferencesContext = createContext<TopicPreferencesContextFields>(undefined);","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","// extracted by mini-css-extract-plugin\nexport default {\"preferenceList\":\"oHNZN\",\"preferenceItem\":\"olBqT\",\"largePopup\":\"x3Oot\",\"selectPresentation\":\"b2r5s\",\"switchPresentation\":\"NIIWc\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { ClickDescriptor, EntityType, EventVersion, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ExistingAccountSignIn } from 'libs/shared/apps/sign-up/components/general/existing-account-sign-in/ExistingAccountSignIn';\nimport { PreferenceItem } from 'libs/shared/apps/subjects/components/preferences';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { TopicsConstants } from 'libs/shared/constants/TopicsConstants';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nimport styles from './welcome-popup.scss';\n\nconst namespace = 'settings.welcomePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst PRESERVE_APPLINK_REDIRECTION: HashObject = [\n { application: AppChannels.CONTENT_UPDATES, action: Actions.ContentUpdates.CONTENT_UPDATES },\n { application: AppChannels.MOVIES_AND_TV, action: Actions.MoviesAndTv.HOME }\n].reduce((prev: HashObject, currentAppLink: Core.AppLink) => {\n prev[AppLinkHelper.getAppLinkString(currentAppLink)] = true;\n return prev;\n}, {});\n \ninterface WelcomePopupViewProps {\n closePopup: () => void;\n}\n\nexport function WelcomePopupView(props: WelcomePopupViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState<boolean>(false);\n const [ selectedPresentation, setSelectedPresentation ] = React.useState<Presentation>();\n\n const isMobile = useMediaQuery(MediaQueryStrings.SMDown);\n const alerts = useAlerts();\n\n const {\n availablePresentations,\n setPresentation,\n hasPresentationsLoaded\n } = usePresentation();\n\n const canSelectPresentation = availablePresentations?.length >= TopicsConstants.MULTI_PRESENTATION_THRESHOLD;\n\n function onSuccess(): void {\n AnalyticsHelper.logUserAction(\n { id: selectedPresentation.id },\n {\n actionType: UserAction.Click,\n entity: EntityType.Presentation,\n location: LocationContext.WelcomePopup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: ClickDescriptor.Button,\n eventVersion: EventVersion.V3\n }\n );\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n /**\n * When accessing a top-level landing page that can have multiple alternates depending on the school\n * level, we'll redirect the user to the appropriate page once they've nomnated their school-level\n * preference. In all other cases we'll default to redirecting to Discover.\n */\n if (PRESERVE_APPLINK_REDIRECTION[AppLinkHelper.getAppLinkString(currentAppLink)]) {\n Core.AppLinkHelper.trigger(currentAppLink, { replace: true });\n } else {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n });\n }\n\n setShowSpinner(false);\n props.closePopup();\n }\n\n function onError(): void {\n setShowSpinner(false);\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n function onClick(): Promise<void> {\n setShowSpinner(true);\n \n return setPresentation(selectedPresentation, 'activeAndPreferred')\n .then(onSuccess)\n .catch(onError);\n }\n\n function isDisabled(): boolean {\n if (!canSelectPresentation)\n return false;\n\n return !selectedPresentation;\n }\n\n function onClickSignIn(): void {\n AnalyticsHelper.logUserAction(\n {\n url: Core.AppLinkHelper.getHref({\n application: AppChannels.DEFAULT,\n action: Actions.Default.LOG_IN\n })\n },\n {\n actionType: UserAction.Click,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.SignIn,\n location: LocationContext.WelcomePopup\n }\n );\n }\n\n function getPopupSize(): 'md' | 'lg'| 'sm' {\n if (isMobile)\n return 'sm';\n\n if (availablePresentations?.length > 2)\n return 'lg';\n\n return 'md';\n }\n\n /**\n * If there's only one presentation, we still need to set it in\n * LocalStorage for public users. This is to ensure that they're not displayed\n * the popup each and every time.\n */\n React.useEffect(() => {\n if (!hasPresentationsLoaded || canSelectPresentation)\n return;\n\n setSelectedPresentation(ArrayHelper.first(availablePresentations));\n }, [ canSelectPresentation, hasPresentationsLoaded ]);\n\n const Buttons = () => (\n <PopupButtons>\n <PopupButtons.Submit\n variant='dark'\n onClick={onClick}\n text={getPhrase('cta')}\n showSpinner={showSpinner}\n disabled={isDisabled()}\n className='mx-auto'\n />\n </PopupButtons>\n );\n\n const LoginLink = () => (\n <ExistingAccountSignIn\n link={Core.AppLinkHelper.getHref({ application: AppChannels.DEFAULT, action: Actions.Default.LOG_IN })}\n onClick={onClickSignIn}\n />\n );\n\n const SinglePresentationContent = () => (\n <div className={`${styles.selectPresentation}`}>\n <div className='d-block mx-auto p-4'>\n <img\n src={ImageUrls.SignUp.UPGRADE}\n className='img-fluid'\n alt=''\n />\n </div>\n <h2 className='h4 text-center'>\n <Text\n namespace={namespace}\n phrase='infoPrimary'\n />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='infoSecondary' />\n </p>\n <div className='mt-3'>\n <Buttons />\n </div>\n <LoginLink />\n </div>\n );\n\n const MultiPresentationContent = () => (\n <div className={`${styles.selectPresentation}`}>\n <h2 className='h4 text-center'>\n <Text\n namespace={namespace}\n phrase='infoPrimary'\n />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='infoSecondaryMulti' />\n </p>\n <div className='position-relative'>\n <ul className={`list-unstyled d-flex ${styles.preferenceList}`}>\n {availablePresentations?.map((presentation: Presentation) => {\n if (presentation.type !== PresentationType.Subject)\n return <React.Fragment key={presentation.id}></React.Fragment>;\n\n return (\n <PreferenceItem\n key={presentation.id}\n name={presentation.name}\n imageUrl={ImageHelper.createUrl(presentation.cover?.url, { size: ImageSize.Medium }) || ''}\n onClick={() => setSelectedPresentation(presentation)}\n isSelected={selectedPresentation?.id === presentation.id}\n extraClasses={`${styles.preferenceItem} m-2`}\n radioButton\n />\n );\n })}\n </ul>\n </div>\n <Buttons />\n <LoginLink />\n </div>\n );\n\n if (!hasPresentationsLoaded)\n return <></>;\n\n return (\n <Popup\n title={getPhrase('title')}\n size={getPopupSize()}\n closeButton={!canSelectPresentation}\n closePopup={props.closePopup}\n backdrop={canSelectPresentation ? 'static' : true}\n dialogClassName={SeoConstants.WELCOME_POPUP_SELECTOR}\n centered\n >\n {canSelectPresentation\n ? <MultiPresentationContent />\n : <SinglePresentationContent />\n }\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"grid\":\"X9r1Y\",\"subgrid\":\"TgYhp\"};"],"names":["ExistingAccountSignIn","props","href","link","className","onClick","SCROLL_TOLERANCE","StickyFooter","justifyClass","justify","children","NonStickyFooter","mediaQuery","widthClass","OnboardingFooter","isScrolledToBottom","window","innerHeight","scrollY","document","body","offsetHeight","isSticky","setIsSticky","throttledOnViewportChange","FunctionHelper","shouldSetToSticky","addEventListener","removeEventListener","defaultProps","SubjectPreferenceGridRow","TopicPreferencesContext","expandedSubject","selections","selectedSubjects","subjects","map","subject","itemDisabled","id","find","child","isDisabled","clickHandler","onSelect","isExpandableOption","onExpand","onCollapse","hasSelectedBulk","SubjectPreferenceItem","key","selected","includes","disabled","SubjectPreferenceGrid","eventHandlers","itemsPerRow","useGetRowItemCapacity","subjectRows","reduce","acc","index","push","ArrayHelper","row","i","isExpanded","context","coverUrl","cover","ImageHelper","url","size","childIds","selectedChildCount","filter","selection","length","component","PreferenceItem","name","imageUrl","isSelected","isExpandable","expand","extraClasses","hideStatus","Tooltip","title","ExpandableItemStatus","selectedChildrenCount","SelectableItemStatus","svg","SvgContainer","svgName","radioButton","baseClass","caretClass","role","style","backgroundImage","tabIndex","createContext","undefined","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","namespace","getPhrase","LanguageService","PRESERVE_APPLINK_REDIRECTION","application","action","prev","currentAppLink","WelcomePopupView","showSpinner","setShowSpinner","selectedPresentation","setSelectedPresentation","isMobile","alerts","usePresentation","availablePresentations","setPresentation","hasPresentationsLoaded","canSelectPresentation","TopicsConstants","onSuccess","AnalyticsHelper","actionType","entity","location","workflowPhase","descriptor","eventVersion","ContextService","appLink","replace","closePopup","onError","error","then","onClickSignIn","Buttons","PopupButtons","variant","text","LoginLink","Popup","closeButton","backdrop","dialogClassName","SeoConstants","centered","Text","phrase","presentation","type","PresentationType","src","ImageUrls","alt"],"sourceRoot":""}