@clickview/lite 0.75.0-rc.3 → 0.75.0-rc.5
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/languages/en.json +1 -1
- package/dist/scripts/104-0c03791b45-lite.chunk.js +2 -0
- package/dist/scripts/104-0c03791b45-lite.chunk.js.map +1 -0
- package/dist/scripts/1074-4f6b136f9a-lite.chunk.js +2 -0
- package/dist/scripts/1074-4f6b136f9a-lite.chunk.js.map +1 -0
- package/dist/scripts/1192-d409863a3c-lite.chunk.js +2 -0
- package/dist/scripts/1192-d409863a3c-lite.chunk.js.map +1 -0
- package/dist/scripts/{1199-6522b1d291-lite.chunk.js → 1199-d2fcbb547e-lite.chunk.js} +1 -1
- package/dist/scripts/1199-d2fcbb547e-lite.chunk.js.map +1 -0
- package/dist/scripts/{1221-894d8474d5-lite.chunk.js → 1221-1109d5379d-lite.chunk.js} +2 -2
- package/dist/scripts/1221-1109d5379d-lite.chunk.js.map +1 -0
- package/dist/scripts/1491-ab92a040e5-lite.chunk.js +2 -0
- package/dist/scripts/1491-ab92a040e5-lite.chunk.js.map +1 -0
- package/dist/scripts/{1610-bf848cce4d-lite.chunk.js → 1610-bb6eff2ff1-lite.chunk.js} +2 -2
- package/dist/scripts/1610-bb6eff2ff1-lite.chunk.js.map +1 -0
- package/dist/scripts/{218-297de74688-lite.chunk.js → 218-f6cc4a3b6a-lite.chunk.js} +2 -2
- package/dist/scripts/218-f6cc4a3b6a-lite.chunk.js.map +1 -0
- package/dist/scripts/{2968-c4c0114915-lite.chunk.js → 2968-13e56eeff8-lite.chunk.js} +1 -1
- package/dist/scripts/2968-13e56eeff8-lite.chunk.js.map +1 -0
- package/dist/scripts/3597-eaae787997-lite.chunk.js +3 -0
- package/dist/scripts/3597-eaae787997-lite.chunk.js.map +1 -0
- package/dist/scripts/4033-8c890bbdd6-lite.chunk.js +3 -0
- package/dist/scripts/4033-8c890bbdd6-lite.chunk.js.map +1 -0
- package/dist/scripts/4185-7178e5a716-lite.chunk.js +2 -0
- package/dist/scripts/4185-7178e5a716-lite.chunk.js.map +1 -0
- package/dist/scripts/{4722-d96da2a258-lite.chunk.js → 4722-9eb591621a-lite.chunk.js} +3 -3
- package/dist/scripts/4722-9eb591621a-lite.chunk.js.map +1 -0
- package/dist/scripts/{5153-acc6c13153-lite.chunk.js → 5153-cf62a95421-lite.chunk.js} +2 -2
- package/dist/scripts/5153-cf62a95421-lite.chunk.js.map +1 -0
- package/dist/scripts/6756-cfd00009e4-lite.chunk.js +3 -0
- package/dist/scripts/6756-cfd00009e4-lite.chunk.js.map +1 -0
- package/dist/scripts/{6790-c8a9efba50-lite.chunk.js → 6790-36ce6dda04-lite.chunk.js} +1 -1
- package/dist/scripts/6790-36ce6dda04-lite.chunk.js.map +1 -0
- package/dist/scripts/7148-d966512e45-lite.chunk.js +2 -0
- package/dist/scripts/7148-d966512e45-lite.chunk.js.map +1 -0
- package/dist/scripts/{7438-88d11bb89a-lite.chunk.js → 7438-38f60d3e8e-lite.chunk.js} +1 -1
- package/dist/scripts/7438-38f60d3e8e-lite.chunk.js.map +1 -0
- package/dist/scripts/{8856-02dd2e486c-lite.chunk.js → 8856-4da691f96f-lite.chunk.js} +1 -1
- package/dist/scripts/8856-4da691f96f-lite.chunk.js.map +1 -0
- package/dist/scripts/9003-fc8e674468-lite.chunk.js +2 -0
- package/dist/scripts/9003-fc8e674468-lite.chunk.js.map +1 -0
- package/dist/scripts/9042-add0f1c2e2-lite.chunk.js +2 -0
- package/dist/scripts/9042-add0f1c2e2-lite.chunk.js.map +1 -0
- package/dist/scripts/{9134-19912ca3ee-lite.chunk.js → 9134-a6a5fc92cf-lite.chunk.js} +1 -1
- package/dist/scripts/9134-a6a5fc92cf-lite.chunk.js.map +1 -0
- package/dist/scripts/9620-3746c84350-lite.chunk.js +3 -0
- package/dist/scripts/9620-3746c84350-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-828ca65de8.min.js → bundle-ea99ddf0dd.min.js} +3 -3
- package/dist/scripts/{bundle-828ca65de8.min.js.map → bundle-ea99ddf0dd.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js +0 -2
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js.map +0 -1
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js +0 -2
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js.map +0 -1
- package/dist/scripts/1199-6522b1d291-lite.chunk.js.map +0 -1
- package/dist/scripts/1221-894d8474d5-lite.chunk.js.map +0 -1
- package/dist/scripts/1400-43b37bfa8d-lite.chunk.js +0 -2
- package/dist/scripts/1400-43b37bfa8d-lite.chunk.js.map +0 -1
- package/dist/scripts/1610-bf848cce4d-lite.chunk.js.map +0 -1
- package/dist/scripts/218-297de74688-lite.chunk.js.map +0 -1
- package/dist/scripts/2968-c4c0114915-lite.chunk.js.map +0 -1
- package/dist/scripts/4033-af3bf49c75-lite.chunk.js +0 -3
- package/dist/scripts/4033-af3bf49c75-lite.chunk.js.map +0 -1
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js +0 -2
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js.map +0 -1
- package/dist/scripts/4722-d96da2a258-lite.chunk.js.map +0 -1
- package/dist/scripts/5153-acc6c13153-lite.chunk.js.map +0 -1
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js +0 -3
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js.map +0 -1
- package/dist/scripts/6790-c8a9efba50-lite.chunk.js.map +0 -1
- package/dist/scripts/7148-432ab72091-lite.chunk.js +0 -2
- package/dist/scripts/7148-432ab72091-lite.chunk.js.map +0 -1
- package/dist/scripts/7438-88d11bb89a-lite.chunk.js.map +0 -1
- package/dist/scripts/8687-549a2d9278-lite.chunk.js +0 -3
- package/dist/scripts/8687-549a2d9278-lite.chunk.js.map +0 -1
- package/dist/scripts/8856-02dd2e486c-lite.chunk.js.map +0 -1
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js +0 -2
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js.map +0 -1
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js +0 -2
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js.map +0 -1
- package/dist/scripts/9134-19912ca3ee-lite.chunk.js.map +0 -1
- package/dist/scripts/9528-2b478f4ca8-lite.chunk.js +0 -3
- package/dist/scripts/9528-2b478f4ca8-lite.chunk.js.map +0 -1
- /package/dist/css/{8687-lite-6787cc731a.chunk.css → 3597-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/css/{9528-lite-6787cc731a.chunk.css → 9620-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/scripts/{1221-894d8474d5-lite.chunk.js.LICENSE.txt → 1221-1109d5379d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4033-af3bf49c75-lite.chunk.js.LICENSE.txt → 3597-eaae787997-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4722-d96da2a258-lite.chunk.js.LICENSE.txt → 4033-8c890bbdd6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5153-acc6c13153-lite.chunk.js.LICENSE.txt → 4722-9eb591621a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6756-e90680dfcd-lite.chunk.js.LICENSE.txt → 5153-cf62a95421-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8687-549a2d9278-lite.chunk.js.LICENSE.txt → 6756-cfd00009e4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9528-2b478f4ca8-lite.chunk.js.LICENSE.txt → 9620-3746c84350-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-828ca65de8.min.js.LICENSE.txt → bundle-ea99ddf0dd.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1610-bb6eff2ff1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/my-shares-demo-insights.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/empty-state/MySharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesView.tsx"],"sourcesContent":["export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","export const DEMO_INTERACTIVE_STAGING_ID = 'D8qRe7';\nexport const DEMO_INTERACTIVE_PROD_ID = 'GRWx6w';","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst DEMO_INSIGHT_DAYS_AGO = 7;\n\nexport const DEMO_INSIGHTS_SHARE: Share = {\n type: ShareType.Link,\n privacy: SharePrivacy.JustMySchool,\n objectId: '0',\n objectTypeId: MasterType.Interactive,\n viewCount: 28,\n accessCount: 15,\n dateCreated: new Date().toISOString(),\n expireDate: null,\n link: {\n shortenedEmbedUrl: '',\n shortenedUrl: ''\n },\n shareId: '0',\n ownerCustomerId: 0,\n ownerId: 0,\n recipients: [],\n options: {\n preventScrubbing: false,\n immediateFeedback: false\n }\n};\n\nexport const DEMO_INSIGHTS_SHARE_TABLE_DATA: MySharesTableData = {\n share: DEMO_INSIGHTS_SHARE,\n sharedObject: null,\n shareRecipients: null,\n dateShared: DateHelper.subtract(new Date(), DEMO_INSIGHT_DAYS_AGO, 'days').toISOString()\n};\n\nconst DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTION: ActionOptions = {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n className: 'btn btn-outline-dark'\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"HAuP3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INTERACTIVE_PROD_ID, DEMO_INTERACTIVE_STAGING_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_ACTION, DEMO_INSIGHTS_SHARE_TABLE_DATA } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nimport styles from './my-shares-demo-insights.scss';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n liteUrl: string;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n breakpoints: Breakpoints;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isStaging = props.liteUrl.includes('staging');\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: isStaging ? DEMO_INTERACTIVE_STAGING_ID : DEMO_INTERACTIVE_PROD_ID\n };\n }\n\n function getObjectActions() {\n return [\n {\n ...DEMO_INSIGHTS_ACTION,\n button: !isMobile\n }\n ];\n }\n\n return (\n <div>\n <MySharesTableHeading heading={getPhrase('demoHeading')} isFirst={true} />\n\n <div className={`${styles.background} rounded-3 border-md bg-light-orange mb-4`}>\n <MySharesTableRow\n shareData={{ ...DEMO_INSIGHTS_SHARE_TABLE_DATA, sharedObject: getDemoInteractive() }}\n getObjectActions={getObjectActions}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n breakpoints={props.breakpoints}\n >\n <div className='d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2'>\n <Text namespace={namespace} phrase='demoInsightPill' />\n </div>\n </MySharesTableRow>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesEmptyState() {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC} altText={getPhrase('heading')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MySharesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { MySharesEmptyState } from 'apps/my-shares/views/my-shares/empty-state/MySharesEmptyState';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesViewProps {\n typeId: string | string[];\n}\n\nexport function MySharesView(props: MySharesViewProps) {\n // Shared hooks\n useSetPageMetadata({ title: getPhrase('myShares') });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2, hasClassrooms } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const breakpoints = useBreakpoints();\n const { accessPolicy } = useAccessPolicy();\n\n const sharesParams = getSharesParams(props.typeId);\n\n // Local variables\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMySharesLanding) ||\n hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n const hasInsightsPermission = hasShareFlowV2 && hasPermissions(PermissionName.ViewInsights);\n const showDemoInsight = accessPolicy?.metadata?.hasDemoInsights;\n\n // Flight fetching\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(showDemoInsight &&\n InsightsDemoRequests.interactiveMetadata());\n\n const shareData = useSharesTable({\n interactiveInsights: true,\n shouldFetch,\n params: {\n type: [ ShareType.Link, ShareType.LegacyDirect ]\n }\n });\n\n React.useEffect(() => {\n if (!(hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2))\n Core.LocationUtils.PageLoad('/');\n }, [shouldFetch]);\n\n if (!shouldFetch)\n return <MySharesEmptyState />;\n\n return (\n <div className='px-3'>\n <InsightsAdminAlert\n analyticsUrl={config.data?.analyticsWebUrl}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n />\n\n <div className='border-bottom pb-2 mb-4'>\n <h1 className='mb-2'><Text namespace={namespace} phrase='myShares' /></h1>\n {hasClassrooms && (\n <p className='mb-0'>\n <Text namespace={namespace} phrase='classroomsHint'/>\n \n <AppLink\n appLink={{ application: AppChannels.CLASSROOMS, action: Actions.Classrooms.HOME }}\n className='info-link'\n >\n <Text namespace={namespace} phrase='classroomsCta'/>\n </AppLink>\n </p>\n )}\n </div>\n\n {showDemoInsight && demoInteractive.data &&\n <MySharesDemoInsight\n demoInteractive={demoInteractive.data}\n liteUrl={config.data?.liteUrl}\n breakpoints={breakpoints}\n imageCdnUrl={shareData.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n }\n\n {(() => {\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n\n if (!shareData.sentShares.length)\n return (\n <MySharesTableEmptyState />\n );\n\n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectActions={row => getShareObjectActions({\n share: row.share,\n sharedObject: row.sharedObject,\n audienceParams: sharesParams.audienceAppLinkParams,\n hasInsights: hasInsightsPermission,\n isPlugin,\n breakpoints\n })}\n groupByDateShared\n breakpoints={breakpoints}\n hasDemoInsights={showDemoInsight}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n })()}\n </div>\n );\n}\n"],"names":["SharePrivacy","InsightsDemoRequests","interactive","url","key","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","namespace","InsightsAdminAlert","props","storage","show","setShow","hasAnalytics","role","className","phrase","href","video","analyticsUrl","videoRoute","typeId","id","getAnalyticsUrl","target","svgName","onClick","DEMO_INTERACTIVE_STAGING_ID","DEMO_INTERACTIVE_PROD_ID","getPhrase","DEMO_INSIGHTS_SHARE","type","privacy","objectId","objectTypeId","viewCount","accessCount","dateCreated","Date","toISOString","expireDate","link","shortenedEmbedUrl","shortenedUrl","shareId","ownerCustomerId","ownerId","recipients","options","preventScrubbing","immediateFeedback","DEMO_INSIGHTS_SHARE_TABLE_DATA","share","sharedObject","shareRecipients","dateShared","DEMO_INSIGHTS_APPLINK","application","action","DEMO_INSIGHTS_ACTION","label","appLink","group","LanguageService","MySharesDemoInsight","isStaging","liteUrl","includes","isMobile","breakpoints","xs","sm","heading","isFirst","MySharesTableRow","shareData","demoInteractive","getObjectActions","button","imageCdnUrl","yearGroups","Text","MySharesEmptyState","EmptyState","src","ImageUrls","altText","text","analyticsData","analyticsOptions","actionType","location","entity","workflowPhase","descriptor","SignUp","MySharesView","useSetPageMetadata","title","usePermissions","hasPermissions","hasLocalPermissions","useSettings","hasShareFlowV2","hasClassrooms","isPlugin","usePluginHelper","useBreakpoints","accessPolicy","useAccessPolicy","sharesParams","shouldFetch","PermissionName","hasInsightsPermission","showDemoInsight","metadata","hasDemoInsights","config","ConfigRequests","currentUser","UserRequests","data","isAuthenticated","CustomerRequests","customerId","useSharesTable","interactiveInsights","params","ShareType","analyticsWebUrl","AppLink","showPartialLoading","PartialMySharesTable","sentShares","length","MySharesTable","sharedObjects","items","interactivesPendingReview","itemsArr","row","audienceParams","audienceAppLinkParams","hasInsights","groupByDateShared","hasMore","isFetching","InfiniteScrollFooter","fetchNext","nextCursor","MySharesTableEmptyState"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[218],{38502:(e,t,a)=>{a.d(t,{r:()=>m});var n=a(32735),s=a(49985),r=a(15611),c=a(18559),i=a(11607),o=a(83914),l=a(22771);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(r.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.createElement(i.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&s.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},28469:(e,t,a)=>{a.d(t,{P:()=>r});var n=a(32735),s=a(23481).T.encloseNamespace("rostering.alert");function r(e){var t="classroom"===e.type?s("classroom"):s("hasRostering");return n.createElement("div",{className:"alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap"},t," ")}},58739:(e,t,a)=>{var n;a.d(t,{K:()=>n}),function(e){e[e.Submitted=0]="Submitted",e[e.Queued=1]="Queued",e[e.Pending=2]="Pending",e[e.InProgress=3]="InProgress",e[e.Completed=4]="Completed",e[e.CompletedWithError=5]="CompletedWithError",e[e.Failed=6]="Failed"}(n||(n={}))},44538:(e,t,a)=>{a.d(t,{K:()=>i});var n=a(99940),s=a(97395),r=a(58739),c=a(38389),i={getRostering:function(){return{url:"{gateway}/v1/users/me/rostering",key:"rostering"}},getSyncList:function(e){var t={};if(e.cursor&&(t.cursor=e.cursor),e.sort&&("oldest"===e.sort?t.order="ASC":t.order="DESC"),e.jobStatus){var a=[];e.jobStatus.includes("completed")&&a.push.apply(a,[r.K.Completed,r.K.CompletedWithError]),e.jobStatus.includes("failed")&&a.push(r.K.Failed),e.jobStatus.includes("inProgress")&&a.push.apply(a,[r.K.Submitted,r.K.Queued,r.K.Pending,r.K.InProgress]),t.status=a}return t.type=c.m.Rostering,{url:s._.urlBuilder("{gateway}/v1/batch/jobs",t),key:"rostering:sync:".concat(e.cursor,":").concat(e.sort,":").concat(e.jobStatus)}},createJob:function(e,t,a){return{url:"{gateway}/v1/batch/jobs",key:"rostering:sync",type:n.k.POST,invalidationKeys:["rostering:sync"],data:e,success:t,error:a}},getJobSummary:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/summary"),key:"job:summary:".concat(e)}},getSyncScheduleSettings:function(e){return{url:"{gateway}/v1/rostering/".concat(e,"/schedule"),key:"sync-settings:".concat(e)}},updateScheduleSetting:function(e,t,a,s,r){return{type:n.k.PUT,url:"{gateway}/v1/rostering/".concat(t,"/schedule"),key:"update:sync-settings:".concat(e.customerId,":").concat(t),invalidationKeys:["sync-settings:".concat(t)],data:e,success:a,error:s,always:r}}}},59278:(e,t,a)=>{a.d(t,{d:()=>g});var n=a(32735),s=a(23481),r=a(83657),c=a(38502),i=a(28469),o=a(83345),l=a(79967),u=a(14070),m=a(97291);const d={searchContainer:"rwTB7"};var p="classrooms.classroomsHeader",h=s.T.encloseNamespace(p);function g(e){var t,a=(0,l.k)(),s=a.xs||a.sm,g=[{name:h("classroomsTab"),appLink:{application:m.O.CLASSROOMS,action:u.e.Classrooms.HOME},active:"classrooms"===e.activeTab}];return e.hasShareFlowV2&&g.push({name:h("openClassroomsTab"),appLink:{application:m.O.CLASSROOMS,action:u.e.Classrooms.OPEN_CLASSROOMS},active:"open-classrooms"===e.activeTab}),n.createElement("div",null,!!e.hasRostering&&n.createElement("div",{className:"my-3"},n.createElement(i.P,{type:"general"})),n.createElement("div",{className:"d-flex align-items-center mb-3"},n.createElement("h1",{className:"flex-fill h2 me-3 my-1"},n.createElement(o.x,{namespace:p,phrase:"heading"})),e.searchBar&&n.createElement("div",{className:"d-flex"},!s&&n.createElement("div",{className:"".concat(d.searchContainer," d-flex mb-2 mb-sm-0 me-2")},e.searchBar),n.createElement(r.e,{actions:null!==(t=e.actions)&&void 0!==t?t:[],actionsDropdownClassName:"btn btn-outline-dark"}))),g.length>1&&n.createElement("div",{className:"mb-3"},n.createElement(c.r,{tabs:g})),s&&e.searchBar?n.createElement("div",{className:"mb-3"},e.searchBar):null)}},22534:(e,t,a)=>{a.r(t),a.d(t,{OpenClassroomsView:()=>x});var n=a(32735),s=a(23481),r=a(20354),c=a(2510),i=a(87801),o=a(16714),l=a(39151),u=a(1666),m=a(44538),d=a(31949),p=a(79967),h=a(22902),g=a(79612),b=a(37802),v=a(46390),y=a(98623),f=a(59278),S=a(67467),E=a(5056),k=a(28001),N=a(69003),C=s.T.encloseNamespace("classrooms.openClassrooms");function x(){var e,t,a=(0,p.k)(),s=(0,h.T)().hasPermissions,x=(0,b.r)(null).hasShareFlowV2,w=(0,v.G)().isPlugin,O=r.a.useBasicFetch(d.N.currentUser()),P=r.a.useBasicFetch(l.L.config()),F=r.a.useBasicFetch(m.K.getRostering()),R=(null===(e=F.data)||void 0===e?void 0:e.status)&&"None"!==F.data.status,L=r.a.useBasicFetch((null===(t=O.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(O.data.customerId)),j=(0,y.a)({interactiveInsights:!0,shouldFetch:x,params:{type:c.y.Open}});return(0,g.M)({title:C("pageTitle")}),n.createElement("div",{className:"px-3"},n.createElement(f.d,{actions:[],activeTab:"open-classrooms",hasRostering:R,hasShareFlowV2:x}),function(){var e,t=x&&s(o.C.ViewInsights),r=(0,N.cl)([]);return j.showPartialLoading?n.createElement(k.L,null):j.sentShares.length?n.createElement(n.Fragment,null,n.createElement(E.R,{sentShares:j.sentShares,sharedObjects:j.sharedObjects.items,shareRecipients:j.shareRecipients.items,interactivesPendingReview:j.interactivesPendingReview.itemsArr,getObjectActions:function(e){return(0,N.sD)({share:e.share,sharedObject:e.sharedObject,audienceParams:r.audienceAppLinkParams,hasInsights:t,isPlugin:w,breakpoints:a})},groupByDateShared:!0,breakpoints:a,imageCdnUrl:null===(e=P.data)||void 0===e?void 0:e.imageCdnUrl,yearGroups:L.data}),(j.hasMore||j.isFetching)&&n.createElement(i._,{isFetching:j.isFetching,fetchNext:j.fetchNext,nextCursor:j.nextCursor})):n.createElement(S.o,null)}())}},22771:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
-
//# sourceMappingURL=218-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[218],{38502:(e,t,a)=>{a.d(t,{r:()=>m});var n=a(32735),s=a(49985),r=a(15611),c=a(18559),i=a(11607),o=a(83914),l=a(22771);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(r.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.createElement(i.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&s.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},28469:(e,t,a)=>{a.d(t,{P:()=>r});var n=a(32735),s=a(23481).T.encloseNamespace("rostering.alert");function r(e){var t="classroom"===e.type?s("classroom"):s("hasRostering");return n.createElement("div",{className:"alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap"},t," ")}},58739:(e,t,a)=>{var n;a.d(t,{K:()=>n}),function(e){e[e.Submitted=0]="Submitted",e[e.Queued=1]="Queued",e[e.Pending=2]="Pending",e[e.InProgress=3]="InProgress",e[e.Completed=4]="Completed",e[e.CompletedWithError=5]="CompletedWithError",e[e.Failed=6]="Failed"}(n||(n={}))},44538:(e,t,a)=>{a.d(t,{K:()=>i});var n=a(99940),s=a(97395),r=a(58739),c=a(38389),i={getRostering:function(){return{url:"{gateway}/v1/users/me/rostering",key:"rostering"}},getSyncList:function(e){var t={};if(e.cursor&&(t.cursor=e.cursor),e.sort&&("oldest"===e.sort?t.order="ASC":t.order="DESC"),e.jobStatus){var a=[];e.jobStatus.includes("completed")&&a.push.apply(a,[r.K.Completed,r.K.CompletedWithError]),e.jobStatus.includes("failed")&&a.push(r.K.Failed),e.jobStatus.includes("inProgress")&&a.push.apply(a,[r.K.Submitted,r.K.Queued,r.K.Pending,r.K.InProgress]),t.status=a}return t.type=c.m.Rostering,{url:s._.urlBuilder("{gateway}/v1/batch/jobs",t),key:"rostering:sync:".concat(e.cursor,":").concat(e.sort,":").concat(e.jobStatus)}},createJob:function(e,t,a){return{url:"{gateway}/v1/batch/jobs",key:"rostering:sync",type:n.k.POST,invalidationKeys:["rostering:sync"],data:e,success:t,error:a}},getJobSummary:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/summary"),key:"job:summary:".concat(e)}},getSyncScheduleSettings:function(e){return{url:"{gateway}/v1/rostering/".concat(e,"/schedule"),key:"sync-settings:".concat(e)}},updateScheduleSetting:function(e,t,a,s,r){return{type:n.k.PUT,url:"{gateway}/v1/rostering/".concat(t,"/schedule"),key:"update:sync-settings:".concat(e.customerId,":").concat(t),invalidationKeys:["sync-settings:".concat(t)],data:e,success:a,error:s,always:r}}}},59278:(e,t,a)=>{a.d(t,{d:()=>g});var n=a(32735),s=a(23481),r=a(83657),c=a(38502),i=a(28469),o=a(83345),l=a(79967),u=a(14070),m=a(97291);const d={searchContainer:"rwTB7"};var p="classrooms.classroomsHeader",h=s.T.encloseNamespace(p);function g(e){var t,a=(0,l.k)(),s=a.xs||a.sm,g=[{name:h("classroomsTab"),appLink:{application:m.O.CLASSROOMS,action:u.e.Classrooms.HOME},active:"classrooms"===e.activeTab}];return e.hasShareFlowV2&&g.push({name:h("openClassroomsTab"),appLink:{application:m.O.CLASSROOMS,action:u.e.Classrooms.OPEN_CLASSROOMS},active:"open-classrooms"===e.activeTab}),n.createElement("div",null,!!e.hasRostering&&n.createElement("div",{className:"my-3"},n.createElement(i.P,{type:"general"})),n.createElement("div",{className:"d-flex align-items-center mb-3"},n.createElement("h1",{className:"flex-fill h2 me-3 my-1"},n.createElement(o.x,{namespace:p,phrase:"heading"})),e.searchBar&&n.createElement("div",{className:"d-flex"},!s&&n.createElement("div",{className:"".concat(d.searchContainer," d-flex mb-2 mb-sm-0 me-2")},e.searchBar),n.createElement(r.e,{actions:null!==(t=e.actions)&&void 0!==t?t:[],actionsDropdownClassName:"btn btn-outline-dark"}))),g.length>1&&n.createElement("div",{className:"mb-3"},n.createElement(c.r,{tabs:g})),s&&e.searchBar?n.createElement("div",{className:"mb-3"},e.searchBar):null)}},22534:(e,t,a)=>{a.r(t),a.d(t,{OpenClassroomsView:()=>x});var n=a(32735),s=a(23481),r=a(20354),c=a(2510),i=a(87801),o=a(16714),l=a(39151),u=a(1666),m=a(44538),d=a(31949),p=a(79967),h=a(22902),g=a(79612),b=a(37802),v=a(46390),y=a(98623),f=a(59278),S=a(67467),E=a(5056),k=a(28001),N=a(69003),C=s.T.encloseNamespace("classrooms.openClassrooms");function x(){var e,t,a=(0,p.k)(),s=(0,h.T)().hasPermissions,x=(0,b.r)(null).hasShareFlowV2,w=(0,v.G)().isPlugin,O=r.a.useBasicFetch(d.N.currentUser()),P=r.a.useBasicFetch(l.L.config()),F=r.a.useBasicFetch(m.K.getRostering()),R=(null===(e=F.data)||void 0===e?void 0:e.status)&&"None"!==F.data.status,L=r.a.useBasicFetch((null===(t=O.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(O.data.customerId)),j=(0,y.a)({interactiveInsights:!0,shouldFetch:x,params:{type:[c.y.Open]}});return(0,g.M)({title:C("pageTitle")}),n.createElement("div",{className:"px-3"},n.createElement(f.d,{actions:[],activeTab:"open-classrooms",hasRostering:R,hasShareFlowV2:x}),function(){var e,t=x&&s(o.C.ViewInsights),r=(0,N.cl)([]);return j.showPartialLoading?n.createElement(k.L,null):j.sentShares.length?n.createElement(n.Fragment,null,n.createElement(E.R,{sentShares:j.sentShares,sharedObjects:j.sharedObjects.items,shareRecipients:j.shareRecipients.items,interactivesPendingReview:j.interactivesPendingReview.itemsArr,getObjectActions:function(e){return(0,N.sD)({share:e.share,sharedObject:e.sharedObject,audienceParams:r.audienceAppLinkParams,hasInsights:t,isPlugin:w,breakpoints:a})},groupByDateShared:!0,breakpoints:a,imageCdnUrl:null===(e=P.data)||void 0===e?void 0:e.imageCdnUrl,yearGroups:L.data}),(j.hasMore||j.isFetching)&&n.createElement(i._,{isFetching:j.isFetching,fetchNext:j.fetchNext,nextCursor:j.nextCursor})):n.createElement(S.o,null)}())}},22771:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=218-f6cc4a3b6a-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/218-f6cc4a3b6a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/rostering/rostering-alert/RosteringAlert.tsx","file:///app/packages/libs/shared/src/enums/BatchJobStatus.ts","file:///app/packages/libs/shared/src/flight-requests/RosteringRequests.ts","file:///app/packages/projects/lite/src/apps/classrooms/components/classrooms-header/classrooms-header.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/classrooms-header/ClassroomsHeader.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/open-classrooms/OpenClassroomsView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["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","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'rostering.alert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RosteringAlertProps {\n type?: 'classroom' | 'general';\n}\n\nexport function RosteringAlert(props: RosteringAlertProps) {\n const text = props.type === 'classroom' ? getPhrase('classroom') : getPhrase('hasRostering');\n\n return (\n <div className='alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap'>\n {text} \n {/* todo add it back when KB article link is ready */}\n {/* <ExternalLink\n className='text-info text-underline'\n href={''}\n newTab\n >\n {LanguageService.getPhrase(namespace, 'learnMore')}\n </ExternalLink> */}\n </div>\n );\n}","export enum BatchJobStatus {\n Submitted = 0,\n Queued = 1,\n Pending = 2,\n InProgress = 3,\n Completed = 4,\n CompletedWithError = 5,\n Failed = 6\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { BulkJobsQueryParams } from 'libs/shared/components/bulk-jobs-filters/BulkJobsFilters';\nimport { BatchJobStatus } from 'libs/shared/enums/BatchJobStatus';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { BatchJob, ScheduleSettingRequest } from 'libs/shared/interfaces';\nimport { CreateBatchJobRequest } from 'libs/shared/interfaces';\n\nexport const RosteringRequests = {\n getRostering(): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/rostering`,\n key: `rostering`\n };\n },\n\n getSyncList(queryParams: BulkJobsQueryParams): Flight.Request {\n const params: HashObject = {};\n if (queryParams.cursor)\n params.cursor = queryParams.cursor;\n\n if (queryParams.sort) {\n if (queryParams.sort === 'oldest')\n params.order = 'ASC';\n else\n params.order = 'DESC';\n }\n\n if (queryParams.jobStatus) {\n const statuses = [];\n if (queryParams.jobStatus.includes('completed')) {\n statuses.push(...[ BatchJobStatus.Completed, BatchJobStatus.CompletedWithError ]);\n }\n if (queryParams.jobStatus.includes('failed')) {\n statuses.push(BatchJobStatus.Failed);\n }\n if (queryParams.jobStatus.includes('inProgress')) {\n statuses.push(...[\n BatchJobStatus.Submitted,\n BatchJobStatus.Queued,\n BatchJobStatus.Pending,\n BatchJobStatus.InProgress ]);\n }\n params.status = statuses;\n }\n\n params.type = BatchJobType.Rostering;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/batch/jobs', params),\n key: `rostering:sync:${queryParams.cursor}:${queryParams.sort}:${queryParams.jobStatus}`\n };\n },\n\n createJob(\n data: CreateBatchJobRequest,\n success?: (job: BatchJob) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/batch/jobs',\n key: 'rostering:sync',\n type: HttpVerbs.POST,\n invalidationKeys: ['rostering:sync'],\n data,\n success,\n error\n };\n },\n\n getJobSummary(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/summary`,\n key: `job:summary:${id}`\n };\n },\n\n getSyncScheduleSettings(integrationId: string): Flight.SimulatedRequest {\n return {\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `sync-settings:${integrationId}`\n };\n },\n\n updateScheduleSetting(\n data: ScheduleSettingRequest,\n integrationId: string,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n type: HttpVerbs.PUT,\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `update:sync-settings:${data.customerId}:${integrationId}`,\n invalidationKeys: [`sync-settings:${integrationId}`],\n data,\n success,\n error,\n always\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"searchContainer\":\"rwTB7\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ActionOptions, Actions as ActionButton } from 'libs/shared/components/actions/Actions';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { RosteringAlert } from 'libs/shared/components/rostering/rostering-alert/RosteringAlert';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport styles from './classrooms-header.scss';\n\nconst namespace = 'classrooms.classroomsHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomsHeaderProps {\n activeTab: 'classrooms' | 'open-classrooms';\n actions?: ActionOptions[];\n searchBar?: React.ReactNode;\n hasRostering: boolean;\n hasShareFlowV2: boolean;\n}\n\nexport function ClassroomsHeader(props: ClassroomsHeaderProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const isMobile = breakpoints.xs || breakpoints.sm;\n \n const tabs: PillTab[] = [{\n name: getPhrase('classroomsTab'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n },\n active: props.activeTab === 'classrooms'\n }];\n\n if (props.hasShareFlowV2) {\n tabs.push({\n name: getPhrase('openClassroomsTab'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n },\n active: props.activeTab === 'open-classrooms'\n });\n }\n\n return (\n <div>\n {!!props.hasRostering && (\n <div className='my-3'>\n <RosteringAlert type='general' />\n </div>\n )}\n\n <div className='d-flex align-items-center mb-3'>\n <h1 className='flex-fill h2 me-3 my-1'><Text namespace={namespace} phrase='heading' /></h1>\n\n {props.searchBar && (\n <div className='d-flex'>\n {!isMobile && (\n <div className={`${styles.searchContainer} d-flex mb-2 mb-sm-0 me-2`}>\n {props.searchBar}\n </div>\n )}\n\n <ActionButton\n actions={props.actions ?? []}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n </div>\n )}\n </div>\n\n {tabs.length > 1 && (\n <div className='mb-3'>\n <PillTabSelector tabs={tabs} />\n </div>\n )}\n\n {isMobile && props.searchBar ? (\n <div className='mb-3'>\n {props.searchBar}\n </div>\n ) : null}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, RosteringResponse, YearGroup } from 'libs/shared/interfaces';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { ClassroomsHeader } from 'apps/classrooms/components/classrooms-header/ClassroomsHeader';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'classrooms.openClassrooms';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function OpenClassroomsView(): JSX.Element {\n const breakpoints = useBreakpoints();\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const shareData = useSharesTable({\n interactiveInsights: true,\n shouldFetch: hasShareFlowV2,\n params: {\n type: [ShareType.Open]\n }\n });\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n function renderTable() {\n const hasInsightsPermission = hasShareFlowV2 && hasPermissions(PermissionName.ViewInsights);\n const sharesParams = getSharesParams([]);\n\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n \n if (!shareData.sentShares.length)\n return (<MySharesTableEmptyState />);\n \n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectActions={row => getShareObjectActions({\n share: row.share,\n sharedObject: row.sharedObject,\n audienceParams: sharesParams.audienceAppLinkParams,\n hasInsights: hasInsightsPermission,\n isPlugin,\n breakpoints\n })}\n groupByDateShared\n breakpoints={breakpoints}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n }\n\n return (\n <div className='px-3'>\n <ClassroomsHeader\n actions={[]}\n activeTab='open-classrooms'\n hasRostering={hasRostering}\n hasShareFlowV2={hasShareFlowV2}\n />\n\n {renderTable()}\n \n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["TabContents","props","tab","svgName","className","name","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","getPhrase","RosteringAlert","text","BatchJobStatus","RosteringRequests","getRostering","url","getSyncList","queryParams","params","cursor","sort","order","jobStatus","statuses","includes","push","status","createJob","success","error","invalidationKeys","getJobSummary","id","getSyncScheduleSettings","integrationId","updateScheduleSetting","always","customerId","namespace","LanguageService","ClassroomsHeader","breakpoints","useBreakpoints","isMobile","xs","sm","application","action","activeTab","hasShareFlowV2","hasRostering","Text","phrase","searchBar","actions","actionsDropdownClassName","length","OpenClassroomsView","hasPermissions","isPlugin","currentUser","config","rostering","yearGroups","isAuthenticated","shareData","interactiveInsights","shouldFetch","title","hasInsightsPermission","sharesParams","showPartialLoading","sentShares","sharedObjects","items","shareRecipients","interactivesPendingReview","itemsArr","getObjectActions","row","share","sharedObject","audienceParams","audienceAppLinkParams","hasInsights","groupByDateShared","imageCdnUrl","hasMore","isFetching","fetchNext","nextCursor","renderTable"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2968],{18488:(e,t,r)=>{r.d(t,{o:()=>a});var n=r(99940),o=r(97395),i={namespace:"share-v2"},a={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:n.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:n.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:n.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:n.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:o._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:n.k.GET,normalize:!1}},getShareLink:function(e){return{url:o._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:n.k.POST,url:o._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:n.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},79517:(e,t,r)=>{r.d(t,{b:()=>s});var n=r(20354),o=r(18488),i=r(4594),a=r(1575),u=r(39902),c=r(60115),l=r(70074);function s(e){var t,r=n.a.useGetFetch(),s=function(t){return e.shouldFetch&&o.o.getSentShares({cursor:t})},f=function(e){return r(s(e))},d=(0,c.K)(s,f),v=null===(t=d.items)||void 0===t?void 0:t.filter((function(e){return[i.E.Video,i.E.Clip,i.E.Interactive].includes(e.objectTypeId)})).map((function(e){return e.objectId.toString()})),h=(0,u.FN)(v,a.R.videos);return{items:(0,l.B)({source:d.items,target:h.itemsArr,sourceKey:"objectId"}),hasMore:d.hasMore,isFetching:h.isFetching,nextCursor:d.nextCursor,hasFirstPageCompleted:h.hasFirstRequestCompleted,fetchNext:f}}},39902:(e,t,r)=>{r.d(t,{FN:()=>h,SW:()=>p,fh:()=>v});var n=r(32735),o=r(20354),i=r(75896);function a(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},d=50;function v(e,t){var r=i.m.chunk(e,d).map((function(e){return t(i.m.uniq(e))})),n=o.a.useBasicFetchAll(r),a=i.m.flatten(n.data),u=n.data.length?a.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},t.id,t))}),{}):null;return{itemsArr:a,items:u,isFetching:n.isFetching,hasCompleted:n.hasCompleted}}function h(e,t,r){var o=null!=r?r:function(e){return"object"===l(e)?e.id:e},i=p({getRequest:t,_getKey:r}),a=i.fetchItems,u=f(i,["fetchItems"]);return n.useEffect((function(){(null==e?void 0:e.length)&&a(e)}),[null==e?void 0:e.map(o).join(",")]),u}function p(e){var t,r,c,f,v,h=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===l(e)?e.id:e},p=n.useRef(new Set),y=(f=n.useState([]),v=2,function(e){if(Array.isArray(e))return e}(f)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(f,v)||u(f,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=y[0],g=y[1],b=o.a.useBasicFetchAll(m),S=i.m.flatten(b.data),j=b.data.length?S.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},h(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(r=b.responses)||void 0===r?void 0:r[0])||void 0===c?void 0:c.hasCompleted),itemsArr:S,items:j,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var r=[];t.forEach((function(e){var t=h(e);p.current.has(t)||(r.push(e),p.current.add(t))})),r.length&&g((function(t){return[].concat(a(t),a(i.m.chunk(r,d).map(e.getRequest)))}))}}}}},60115:(e,t,r)=>{r.d(t,{K:()=>l});var n=r(32735),o=r(50242),i=r(91967),a=400,u=r(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function l(e,t,r,l,s,f){var d,v,h,p,y=(d=(0,n.useState)(0),v=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(d,v)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(d,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=y[0],g=y[1],b=t,S=(0,u.P)((function(t){if(!e)return null;var r=e(t);return r?r.key:null}),l,s);return h={fetchNextPage:function(){if(t&&e&&S)return g((function(e){return e+1})),b(S.nextCursor)},hasMore:!!(null==S?void 0:S.nextCursor),isFetching:null==S?void 0:S.isFetching,scrollContainer:f},p=function(){if(!h.isFetching){if(h.scrollContainer){var e=h.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-a)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-a)return;h.fetchNextPage()}},(0,n.useEffect)((function(){var e=i.q.throttle(p,200),t=h.scrollContainer||window;return h.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[h.hasMore,h.fetchNextPage,h.scrollContainer]),(0,n.useEffect)((function(){S&&S.shouldInitialFetch&&t&&(b(),g((function(e){return e+1})))}),[null==S?void 0:S.shouldInitialFetch,t]),(0,n.useEffect)((function(){var e,t;if((null==S?void 0:S.statusCode)&&i.q.isFunction(r)){var n=+(null===(t=null===(e=S.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));n!==o.k.ClientError&&n!==o.k.ServerError||r(m,S.statusCode)}}),[null==S?void 0:S.statusCode]),{items:null==S?void 0:S.items,hasMore:!!(null==S?void 0:S.nextCursor),nextCursor:null==S?void 0:S.nextCursor,isFetching:null==S?void 0:S.isFetching,totalItems:null==S?void 0:S.totalItems,hasFirstPageCompleted:null==S?void 0:S.hasFirstPageCompleted}}},70074:(e,t,r)=>{r.d(t,{B:()=>c});var n=r(32735);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var u="id";function c(e){return n.useMemo((function(){if(!e.target.length||!e.source.length)return[];var t=new Map,r=e.target.reduce((function(t,r){var n,i,a,c=r[e.targetKey||u].toString();return t[c]?t:Object.assign(Object.assign({},t),(n={},a=r,(i=function(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(i=c))in n?Object.defineProperty(n,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[i]=a,n))}),{});return e.source.forEach((function(n){var o=n[e.sourceKey||u].toString();if(!t.has(o)){var i=r[o];i&&t.set(o,i)}})),i(t.values())}),[e.source,e.target].concat(i(e.deps||[])))}},58321:(e,t,r)=>{r.d(t,{U:()=>h});var n=r(20354),o=r(16714),i=r(39151),a=r(1666),u=r(31949),c=r(22902),l=r(37802),s=r(22490),f=r(82431),d=r(46390),v=r(27638);function h(e){var t,r,h,p=e||{},y=p.locationContext,m=p.mtv,g=p.flightNamespace,b=p.sharedPlaylist,S=(0,d.G)(),j=S.isPlugin,k=S.params,C=(0,v.u)(y,g),w=C.setFavourite,A=C.canFavourite,O=(0,l.r)(null),F=O.hasTopicDirectories,I=O.isLoadingSettings,P=(0,c.T)(),E=P.hasPermissions,x=P.isLoaded,T=E(o.C.StudentExperience),L=n.a.useBasicFetch(i.L.config()),M=n.a.useBasicFetch(u.N.currentUser()),B=n.a.useBasicFetch((null===(t=M.data)||void 0===t?void 0:t.isAuthenticated)&&a.h.yearGroups(M.data.customerId));return{hasCommonVideoPropsCompleted:!I&&x&&L.hasCompleted&&M.hasCompleted&&(!(null===(r=M.data)||void 0===r?void 0:r.isAuthenticated)||B.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?b&&!(null===(t=M.data)||void 0===t?void 0:t.isAuthenticated)?null:f.j.getSeriesAppLink(e.series,{mtv:m}):null},isPlugin:j,isPluginPopup:!!(null==k?void 0:k.popup),canFavourite:A,setFavourite:w,imageCdnUrl:null===(h=L.data)||void 0===h?void 0:h.imageCdnUrl,yearGroups:B.data,getClassroomGuideAppLink:s.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:s.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:s.W.getResourceGuidanceAppLink,showNewVideoIndicator:F,companyLogoFallbackUrl:null,hasStudentExperience:T}}}},97816:(e,t,r)=>{r.d(t,{V:()=>u,l:()=>c});var n=r(1575),o=r(39902),i=r(31908);function a(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):[]:[]}function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=a(e).map((function(e){return e.id}));(0,o.FN)(r,(function(e){return n.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,o.SW)({getRequest:function(t){return n.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(a(e).map((function(e){return e.id})))}}}}}]);
|
|
2
|
-
//# sourceMappingURL=2968-
|
|
2
|
+
//# sourceMappingURL=2968-13e56eeff8-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/2968-13e56eeff8-lite.chunk.js","mappings":"8JASMA,EAA4C,CAChDC,UAAW,YAUAC,EAAgB,CAC3BC,YAAW,SACTC,GAEA,MAAO,CACLC,IAAK,sBACLC,IAAK,kBACLC,KAAM,SACNH,KAAAA,EACAJ,iBAAAA,EACAQ,iBAAkB,CAAE,gBAAiB,8BAAF,OAAgCJ,EAAKK,WAE5E,EAEAC,YAAW,SACTC,EACAP,GAEA,MAAO,CACLC,IAAK,uBAAF,OAAyBM,GAC5BL,IAAK,kBACLC,KAAM,QACNH,KAAAA,EACAJ,iBAAAA,EACAQ,iBAAkB,CAAE,iCAAkC,YAAF,OAAcG,IAEtE,EAEAC,YAAW,SACTD,GAEA,MAAO,CACLJ,KAAM,WACNF,IAAK,uBAAF,OAAyBM,GAC5BL,IAAK,kBACLN,iBAAAA,EACAQ,iBAAkB,CAAE,iCAAkC,gBAAiB,YAAF,OAAcG,IAEvF,EAEAE,SAAQ,SACNF,GAEA,MAAO,CACLN,IAAK,uBAAF,OAAyBM,GAC5BL,IAAK,YAAF,OAAcK,GACjBG,cAAe,YAAF,OAAcH,GAC3BJ,KAAM,QACNP,iBAAAA,EAEJ,EAEAe,cAAa,WACqB,IAAhCC,EAAA,uDAA8B,CAAC,EAEzBV,EAAMW,OAAOC,OAAOF,GAAQG,OAAOC,KAAK,KAE9C,MAAO,CACLf,IAAM,eAAqB,2BAA4BW,GACvDV,IAAK,iBAAF,OAAmBA,GACtBC,KAAM,QACNc,WAAW,EAEf,EAEAC,aAAY,SACVC,GAEA,MAAO,CACLlB,IAAK,eAAqB,qCAAsC,CAAEI,SAAUc,IAC5EjB,IAAK,kCAAF,OAAoCiB,GACvCvB,iBAAAA,EAEJ,EAEAwB,gBAAe,SACbpB,GAEA,MAAO,CACLG,KAAM,SACNF,IAAK,eAAqB,qCAAsC,OAAF,UAAOD,IACrEE,IAAK,yCAAF,OAA2CF,EAAKK,UACnDD,iBAAkB,CAAC,kCAAD,OAAoCJ,EAAKK,UAAY,iBACvET,iBAAAA,EAEJ,EAEAyB,WAAU,SAACF,GACT,MAAO,CACLlB,IAAK,wBAAF,OAA0BkB,EAAE,WAC/BjB,IAAK,WAAF,OAAaiB,GAChBF,WAAW,EAEf,EAEAK,oBAAmB,SACjBjB,GAEA,MAAO,CACLJ,IAAK,+BAAF,OAAiCI,GACpCH,IAAK,8BAAF,OAAgCG,GACnCF,KAAM,QACNP,iBAAAA,EAEJ,EAEA2B,mBAAkB,SAAChB,GACjB,MAAO,CACLN,IAAK,uBAAF,OAAyBM,EAAO,YACnCL,IAAK,mBAAF,OAAqBK,EAAO,YAC/BJ,KAAM,SAEV,EAEAqB,oBAAmB,SAACjB,GAClB,MAAO,CACLN,IAAK,uBAAF,OAAyBM,EAAO,YACnCL,IAAK,gBAAF,OAAkBK,EAAO,YAEhC,EAEAkB,iBAAgB,SAACC,GACf,MAAO,CACLzB,IAAK,oCAAF,OAAsCyB,GACzCxB,IAAK,wBAAF,OAA0BwB,GAEjC,E,kHCnII,SAAUC,EAAyBC,G,MACjCC,EAAQ,kBAERC,EAAa,SAACC,GAAe,OAAKH,EAAQI,aAAe,kBAA4B,CAAED,OAAAA,GAAS,EAChGE,EAAY,SAACF,GAAe,OAAKF,EAAMC,EAAWC,GAAQ,EAC1DG,GAAS,OAAuBJ,EAAYG,GAE5CE,EAAwB,QAAZ,EAAAD,EAAOE,aAAK,eAC1BC,QAAO,SAAAC,GAAC,MAAI,CAAE,UAAkB,SAAiB,iBAAyBC,SAASD,EAAEE,aAAa,IACnGC,KAAI,SAAAH,GAAC,OAAIA,EAAEjC,SAASqC,UAAU,IAE3BC,GAAS,QAAyCR,EAAW,YAQnE,MAAO,CACLC,OAPY,OAAiB,CAC7BQ,OAAQV,EAAOE,MACfS,OAAQF,EAAOG,SACfC,UAAW,aAKXC,QAASd,EAAOc,QAChBC,WAAYN,EAAOM,WACnBC,WAAYhB,EAAOgB,WACnBC,sBAAuBR,EAAOS,yBAC9BnB,UAAAA,EAEJ,C,+vDCnCMoB,EAAa,GAkBb,SAAUC,EACdC,EACAzB,GAEA,IAEM0B,EAFS,UAA0BD,EAASF,GAE1BZ,KAAI,SAAAgB,GAAK,OAAI3B,EAAW,SAAiB2B,GAAO,IAElEC,EAAY,qBAA6BF,GAEzCV,EAAW,YAAoBY,EAAU1D,MACzCoC,EAAQsB,EAAU1D,KAAK2D,OACzBb,EAASc,QAAO,SAACC,EAAKC,GAAI,OAAK,+BAAMD,GAAG,KAAGC,EAAK3C,GAAK2C,GAAI,GAAK,CAAC,GAC/D,KAEJ,MAAO,CACLhB,SAAAA,EACAV,MAAAA,EACAa,WAAYS,EAAUT,WACtBc,aAAcL,EAAUK,aAE5B,CAQM,SAAUC,EACdC,EACAnC,EACAoC,GAEA,IAAMC,EAASD,QAAAA,EAAY,SAACE,GAC1B,MAAmB,WAAf,EAAOA,GACFA,EAAIjD,GAENiD,CACT,EAEM,EAA0BC,EAA8C,CAAEvC,WAAAA,EAAYoC,QAAAA,IAApFI,EAAU,EAAVA,WAAetE,EAAI,IAArB,gBASN,OAPA,aAAgB,YACTiE,aAAI,EAAJA,EAAMN,SAGXW,EAAWL,EACb,GAAG,CAACA,aAAI,EAAJA,EAAMxB,IAAI0B,GAAQnD,KAAK,OAEpBhB,CACT,CAWM,SAAUqE,EACdzC,G,cAEMuC,EAAwB,QAAf,EAAAvC,EAAQsC,eAAO,QAAK,SAACE,GAClC,MAAmB,WAAf,EAAOA,GACFA,EAAIjD,GAENiD,CACT,EAEMG,EAAe,SAA0B,IAAIC,KACmB,G,EAApC,WAAiC,I,EAAG,E,unBAA9DhB,EAAQ,KAAEiB,EAAW,KAwBvBf,EAAY,qBAAqCF,GACjDV,EAAW,YAAoBY,EAAU1D,MACzCoC,EAAQsB,EAAU1D,KAAK2D,OACzBb,EAASc,QAAkC,SAACC,EAAKC,GAAI,OAAK,+BAAMD,GAAG,KAAGM,EAAOL,GAAQA,GAAI,GAAK,CAAC,GAC/F,KAEJ,MAAO,CACLV,4BAAoD,QAAxB,EAAmB,QAAnB,EAAAM,EAAUA,iBAAS,eAAG,UAAE,eAAEK,cACtDjB,SAAAA,EACAV,MAAAA,EACAa,WAAYS,EAAUT,WACtBqB,WAjCF,SAAoBL,GAClB,GAAKA,aAAI,EAAJA,EAAMN,OAAX,CAGA,IAAMe,EAA6B,GAEnCT,EAAKU,SAAQ,SAAAP,GACX,IAAMlE,EAAMiE,EAAOC,GAEfG,EAAaK,QAAQC,IAAI3E,KAG7BwE,EAAeI,KAAKV,GACpBG,EAAaK,QAAQG,IAAI7E,GAC3B,IAEKwE,EAAef,QAGpBc,GAAY,SAAAO,GAAC,kBAAUA,GAAC,EAAK,UAA4BN,EAAgBrB,GAAYZ,IAAIb,EAAQE,aAAW,GAjBpG,CAkBV,EAeF,C,wECnIMmD,EAAmB,I,iHC2BnB,SAAUC,EACdpD,EACAG,EACAkD,EACAC,EACAC,EACAC,GAEA,I,ID1BgC1D,EAC1B2D,ECyB+C,G,GAAX,IAAAC,UAAS,G,EAAE,E,o4BAA7CC,EAAY,KAAEC,EAAe,KAE/BC,EAAc1D,EAcd2D,GAAW,QAZjB,SAAgB7D,GACd,IAAKD,EACH,OAAO,KAET,IAAM+D,EAAU/D,EAAWC,GAE3B,OAAK8D,EAGEA,EAAQ3F,IAFN,IAGX,GAIEkF,EACAC,GAwCF,ODrFgCzD,ECwDd,CAChBkE,cATF,WACE,GAAK7D,GAAcH,GAAe8D,EAIlC,OADAF,GAAgB,SAAAK,GAAU,OAAIA,EAAa,CAAC,IACrCJ,EAAYC,EAAS1C,WAC9B,EAIEF,WAAW4C,aAAQ,EAARA,EAAU1C,YACrBD,WAAY2C,aAAQ,EAARA,EAAU3C,WACtBqC,gBAAAA,GD3DIC,EAAe,WACnB,IAAI3D,EAAQqB,WAAZ,CAGA,GAAKrB,EAAQ0D,gBAON,CACL,IAAQA,EAAoB1D,EAApB0D,gBAKR,GAJ4BA,EAAgBU,wBAAwBC,OAASX,EAAgBY,UAEzEZ,EAAgBa,aAAelB,EAGjD,MACH,MAVC,GAJ4BmB,OAAOC,YAAcC,SAASC,gBAAgBL,UAEtDI,SAASC,gBAAgBJ,aAAelB,EAG1D,OAWJrD,EAAQkE,eAnBA,CAoBV,GAEA,IAAAU,YAAU,WACR,IAAMC,EAAWC,EAAA,WAAwBnB,EAAc,KAEjDD,EAAkB1D,EAAQ0D,iBAAmBc,OAKnD,OAHIxE,EAAQoB,SACVsC,EAAgBqB,iBAAiB,SAAUF,GAEtC,kBAAMnB,EAAgBsB,oBAAoB,SAAUH,EAAS,CACtE,GAAG,CAAE7E,EAAQoB,QAASpB,EAAQkE,cAAelE,EAAQ0D,mBC6BrD,IAAAkB,YAAU,WACHZ,GAGDA,EAASiB,oBAAsB5E,IACjC0D,IACAD,GAAgB,SAAAK,GAAU,OAAIA,EAAa,CAAC,IAEhD,GAAG,CAAEH,aAAQ,EAARA,EAAUiB,mBAAoB5E,KAEnC,IAAAuE,YAAU,W,QACR,IAAKZ,aAAQ,EAARA,EAAUkB,aAAeJ,EAAA,aAA0BvB,GAAxD,CAGA,IAAM4B,IAAoE,QAA/B,EAAmB,QAAnB,EAAAnB,EAASkB,kBAAU,eAAEpE,kBAAU,eAAEsE,OAAO,EAAG,IAElFD,IAAoBE,EAAA,eAA+BF,IAAoBE,EAAA,eAG3E9B,EAAQM,EAAcG,EAASkB,WAPvB,CAQV,GAAG,CAAClB,aAAQ,EAARA,EAAUkB,aAEP,CACL1E,MAAOwD,aAAQ,EAARA,EAAUxD,MACjBY,WAAW4C,aAAQ,EAARA,EAAU1C,YACrBA,WAAY0C,aAAQ,EAARA,EAAU1C,WACtBD,WAAY2C,aAAQ,EAARA,EAAU3C,WACtBiE,WAAYtB,aAAQ,EAARA,EAAUsB,WACtB/D,sBAAuByC,aAAQ,EAARA,EAAUzC,sBAErC,C,s/BC/EA,IAAMgE,EAAgC,KAKhC,SAAUC,EAGdxF,GAiCA,OAhCc,WAAc,WAC1B,IAAKA,EAAQiB,OAAOc,SAAW/B,EAAQgB,OAAOe,OAC5C,MAAO,GAET,IAAM0D,EAAc,IAAIC,IAGlBC,EAAwC3F,EAAQiB,OAAOe,QAAgC,SAAC4D,EAAMC,GAClG,I,MAAMvH,EAAMuH,EAAK7F,EAAQ8F,WAAaP,GAAazE,WAEnD,OAAI8E,EAAKtH,GACAsH,EAEF,OAAP,wBAAYA,I,EAAI,G,EAASC,G,sRAANvH,M,2FACrB,GAAG,CAAC,GAcJ,OAZA0B,EAAQgB,OAAO+B,SAAQ,SAAA/B,GACrB,IAAMG,EAAYH,EAAOhB,EAAQmB,WAAaoE,GAAazE,WAE3D,IAAI2E,EAAYxC,IAAI9B,GAApB,CAGA,IAAM4E,EAAeJ,EAAaxE,GAE9B4E,GACFN,EAAYO,IAAI7E,EAAW4E,EALrB,CAMV,IAEO,EAAIN,EAAYvG,SACzB,GAAG,CAAEc,EAAQgB,OAAQhB,EAAQiB,QAAM,SAAMjB,EAAQiG,MAAQ,KAI3D,C,+JCpCM,SAAUC,EAAoBlG,G,UAClC,EAAkEA,GAAW,CAAC,EAAtEmG,EAAe,EAAfA,gBAAiBC,EAAG,EAAHA,IAAKC,EAAe,EAAfA,gBAAiBC,EAAc,EAAdA,eAE/C,GAA6B,SAArBC,EAAQ,EAARA,SAAUvH,EAAM,EAANA,OAClB,GAAuC,IAAAwH,GAAkBL,EAAiBE,GAAlEI,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aACtB,GAAmD,OAAY,MAAvDC,EAAmB,EAAnBA,oBAAqBC,EAAiB,EAAjBA,kBAC7B,GAA2D,SAAnDC,EAAc,EAAdA,eAA0BC,EAAoB,EAA9BC,SAClBC,EAAuBH,EAAe,uBAEtCI,EAAS,kBAA6B,cACtCC,EAAc,kBAAkC,mBAChDC,EAAa,mBACD,QAAhB,EAAAD,EAAY9I,YAAI,eAAEgJ,kBAAmB,eAA4BF,EAAY9I,KAAKiJ,aA4BpF,MAAO,CACLC,8BARCV,GACDE,GACAG,EAAO9E,cACP+E,EAAY/E,iBACM,QAAhB,EAAA+E,EAAY9I,YAAI,eAAEgJ,kBAAmBD,EAAWhF,cAKlDoF,iBAAkB,CAChBC,YAAa,SACbC,kBA7BJ,SAA2BC,G,MACzB,MAAM,WAAYA,EAUdpB,KAAmC,QAAhB,EAAAY,EAAY9I,YAAI,eAAEgJ,iBAChC,KAEF,qBAAqCM,EAAMC,OAAQ,CAAEvB,IAAAA,IAZnD,IAaX,EAeIG,SAAAA,EACAqB,iBAAiB5I,aAAM,EAANA,EAAQ6I,OACzBnB,aAAAA,EACAD,aAAAA,EACAqB,YAAwB,QAAX,EAAAb,EAAO7I,YAAI,eAAE0J,YAC1BX,WAAYA,EAAW/I,KACvB2J,yBAA0B,6BAC1BC,8BAA+B,kCAC/BC,2BAA4B,+BAC5BC,sBAAuBvB,EACvBwB,uBAAwB,KACxBnB,qBAAAA,GAGN,C,+ECnFA,SAASoB,EAAgBC,GACvB,OAAKA,EAGDC,MAAMC,QAAQF,GACTA,EAAQ5H,QAAO,SAAA+H,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,IAEjF,SAAUH,EACLA,EAAQjK,KAAKqC,QAAO,SAAA+H,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,IAEnF,GARE,EASX,CAUM,SAAUC,EAAcJ,GAA+C,IAA/BrI,EAAA,uDAA6B,CAAC,EACpE0I,EAAWN,EAAgBC,GAASxH,KAAI,SAAA8H,GAAC,OAAIA,EAAEpJ,EAAE,KAEvD,QACEmJ,GACA,SAAAE,GAAG,OAAI,qBAA+BA,EAAK5I,EAAQqG,gBAAgB,GACnE,KAEJ,CAEM,SAAUwC,IAAiD,IAA/B7I,EAAA,uDAA6B,CAAC,EAStD0C,GAAe,QAAyB,CAAExC,WARlD,SAAoB0I,GAClB,OAAO,qBAA+BA,EAAK5I,EAAQqG,gBACrD,IAMQ3D,WAER,MAAO,CAAEoG,aANT,SAAsBtI,GACpB,OAAOkC,EAAW0F,EAAgB5H,GAAOK,KAAI,SAAA8H,GAAC,OAAIA,EAAEpJ,EAAE,IACxD,EAKF,C","sources":["file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/hooks/useGetRecentSharedVideos.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/hooks/usePreserveOrder.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}` ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2' ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePreserveOrder } from 'libs/shared/hooks/usePreserveOrder';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\ninterface UseGetRecentSharedVideosOptions {\n shouldFetch: boolean;\n}\n\nexport function useGetRecentSharedVideos(options: UseGetRecentSharedVideosOptions) {\n const fetch = Flight.useGetFetch();\n \n const getRequest = (cursor?: string) => options.shouldFetch && ShareRequests.getSentShares({ cursor });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n const shares = useInfiniteList<Share>(getRequest, fetchNext);\n\n const videosIds = shares.items\n ?.filter(s => [ MasterType.Video, MasterType.Clip, MasterType.Interactive ].includes(s.objectTypeId))\n .map(s => s.objectId.toString());\n\n const videos = useGrowingBatchFetch<VideoTypes, string>(videosIds, VideoRequests.videos);\n\n const items = usePreserveOrder({\n source: shares.items,\n target: videos.itemsArr,\n sourceKey: 'objectId'\n });\n\n return {\n items,\n hasMore: shares.hasMore,\n isFetching: videos.isFetching,\n nextCursor: shares.nextCursor,\n hasFirstPageCompleted: videos.hasFirstRequestCompleted,\n fetchNext\n };\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React, { DependencyList } from 'react';\n\nimport { BaseObject } from '../interfaces';\n\ninterface UsePreserveOrderOptions<TFrom extends BaseObject, TTarget extends BaseObject> {\n /**\n * We preserve order from the source\n */\n source: TFrom[];\n /**\n * We align target objects to source objects order\n */\n target: TTarget[];\n /**\n * Source comparison key if it other than default `id`\n */\n // getSourceKey?: (obj: TFrom) => string;\n sourceKey?: keyof TFrom;\n /**\n * Target comparion key if its other than default `id`\n */\n // getTargetKey?: (obj: TTarget) => string;\n targetKey?: keyof TTarget;\n\n deps?: DependencyList | undefined;\n}\n\nconst DEFAULT_KEY: keyof BaseObject = 'id';\n\n/**\n * Hook to align order of objects in `target` to `source`\n */\nexport function usePreserveOrder<\n TFrom extends BaseObject = BaseObject,\n TTarget extends BaseObject = BaseObject\n>(options: UsePreserveOrderOptions<TFrom, TTarget>) {\n const items = React.useMemo(() => {\n if (!options.target.length || !options.source.length)\n return [];\n \n const preserveMap = new Map<string, TTarget>();\n\n // Create a lookup table so finding target with certain key is O(n) rather than O(n * n)\n const targetRecord: Record<string, TTarget> = options.target.reduce<Record<string, TTarget>>((prev, curr) => {\n const key = curr[options.targetKey || DEFAULT_KEY].toString();\n\n if (prev[key])\n return prev;\n\n return { ...prev, [key]: curr };\n }, {});\n\n options.source.forEach(source => {\n const sourceKey = source[options.sourceKey || DEFAULT_KEY].toString();\n \n if (preserveMap.has(sourceKey))\n return;\n\n const targetObject = targetRecord[sourceKey];\n\n if (targetObject)\n preserveMap.set(sourceKey, targetObject);\n });\n\n return [...preserveMap.values()];\n }, [ options.source, options.target, ...(options.deps || []) ]);\n\n\n return items;\n}","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}"],"names":["normalizeOptions","namespace","ShareRequests","createShare","data","url","key","type","invalidationKeys","objectId","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","sort","join","normalize","getShareLink","id","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","useGetRecentSharedVideos","options","fetch","getRequest","cursor","shouldFetch","fetchNext","shares","videosIds","items","filter","s","includes","objectTypeId","map","toString","videos","source","target","itemsArr","sourceKey","hasMore","isFetching","nextCursor","hasFirstPageCompleted","hasFirstRequestCompleted","CHUNK_SIZE","useBatchFetch","itemIds","requests","chunk","responses","length","reduce","acc","item","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","fetchedItems","Set","setRequests","unfetchedItems","forEach","current","has","push","add","r","SCROLL_TOLERANCE","useInfiniteList","onError","getItems","getCursor","scrollContainer","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","request","fetchNextPage","currentVal","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","statusCode","httpStatusClass","substr","HttpStatus","totalItems","DEFAULT_KEY","usePreserveOrder","preserveMap","Map","targetRecord","prev","curr","targetKey","targetObject","set","deps","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","config","currentUser","yearGroups","isAuthenticated","customerId","hasCommonVideoPropsCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","getValidObjects","objects","Array","isArray","o","useVideoMixin","videoIds","v","ids","useVideoMixinFunc","fetchObjects"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 3597-eaae787997-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3597],{61357:(t,e,r)=>{r.r(e),r.d(e,{RequestingAccessView:()=>N});var n=r(32735),o=r(98269),i=r(92802),a=r(23481),c=r(20354),s=r(14617),u=r(24833);function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function f(t){return n.createElement(s._,{view:u.C.RequestingAccess,options:["none","allowed","any"],errors:t.errors,appLinks:t.appLinks,classname:t.classname,onSelectValue:function(e){return t.formikProps.setFieldValue("requestingAccess.selectedOption",e)},addDomainField:function(){return t.formikProps.setFieldValue("requestingAccess.domains",[].concat(function(t){if(Array.isArray(t))return l(t)}(e=t.formikProps.values.requestingAccess.domains)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(t,e):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{domain:""}]));var e},onChangeDomain:function(e,r){return t.formikProps.setFieldValue("requestingAccess.domains[".concat(r,"]"),e)},removeDomainField:function(e){var r=t.formikProps.values.requestingAccess.domains;r.length>1?(t.formikProps.setFieldValue("requestingAccess.domains",r.filter((function(t,r){return r!==e}))),t.formikProps.setFieldError("requestingAccess.domains",void 0)):(t.formikProps.setFieldValue("requestingAccess.domains[0]",{domain:""}),t.formikProps.setFieldError("requestingAccess.domains[0]",void 0))},setFieldError:function(e,r){return t.formikProps.setFieldError(e,r)},selectedOption:t.formikProps.values.requestingAccess.selectedOption,domains:t.formikProps.values.requestingAccess.domains})}var h=r(61807),p=r(15611),m=r(82644),d=r(83345),y=r(23371),v=r(31949),g=r(69883),b=r(79612),w=r(93802),E=r(5458),A=r(14070),k=r(97291),L=r(81803),x=r(68598),S=r(71966),O=r(96268);function F(t){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},F(t)}function P(){P=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof v?e:v,a=Object.create(i.prototype),c=new j(n||[]);return o(a,"_invoke",{value:S(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",m="executing",d="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,a,(function(){return this}));var E=Object.getPrototypeOf,A=E&&E(E(I([])));A&&A!==r&&n.call(A,a)&&(w=A);var k=b.prototype=v.prototype=Object.create(w);function L(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function r(o,i,a,c){var s=f(t[o],t,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==F(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function S(e,r,n){var o=h;return function(i,a){if(o===m)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var s=O(c,n);if(s){if(s===y)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=m;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?d:p,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=d,n.method="throw",n.arg=u.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function _(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function q(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function I(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(F(e)+" is not iterable")}return g.prototype=b,o(k,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,b):(t.__proto__=b,u(t,s,"GeneratorFunction")),t.prototype=Object.create(k),t},e.awrap=function(t){return{__await:t}},L(x.prototype),u(x.prototype,c,(function(){return this})),e.AsyncIterator=x,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new x(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},L(k),u(k,s,"Generator"),u(k,a,(function(){return this})),u(k,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=I,j.prototype={constructor:j,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(q),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),q(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;q(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:I(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var q=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{s(n.next(t))}catch(t){i(t)}}function c(t){try{s(n.throw(t))}catch(t){i(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,c)}s((n=n.apply(t,e||[])).next())}))},j="settings.requestingAccess",I=a.T.encloseNamespace(j);function N(){(0,O.W)(),(0,b.M)({title:I("pageTitle")});var t,e,r=c.a.useBasicFetch(v.N.currentUser()),a=r.data.customerId,s=c.a.useBasicFetch(r.data.customerId&&S.B.domains(a)),u=c.a.useGetFetchAsync(),l=(0,g.Z)(),F=(t=n.useState([]),e=2,function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);s=!0);}catch(t){u=!0,o=t}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return _(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),N=F[0],T=F[1];if(!s.hasCompleted)return n.createElement(n.Fragment,null);var C={requestingAccess:w.y.getInitialJoinRequests(s.data),teacherInvites:!1,automaticAccess:w.y.getInitialAccessBehaviour(s.data)};return n.createElement(L.d,{heading:I("heading"),breadcrumbs:[I("breadcrumb")]},n.createElement(h.L,{active:"requesting-access",appLinks:x.W}),n.createElement("p",null,n.createElement(d.x,{namespace:j,phrase:"description"})," ",n.createElement(p.F,{appLink:{application:k.O.USER_MANAGER,action:A.e.UserManager.ACCESS_REQUESTS},className:"text-info"},n.createElement(d.x,{namespace:j,phrase:"manageRequests"}))),n.createElement(m.n,{initialValues:C,onSubmit:function(t,e){var r;return q(this,void 0,void 0,P().mark((function n(){var o;return P().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=w.y.formatRequestData(s.data,t.requestingAccess,y.W.Request),n.prev=1,n.next=4,u(S.B.updateDomains(a,o));case 4:l.success(I("success")),n.next=11;break;case 7:n.prev=7,n.t0=n.catch(1),(null===(r=n.t0.responseJSON)||void 0===r?void 0:r.problems)&&T(n.t0.responseJSON.problems),l.error(I("error"));case 11:return n.prev=11,e(),n.finish(11);case 14:case"end":return n.stop()}}),n,null,[[1,7,11,14]])})))},validate:function(t){return(0,E.T)({values:t,alerts:l,setShowPopup:function(){}})},validateOnChange:!1,validateOnBlur:!1},(function(t){return n.createElement(i.l0,null,n.createElement(f,{formikProps:t,errors:N,appLinks:x.W}),n.createElement(o.Z,{variant:"dark",disabled:!t.dirty,onClick:function(){return t.submitForm()}},"Save changes"))})))}}}]);
|
|
3
|
+
//# sourceMappingURL=3597-eaae787997-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3597-eaae787997-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/domain-settings/domain-forms/RequestingAccessForm.tsx","file:///app/packages/projects/lite/src/apps/settings/views/requesting-access/RequestingAccessView.tsx"],"sourcesContent":["import React from 'react';\nimport { FormikProps } from 'formik';\n\nimport { DomainSettingsForm } from 'libs/shared/apps/domain-settings/domain-settings-form/DomainSettingsForm';\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\nimport { DomainSettingsModelV2 } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainErrorResponse } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\n\ntype RequestingAccessFormProps = {\n formikProps: FormikProps<DomainSettingsModelV2>;\n errors: ApprovedDomainErrorResponse[];\n appLinks?: AccessSettingAppLinks;\n classname?: string;\n};\n\nexport function RequestingAccessForm(props: RequestingAccessFormProps) {\n return (\n <DomainSettingsForm\n view={AccessSettingsGroup.RequestingAccess}\n options={[ 'none', 'allowed', 'any' ]}\n errors={props.errors}\n appLinks={props.appLinks}\n classname={props.classname}\n onSelectValue={value =>\n props.formikProps.setFieldValue('requestingAccess.selectedOption', value)\n }\n addDomainField={() =>\n props.formikProps.setFieldValue('requestingAccess.domains', [\n ...props.formikProps.values.requestingAccess.domains,\n { domain: '' }\n ])\n }\n onChangeDomain={(domain, index) =>\n props.formikProps.setFieldValue(\n `requestingAccess.domains[${index}]`,\n domain\n )\n }\n removeDomainField={index => {\n const domains = props.formikProps.values.requestingAccess.domains;\n if (domains.length > 1) {\n props.formikProps.setFieldValue(\n 'requestingAccess.domains',\n domains.filter((_, i) => i !== index)\n );\n props.formikProps.setFieldError('requestingAccess.domains', undefined);\n } else {\n props.formikProps.setFieldValue(\n `requestingAccess.domains[0]`,\n { domain: '' }\n );\n props.formikProps.setFieldError(`requestingAccess.domains[0]`, undefined);\n }\n }}\n setFieldError={(error, code) =>\n props.formikProps.setFieldError(error, code)\n }\n selectedOption={props.formikProps.values.requestingAccess.selectedOption}\n domains={props.formikProps.values.requestingAccess.domains}\n />\n );\n}","import React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { RequestingAccessForm } from 'libs/shared/apps/domain-settings/domain-forms/RequestingAccessForm';\nimport { DomainSettingsTabs } from 'libs/shared/apps/domain-settings/domain-settings-tabs/DomainSettingsTabs';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { AccessType } from 'libs/shared/enums/AccessType';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { ApprovedDomain, DomainSettingsModelV2 } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainErrorResponse } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\nimport { DomainSettingsFormHelper } from 'libs/shared/utils/DomainSettingsFormHelper';\nimport { DomainValidation } from 'libs/shared/utils/validation/DomainSettingsValidationSchema';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { AccessSettingsAppLinks } from 'apps/settings/constants/AccessSettingsAppLinks';\nimport { DomainRequests } from 'apps/settings/flight-requests/DomainRequests';\nimport { useDomainSettingsSwitch } from 'apps/settings/hooks/useDomainSettingsSwitch';\n\nconst namespace = 'settings.requestingAccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function RequestingAccessView() {\n useDomainSettingsSwitch();\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { customerId } = currentUser.data;\n const domains = Flight.useBasicFetch<ApprovedDomain[]>(\n currentUser.data.customerId && DomainRequests.domains(customerId)\n );\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n const [ errors, setErrors ] = React.useState<ApprovedDomainErrorResponse[]>([]);\n\n async function onSaveChanges(\n values: DomainSettingsModelV2,\n onDone: (options?: FormSubmissionOptions<DomainSettingsModelV2>) => void\n ) {\n const formattedRequestData = DomainSettingsFormHelper.formatRequestData(\n domains.data,\n values.requestingAccess,\n AccessType.Request\n );\n \n try {\n await fetchAsync<any[]>(DomainRequests.updateDomains(customerId, formattedRequestData));\n alerts.success(getPhrase('success'));\n } catch (error) {\n if (error.responseJSON?.problems) {\n setErrors(error.responseJSON.problems);\n }\n alerts.error(getPhrase('error'));\n } finally {\n onDone();\n }\n }\n\n if (!domains.hasCompleted) {\n return <></>;\n }\n\n const initialValues = {\n requestingAccess: DomainSettingsFormHelper.getInitialJoinRequests(domains.data),\n teacherInvites: false,\n automaticAccess: DomainSettingsFormHelper.getInitialAccessBehaviour(domains.data)\n };\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n <DomainSettingsTabs active='requesting-access' appLinks={AccessSettingsAppLinks}/>\n <p>\n <Text namespace={namespace} phrase='description' />\n \n <AppLink\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.ACCESS_REQUESTS\n }}\n className='text-info'\n >\n <Text namespace={namespace} phrase='manageRequests' />\n </AppLink>\n </p>\n <FormWrapper\n initialValues={initialValues}\n onSubmit={onSaveChanges}\n validate={values => DomainValidation({ values, alerts, setShowPopup: () => {} })}\n validateOnChange={false}\n validateOnBlur={false}\n >\n {formikProps => (\n <Form>\n <RequestingAccessForm\n formikProps={formikProps}\n errors={errors}\n appLinks={AccessSettingsAppLinks}\n />\n <Button\n variant='dark'\n disabled={!formikProps.dirty}\n onClick={() => formikProps.submitForm()}\n >\n Save changes\n </Button>\n </Form>\n )}\n </FormWrapper>\n </SettingsLayout>\n );\n}\n"],"names":["RequestingAccessForm","props","DomainSettingsForm","view","AccessSettingsGroup","options","errors","appLinks","classname","onSelectValue","value","formikProps","setFieldValue","addDomainField","values","requestingAccess","domains","domain","onChangeDomain","index","removeDomainField","length","filter","_","i","setFieldError","undefined","error","code","selectedOption","namespace","getPhrase","LanguageService","RequestingAccessView","useDomainSettingsSwitch","useSetPageMetadata","title","currentUser","UserRequests","customerId","data","DomainRequests","fetchAsync","alerts","setErrors","hasCompleted","initialValues","DomainSettingsFormHelper","teacherInvites","automaticAccess","SettingsLayout","heading","breadcrumbs","DomainSettingsTabs","active","AccessSettingsAppLinks","Text","phrase","AppLink","appLink","application","action","className","FormWrapper","onSubmit","onDone","formattedRequestData","AccessType","success","responseJSON","problems","validate","setShowPopup","validateOnChange","validateOnBlur","Button","variant","disabled","dirty","onClick","submitForm"],"sourceRoot":""}
|