@clickview/lite 0.70.1 → 0.70.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/scripts/{6741-ba643a0c99-lite.chunk.js → 6741-e8e1b0c2ea-lite.chunk.js} +3 -3
- package/dist/scripts/6741-e8e1b0c2ea-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-33a320fc18.min.js +3 -0
- package/dist/scripts/{bundle-9b6a8b85ca.min.js.map → bundle-33a320fc18.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/6741-ba643a0c99-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-9b6a8b85ca.min.js +0 -3
- /package/dist/scripts/{6741-ba643a0c99-lite.chunk.js.LICENSE.txt → 6741-e8e1b0c2ea-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-9b6a8b85ca.min.js.LICENSE.txt → bundle-33a320fc18.min.js.LICENSE.txt} +0 -0
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/6741-ba643a0c99-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/apps/upload/utils/FileExtensionsHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/FeedbackType.ts","file:///app/packages/libs/shared/src/flight-requests/FeedbackRequests.ts","file:///app/packages/libs/shared/src/utils/FeedbackFormHelper.ts","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/empty-state/DiscoverDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/DiscoverDashboard.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/CuratedDiscoverView.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts","file:///app/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center mx-n3'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import * as _ from 'underscore';\n\n/**\n * This are kept as separate variables for when we eventually need a single group of them.\n * For example when we add image upload support.\n */\n\nconst pdfExtensions = ['pdf'];\nconst docExtensions = [ 'doc', 'docx', 'dotx', 'dot', 'rtf', 'docm', 'odt' ];\nconst textExtensions = [ 'csv', 'txt' ];\nconst excelExtensions = [ 'xls', 'xlt', 'xlsx' ];\nconst imageExtensions = [ 'jpg', 'tif', 'png', 'bmp', 'gif', 'jpeg' ];\nconst videoMimeType = 'video/*';\nconst archiveExtensions = [ 'zip', 'rar' ];\nconst powerPointExtensions = [ 'ppt', 'pot', 'pps', 'pptx' ];\n\nconst subtitleExtensions = ['srt'];\n\nconst FileExtensions = {\n IMAGES: `.${imageExtensions.join(',.')}`,\n VIDEO: videoMimeType,\n MIXED_MEDIA: `.${imageExtensions.join(',.')},${videoMimeType}`,\n RESOURCES: `.${[\n ...docExtensions,\n ...excelExtensions,\n ...powerPointExtensions,\n ...pdfExtensions,\n ...textExtensions,\n ...imageExtensions,\n ...archiveExtensions\n ].join(',.')}`,\n SUBTITLES: `.${subtitleExtensions.join(',.')}`\n};\n\nconst FileExtensionHelper = {\n getResourceType(extension: string): string {\n const ext = extension.toLowerCase();\n\n if (_.contains(docExtensions, ext)) return 'document';\n if (_.contains(excelExtensions, ext)) return 'excel';\n if (_.contains(powerPointExtensions, ext)) return 'powerpoint';\n if (_.contains(pdfExtensions, ext)) return 'pdf';\n\n if (_.contains(textExtensions, ext)) return 'text';\n if (_.contains(imageExtensions, ext)) return 'image';\n if (_.contains(archiveExtensions, ext)) return 'archive';\n if (_.contains(subtitleExtensions, ext)) return 'subtitle';\n\n return '';\n }\n};\n\nexport { FileExtensions, FileExtensionHelper };","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export enum FeedbackType {\n Other,\n SuggestImprovement,\n ReportBug,\n RequestVideo,\n RaiseIssue,\n GivePraise,\n Footer,\n RequestLivestream\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { FeedbackFormRequest } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackRequests = {\n submitFeedback(requestData: FeedbackFormRequest, formValues: Record<string, string>): Flight.Request {\n return {\n url: '{gateway}/v1/feedback',\n key: 'submit:feedback',\n type: HttpVerbs.POST,\n data: {\n ...requestData,\n ...formValues\n }\n };\n }\n};","import Dropzone from 'dropzone';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { CurrentUser, Customer } from 'libs/shared/interfaces';\nimport { FeedbackUserDetails } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackFormHelper = {\n getUserInfo: (\n currentUser: CurrentUser,\n customer: Customer\n ): FeedbackUserDetails => {\n return {\n id: currentUser.id,\n username: currentUser.username,\n email: currentUser.email,\n userType: currentUser.role === UserRole.Admin ? 'Admin' : 'Staff',\n customerId: currentUser.customerId,\n cvcId: customer.crmId,\n customerName: customer.name,\n instanceRegion: currentUser.instanceRegion,\n contentRegion: currentUser.contentRegion,\n firstName: currentUser.givenName,\n lastName: currentUser.familyName\n };\n },\n\n mapInstanceRegionToTag: (instanceRegion: InstanceRegion): string => {\n switch (instanceRegion) {\n case InstanceRegion.AU:\n return 'au';\n case InstanceRegion.NZ:\n return 'nz';\n case InstanceRegion.UK:\n return 'uk';\n case InstanceRegion.US:\n return 'us';\n }\n },\n\n getTags: (currentUser: CurrentUser, product: ProductId, hasStudentExperience: boolean, extraTags: string[]) => {\n const tags = [\n product,\n ...extraTags\n ];\n\n tags.push(hasStudentExperience ? 'student' : 'staff');\n \n if (currentUser.role === UserRole.Admin)\n tags.push('administrator');\n \n const regionTag = FeedbackFormHelper.mapInstanceRegionToTag(currentUser.instanceRegion);\n \n if (regionTag)\n tags.push(regionTag);\n\n return tags;\n },\n\n categorizeFiles(files: UploadItem[]) {\n return files.reduce((result, file) => {\n const fileInfo = file.get('fileInfo');\n if (Dropzone.isValidFile(file.get('file'), FileExtensions.VIDEO)) {\n result.videoUrls.push(fileInfo?.url);\n } else {\n result.imageUrls.push(fileInfo?.url);\n }\n return result;\n }, {\n imageUrls: [],\n videoUrls: []\n });\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'subjects.discoverDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface DiscoverDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function DiscoverDashboardEmptyState(props: DiscoverDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { DiscoverHeader, DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { AllDiscoverWidgetTemplates, WidgetImageUrls } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { SettingsHash } from 'libs/shared/hooks/useSettings';\nimport { CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, Presentation, PresentationAudience, WidgetPreference } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { DiscoverDashboardEmptyState } from './empty-state/DiscoverDashboardEmptyState';\n\nexport interface DiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => Flight.Request;\n audiences: PresentationAudience[];\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n emptyImageUrl?: string;\n presentation: Presentation;\n widgetAppLinks?: AllDiscoverWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\n headerAppLinks?: DiscoverHeaderAppLinks;\n scrollToWidgetId?: string;\n updatePreferences?: (\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ) => Promise<void>;\n onSubmitFeedback?: (feedback: DashboardFeedbackData) => Promise<void>;\n removeFromVideoHistory: (videoId: string, videoName: string, widgetId: string, widgetTypeId: WidgetTypeId) => void;\n isReadonly?: boolean;\n lazyLoad?: boolean;\n showCalendar: boolean;\n jobTitle: JobTitles;\n imageUrls: WidgetImageUrls\n settings: SettingsHash;\n availablePresentations: Presentation[];\n isTertiaryCustomerWithoutExchange: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function DiscoverDashboard(props: DiscoverDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template, props.presentation);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n <DiscoverHeader\n type={props.dashboard?.userType}\n appLinks={props.headerAppLinks}\n hasStudentExperience={props.hasPermissions(PermissionName.StudentExperience)}\n showCalendar={props.showCalendar}\n active='forYou'\n />\n {widgets.map((widget, idx) => {\n return (\n <WidgetContainerView\n widgetCollection={DashboardTargetType.Discover}\n key={widget.id}\n id={widget.id}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n preferences={widget.preferences}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n onSubmitFeedback={props.onSubmitFeedback}\n updatePreferences={props.updatePreferences}\n lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n jobTitle={props.jobTitle}\n isPreviewing={props.isReadonly}\n imageUrls={props.imageUrls}\n settings={{\n hasTopicDirectories: props.settings?.hasTopicDirectories,\n hasOnboardingV2: props.settings.hasOnboardingV2,\n hasCompletedOnboardingV2: props.settings.hasCompletedOnboardingV2\n }}\n availablePresentations={props.availablePresentations}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n\n // TODO: Ideally we don't have to do this\n classification={undefined}\n contentType={undefined}\n hasTableOfContents={false}\n limitTotalItems={false}\n isTertiaryCustomerWithoutExchange={props.isTertiaryCustomerWithoutExchange}\n seeMoreLink={undefined}\n onClickRemoveItem={props.removeFromVideoHistory}\n badgeComponent={null}\n />\n );\n })}\n\n {showEmptyState && (\n <DiscoverDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DiscoverDashboard } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { LibraryHelper } from 'libs/shared/apps/libraries/utils/LibraryHelper';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { FeedbackType } from 'libs/shared/enums/FeedbackType';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { FeedbackRequests } from 'libs/shared/flight-requests/FeedbackRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser, Customer, DashboardTargetType, Library, Presentation, PresentationAudience, User, WidgetPreference } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { FeedbackFormHelper } from 'libs/shared/utils/FeedbackFormHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\n\nimport { getDiscoverHeaderAppLinks, getDiscoverWidgetAppLinks } from './DiscoverViewUtils';\n\nconst namespace = 'dashboard.dashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getPhraseVariant(presentation: Presentation): string {\n const learningLevel = PresentationLearningLevel[presentation?.learningLevel];\n\n return +learningLevel === PresentationLearningLevel.Level_1\n ? 'VariantOne'\n : 'VariantTwo';\n}\n\ninterface CuratedDiscoverViewProps {\n presentationSlug?: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CuratedDiscoverView(props: CuratedDiscoverViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const user = Flight.useBasicFetch<User>(currentUser.data?.isAuthenticated && UserRequests.user(currentUser.data.id));\n const { hasLocalPermissions, hasPermissions } = usePermissions();\n const alerts = useAlerts();\n\n const customer = Flight.useBasicFetch<Customer>(\n hasLocalPermissions(LocalPermissionName.ManageDiscoverPreferences) &&\n currentUser.data?.isAuthenticated &&\n CustomerRequests.customer(currentUser.data.customerId)\n );\n\n const libraries = Flight.useBasicFetch<Library[]>(\n currentUser.data?.isAuthenticated &&\n LibraryRequests.libraries()\n );\n\n const { availablePresentations } = usePresentation();\n\n const isTertiary = useIsTertiary();\n const products = useProducts();\n\n const {\n dashboard,\n presentation,\n audiences\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Discover,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug\n });\n\n const fetchAsync = Flight.useGetFetchAsync();\n const settings = useSettings(null);\n\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.Dashboard });\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const widgetAppLinks = getDiscoverWidgetAppLinks(AudienceHelper.getAudienceParams(activeAudiences), currentUser.data);\n\n const phraseVariant = getPhraseVariant(presentation);\n\n useSetPageMetadata(PageMetadataHelper.getDiscoverMetadata({\n content: presentation,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: `pageTitle${phraseVariant}`,\n descriptionPhrase: `pageDescription${phraseVariant}`\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n presentation?.learningLevel,\n widgetAppLinks.discover\n )\n }));\n\n async function onSubmitFeedback(feedback: DashboardFeedbackData): Promise<void> {\n const promise = await fetchAsync<void>(FeedbackRequests.submitFeedback({\n type: FeedbackType.Footer,\n user: FeedbackFormHelper.getUserInfo(currentUser.data, customer.data),\n tags: FeedbackFormHelper.getTags(\n currentUser.data,\n ProductId.Primary,\n hasPermissions(PermissionName.StudentExperience),\n [ 'discover', 'in product feedback' ]\n )\n }, {\n reaction: feedback.type,\n feedback: feedback.content,\n location: 'Discover Footer',\n presentationName: presentation.description,\n presentationId: presentation.id,\n dashboardName: dashboard.data.name,\n dashboardId: dashboard.data.id,\n currentPageUrl: LocationUtils.GetCurrentUrl()\n }));\n\n AnalyticsHelper.logUserAction({\n feedbackType: feedback.type,\n content: feedback.content,\n presentationId: presentation.id,\n dashboardId: dashboard.data.id\n }, {\n actionType: UserAction.Submit,\n location: LocationContext.DiscoverFooter,\n entity: EntityType.Feedback,\n workflowPhase: WorkflowPhase.Complete\n });\n\n return promise;\n }\n\n async function removeFromVideoHistory(\n videoId: string,\n videoName: string,\n widgetId: string,\n widgetTypeId: WidgetTypeId\n ): Promise<void> {\n if (widgetTypeId !== WidgetTypeId.ContinueWatching)\n return;\n\n try {\n await fetchAsync<void>(VideoHistoryRequests.removeFromHistory(videoId, [`widget:${widgetId}`]));\n\n alerts.success(LanguageService.getPhrase(namespace, 'removeFromHistorySuccess'));\n\n AnalyticsHelper.logUserAction({\n id: videoId,\n name: videoName,\n widgetId\n }, {\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.RemoveFromWatchHistory,\n location: LocationContext.SlidingListItem\n });\n } catch {\n alerts.error(LanguageService.getPhrase(namespace, 'removeFromHistoryError', { name: videoName }));\n }\n }\n\n async function updateWidgetPreferences(\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ): Promise<void> {\n const addedSubjects = newPreferences.filter(p => {\n if (p.hidden)\n return false;\n\n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return oldPreference.hidden;\n });\n const removedSubjects = newPreferences.filter(p => {\n if (!p.hidden)\n return false;\n \n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return !oldPreference.hidden;\n });\n\n if (addedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.followSubjects(addedSubjects.map(s => s.id)));\n\n if (removedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.unfollowSubjects(removedSubjects.map(s => s.id)));\n\n return fetchAsync<void>(DashboardRequests.updateWidgetPreferences(\n widgetId,\n newPreferences.map(p => ({\n id: p.id,\n index: p.index\n })),\n currentUser.data\n ));\n }\n const { showCalendar } = useShowCalendar();\n\n return (\n <div className='bg-white px-4'>\n <DiscoverDashboard\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getDiscoverHeaderAppLinks()}\n presentation={presentation}\n getWidgetContentRequest={(\n ...args: Parameters<typeof DashboardRequests.dashboardWidgetContent>\n ) => {\n const hasTwig = LibraryHelper.hasTwig(libraries.data, currentUser.data);\n\n return DashboardRequests.discoverWidgetContent(hasTwig, ...args);\n }}\n audiences={audiences.data}\n updatePreferences={updateWidgetPreferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n onSubmitFeedback={\n hasPermissions(PermissionName.CanSubmitFeedback) &&\n onSubmitFeedback\n }\n removeFromVideoHistory={removeFromVideoHistory}\n lazyLoad={!SeoHelper.isBot()}\n showCalendar={showCalendar}\n jobTitle={user.data?.userProfile?.metadata?.jobTitle}\n imageUrls={{\n onboardingTeacherBackground: ImageUrls.OnboardingV2.Widget.TEACHER_BACKGROUND\n }}\n settings={settings}\n availablePresentations={availablePresentations}\n isTertiaryCustomerWithoutExchange={isTertiary && !products?.hasProduct(ProductId.Exchange)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverDashboardProps } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, CurrentUser, Playlist, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getOnboardingAppLinks } from 'apps/onboarding/utils/OnboardingAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst CLASSIFICATION_LATEST_RELEASES = 'classification-latest-releases';\nconst OMITTED_PARAMS = [ 'preview', 'dashboardId', 'skipPrompt' ];\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject,\n currentUser: CurrentUser\n): DiscoverDashboardProps['widgetAppLinks'] {\n return {\n classification: (classification?: Classification) =>\n ClassificationAppLinkHelper.getAppLink(classification, params || {}),\n\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n includeContext: currentUser?.isAuthenticated\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n latestReleases: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n }),\n\n allTopics: () => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.PRESENTATION_TOPICS\n }),\n\n classificationLatestReleases: (classification: Classification) => {\n if (classification.id === CLASSIFICATION_LATEST_RELEASES)\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n };\n\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CLASSIFICATION_UPDATE,\n args: [ classification.id, TextHelper.slugify(classification.name) ]\n };\n },\n\n classificationDirectory: (_classification: Classification) => {\n const appLinkClassification = _classification;\n\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_TOPICS,\n args: [ appLinkClassification.id, TextHelper.slugify(appLinkClassification.name) ],\n params: ObjectHelper.omit(params, OMITTED_PARAMS)\n };\n },\n\n widgetVideoList: (widgetId: string, widgetName: string) => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.DASHBOARD,\n args: [ widgetId, TextHelper.slugify(widgetName) ]\n }),\n\n watchHistory: () => ({\n application: AppChannels.WATCH_HISTORY,\n action: Actions.WatchHistory.HOME\n }),\n\n company: (company: Company) => ({\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }),\n\n discover: () => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }),\n\n calendar: () => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }),\n\n calendarMonth: (month: string, year?: string) => {\n const appLink: Core.AppLink = {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month.toLowerCase()]\n };\n\n if (year)\n appLink.params = { year };\n\n return appLink;\n },\n\n onboardingStep: (step: OnboardingScreenId) => {\n const appLinks = getOnboardingAppLinks();\n return appLinks[step];\n },\n\n onboardingAppLinks: () => {\n return getOnboardingAppLinks();\n },\n\n livestream: () => null,\n widgetWizard: () => null\n };\n}\n\nexport function getDiscoverHeaderAppLinks(): DiscoverHeaderAppLinks {\n return {\n forYou: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n },\n whatsNew: {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n },\n calendar: {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }\n };\n}","\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { VideoHistoryCollection } from 'libs/shared/interfaces';\n\nexport const VideoHistoryRequests = {\n userVideoHistory(\n cursor?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n let key = 'video:history';\n let url = `{gateway}/v1/users/me/watch-history`;\n\n if (cursor) {\n key += `:${cursor}`;\n url += `?cursor=${cursor}`;\n }\n\n return {\n key,\n url,\n formatData: (historyCollection: VideoHistoryCollection) => {\n return {\n data: historyCollection.data.map(historyData => {\n // Convert last watched times from UTC to local time\n const lastTimeWatchedLocal = DateHelper.format(historyData.lastTimeWatched);\n const lastDateWatchedLocal = DateHelper.format(lastTimeWatchedLocal, 'YYYY-MM-DD');\n\n return {\n ...historyData,\n lastTimeWatched: lastTimeWatchedLocal,\n lastDateWatched: lastDateWatchedLocal\n };\n }),\n pagination: historyCollection.pagination\n };\n },\n success,\n error,\n always\n };\n },\n\n videoHistory(\n ids: string[],\n namespace?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const params = ids.sort().map(i => `videoId=${i}`);\n\n return {\n key: `video:history:videos:${params.join('&')}`,\n url: `{gateway}/v1/videos/history?${params.join('&')}`,\n normalizeOptions: {\n namespace\n },\n formatData: (historyCollection: HashObject[]) => {\n if (!historyCollection?.length)\n return historyCollection;\n\n /**\n * Data is formatted to enable it to be merged with the existing video object in the store\n * Where we need to merge more history properties with the video object, map them below.\n */\n return historyCollection.map((watchHistory: HashObject) => ({\n id: watchHistory.videoId,\n lastProgressPoint: watchHistory.lastProgressPoint\n }));\n },\n success,\n error,\n always\n };\n },\n\n removeFromHistory(videoId: string, invalidationKeys: string[] = []): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/videos/${videoId}/watch-history`,\n key: `remove:video:history:${videoId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [\n 'video:history',\n ...invalidationKeys\n ]\n };\n }\n};","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["namespace","DiscoverHeader","props","type","hasStudentExperience","className","Text","phrase","tabs","name","LanguageService","appLink","appLinks","forYou","active","analyticsData","url","analyticsOptions","actionType","entity","location","whatsNew","showCalendar","push","calendar","PillTabSelector","pdfExtensions","docExtensions","textExtensions","excelExtensions","imageExtensions","videoMimeType","archiveExtensions","powerPointExtensions","subtitleExtensions","FileExtensions","IMAGES","join","VIDEO","MIXED_MEDIA","RESOURCES","SUBTITLES","FileExtensionHelper","getResourceType","extension","ext","toLowerCase","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","map","index","key","onClick","onSelect","onSelectTab","defaultProps","FeedbackType","FeedbackRequests","submitFeedback","requestData","formValues","FeedbackFormHelper","getUserInfo","currentUser","customer","id","username","email","userType","role","customerId","cvcId","crmId","customerName","instanceRegion","contentRegion","firstName","givenName","lastName","familyName","mapInstanceRegionToTag","getTags","product","extraTags","tags","regionTag","categorizeFiles","files","reduce","result","file","fileInfo","get","videoUrls","imageUrls","getPhrase","DiscoverDashboardEmptyState","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Tooltip","title","spanHack","text","addWidgetApplink","icon","disabled","DiscoverDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","presentation","showEmptyState","isReadonly","length","headerAppLinks","hasPermissions","PermissionName","widget","idx","WidgetContainerView","widgetCollection","getContentRequest","audiences","description","templateId","metadata","preferences","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasLocalPermissions","onSubmitFeedback","updatePreferences","lazyLoad","dashboardTarget","widgetIndex","jobTitle","isPreviewing","settings","hasTopicDirectories","hasOnboardingV2","hasCompletedOnboardingV2","availablePresentations","imageCdnUrl","commonVideoProps","classification","undefined","contentType","hasTableOfContents","limitTotalItems","isTertiaryCustomerWithoutExchange","seeMoreLink","onClickRemoveItem","removeFromVideoHistory","badgeComponent","emptyImageUrl","widgetWizard","CuratedDiscoverView","UserRequests","user","isAuthenticated","usePermissions","alerts","CustomerRequests","libraries","LibraryRequests","usePresentation","isTertiary","useIsTertiary","products","targetType","queryParams","presentationSlug","fetchAsync","useSettings","useCommonVideoProps","locationContext","activeAudiences","SharedViewModelKeys","storage","AudienceHelper","phraseVariant","PresentationLearningLevel","learningLevel","getPhraseVariant","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","discover","useShowCalendar","hasTwig","LibraryHelper","args","DashboardRequests","oldPreferences","newPreferences","addedSubjects","filter","p","hidden","find","o","removedSubjects","PreferenceRequests","s","feedback","ProductId","reaction","presentationName","presentationId","dashboardName","dashboardId","currentPageUrl","promise","AnalyticsHelper","feedbackType","workflowPhase","videoId","videoName","WidgetTypeId","VideoHistoryRequests","success","descriptor","error","userProfile","onboardingTeacherBackground","ImageUrls","hasProduct","CLASSIFICATION_LATEST_RELEASES","OMITTED_PARAMS","getDiscoverWidgetAppLinks","videoType","video","opts","context","includeContext","series","playlist","application","action","latestReleases","allTopics","classificationLatestReleases","classificationDirectory","_classification","appLinkClassification","widgetVideoList","widgetName","watchHistory","company","calendarMonth","month","year","onboardingStep","step","onboardingAppLinks","livestream","getDiscoverHeaderAppLinks","userVideoHistory","cursor","always","formatData","historyCollection","historyData","lastTimeWatchedLocal","lastTimeWatched","lastDateWatchedLocal","lastDateWatched","pagination","videoHistory","ids","sort","i","normalizeOptions","lastProgressPoint","removeFromHistory","invalidationKeys","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","activePresentation","redirectOnError","allowedLearningLevels","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","isLoading","setIsLoading"],"sourceRoot":""}
|