@clickview/lite 0.51.4-rc.2 → 0.51.4-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1750-4e7575b781-lite.chunk.js +2 -0
- package/dist/scripts/1750-4e7575b781-lite.chunk.js.map +1 -0
- package/dist/scripts/1820-345bf53a3c-lite.chunk.js +2 -0
- package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +1 -0
- package/dist/scripts/1905-ccaa3a43a6-lite.chunk.js +2 -0
- package/dist/scripts/1905-ccaa3a43a6-lite.chunk.js.map +1 -0
- package/dist/scripts/2004-d891104ed4-lite.chunk.js +3 -0
- package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +1 -0
- package/dist/scripts/3020-dbc723b098-lite.chunk.js +2 -0
- package/dist/scripts/3020-dbc723b098-lite.chunk.js.map +1 -0
- package/dist/scripts/3231-b46a5ecb6a-lite.chunk.js +2 -0
- package/dist/scripts/3231-b46a5ecb6a-lite.chunk.js.map +1 -0
- package/dist/scripts/3645-d9a5464436-lite.chunk.js +3 -0
- package/dist/scripts/3645-d9a5464436-lite.chunk.js.map +1 -0
- package/dist/scripts/389-58c7682943-lite.chunk.js +2 -0
- package/dist/scripts/389-58c7682943-lite.chunk.js.map +1 -0
- package/dist/scripts/4690-03372d68ac-lite.chunk.js +2 -0
- package/dist/scripts/4690-03372d68ac-lite.chunk.js.map +1 -0
- package/dist/scripts/5229-a1990cb48e-lite.chunk.js +2 -0
- package/dist/scripts/5229-a1990cb48e-lite.chunk.js.map +1 -0
- package/dist/scripts/5385-becf24e76b-lite.chunk.js +2 -0
- package/dist/scripts/5385-becf24e76b-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-96a0649af0-lite.chunk.js +2 -0
- package/dist/scripts/5595-96a0649af0-lite.chunk.js.map +1 -0
- package/dist/scripts/5928-0d803fceb2-lite.chunk.js +2 -0
- package/dist/scripts/5928-0d803fceb2-lite.chunk.js.map +1 -0
- package/dist/scripts/5940-f335f8c290-lite.chunk.js +2 -0
- package/dist/scripts/5940-f335f8c290-lite.chunk.js.map +1 -0
- package/dist/scripts/8830-ab7e2a0927-lite.chunk.js +2 -0
- package/dist/scripts/8830-ab7e2a0927-lite.chunk.js.map +1 -0
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +3 -0
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +1 -0
- package/dist/scripts/{9843-fdefde55d7-lite.chunk.js → 9843-b82415b68c-lite.chunk.js} +2 -2
- package/dist/scripts/9843-b82415b68c-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-5481f5bf86.min.js → bundle-8ef24aafa1.min.js} +3 -3
- package/dist/scripts/{bundle-5481f5bf86.min.js.map → bundle-8ef24aafa1.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1750-2620ba7c35-lite.chunk.js +0 -2
- package/dist/scripts/1750-2620ba7c35-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-7e03cf1f19-lite.chunk.js +0 -2
- package/dist/scripts/1820-7e03cf1f19-lite.chunk.js.map +0 -1
- package/dist/scripts/1905-7a0a3aabe9-lite.chunk.js +0 -2
- package/dist/scripts/1905-7a0a3aabe9-lite.chunk.js.map +0 -1
- package/dist/scripts/2004-00a63b9511-lite.chunk.js +0 -3
- package/dist/scripts/2004-00a63b9511-lite.chunk.js.map +0 -1
- package/dist/scripts/3020-152e57c92c-lite.chunk.js +0 -2
- package/dist/scripts/3020-152e57c92c-lite.chunk.js.map +0 -1
- package/dist/scripts/3231-af3a47245c-lite.chunk.js +0 -2
- package/dist/scripts/3231-af3a47245c-lite.chunk.js.map +0 -1
- package/dist/scripts/3645-bd1d174b0c-lite.chunk.js +0 -3
- package/dist/scripts/3645-bd1d174b0c-lite.chunk.js.map +0 -1
- package/dist/scripts/389-d8ef749150-lite.chunk.js +0 -2
- package/dist/scripts/389-d8ef749150-lite.chunk.js.map +0 -1
- package/dist/scripts/4690-c5bff103d9-lite.chunk.js +0 -2
- package/dist/scripts/4690-c5bff103d9-lite.chunk.js.map +0 -1
- package/dist/scripts/5229-b673828f61-lite.chunk.js +0 -2
- package/dist/scripts/5229-b673828f61-lite.chunk.js.map +0 -1
- package/dist/scripts/5385-db9999f839-lite.chunk.js +0 -2
- package/dist/scripts/5385-db9999f839-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-8f3931b8c2-lite.chunk.js +0 -2
- package/dist/scripts/5595-8f3931b8c2-lite.chunk.js.map +0 -1
- package/dist/scripts/5928-325f4d9b8b-lite.chunk.js +0 -2
- package/dist/scripts/5928-325f4d9b8b-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-44479341a9-lite.chunk.js +0 -2
- package/dist/scripts/5940-44479341a9-lite.chunk.js.map +0 -1
- package/dist/scripts/8830-7264149694-lite.chunk.js +0 -2
- package/dist/scripts/8830-7264149694-lite.chunk.js.map +0 -1
- package/dist/scripts/9230-420e26f36c-lite.chunk.js +0 -3
- package/dist/scripts/9230-420e26f36c-lite.chunk.js.map +0 -1
- package/dist/scripts/9843-fdefde55d7-lite.chunk.js.map +0 -1
- /package/dist/scripts/{2004-00a63b9511-lite.chunk.js.LICENSE.txt → 2004-d891104ed4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3645-bd1d174b0c-lite.chunk.js.LICENSE.txt → 3645-d9a5464436-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-420e26f36c-lite.chunk.js.LICENSE.txt → 9230-6dee40b1fb-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-5481f5bf86.min.js.LICENSE.txt → bundle-8ef24aafa1.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5595-96a0649af0-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBuildBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library/LibraryView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable, attributes: { role: 'drag', tabIndex: -1 } });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(LibraryRequests.folderParentTree(folderId));\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, library: Library, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId: library && folderId,\n getAppLink: object => getFolderAppLink(library.id, object.data, sort),\n firstItem: {\n name: library?.name,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.LIBRARY,\n args: [ library?.id, TextHelper.slugify(library?.name) ]\n }\n }\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Library } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\nimport { getFolderAppLink, getFolderBgColourClass } from 'apps/libraries/views/library-folder/LibraryFolderViewUtils';\n\nconst namespace = 'libraries.library';\n\ninterface LibraryViewProps {\n id: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryView(props: LibraryViewProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.id));\n const libraryFolders = useFetchAllChildFolders(library.data?.categoryTree?.id);\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n useSetPageMetadata({ title: library.data?.name });\n useHandleObjectError(library);\n useHandleLibraryType(library);\n\n return (\n <>\n {library.data\n ? (\n <BannerHeader\n heading={library.data.name}\n blockColourClass={getFolderBgColourClass(library.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3 px-3'><PartialFolderList count={10} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mt-3 px-2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.id, f, sort)}\n expandFolders\n extraButtons={\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","openInNewTab","disabled","iconButton","showBorder","customSize","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getDirectionClass","direction","Caret","DragDropMoveWrapper","data","draggable","attributes","dragActive","active","isDragging","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","getFolderActions","drag","drop","name","BaseImage","imageType","imageClassName","ImageFallback","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","options","count","extraButtons","f","PartialFolder","PartialFolderList","fill","_","i","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","useBuildBreadcrumbs","folderId","firstItem","lastItem","parentTree","searchStack","c","node","path","breadcrumbs","pop","object","unshift","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","getFolderAppLink","libraryId","application","args","params","getFolderBgColourClass","charCode","charCodeAt","useGetFolderBreadcrumbs","library","LibraryView","focusSearchBar","libraries","libraryFolders","categoryTree","user","owner","items","source","entity","location","actionType","descriptor","smartCount"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5928],{31754:(e,t,a)=>{a.d(t,{x:()=>c});var n=a(82602),r=a(75896),i=a(89682),o=a(11576),c={groupByDateShared:function(e){var t=r.m.groupBy(e,"dateShared");return Object.keys(t).sort().reverse().reduce((function(e,a){var r=(0,n.WU)(a);return e[r]||(e[r]=[]),e[r]=e[r].concat(t[a]),e}),{})},mapActivityStatusToCheckMarkStatus:function(e){switch(e){case o.T.Complete:return i.h.Complete;case o.T.Incomplete:return i.h.Incomplete;case o.T.None:return i.h.None}},mapCheckMarkStatusToActivityStatus:function(e){switch(e){case i.h.Complete:return o.T.Complete;case i.h.Incomplete:return o.T.Incomplete;case i.h.None:return o.T.None}}}},83657:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(91967),i=a(10874),o=a(76177),c=a(42735),l=a(86509);function s(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],s=[];t.forEach((function(e){e.button?a.push(e):s.push(e)}));var u="d-flex";return e.className&&(u+=" ".concat(e.className)),a.length||s.length?n.createElement("div",{className:u},a.length?a.map((function(t,a){return n.createElement(n.Fragment,{key:a},function(){if(t.label){var a=r.q.isFunction(t.label)?t.label:function(){return n.createElement(n.Fragment,null,t.label)};return n.createElement(c.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},a())}var l=n.createElement(i.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize});return t.tooltip?n.createElement(o.u,{title:t.tooltip,spanHack:!0},l):l}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,s.length?n.createElement(l.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>g});var n=a(32735),r=a(91967),i=a(81886),o=a(45157),c=a(49985),l=a(36848),s=a(83914),u=a(76177),d=a(35223);const m={dropdownToggle:"UCAnJ"};function v(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function f(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function p(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:f(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&c.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:f(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(f(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function g(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,i="actions-dropdown-".concat(o.Y.getRandomInt()),c="dropdown-toggle px-0 ".concat(m.dropdownToggle);return e.dropdownToggleClassName&&(c+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:c,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},n.createElement(s.x,{svgName:d.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":i},t?n.createElement(v,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(u.u,{title:e.tooltip,spanHack:!0},n.createElement(p,{action:e}))):n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(p,{action:e}))}))))}g.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},94644:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(50242),r=a(81886),i=a(67058),o=a(14553),c=a(49267),l=a(49075),s={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:l._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},s),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.NotFound?i!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new o.badRequest):a.forbidden||r.Q.Ry.throw(new o.forbidden.privacy):a.notFound||r.Q.Ry.throw(new o.notFound))}}},2341:(e,t,a)=>{a.r(t),a.d(t,{StudentFeedView:()=>yt});var n=a(32735),r=a(4390),i=a(23481),o=a(81886),c=a(20354),l=a(65858),s=a(11518),u=a(39151),d=a(31949),m=a(90605),v=a(65294),f=a(79612),p=a(75795),g=a(14070),h=a(97291),y=a(51855),E=a(27638),b=a(82602),N=a(28400),S=a(31754),w=a(20789),k=a(89682),A=a(84591),D=a(54610),F=a(4594),I=a(68626),C=a(58704),T=a(40424),x=a(64818);const O={avatar:"y1nvt",higherWidgetBtn:"EQjTN"};var j="studentFeed.recentActivities",L=function(e){var t;if(e.shareId)return{application:h.O.SHARE,action:g.e.Share.VIEW_SHARE_LINK,args:[e.shareId]};switch(null===(t=e.object)||void 0===t?void 0:t.typeId){case F.E.Video:return{application:h.O.VIDEOS,action:g.e.Videos.PLAY_VIDEO,args:[e.object.id,N.m.slugify(e.object.name)]};case F.E.Clip:return{application:h.O.CLIPS,action:g.e.Clips.PLAY_CLIP,args:[e.object.id,N.m.slugify(e.object.name)]};case F.E.Interactive:return{application:h.O.INTERACTIVES,action:g.e.Interactives.VIEW_INTERACTIVE,args:[e.object.id,N.m.slugify(e.object.name)]};default:return null}};function P(e){var t,a,r,i;return n.createElement("div",{className:"p-1 flex-shrink-0 position-relative col-6 col-sm-4 col-md-3"},n.createElement(A.u,{video:e.data.object,type:"static",appLink:L(e.data),textPosition:I.z.Overlay,imageOptions:{size:D.h2.Medium},preload:e.preloadImage,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,checkMarkStatus:k.h.None,setCheckMarkStatus:function(t){return e.setActivityStatus(e.data.shareId,e.data.object,S.x.mapCheckMarkStatusToActivityStatus(t))},isPlugin:e.isPlugin}),!!(null===(a=null===(t=e.data.share)||void 0===t?void 0:t.owner)||void 0===a?void 0:a.id)&&n.createElement("div",{className:"d-flex align-items-center mt-1"},n.createElement("div",{className:"".concat(O.avatar," me-1 flex-shrink-0")},n.createElement(w.q,{imageCdnUrl:e.config.imageCdnUrl,initials:x.l.getInitials(e.data.share.owner.name,e.data.share.owner.surname),imageUrl:null===(r=e.data.share.owner.avatar)||void 0===r?void 0:r.url})),n.createElement("div",{className:"d-flex flex-column"},n.createElement("h3",{className:"font-size-normal mb-0"},x.l.getDisplayName(e.data.share.owner)),n.createElement("small",null,(0,b.WU)(e.data.share.dateShared),!!e.data.share.recipient&&(null===(i=e.data.share.recipient)||void 0===i?void 0:i.typeId)!==F.E.User&&n.createElement(n.Fragment,null," • ",e.data.share.recipient.name)))))}function M(e){if(!e.recentActivities)return n.createElement(n.Fragment,null);var t=!!e.recentActivities.find((function(e){var t,a;return!!(null===(a=null===(t=e.share)||void 0===t?void 0:t.owner)||void 0===a?void 0:a.id)}));return n.createElement("div",{className:"pb-3"},n.createElement(s.kM,{name:i.T.getPhrase(j,"continueActivity"),type:T.l9.Row,contents:C.z.RecentActivities,childComponent:P,extraChildComponentProps:{config:e.config,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus},collection:e.recentActivities,leftWidgetButtonClassName:t?O.higherWidgetBtn:"",rightWidgetButtonClassName:t?O.higherWidgetBtn:"",prefetched:!0}))}const R={partialAvatar:"kgqoG",partialName:"yctHY",partialDateShared:"Vno44",partialThumbnail:"OIIaa",partialAction:"acv6h",partialSeries:"S2Srj",partialTitle:"fkwl5",partialDescription:"Nim0N"};function z(){return n.createElement("div",{className:"pb-4"},n.createElement("div",{className:"mb-2"},n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"".concat(R.partialAvatar," me-2 rounded-circle partial-loading-background")}),n.createElement("div",{className:"d-flex flex-column"},n.createElement("div",{className:"partial-loading-background mb-1 ".concat(R.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(R.partialDateShared)})))),n.createElement("div",{className:"partial-loading-background rounded ".concat(R.partialThumbnail)}),n.createElement("div",{className:"d-flex align-items-center my-1"},n.createElement("div",{className:"partial-loading-background me-1 ".concat(R.partialAction)}),n.createElement("div",{className:"partial-loading-background ms-1 ".concat(R.partialAction)})),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(R.partialSeries)}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(R.partialTitle)}),n.createElement("div",{className:"partial-loading-background mt-1 ".concat(R.partialDescription)}))}function B(e){return n.createElement(n.Fragment,null,new Array(e.items).fill(null).map((function(e,t){return n.createElement(z,{key:t})})))}var _=a(34509),V=a(110),q=a(1048),U=a(83345),Y=i.T.encloseNamespace("studentFeed.utils");function H(e){return e.setHours(23),e.setMinutes(59),e.setSeconds(59),e}var W={getPresetDateRanges:function(){return[{name:Y("mostRecent"),default:!0},{name:Y("lastWeek"),endDate:(e=new Date,e.setDate(e.getDate()+5-7-(e.getDay()||7)),H(e))},{name:Y("lastMonth"),endDate:H(new Date((new Date).getFullYear(),(new Date).getMonth(),0))}];var e}};const $={dropdownDescription:"wmk99"};var Z="studentFeed.studentFeedDateFilter";function Q(e){if(!e.dateRange)return n.createElement(n.Fragment,null);var t=W.getPresetDateRanges();return n.createElement(_.Z,null,n.createElement(_.Z.Toggle,{id:"student-feed-date-filter",variant:"outline-dark",className:e.floating?"rounded-pill px-3":"",size:e.floating?"lg":void 0},n.createElement(U.x,{namespace:Z,phrase:"jumpTo"})),n.createElement(_.Z.Menu,{className:e.floating?"w-100":"",align:"end"},n.createElement(_.Z.Item,{as:"div",className:$.dropdownDescription},n.createElement(U.x,{namespace:Z,phrase:"jumpTo"}),"..."),t.map((function(t){return n.createElement(_.Z.Item,{key:t.name,onClick:function(){return function(t){var a=o.Q.C$.getCurrentAppLink(),n=a.params||{},r=V.O.format(t.endDate,"YYYY-MM-DD");if(n.date!==r){var i=q.t.omit(n,["date"]);t.endDate&&(i.date=V.O.format(t.endDate,"YYYY-MM-DD")),o.Q.C$.trigger(Object.assign(Object.assign({},a),{params:i}),{replace:!0})}else e.scrollToCurrent()}(t)}},t.name)}))))}var K="studentFeed.studentFeedHeader";function G(e){return n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("h1",{className:"h2"},n.createElement(U.x,{namespace:K,phrase:"hello",options:{name:e.currentUser.givenName}})),n.createElement(Q,{dateRange:e.dateRange,scrollToCurrent:e.scrollToCurrent}))}var J,X=a(97395),ee=a(71995),te=a(62803);!function(e){e[e.DateAscending=0]="DateAscending",e[e.DateDescending=1]="DateDescending"}(J||(J={}));var ae={getFeed:function(e){var t=e.ownerId,a=e.from,n=e.to,r=e.cursor,i=e.limit,o=e.sort,c=e.success,l=e.error,s={},u=function(e){var t=V.O.convertDateToUTC(e);return V.O.format(t,"YYYY-MM-DDTHH:mm:ss")};return r&&(s.cursor=r),t&&(s.ownerId=t),a&&(s.from=u(a)),n&&(s.to=u(n)),i&&(s.limit=i),void 0!==o&&(s.sort=o),{url:X._.urlBuilder("{gateway}/v1/users/me/feed",s),key:"feed:".concat(s.ownerId,":").concat(s.from,":").concat(s.to,":").concat(s.cursor,":").concat(s.sort,":").concat(s.limit),cacheDuration:ee.f.SHORT,success:c,error:l,formatData:function(e){return s.sort===J.DateAscending&&e.data.reverse(),e}}},getRecentActivities:function(){return{url:X._.urlBuilder("{gateway}/v1/users/me/recent-activities",{"query.video":te.v.VIDEO_COLLECTION,"query.interactive":te.v.INTERACTIVE_COLLECTION,"query.clip":te.v.CLIP_COLLECTION}),key:"recent:share:activities",cacheDuration:ee.f.SHORT,formatData:function(e){return e.map((function(e){return e.id="".concat(e.shareId,":").concat(e.object.id),e.share?(e.share.activityStatus=e.activityStatus,e):e}))}}}};function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var re=function(){var e,t,a=(e=n.useState(null),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ne(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?ne(e,t):void 0}}(e,t)||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.")}()),r=a[0],i=a[1],c=o.Q.C$.getCurrentAppLink(),l=c.params||{},s=W.getPresetDateRanges();return n.useEffect((function(){if(l.from||l.to){var e=!1;s.forEach((function(t){if(!e){var a=t.startDate&&V.O.format(t.startDate,"YYYY-MM-DD"),n=t.endDate&&V.O.format(t.endDate,"YYYY-MM-DD");a&&a!==l.from||n&&n!==l.to||(n||a)&&(e=!0,i(t))}})),e||o.Q.C$.trigger(Object.assign(Object.assign({},c),{params:q.t.omit(l,["from","to"])}),{replace:!0})}else i(s.find((function(e){return e.default})))}),[l.from,l.to]),r},ie=a(23232),oe=a(99742);const ce={image:"ohAxN"};var le="studentFeed.emptyState",se={application:h.O.DASHBOARD,action:g.e.Dashboard.HOME};function ue(){return n.createElement(U.D.Provider,{value:le},n.createElement(ie.u,{className:"pt-3"},n.createElement(ie.u.Image,{src:oe.W.EmptyStates.STUDENT_FEED,className:ce.image,size:"small"}),n.createElement(ie.u.Heading,{className:"h3 d-flex align-items-center justify-content-center"},n.createElement(U.x,{phrase:"emptyStateHeading"})),n.createElement(ie.u.Info,null,n.createElement(U.x,{phrase:"emptyStateInfo"})),n.createElement(ie.u.Cta,{appLink:se,text:i.T.getPhrase(le,"cta")})))}var de=a(83657),me=a(36848),ve=a(11882),fe=a(31908),pe=a(82431);const ge={avatar:"QEQhk"};function he(e){var t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"".concat(ge.avatar," me-2")},n.createElement(w.q,{imageCdnUrl:e.config.imageCdnUrl,initials:x.l.getInitials(e.shareData.owner.name,e.shareData.owner.surname),imageUrl:null===(t=e.shareData.owner.avatar)||void 0===t?void 0:t.url})),n.createElement("div",{className:"d-flex flex-column"},n.createElement("h2",{className:"h6 mb-0"},x.l.getDisplayName(e.shareData.owner)),n.createElement("div",null,(0,b.WU)(e.shareData.dateShared)))),!!e.shareData.message&&n.createElement("p",{className:"mt-1 mb-0 fw-semibold"},e.shareData.message))}var ye=a(75163);const Ee={imageClass:"Qig1U",fallbackText:"Bt4GN"};var be="studentFeed.feedVideoThumbnail";function Ne(e){if(!fe.M.getCanBeConsumed(e.video).canConsume){var t=fe.M.getPrivacyReasoning(e.video);return n.createElement(ye.Z,{data:oe.W.Fallbacks.VIDEO_UNAVAILABLE_STUDENT_FEED,className:"border rounded",imageType:D.__.Thumbnails,imageClassName:"".concat(Ee.imageClass," w-25 h-25")},n.createElement("div",{className:Ee.fallbackText},n.createElement("h3",{className:"h4"},t),n.createElement("p",null,n.createElement(U.x,{namespace:be,phrase:"unavailableDescription"}))))}return n.createElement(A.u,{video:e.video,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setCheckMarkStatus:function(t){return e.setActivityStatus(e.shareData.id,e.video,S.x.mapCheckMarkStatusToActivityStatus(t))},checkMarkStatus:k.h.None,type:"static",textPosition:I.z.Independent,imageOptions:{size:D.h2.Large},analyticsOptions:{location:l.LZ.StudentFeed},appLink:e.appLink,preload:!0,isPlugin:e.isPlugin})}var Se=a(1643),we=a(35223),ke=i.T.encloseNamespace("studentFeed.hooks");function Ae(){var e=(0,E.u)(l.LZ.StudentFeed).setFavourite;return function(t){var a=fe.M.getCanBeConsumed(t).canConsume,n=fe.M.isVideoTypeArchived(t);if(!a||n)return[];var r=Se.h.isFavouritedByCurrentUser(t);return[{svgName:r?we.vn.Heart:we.vn.HeartOutline,order:0,tooltip:ke("favourite"),onClick:function(){return e(t,!r)},button:!0,className:"btn btn-link "+(r?"text-danger":"text-link")},{order:10,svgName:we.vn.AddToPlaylists,tooltip:ke("addToPlaylist"),className:"btn btn-link text-link",button:!0,appLink:{application:h.O.PLAYLISTS,action:g.e.Playlists.ADD_TO_PLAYLIST,args:[t.id]},analyticsOptions:{entity:fe.M.getAnalyticsEntity(t),location:l.LZ.StudentFeed,actionType:l.Vw.Associate,descriptor:l.iF.Playlist,workflowPhase:l.eu.Start},analyticsData:fe.M.getAnalyticsData(t)}]}}var De=function(e){return{application:h.O.SHARE,action:g.e.Share.VIEW_SHARE_LINK,args:[e]}};function Fe(e){var t=e.data.object,a=Ae(),r=fe.M.getCanBeConsumed(t).canConsume;return n.createElement("div",{className:"pb-4"},n.createElement("div",{className:"pb-2"},n.createElement(he,{config:e.config,shareData:e.data})),n.createElement(Ne,{video:e.data.object,appLink:De(e.data.id),shareData:e.data,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,isPlugin:e.isPlugin}),n.createElement(de.e,{actions:r?a(t):[]}),fe.M.isVideo(t)&&n.createElement(ve.$,{type:"series",video:t,appLink:pe.j.getSeriesAppLink(t.series),analyticsOptions:{location:l.LZ.StudentFeed},className:r?"":"mt-2"}),n.createElement("div",null,n.createElement(me.F,{className:"d-inline-block",appLink:r?De(e.data.id):null},n.createElement("h3",{className:"h4 mb-0"},t.name))),!!t.description&&n.createElement("p",{className:"clamp-2 mb-0 mt-1"},t.description))}var Ie=a(68050),Ce=a(69111),Te=a(75896),xe=a(11607),Oe=a(83914),je=a(45778);const Le={circle:"BJPA7",active:"YuQnu",sm:"wI7Zf",xs:"KkKSG"};function Pe(e){var t=e.indicator,a=e.onClick,r=Le.circle;return t.active&&(r+=" "+Le.active),"sm"===t.size&&(r+=" "+Le.sm),"xs"===t.size&&(r+=" "+Le.xs),"invisible"===t.size&&(r+=" d-none"),n.createElement(xe.L,{className:r,onClick:a})}function Me(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Re(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?Re(e,t):void 0}}(e,t)||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.")}()}function Re(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function ze(e){var t,a=function(t){return e.videos.findIndex((function(e){return e.id===t.id}))},r=Me(n.useState(a(e.currentVideo)),2),i=r[0],o=r[1],c=n.useState(function(e){var t=e.videos.findIndex((function(t){return t.id===e.currentVideo.id})),a=function(e){return e<5?"std":5===e?"sm":6===e?"xs":"invisible"};return e.videos.map((function(e,n){return{active:t===n,size:a(n)}}))}(e)),l=Me(c,2),s=l[0],u=l[1];n.useEffect((function(){var t=i,n=a(e.currentVideo);if(t!==n){var r=d+(n-t);o(n);var c=s.map((function(e,t){return{active:t===r,size:e.size}}));if(u(c),"std"!==s[r].size){var l=function(e,t){var a,n;e.forEach((function(e,t){"std"===e.size&&void 0===a&&(a=t),"std"===e.size&&(n=t)}));var r=q.t.deepClone(e);return"left"===t?(r[a-1]={active:!0,size:"std"},r[a-2]={active:!1,size:"sm"},r[a-3]={active:!1,size:"xs"},r[n+2]={active:!1,size:"invisible"},r[n+1]={active:!1,size:"xs"},r[n]={active:!1,size:"sm"}):(r[n+1]={active:!0,size:"std"},r[n+2]&&(r[n+2]={active:!1,size:"sm"}),r[n+3]&&(r[n+3]={active:!1,size:"xs"}),r[a-2]={active:!1,size:"invisible"},r[a-1]={active:!1,size:"xs"},r[a]={active:!1,size:"sm"}),r}(c,n<t?"left":"right");u(l)}}}),[null===(t=e.currentVideo)||void 0===t?void 0:t.id]);var d=s.findIndex((function(e){return e.active}));return n.createElement("div",{className:"d-flex align-items-center"},s.map((function(t,a){return n.createElement(Pe,{key:a,indicator:t,onClick:function(){return e.onSelectIndex(a)}})})))}var Be=a(183),_e=function(e,t){var a={application:h.O.SHARE,action:g.e.Share.VIEW_SHARE_LINK,args:[e]};return t&&(a.params=t),a},Ve=function(e){return fe.M.isClip(e)?{clipId:e.id}:fe.M.isInteractive(e)?{interactiveId:e.id}:{videoId:e.id}};function qe(e){return n.createElement("div",{className:"flex-shrink-0 position-relative w-100"},n.createElement(Ne,{video:e.data,appLink:_e(e.shareData.id,Object.assign(Object.assign({},Ve(e.data)),{contextId:e.shareData.object.id,context:e.shareData.object.typeId===F.E.Playlist?Be.Q.Playlist:Be.Q.Series})),shareData:e.shareData,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,isPlugin:e.isPlugin}))}var Ue=function(e,t){var a={application:h.O.SHARE,action:g.e.Share.VIEW_SHARE_LINK,args:[e]};return t&&(a.params=t),a},Ye=function(e){return fe.M.isClip(e)?{clipId:e.id}:fe.M.isInteractive(e)?{interactiveId:e.id}:{videoId:e.id}};function He(e){return n.createElement("div",{className:"p-1 flex-shrink-0 position-relative col-6 col-sm-4 col-md-3"},n.createElement(A.u,{video:e.data,type:"static",appLink:Ue(e.shareData.id,Object.assign(Object.assign({},Ye(e.data)),{contextId:e.shareData.object.id,context:e.shareData.object.typeId===F.E.Playlist?Be.Q.Playlist:Be.Q.Series})),textPosition:I.z.Overlay,imageOptions:{size:D.h2.Medium},preload:e.preloadImage,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,isPlugin:e.isPlugin}))}var We="studentFeed.feedVideoCollectionEmptyState";function $e(e){return n.createElement(ie.u,{className:"border rounded-3 pt-5 pb-3"},n.createElement(ie.u.Image,{src:oe.W.EmptyStates.Playlists.PLAYLIST_VIDEOS}),n.createElement(ie.u.Heading,null,n.createElement(U.x,{namespace:We,phrase:"heading",options:{name:e.data.name}})),e.data.typeId===F.E.Playlist&&n.createElement(ie.u.Info,null,n.createElement(U.x,{namespace:We,phrase:"playlistInfo"})))}const Ze={leftWidgetButton:"bux3R",rightWidgetButton:"QTLk7"};function Qe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ke(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?Ke(e,t):void 0}}(e,t)||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.")}()}function Ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var Ge=function(e,t){var a={application:h.O.SHARE,action:g.e.Share.VIEW_SHARE_LINK,args:[e]};return t&&(a.params=t),a},Je=function(e){return je.G.isType(e,F.E.Playlist)?e.union.data:e.videos.data};function Xe(e){var t=e.data.object,a=Je(e.data.object),r=Qe(n.useState(Te.m.first(a)),2),i=r[0],o=r[1],c=Qe(n.useState(!1),2),l=c[0],u=c[1],d=n.useRef(null),m=Ae(),v=a.findIndex((function(e){return e.id===i.id}));return n.createElement("div",{className:"pb-4"},n.createElement("div",{className:"pb-2"},n.createElement(he,{config:e.config,shareData:e.data})),i?n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},n.createElement(s.kM,{controlsRef:d,type:T.l9.Row,contents:C.z.FeedVideos,childComponent:qe,extraChildComponentProps:{setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,shareData:e.data,isPlugin:e.isPlugin},collection:a,onNext:function(){o(a[v+1])},onPrevious:function(){o(a[v-1])},leftWidgetButtonClassName:Ze.leftWidgetButton,rightWidgetButtonClassName:Ze.rightWidgetButton,hideBleedingContent:!0,hideName:!0,hideExtendedClickableArea:!0,prefetched:!0,lazyLoad:!1,touchBehavior:"drag"})),n.createElement("div",{className:"position-relative"},n.createElement(Ie.Z,{className:"g-0"},n.createElement(Ce.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},n.createElement(de.e,{actions:m(i)})),n.createElement(Ce.Z,{xs:8,className:"d-flex align-items-center justify-content-center"},n.createElement(ze,{videos:a,currentVideo:i,onSelectIndex:function(e){d.current&&(o(a[e]),d.current.jumpToIndex(e))}})),n.createElement(Ce.Z,{xs:2,className:"d-flex align-items-center justify-content-end"},n.createElement(xe.L,{onClick:function(){return u((function(e){return!e}))}},n.createElement(Oe.x,{svgName:l?we.vn.ChevronUp:we.vn.ChevronDown}))))),n.createElement("div",null,n.createElement(me.F,{className:"d-inline-block",appLink:Ge(e.data.id)},n.createElement("h3",{className:"h4 mb-0"},t.name))),l?n.createElement("div",{className:"pt-1"},n.createElement(s.kM,{type:T.l9.Row,contents:C.z.Videos,childComponent:He,extraChildComponentProps:{setFavourite:e.setFavourite,canFavourite:e.canFavourite,shareData:e.data,isPlugin:e.isPlugin},collection:a,appLink:Ge(e.data.id),touchBehavior:"drag",limitTotalItems:!0,hideName:!0,prefetched:!0})):!!t.description&&n.createElement("p",{className:"clamp-2 mb-0 mt-1"},t.description)):n.createElement($e,{data:e.data.object}))}function et(e){return n.createElement(n.Fragment,null,e.feed.map((function(t,a){var r;switch(null===(r=t.object)||void 0===r?void 0:r.typeId){case F.E.Video:case F.E.Clip:case F.E.Interactive:return n.createElement(Fe,{key:"".concat(t.id,":").concat(a),data:t,config:e.config,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,isPlugin:e.isPlugin});case F.E.Playlist:case F.E.Series:return n.createElement(Xe,{key:"".concat(t.id,":").concat(a),data:t,config:e.config,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,isPlugin:e.isPlugin});case F.E.Subject:default:return n.createElement(n.Fragment,{key:a})}})))}function tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var at=15,nt=635;function rt(e){var t,a,r,i=e.request,o=e.reversed,l=e.scrollTo,s=n.useRef(),u=(0,v.Y)({triggerOnce:!1,rootMargin:nt+"px"}),d=u.ref,m=u.inView,f=null===(t=c.a.useBasicFetch(m?i:null).data)||void 0===t?void 0:t.data,p=window.scrollY,g=(a=n.useState(nt*e.limit),r=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(a,r)||function(e,t){if(e){if("string"==typeof e)return tt(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?tt(e,t):void 0}}(a,r)||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.")}()),h=g[0],y=g[1];return n.useLayoutEffect((function(){var e=s.current.getBoundingClientRect();o?window.scrollTo(0,p+e.height):l&&window.requestAnimationFrame((function(){window.scrollTo(0,p+e.top-100)}))}),[l]),n.useLayoutEffect((function(){if(h){var e=s.current.getBoundingClientRect().height;if(y(e),!(h<e+at&&h>e-at||s.current.offsetTop>p)){var t=h-e;window.scrollTo(0,p-t)}}})),n.createElement("div",{ref:d},n.createElement("div",{ref:s},(null==f?void 0:f.length)?n.createElement(et,{feed:f,config:e.config,setFavourite:e.setFavourite,canFavourite:e.canFavourite,setActivityStatus:e.setActivityStatus,isPlugin:e.isPlugin}):n.createElement("div",{style:{height:h,overflow:"hidden"}},n.createElement(B,{items:e.limit}))))}var it=a(70680),ot=a(94644),ct=a(69883);function lt(e){return function(e){if(Array.isArray(e))return dt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ut(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 st(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(e,t)||ut(e,t)||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.")}()}function ut(e,t){if(e){if("string"==typeof e)return dt(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?dt(e,t):void 0}}function dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var mt=i.T.encloseNamespace("studentFeed.studentFeed"),vt=function(e,t){var a=(0,it.oR)(),r=(0,ct.Z)(),i=st(n.useState([]),2),o=i[0],l=i[1],s=st(n.useState(!1),2),u=s[0],d=s[1];function m(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.from,i=t.to,o=t.cursor,s=t.reverse,u=function(e){var a,n;if(u=null,e.data.length){if(null===(n=null===(a=e.pagination)||void 0===a?void 0:a.cursors)||void 0===n?void 0:n.next)if(s){var r={request:m(Object.assign(Object.assign({},t),{cursor:e.pagination.cursors.next})),reversed:!0};l((function(e){return[r].concat(lt(e))}))}else{var i={request:m(Object.assign(Object.assign({},t),{cursor:e.pagination.cursors.next}))};l((function(e){return[].concat(lt(e),[i])}))}}else l((function(e){var t=e.findIndex((function(e){return e.request.key===v.key})),a=[].concat(lt(e.slice(0,t)),lt(e.slice(t+1)));return a.length||d(!0),a}))},v=ae.getFeed({from:n,to:i,cursor:o,sort:s?J.DateAscending:J.DateDescending,limit:e,success:function(e){window.requestAnimationFrame((function(){u&&u(e)}))},error:function(e){return function(e,t){if(!e)return(0,ot.r)(t.status);r.error(mt("error"))}(o,e)}}),f=c.a.getResponse(a.getState(),v.key);return f.data&&window.setTimeout((function(){u(f.data)}),0),v}return n.useEffect((function(){var e=null;if(isNaN(Date.parse(t))||(e=new Date(t)),e){var a={request:m({from:e,reverse:!0}),reversed:!0},n={request:m({to:e}),current:!0};l([n]),window.requestAnimationFrame((function(){l((function(e){return[a].concat(lt(e))}))}))}else l([{request:m(),current:!0}])}),[]),{requests:o,isEmpty:u}};function ft(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,c=[],l=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return pt(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?pt(e,t):void 0}}(e,t)||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.")}()}function pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var gt=i.T.encloseNamespace("studentFeed.studentFeed"),ht=10;function yt(e){var t=e.date,a=(0,E.u)(l.LZ.StudentFeed),i=a.setFavourite,b=a.canFavourite,N=(0,m.O)(l.LZ.StudentFeed),S=(0,y.G)().isPlugin,w=re();(0,f.M)({title:gt("pageTitle")});var k=c.a.useBasicFetch(d.N.currentUser()),A=c.a.useBasicFetch(u.L.config()),D=c.a.useBasicFetch(ae.getRecentActivities()),F=vt(ht,t),I=F.requests,C=F.isEmpty,T=ft(n.useState(!1),2),x=T[0],O=T[1],j=(0,v.Y)({triggerOnce:!1,rootMargin:"300px"}),L=j.ref,P=j.inView,R=j.initialized&&!P,z=ft(n.useState(null),2),_=z[0],V=z[1];function q(){var e=I.find((function(e){return e.current}));e?V(e.request.key):window.scrollTo(0,document.body.scrollHeight)}return n.useLayoutEffect((function(){V(null)})),x?n.createElement(n.Fragment,null):C&&p.O.fromPageLoad()?(O(!0),o.Q.C$.trigger({application:h.O.DASHBOARD,action:g.e.Dashboard.HOME},{replace:!0}),n.createElement(n.Fragment,null)):n.createElement("div",{className:"px-4 container-compact"},n.createElement("div",{className:"pb-2 border-bottom mb-3",ref:L},n.createElement(G,{currentUser:k.data,dateRange:w,scrollToCurrent:q})),n.createElement("div",{className:"d-flex justify-content-center"},n.createElement("div",{className:"floating-jump-to"},n.createElement(r.Z,{timeout:R?500:0,in:R,className:"floating-jump-to",classNames:"floating-jump-to",mountOnEnter:!0,unmountOnExit:!0},n.createElement(Q,{dateRange:w,floating:!0,scrollToCurrent:q})))),D.data?n.createElement(M,{recentActivities:D.data,config:A.data,setFavourite:i,canFavourite:b,setActivityStatus:N}):n.createElement("div",{className:"pb-3"},n.createElement(s.j7,{hideDescription:!0})),(!k.data||!A.data)&&n.createElement(B,{items:ht}),C&&n.createElement(ue,null),null==I?void 0:I.map((function(e){return n.createElement(rt,{key:e.request.key,limit:ht,request:e.request,reversed:e.reversed,config:A.data,setFavourite:i,canFavourite:b,setActivityStatus:N,scrollTo:e.request.key===_,isPlugin:S})})))}},68050:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(95685),r=a.n(n),i=a(32735),o=a(46304),c=a(74512);const l=i.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},i)=>{const l=(0,o.vE)(e,"row"),s=(0,o.pi)(),u=(0,o.zG)(),d=`${l}-cols`,m=[];return s.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const r=e!==u?`-${e}`:"";null!=a&&m.push(`${d}${r}-${a}`)})),(0,c.jsx)(a,{ref:i,...n,className:r()(t,l,...m)})}));l.displayName="Row";const s=l},82602:(e,t,a)=>{a.d(t,{WU:()=>s});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},o=function(e,t){i[e]=t},c=[60,60,24,7,365/7/12,12];function l(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var s=function(e,t,a){var n=function(e,t){return(+(t?l(t):new Date)-+l(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=c[r]&&r<c.length;r++)e/=c[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return i[e]||i.en_US}(t))};o("en_US",(function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),o("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]}))}}]);
|
|
2
|
+
//# sourceMappingURL=5928-0d803fceb2-lite.chunk.js.map
|