@clickview/lite 0.64.0-rc.0 → 0.64.0-rc.2
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/css/{7153-lite-0cc5db0db7.chunk.css → 2962-lite-2002c62a24.chunk.css} +0 -1
- package/dist/css/{1857-lite-324255d395.chunk.css → 6173-lite-911f35513f.chunk.css} +0 -1
- package/dist/css/{2083-lite-6cb1775e12.chunk.css → 7324-lite-238bd550b7.chunk.css} +0 -1
- package/dist/css/{9013-lite-620f218839.chunk.css → 9013-lite-3c31b606c5.chunk.css} +2 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1216-899540dc73-lite.chunk.js +2 -0
- package/dist/scripts/1216-899540dc73-lite.chunk.js.map +1 -0
- package/dist/scripts/1820-b572681b3a-lite.chunk.js +2 -0
- package/dist/scripts/1820-b572681b3a-lite.chunk.js.map +1 -0
- package/dist/scripts/{2056-84f388df20-lite.chunk.js → 2056-a9e8d17a46-lite.chunk.js} +3 -3
- package/dist/scripts/2056-a9e8d17a46-lite.chunk.js.map +1 -0
- package/dist/scripts/229-ac9f12e165-lite.chunk.js +2 -0
- package/dist/scripts/229-ac9f12e165-lite.chunk.js.map +1 -0
- package/dist/scripts/{2564-65e3fc9619-lite.chunk.js → 2564-f5628d4e56-lite.chunk.js} +3 -3
- package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.map → 2564-f5628d4e56-lite.chunk.js.map} +1 -1
- package/dist/scripts/2712-a851ddc3c3-lite.chunk.js +2 -0
- package/dist/scripts/2712-a851ddc3c3-lite.chunk.js.map +1 -0
- package/dist/scripts/{2788-eca70707c6-lite.chunk.js → 2788-c8ae3be73f-lite.chunk.js} +1 -1
- package/dist/scripts/2788-c8ae3be73f-lite.chunk.js.map +1 -0
- package/dist/scripts/{7153-0ed8513e59-lite.chunk.js → 2962-7f2e4412f0-lite.chunk.js} +2 -2
- package/dist/scripts/{7153-0ed8513e59-lite.chunk.js.map → 2962-7f2e4412f0-lite.chunk.js.map} +1 -1
- package/dist/scripts/2988-b602b64344-lite.chunk.js +2 -0
- package/dist/scripts/2988-b602b64344-lite.chunk.js.map +1 -0
- package/dist/scripts/3180-c1f065183d-lite.chunk.js +2 -0
- package/dist/scripts/3180-c1f065183d-lite.chunk.js.map +1 -0
- package/dist/scripts/3549-111225ff0e-lite.chunk.js +2 -0
- package/dist/scripts/3549-111225ff0e-lite.chunk.js.map +1 -0
- package/dist/scripts/4591-f78fa6c784-lite.chunk.js +2 -0
- package/dist/scripts/4591-f78fa6c784-lite.chunk.js.map +1 -0
- package/dist/scripts/4667-5101904582-lite.chunk.js +2 -0
- package/dist/scripts/4667-5101904582-lite.chunk.js.map +1 -0
- package/dist/scripts/{5056-6057435479-lite.chunk.js → 5056-65c739468f-lite.chunk.js} +1 -1
- package/dist/scripts/5056-65c739468f-lite.chunk.js.map +1 -0
- package/dist/scripts/5157-e38b666fce-lite.chunk.js +2 -0
- package/dist/scripts/5157-e38b666fce-lite.chunk.js.map +1 -0
- package/dist/scripts/5201-98ee21febb-lite.chunk.js +2 -0
- package/dist/scripts/5201-98ee21febb-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-79068997ce-lite.chunk.js +2 -0
- package/dist/scripts/5595-79068997ce-lite.chunk.js.map +1 -0
- package/dist/scripts/5770-f88f6d9c00-lite.chunk.js +2 -0
- package/dist/scripts/5770-f88f6d9c00-lite.chunk.js.map +1 -0
- package/dist/scripts/5896-60133bfdad-lite.chunk.js +3 -0
- package/dist/scripts/5896-60133bfdad-lite.chunk.js.map +1 -0
- package/dist/scripts/6173-7f9939c29e-lite.chunk.js +3 -0
- package/dist/scripts/6173-7f9939c29e-lite.chunk.js.map +1 -0
- package/dist/scripts/6181-9d7668c9e4-lite.chunk.js +3 -0
- package/dist/scripts/6181-9d7668c9e4-lite.chunk.js.map +1 -0
- package/dist/scripts/6455-37039eb687-lite.chunk.js +2 -0
- package/dist/scripts/6455-37039eb687-lite.chunk.js.map +1 -0
- package/dist/scripts/6623-84b33c6856-lite.chunk.js +3 -0
- package/dist/scripts/6623-84b33c6856-lite.chunk.js.map +1 -0
- package/dist/scripts/6919-0f2cef64e5-lite.chunk.js +2 -0
- package/dist/scripts/6919-0f2cef64e5-lite.chunk.js.map +1 -0
- package/dist/scripts/7267-1f5006c9c5-lite.chunk.js +2 -0
- package/dist/scripts/7267-1f5006c9c5-lite.chunk.js.map +1 -0
- package/dist/scripts/{2083-7daacf0112-lite.chunk.js → 7324-ee20e73ac1-lite.chunk.js} +2 -2
- package/dist/scripts/{2083-7daacf0112-lite.chunk.js.map → 7324-ee20e73ac1-lite.chunk.js.map} +1 -1
- package/dist/scripts/7434-fef3ea4e89-lite.chunk.js +2 -0
- package/dist/scripts/7434-fef3ea4e89-lite.chunk.js.map +1 -0
- package/dist/scripts/7443-4866d0c9ab-lite.chunk.js +3 -0
- package/dist/scripts/7443-4866d0c9ab-lite.chunk.js.map +1 -0
- package/dist/scripts/8416-7d71a55a14-lite.chunk.js +2 -0
- package/dist/scripts/8416-7d71a55a14-lite.chunk.js.map +1 -0
- package/dist/scripts/8465-01b0f72699-lite.chunk.js +2 -0
- package/dist/scripts/8465-01b0f72699-lite.chunk.js.map +1 -0
- package/dist/scripts/8722-a9eac1941c-lite.chunk.js +2 -0
- package/dist/scripts/8722-a9eac1941c-lite.chunk.js.map +1 -0
- package/dist/scripts/9013-6fcc58f028-lite.chunk.js +2 -0
- package/dist/scripts/9013-6fcc58f028-lite.chunk.js.map +1 -0
- package/dist/scripts/9264-998d93d1c2-lite.chunk.js +2 -0
- package/dist/scripts/9264-998d93d1c2-lite.chunk.js.map +1 -0
- package/dist/scripts/9894-0fba5cf702-lite.chunk.js +3 -0
- package/dist/scripts/9894-0fba5cf702-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-2e839958ca.min.js +3 -0
- package/dist/scripts/bundle-2e839958ca.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1755-462bcd99e9-lite.chunk.js +0 -2
- package/dist/scripts/1755-462bcd99e9-lite.chunk.js.map +0 -1
- package/dist/scripts/180-6c4779f6ab-lite.chunk.js +0 -2
- package/dist/scripts/180-6c4779f6ab-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-3b5d0a340d-lite.chunk.js +0 -2
- package/dist/scripts/1820-3b5d0a340d-lite.chunk.js.map +0 -1
- package/dist/scripts/1857-d3af9d98eb-lite.chunk.js +0 -3
- package/dist/scripts/1857-d3af9d98eb-lite.chunk.js.map +0 -1
- package/dist/scripts/2056-84f388df20-lite.chunk.js.map +0 -1
- package/dist/scripts/229-900e650427-lite.chunk.js +0 -2
- package/dist/scripts/229-900e650427-lite.chunk.js.map +0 -1
- package/dist/scripts/2788-eca70707c6-lite.chunk.js.map +0 -1
- package/dist/scripts/3180-22edf4c9fc-lite.chunk.js +0 -2
- package/dist/scripts/3180-22edf4c9fc-lite.chunk.js.map +0 -1
- package/dist/scripts/3549-30d3b1cd05-lite.chunk.js +0 -2
- package/dist/scripts/3549-30d3b1cd05-lite.chunk.js.map +0 -1
- package/dist/scripts/3776-0027340c98-lite.chunk.js +0 -2
- package/dist/scripts/3776-0027340c98-lite.chunk.js.map +0 -1
- package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js +0 -2
- package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js.map +0 -1
- package/dist/scripts/4667-f3882f2379-lite.chunk.js +0 -2
- package/dist/scripts/4667-f3882f2379-lite.chunk.js.map +0 -1
- package/dist/scripts/5056-6057435479-lite.chunk.js.map +0 -1
- package/dist/scripts/5157-ad13101a6e-lite.chunk.js +0 -2
- package/dist/scripts/5157-ad13101a6e-lite.chunk.js.map +0 -1
- package/dist/scripts/5201-7d3867d027-lite.chunk.js +0 -2
- package/dist/scripts/5201-7d3867d027-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-10e586779d-lite.chunk.js +0 -2
- package/dist/scripts/5595-10e586779d-lite.chunk.js.map +0 -1
- package/dist/scripts/5896-5d2f32c59e-lite.chunk.js +0 -3
- package/dist/scripts/5896-5d2f32c59e-lite.chunk.js.map +0 -1
- package/dist/scripts/6181-50a39979ec-lite.chunk.js +0 -3
- package/dist/scripts/6181-50a39979ec-lite.chunk.js.map +0 -1
- package/dist/scripts/6455-2f45be17cf-lite.chunk.js +0 -2
- package/dist/scripts/6455-2f45be17cf-lite.chunk.js.map +0 -1
- package/dist/scripts/6623-ebbffb59b3-lite.chunk.js +0 -3
- package/dist/scripts/6623-ebbffb59b3-lite.chunk.js.map +0 -1
- package/dist/scripts/6919-cb2de57c2e-lite.chunk.js +0 -2
- package/dist/scripts/6919-cb2de57c2e-lite.chunk.js.map +0 -1
- package/dist/scripts/7267-c2d30dd339-lite.chunk.js +0 -2
- package/dist/scripts/7267-c2d30dd339-lite.chunk.js.map +0 -1
- package/dist/scripts/7434-c34ca23a21-lite.chunk.js +0 -2
- package/dist/scripts/7434-c34ca23a21-lite.chunk.js.map +0 -1
- package/dist/scripts/7443-7c72de0cb9-lite.chunk.js +0 -3
- package/dist/scripts/7443-7c72de0cb9-lite.chunk.js.map +0 -1
- package/dist/scripts/8022-0656cce655-lite.chunk.js +0 -2
- package/dist/scripts/8022-0656cce655-lite.chunk.js.map +0 -1
- package/dist/scripts/8722-69c1c7a24f-lite.chunk.js +0 -2
- package/dist/scripts/8722-69c1c7a24f-lite.chunk.js.map +0 -1
- package/dist/scripts/9013-adc5d3517a-lite.chunk.js +0 -2
- package/dist/scripts/9013-adc5d3517a-lite.chunk.js.map +0 -1
- package/dist/scripts/9155-87c9030ce9-lite.chunk.js +0 -2
- package/dist/scripts/9155-87c9030ce9-lite.chunk.js.map +0 -1
- package/dist/scripts/9264-750b3d6ea0-lite.chunk.js +0 -2
- package/dist/scripts/9264-750b3d6ea0-lite.chunk.js.map +0 -1
- package/dist/scripts/9894-bc34edcd67-lite.chunk.js +0 -3
- package/dist/scripts/9894-bc34edcd67-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-3d3d127d98.min.js +0 -3
- package/dist/scripts/bundle-3d3d127d98.min.js.map +0 -1
- package/dist/css/{6455-lite-fe0bc6d95f.chunk.css → 6455-lite-c07987d46c.chunk.css} +1 -1
- /package/dist/css/{9155-lite-447d345417.chunk.css → 8465-lite-447d345417.chunk.css} +0 -0
- /package/dist/scripts/{1857-d3af9d98eb-lite.chunk.js.LICENSE.txt → 2056-a9e8d17a46-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2056-84f388df20-lite.chunk.js.LICENSE.txt → 2564-f5628d4e56-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.LICENSE.txt → 5896-60133bfdad-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5896-5d2f32c59e-lite.chunk.js.LICENSE.txt → 6173-7f9939c29e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6181-50a39979ec-lite.chunk.js.LICENSE.txt → 6181-9d7668c9e4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6623-ebbffb59b3-lite.chunk.js.LICENSE.txt → 6623-84b33c6856-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7443-7c72de0cb9-lite.chunk.js.LICENSE.txt → 7443-4866d0c9ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9894-bc34edcd67-lite.chunk.js.LICENSE.txt → 9894-0fba5cf702-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-3d3d127d98.min.js.LICENSE.txt → bundle-2e839958ca.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8416-7d71a55a14-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/hooks/UseEngagementUsers.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/ClassroomRequests.ts","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-item/audience-filter-item.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-search/AudienceFilterSearch.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/insights-filter-menu/insights-audience-filter-menu.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/insights-filter-menu/InsightsAudienceFilterMenu.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/AudienceFilterViewUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/audience-filter.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/AudienceFilterView.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/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/AppRouteHelper.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/insights/views/insights-admin-alert/InsightsAdminAlert.tsx"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { User } from 'libs/shared/interfaces';\n\nexport function useChunkedUsersResponse(usersIds: string[]) {\n const userIdChunks = ArrayHelper.chunk<string>(usersIds ?? [], 25);\n const usersResponse = Flight.useBasicFetchAll<User[]>(userIdChunks.map(chunk => UserRequests.getById(chunk)));\n const users = ArrayHelper.flatten<User>(usersResponse.data);\n return { users, isLoading: !usersResponse.hasCompleted, usersResponse };\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { ClassroomCollection } from 'libs/shared/interfaces';\n\nexport const ClassroomRequests = {\n classroom(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `classroom:${id}`\n };\n },\n\n classroomGroup(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}?query=classroom`,\n key: `classroom:group:${id}:classroom`\n };\n },\n\n getClassroomsById(ids: string[]): Flight.Request {\n ids.sort();\n \n const query = `users[count()]{limit:0}&${ids.map(id => `id=${id}`).join('&')}`;\n\n return {\n url: `{gateway}/v1/objects?query=${query}`,\n key: `classrooms:${ids.join(',')}`\n };\n },\n\n getClassroomGroupsById(ids: string[]): Flight.Request {\n ids.sort();\n\n const query = `users[count()]{limit:0}&${ids.map(id => `id=${id}`).join('&')}`;\n\n return {\n url: `{gateway}/v1/objects?query=${query}`,\n key: `classroom:groups:${ids.join(',')}`\n };\n },\n\n userClassrooms(\n cursor?: string,\n success?: (classrooms: ClassroomCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/classrooms`, { cursor }),\n key: `user:classrooms${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n getPinnedClassrooms(userId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, {\n query: `favouriteClassrooms[favouritedBy{id:${userId}},_integrations,enrolments[user]{role:'owner'}]{status:${ObjectStatus.Active},limit:100,orderby:name}`\n }),\n key: 'pinned:classrooms',\n normalize: false\n };\n },\n\n \n getPublished(userId: string, cursor: string = ''): Flight.Request {\n const params: HashObject = {\n query: `{orderby:name,status:${ObjectStatus.Active}}favouritedBy{id:${userId}},_integrations,enrolments[user]{role:'owner'}`\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/classrooms', params),\n key: `published:classrooms${cursor ? `:${cursor}` : ''}`\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"oCnQi\",\"cta\":\"w39NR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './audience-filter-item.scss';\n\nconst namespace = 'shared.audienceFilterItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype AudienceObject = User | Classroom | ClassroomGroup;\n\nconst CLASSROOM_DISPLAY_LIMIT = 2;\n\nfunction getClassroomPhrase(user: User): string {\n const classrooms = user.classrooms?.data;\n if (!classrooms?.length)\n return;\n\n if (classrooms.length <= CLASSROOM_DISPLAY_LIMIT)\n return user.classrooms.data.map(c => c.name).join(' • ');\n\n return getPhrase('severalClassrooms', { classroom: classrooms[0].name, smartCount: classrooms.length - 1 });\n}\n\nfunction getSubHeading(object: AudienceObject): string {\n if (object.typeId === MasterType.User && (object as User).classrooms?.data?.length)\n return getClassroomPhrase(object as User);\n\n return '';\n}\n\ninterface AudienceFilterItemProps {\n object: AudienceObject;\n selected: boolean;\n onToggleSelected: (selected: boolean) => void;\n imageCdnUrl: string;\n hideCheckbox?: boolean;\n isPinned?: boolean;\n}\n\nexport function AudienceFilterItem(props: AudienceFilterItemProps): JSX.Element {\n const user = props.object.typeId === MasterType.User && (props.object as User);\n const classroom = props.object.typeId === MasterType.Classroom && (props.object as Classroom);\n const classroomGroup = props.object.typeId === MasterType.ClassroomGroup && (props.object as ClassroomGroup);\n\n let name = props.object.name;\n\n if (user)\n name += ` ${user.surname}`;\n\n const subHeading = getSubHeading(props.object);\n const svgContainerClassName = 'd-flex align-items-center justify-content-center text-white rounded-circle h-100 w-100';\n const onSelect = () => props.onToggleSelected(!props.selected);\n\n return (\n <button\n className='w-100'\n onClick={onSelect}\n >\n <div className={`d-flex align-items-center py-1 ${props.hideCheckbox ? 'bg-light-hover mx-n3 px-3' : ''}`}>\n {!props.hideCheckbox && (\n <Checkbox\n id={props.object.id}\n checked={props.selected}\n onChange={onSelect}\n />\n )}\n <div className={`${styles.avatarContainer} cursor-pointer me-2`}>\n {!!user &&\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.object.name, user.surname)}\n />\n }\n {!!classroom &&\n <div className={svgContainerClassName}>\n {props.isPinned\n ? <IconCircle svgName={cvSvgLibrary.StarOutline} variant='yellow' svgSize={SvgContainerSize.Large} />\n : <IconCircle svgName={cvSvgLibrary.Classrooms} variant='teal' svgSize={SvgContainerSize.Large} />\n }\n </div>\n }\n {!!classroomGroup &&\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n }\n </div>\n <div>\n <h4 className='text-start font-size-normal fw-normal m-0'>{name}</h4>\n {!!subHeading &&\n <p className='text-secondary m-0'>{subHeading}</p>\n }\n </div>\n {\n props.hideCheckbox && (\n <div className={`${styles.cta} ms-auto text-secondary`}>\n {props.selected && <SvgContainer svgName={cvSvgLibrary.Close} />}\n {!props.selected && <SvgContainer svgName={cvSvgLibrary.Plus} />}\n </div>\n )\n }\n </div >\n </button >\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AudienceSelection } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterViewUtils';\nimport { AudienceFilterItem } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem';\nimport { FilterConstants } from 'libs/shared/apps/search/constants/FilterConstants';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { BaseObject, CurrentUser, ShareSearchResponse } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nconst namespace = 'shared.audienceFilterSearch';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EmptySearchResultsProps {\n query: string;\n hasClassroomsFeature: boolean;\n}\n\nfunction EmptySearchResults(props: EmptySearchResultsProps): JSX.Element {\n return (\n <div className='pt-2 text-center'>\n <p className='m-0'><strong>{getPhrase('noResults', { query: props.query })}</strong></p>\n {!!props.hasClassroomsFeature &&\n <>\n <span>{getPhrase('noResultsSuggestion')} </span>\n <a href={ArticleHelper.getLiteArticle(LiteSupportArticle.Classrooms)} target='_blank' className='text-info'>\n {getPhrase('learnMore')}\n </a>\n </>\n }\n </div>\n );\n}\n\ninterface AudienceFilterSearchProps {\n onSelect: (...selection: AudienceSelection[]) => void;\n isSelected: (object: BaseObject) => boolean;\n isPinned?: (object: BaseObject) => boolean;\n gatewayApiUrl: string;\n userToken: HashObject;\n currentUser: CurrentUser;\n imageCdnUrl: string;\n hasClassroomsFeature?: boolean;\n limitedFeatureSet?: boolean;\n hideCheckbox?: boolean;\n setQuery?: (query: string) => void;\n}\n\nexport function AudienceFilterSearch(props: AudienceFilterSearchProps): JSX.Element {\n function getRemoteUrl(query: string): string {\n const baseUrl = UrlHelper.safeUrlConcat(props.gatewayApiUrl, 'v1/search/users');\n\n const indices = [ 'user', 'classroom', 'classroom_group' ];\n\n return UrlHelper.urlBuilder(baseUrl, {\n query,\n index: indices,\n [`${FilterConstants.FILTER_PARAM_PREFIX}customerId`]: props.currentUser.customerId,\n limit: 5\n });\n }\n\n return (\n <SearchBar\n onQueryChange={props.setQuery}\n getRemoteUrl={getRemoteUrl}\n requestHeaders={{\n authorization: `Bearer ${props.userToken.value}`\n }}\n formatRemoteSuggestions={(suggestions: ShareSearchResponse) => suggestions?.results}\n placeholder={getPhrase((props.limitedFeatureSet || !props.hasClassroomsFeature) ? 'placeholderLimited' : 'placeholder')}\n suggestionsHeading={getPhrase('searchResults')}\n alwaysRenderSuggestions\n resetSuggestionsOnNoActivation\n onSuggestionSelected={() => { }} // Do nothing as AudienceFilterItem handles selection itself\n shouldUpdateQueryOnSelection={false}\n getSuggestionComponent={suggestion => {\n const isSelected = props.isSelected(suggestion);\n\n return (\n <AudienceFilterItem\n object={suggestion}\n selected={isSelected}\n onToggleSelected={() => props.onSelect({ object: suggestion, selected: !isSelected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox={props.hideCheckbox}\n isPinned={props.isPinned?.(suggestion)}\n />\n );\n }}\n getEmptyStateComponent={query =>\n <EmptySearchResults query={query} hasClassroomsFeature={props.hasClassroomsFeature} />\n }\n theme={{\n container: '',\n suggestionsContainerOpen: 'pt-2',\n suggestion: '',\n suggestionHighlighted: '',\n sectionContainer: ''\n }}\n loadingComponentClassName='pt-2'\n searchIconPlacement='left'\n autoFocusInput\n allowableSuggestionFetchRequestedReasons={['input-changed']}\n debounceTime={200}\n showClearInputIcon\n resetSuggestionsOnClear\n onClickClearInput={() => props.setQuery('')}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"menu\":\"H4ti6\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AudienceSelection } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterViewUtils';\nimport { AudienceFilterItem } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem';\nimport { AudienceFilterSearch } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-search/AudienceFilterSearch';\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\n\nimport styles from './insights-audience-filter-menu.scss';\n\nconst namespace = 'shared.insightsAudienceFilterMenu';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MAX_HEIGHT = 300;\n\nfunction filterAudienceById(audience?: BaseObject[], ids?: string[]): BaseObject[] {\n if (!audience)\n return [];\n\n if (!ids)\n return audience;\n\n return audience.filter(a => ids.some(id => id.toString() === a.id.toString()));\n}\n\nfunction useSearchSelections(\n selectedIds?: string[]\n): [BaseObject[], React.Dispatch<React.SetStateAction<BaseObject[]>>] {\n const [ searchSelections, setSearchSelections ] = React.useState<BaseObject[]>([]);\n\n /**\n * If a search selection is deselected externally, we want to remove it from state.\n */\n React.useEffect(() => {\n setSearchSelections(filterAudienceById(searchSelections, selectedIds));\n }, [selectedIds]);\n\n return [ searchSelections, setSearchSelections ];\n}\n\ninterface BaseAudienceListProps {\n selections: BaseObject[];\n pinned?: BaseObject[];\n onSelect: (...selection: AudienceSelection[]) => void;\n isPinned?: (object: BaseObject) => boolean;\n deselectAll?: () => void;\n imageCdnUrl: string;\n}\n\nfunction SelectedAudienceList(props: BaseAudienceListProps): JSX.Element {\n return (\n <>\n <p className='mb-2 pt-2 px-3'><strong>{getPhrase('filteredBy')}</strong></p>\n\n <ul className='list-unstyled px-3 mb-2'>\n {props.selections.map((s, idx) => (\n <li key={idx}>\n <AudienceFilterItem\n object={s}\n selected\n onToggleSelected={() => props.onSelect({ object: s, selected: false })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n isPinned={props.isPinned(s)}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n\ninterface SuggestedAudienceListProps extends BaseAudienceListProps {\n isSelected: (object: BaseObject) => boolean;\n}\n\nfunction SuggestedAudienceList(props: SuggestedAudienceListProps): JSX.Element {\n return (\n <>\n <p className='mt-2 mb-2'><strong>{getPhrase('suggested')}</strong></p>\n <ul className='list-unstyled m-0'>\n {props.pinned?.map((s, idx) => (\n <li key={`pinned-${idx}`}>\n <AudienceFilterItem\n object={s}\n selected={props.isSelected(s)}\n onToggleSelected={(selected: boolean) => props.onSelect({ object: s, selected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n isPinned\n />\n </li>\n ))}\n {props.selections.map((s, idx) => {\n return (\n <li key={`suggestion-${idx}`}>\n <AudienceFilterItem\n object={s}\n selected={props.isSelected(s)}\n onToggleSelected={(selected: boolean) => props.onSelect({ object: s, selected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n />\n </li>\n );\n })}\n </ul>\n </>\n );\n}\n\ninterface InsightsAudienceFilterMenuProps {\n onSelect: (...selection: AudienceSelection[]) => void;\n gatewayApiUrl: string;\n userToken: HashObject;\n imageCdnUrl: string;\n currentUser: CurrentUser;\n audienceObjects?: BaseObject[];\n selectedIds?: string[];\n suggestedIds?: string[];\n limitedFeatureSet?: boolean;\n pinnedIds?: string[];\n hasClassroomsFeature?: boolean;\n onClickApply?: () => void;\n}\n\nexport function InsightsAudienceFilterMenu(props: InsightsAudienceFilterMenuProps): JSX.Element {\n const [ searchSelections, setSearchSelections ] = useSearchSelections(props.selectedIds);\n const audienceObjects = ArrayHelper.uniq([ ...(props.audienceObjects ?? []), ...searchSelections ], 'id');\n\n const selections = filterAudienceById(audienceObjects, props.selectedIds);\n const suggestions = filterAudienceById(audienceObjects, props.suggestedIds);\n const pinnedSuggestions = props.pinnedIds ? filterAudienceById(audienceObjects, props.pinnedIds) : [];\n\n const [ query, setQuery ] = React.useState('');\n\n function isSelected(object: BaseObject): boolean {\n if (!props.selectedIds?.length)\n return false;\n\n return props.selectedIds.some(id => id.toString() === object.id.toString());\n }\n\n function isPinned(object: BaseObject): boolean {\n if (!props.pinnedIds?.length)\n return false;\n\n return props.pinnedIds.some(id => id.toString() === object.id.toString());\n }\n\n function deselectAll(): void {\n props.onSelect();\n }\n\n function onSelectSearchResult(...selection: AudienceSelection[]): void {\n const objectsToAdd = selection.filter(s => s.selected).map(s => s.object);\n const objectIdsToRemove = selection.filter(s => !s.selected).map(s => s.object.id);\n\n setSearchSelections(s => [\n ...s.filter(s => !objectIdsToRemove.includes(s.id)),\n ...objectsToAdd\n ]);\n\n props.onSelect(...selection);\n }\n\n const filteredSuggestions = suggestions.filter(suggestions => !isSelected(suggestions));\n const filteredPinned = pinnedSuggestions.filter(suggestions => !isSelected(suggestions));\n\n return (\n <div className={styles.menu}>\n <Scrollbars autoHeight autoHeightMax={MAX_HEIGHT}>\n <div className='p-3'>\n <AudienceFilterSearch\n onSelect={onSelectSearchResult}\n isSelected={isSelected}\n isPinned={isPinned}\n gatewayApiUrl={props.gatewayApiUrl}\n userToken={props.userToken}\n imageCdnUrl={props.imageCdnUrl}\n currentUser={props.currentUser}\n limitedFeatureSet={props.limitedFeatureSet}\n hasClassroomsFeature={props.hasClassroomsFeature}\n setQuery={setQuery}\n hideCheckbox\n />\n {query.length < 3 && (!!filteredSuggestions.length || !!filteredPinned.length) &&\n <SuggestedAudienceList\n selections={filteredSuggestions}\n pinned={filteredPinned}\n onSelect={props.onSelect}\n imageCdnUrl={props.imageCdnUrl}\n isSelected={isSelected}\n />\n }\n </div>\n </Scrollbars>\n\n {!!selections.length &&\n <div className={`${suggestions.length ? 'border-top' : ''} pb-2`}>\n <Scrollbars autoHeight autoHeightMax={MAX_HEIGHT}>\n <SelectedAudienceList\n selections={selections}\n onSelect={props.onSelect}\n imageCdnUrl={props.imageCdnUrl}\n deselectAll={deselectAll}\n isPinned={isPinned}\n />\n </Scrollbars>\n\n <div className='d-flex justify-content-between pb-1'>\n <button\n className='btn btn-link p-0 text-secondary px-3'\n onClick={deselectAll}\n >\n {getPhrase('reset')}\n </button>\n\n <button\n className='btn btn-link p-0 text-info px-3'\n onClick={props.onClickApply}\n >\n {getPhrase('apply')}\n </button>\n </div>\n </div>\n }\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClassroomRequests } from 'libs/shared/apps/analytics/flight-requests/ClassroomRequests';\nimport { useChunkedUsersResponse } from 'libs/shared/apps/analytics/hooks/UseEngagementUsers';\nimport { AudienceFilterSuggestions } from 'libs/shared/apps/analytics/interfaces/AudienceFilterSuggestions';\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult } from 'libs/shared/hooks/UseSelectAllPages';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { BaseObject, Classroom, ClassroomGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.audienceFilter';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useFetchAudienceObjects(\n audienceQueryParams: AudienceQueryParams,\n suggestedClassrooms: Classroom[]\n): BaseObject[] {\n const { users: selectedUsers } = useChunkedUsersResponse(\n audienceQueryParams.users\n );\n const { hasClassrooms } = useSettings(null);\n\n const selectedClassrooms = Flight.useBasicFetch<Classroom[]>(\n audienceQueryParams.classrooms?.length &&\n hasClassrooms &&\n ClassroomRequests.getClassroomsById(audienceQueryParams.classrooms)\n );\n\n const selectedClassroomGroups = Flight.useBasicFetch<ClassroomGroup[]>(\n audienceQueryParams.classroomGroups?.length &&\n hasClassrooms &&\n ClassroomRequests.getClassroomGroupsById(audienceQueryParams.classroomGroups)\n );\n\n if (!hasClassrooms)\n return selectedUsers || [];\n\n const users = selectedUsers || [];\n const classrooms = ArrayHelper.uniq([ ...(selectedClassrooms.data || []), ...suggestedClassrooms || [] ], 'id');\n const classroomGroups = selectedClassroomGroups.data ?? [];\n\n return [ ...users, ...classrooms, ...classroomGroups ];\n}\n\nexport type AudienceSelection = { object: BaseObject, selected: boolean };\n\nfunction getUpdatedAudienceQueryParams(\n selections: AudienceSelection[],\n audienceQueryParams: AudienceQueryParams\n): AudienceQueryParams {\n if (!selections.length)\n return { users: null, classrooms: null, classroomGroups: null };\n\n let params: AudienceQueryParams = { ...audienceQueryParams };\n\n selections.forEach(s => {\n let paramKey: keyof AudienceQueryParams;\n\n switch (s.object.typeId) {\n case MasterType.User:\n paramKey = 'users';\n break;\n \n case MasterType.Classroom:\n paramKey = 'classrooms';\n break;\n \n case MasterType.ClassroomGroup:\n paramKey = 'classroomGroups';\n break;\n }\n\n const objectId = s.object.id.toString();\n let currentParams = params[paramKey] ?? [];\n\n if (s.selected)\n currentParams.push(objectId);\n else\n currentParams = currentParams.filter(id => id.toString() !== objectId);\n\n params = {\n ...params,\n [paramKey]: ArrayHelper.uniq(currentParams)\n };\n });\n\n return params;\n}\n\nexport function getIds(obj: AudienceQueryParams | AudienceFilterSuggestions): string[] {\n const ids: string [] = [];\n\n Object.keys(obj).forEach((key: keyof (AudienceQueryParams | AudienceFilterSuggestions)) => {\n if (obj[key])\n ids.push(...obj[key]);\n });\n\n return ids;\n}\n\nexport function useAudienceSelections(queryParams: HashObject):\n[AudienceQueryParams, (...selections: AudienceSelection[]) => void] {\n const [ selections, setSelections ] = React.useState<AudienceQueryParams>(ObjectHelper.deepClone(queryParams));\n\n function onSelectAudienceObject(...selection: AudienceSelection[]): void {\n setSelections(getUpdatedAudienceQueryParams(selection, selections));\n }\n\n return [ selections, onSelectAudienceObject ];\n}\n\n/**\n * \n * @returns The label to be used in the audience filter toggle.\n * \n * If nothing has been selected, \"Everyone\" will be returned.\n * \n * If a single classroom or a single classroom group has been selected,\n * the name of the classroom/group will be returned.\n * \n * Otherwise, the count of users in the applied filter will be returned,\n * as obtained from the filter count view model.\n */\nexport function useGetAudienceFilterLabel(queryParams: HashObject): string | undefined {\n const classroomIds = ArrayHelper.uniq(queryParams.classrooms as string[] ?? []);\n const groupIds = ArrayHelper.uniq(queryParams.classroomGroups as string[] ?? []);\n const userIds = ArrayHelper.uniq(queryParams.users as string[] ?? []);\n\n const onlyClassroomsSelected = !!classroomIds.length && groupIds.length === 0 && userIds.length === 0;\n const onlyGroupsSelected = !!groupIds.length && classroomIds.length === 0 && userIds.length === 0;\n const onlyUsersSelected = !!userIds.length && classroomIds.length === 0 && groupIds.length === 0;\n const noSelections = !classroomIds.length && !groupIds.length && !userIds.length;\n\n const singleClassroomSelected = onlyClassroomsSelected && classroomIds.length === 1;\n const singleGroupSelected = onlyGroupsSelected && groupIds.length === 1;\n\n const classroom = Flight.useBasicFetch<Classroom>(singleClassroomSelected\n && ClassroomRequests.classroom(classroomIds[0]));\n\n const group = Flight.useBasicFetch<Classroom>(singleGroupSelected && ClassroomRequests.classroomGroup(groupIds[0]));\n\n if (noSelections)\n return getPhrase('noFilter');\n\n if (singleClassroomSelected) {\n if (!classroom.data)\n return;\n\n if (classroom.data.typeId === MasterType.Classroom)\n return classroom.data.name;\n }\n\n if (singleGroupSelected) {\n if (!group.data)\n return;\n\n if (group.data.typeId === MasterType.ClassroomGroup)\n return group.data.name;\n }\n\n if (onlyClassroomsSelected)\n return getPhrase('classrooms', { smartCount: classroomIds.length });\n\n if (onlyGroupsSelected)\n return getPhrase('groups', { smartCount: groupIds.length });\n\n if (onlyUsersSelected)\n return getPhrase('users', { smartCount: userIds.length });\n\n const mixedSelections = [];\n\n if (classroomIds.length)\n mixedSelections.push(getPhrase('classrooms', { smartCount: classroomIds.length }));\n\n if (groupIds.length)\n mixedSelections.push(getPhrase('groups', { smartCount: groupIds.length }));\n\n if (userIds.length)\n mixedSelections.push(getPhrase('users', { smartCount: userIds.length }));\n\n const lastSelection = mixedSelections.pop();\n\n return `${mixedSelections.join(', ')} ${getPhrase('and')} ${lastSelection}`;\n}\n\nexport function useFetchClassrooms(userId: string): SelectAllPagesResult<Classroom> {\n const dispatch = useDispatch();\n\n function getRequest(cursor?: string): Flight.Request {\n return ClassroomRequests.getPublished(userId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n Flight.getFetch(dispatch)(getRequest(cursor));\n }\n\n return useFetchAll<Classroom>(getRequest, fetchNext);\n}","// extracted by mini-css-extract-plugin\nexport default {\"toggle\":\"A0vBV\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClassroomRequests } from 'libs/shared/apps/analytics/flight-requests/ClassroomRequests';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { InsightsAudienceFilterMenu } from 'libs/shared/apps/analytics/views/audience-filter/components/insights-filter-menu/InsightsAudienceFilterMenu';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { ClassroomCollection, Config, CurrentUser } from 'libs/shared/interfaces';\nimport { AppRouteHelper } from 'libs/shared/utils/AppRouteHelper';\n\nimport {\n getIds,\n useAudienceSelections,\n useFetchAudienceObjects,\n useFetchClassrooms,\n useGetAudienceFilterLabel\n} from './AudienceFilterViewUtils';\n\nimport styles from './audience-filter.scss';\n\ninterface AudienceFilterViewProps {\n className?: string;\n hasClassroomsFeature: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function AudienceFilterView(props: AudienceFilterViewProps): JSX.Element {\n const queryParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n\n const userToken = Flight.useBasicFetch<HashObject>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const pinnedClassrooms = Flight.useBasicFetch<ClassroomCollection>(\n ClassroomRequests.getPinnedClassrooms(currentUser.data?.id)\n );\n const classrooms = useFetchClassrooms(currentUser.data?.id);\n\n const audience = useFetchAudienceObjects(queryParams, classrooms.items);\n const filterLabel = useGetAudienceFilterLabel(queryParams);\n\n const [ selections, setSelections ] = useAudienceSelections(queryParams);\n const pinnedClassroomIds = pinnedClassrooms.data?.data.map(classroom => classroom.id.toString());\n const suggestions = { classrooms: getSuggestedClassroomIds() };\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggle(show: boolean): void {\n setShowDropdown(show);\n\n if (show)\n return;\n\n applyFilter();\n }\n\n function applyFilter() {\n AppRouteHelper.updateParams(ObjectHelper.deepClone(selections), { merge: true });\n }\n\n function hideAudienceFilter(): boolean {\n return !classrooms.items?.length;\n }\n\n function getSuggestedClassroomIds() {\n return classrooms.items?.length\n ? classrooms.items\n .filter(classroom => !pinnedClassroomIds?.includes(classroom.id.toString()))\n .map(classroom => classroom.id)\n : [];\n }\n\n const dataLoaded = !!config.data && classrooms.hasCompleted && pinnedClassrooms.hasCompleted;\n\n if (hideAudienceFilter())\n return <></>;\n\n const hasSelections = Object.values(queryParams).some(value =>\n Array.isArray(value) && value.length > 0);\n\n return (\n <Dropdown className={props.className ?? ''} onToggle={onToggle} show={showDropdown}>\n <Dropdown.Toggle\n id='audience-filter-toggle'\n variant='outline-dark'\n className={`no-caret ${styles.toggle} ${hasSelections ? 'bg-dark text-white' : ''}`}\n >\n {filterLabel}\n </Dropdown.Toggle>\n <Dropdown.Menu className='py-0' align='end'>\n {dataLoaded &&\n <InsightsAudienceFilterMenu\n gatewayApiUrl={config.data.gatewayApiUrl}\n userToken={userToken.data}\n audienceObjects={audience}\n selectedIds={getIds(selections)}\n suggestedIds={getIds(suggestions)}\n pinnedIds={pinnedClassroomIds}\n onSelect={setSelections}\n imageCdnUrl={config.data.imageCdnUrl}\n currentUser={currentUser.data}\n hasClassroomsFeature={props.hasClassroomsFeature}\n onClickApply={onClickApply}\n />\n }\n </Dropdown.Menu>\n </Dropdown>\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}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface UpdateParamsOptions extends Core.AppLinkOptions {\n merge?: boolean;\n keysToRemove?: string[]\n}\n\nexport const AppRouteHelper = {\n /**\n * Utility to update the params on the current appRoute.\n * \n * This is built on top of ContextService rather than build into AppLink\n * as we will generally only want to update params on appRoutes, not appLinks.\n */\n updateParams(params: HashObject, options?: UpdateParamsOptions): void {\n const { appLink } = ContextService.getCurrentRoute();\n\n let currentParams = typeof(appLink.params) === 'string'\n ? Core.LocationUtils.DeserializeQueryParams(appLink.params)\n : appLink.params as HashObject;\n\n if (options.keysToRemove)\n currentParams = ObjectHelper.omit(currentParams, options.keysToRemove);\n\n const updatedParams = options?.merge\n ? { ...currentParams, ...params }\n : params;\n\n const updatedAppLink = {\n ...appLink,\n params: updatedParams\n };\n\n /**\n * This prevents us pointlessly re-triggering if we're already on the right applink.\n */\n if (ObjectHelper.isEqual(appLink, updatedAppLink))\n return;\n \n Core.AppLinkHelper.trigger(updatedAppLink, ObjectHelper.omit(options, [ 'merge', 'keysToRemove' ]));\n }\n};","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}"],"names":["useChunkedUsersResponse","usersIds","userIdChunks","usersResponse","map","chunk","users","data","isLoading","hasCompleted","AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","ClassroomRequests","classroom","id","url","classroomGroup","getClassroomsById","ids","sort","query","join","getClassroomGroupsById","userClassrooms","cursor","success","error","always","UrlHelper","getPinnedClassrooms","userId","ObjectStatus","normalize","getPublished","getPhrase","LanguageService","CLASSROOM_DISPLAY_LIMIT","AudienceFilterItem","props","user","object","typeId","MasterType","name","surname","subHeading","length","c","smartCount","getClassroomPhrase","getSubHeading","svgContainerClassName","onSelect","onToggleSelected","selected","className","onClick","hideCheckbox","Checkbox","checked","onChange","Avatar","imageUrl","avatar","imageCdnUrl","initials","UserHelper","isPinned","IconCircle","svgName","variant","svgSize","SvgContainer","S","metadata","colour","EmptySearchResults","hasClassroomsFeature","href","ArticleHelper","target","AudienceFilterSearch","SearchBar","onQueryChange","setQuery","getRemoteUrl","baseUrl","gatewayApiUrl","index","FilterConstants","currentUser","customerId","requestHeaders","authorization","userToken","value","formatRemoteSuggestions","suggestions","results","placeholder","limitedFeatureSet","suggestionsHeading","alwaysRenderSuggestions","resetSuggestionsOnNoActivation","onSuggestionSelected","shouldUpdateQueryOnSelection","getSuggestionComponent","suggestion","isSelected","getEmptyStateComponent","theme","container","suggestionsContainerOpen","suggestionHighlighted","sectionContainer","loadingComponentClassName","searchIconPlacement","autoFocusInput","allowableSuggestionFetchRequestedReasons","debounceTime","showClearInputIcon","resetSuggestionsOnClear","onClickClearInput","MAX_HEIGHT","filterAudienceById","audience","filter","a","some","toString","SelectedAudienceList","selections","s","idx","SuggestedAudienceList","pinned","InsightsAudienceFilterMenu","selectedIds","searchSelections","setSearchSelections","useSearchSelections","audienceObjects","ArrayHelper","suggestedIds","pinnedSuggestions","pinnedIds","deselectAll","filteredSuggestions","filteredPinned","autoHeight","autoHeightMax","selection","objectsToAdd","objectIdsToRemove","includes","onClickApply","getIds","obj","Object","keys","forEach","push","useAudienceSelections","queryParams","ObjectHelper","setSelections","audienceQueryParams","paramKey","objectId","currentParams","getUpdatedAudienceQueryParams","AudienceFilterView","UserRequests","config","ConfigRequests","pinnedClassrooms","dispatch","getRequest","useFetchClassrooms","suggestedClassrooms","selectedUsers","hasClassrooms","useSettings","selectedClassrooms","selectedClassroomGroups","useFetchAudienceObjects","items","filterLabel","classroomIds","groupIds","userIds","onlyClassroomsSelected","onlyGroupsSelected","onlyUsersSelected","noSelections","singleClassroomSelected","singleGroupSelected","group","mixedSelections","lastSelection","pop","useGetAudienceFilterLabel","pinnedClassroomIds","getSuggestedClassroomIds","showDropdown","setShowDropdown","applyFilter","AppRouteHelper","merge","dataLoaded","hideAudienceFilter","hasSelections","values","Dropdown","onToggle","show","align","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","label","FunctionHelper","action","AppLink","analyticsData","analyticsOptions","openInNewTab","disabled","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","actions","isLazy","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","dropdownToggleClassName","type","fetchMore","size","dropdownToggleSvgSize","showDivider","undefined","tooltip","Tooltip","title","spanHack","defaultProps","OnlineSupportArticle","LiteSupportArticle","getAnalyticsRequestKey","baseKey","sharerId","start","end","userIdKey","groupIdKey","groupId","updateParams","options","keysToRemove","updatedParams","updatedAppLink","mapColourToBsVariant","groupColour","namespace","InsightsAdminAlert","storage","setShow","hasAnalytics","phrase","video","analyticsUrl","videoRoute","getAnalyticsUrl"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8465],{95834:(e,t,a)=>{a.d(t,{J:()=>n});var n={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"py-2 ps-2 text-nowrap",row:"striped-row rounded",cell:"d-flex align-items-center p-2"}},86509:(e,t,a)=>{a.d(t,{m:()=>h});var n=a(32735),r=a(91967),c=a(81886),l=a(45157),i=a(49985),o=a(36848),s=a(83914),m=a(36532),d=a(35223);const u={dropdownToggle:"UCAnJ"};function p(){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 v(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function g(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(o.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:v(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&&i.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&c.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:v(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(v(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 h(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,c="actions-dropdown-".concat(l.Y.getRandomInt()),i="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(i+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:i,type:"button",id:c,"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":c},t?n.createElement(p,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(m.u,{title:e.tooltip,spanHack:!0},n.createElement(g,{action:e}))):n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(g,{action:e}))}))))}h.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},38502:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(32735),r=a(49985),c=a(36848),l=a(18559),i=a(11607),o=a(83914),s=a(87432);function m(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(l.C,{type:l.g.Count,data:e.tab.count})))}function d(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(c.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},n.createElement(m,{tab:e})):n.createElement(i.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(m,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},62875:(e,t,a)=>{function n(e,t,a){var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,c=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return r&&(n+=":".concat(r)),c&&(n+=":".concat(c)),a&&(n+=":".concat(a)),n}a.d(t,{H:()=>n})},70227:(e,t,a)=>{a.d(t,{c:()=>c});var n=a(97395),r=a(4594),c={getObjectUrl:function(e,t){var a=e.analyticsWebUrl;if(a){var c="";switch(t.typeId){case r.E.Video:c="/videos/".concat(t.id,"/overview");break;case r.E.Clip:c="/clips/".concat(t.id,"/overview");break;case r.E.Interactive:c="/interactives/".concat(t.id,"/overview")}if(c)return n._.safeUrlConcat(a,c)}}}},36511:(e,t,a)=>{a.d(t,{I:()=>r});var n=a(40424);function r(e){switch(e){case n.R.Pink:return"pink";case n.R.Orange:return"orange";case n.R.Green:return"green";case n.R.Blue:return"blue";case n.R.Purple:return"purple";case n.R.Indigo:return"indigo";default:return"pink"}}},2523:(e,t,a)=>{a.d(t,{w:()=>p});var n=a(32735),r=a(23481),c=a(81886),l=a(38502),i=a(75795),o=a(14070),s=a(97291),m=r.T.encloseNamespace("share.sharesHeader"),d={application:s.O.MY_SHARES,action:o.e.MyShares.SHARED_BY_ME},u={application:s.O.MY_SHARES,action:o.e.MyShares.SHARED_WITH_ME};function p(){return n.createElement("div",{className:"pb-3"},n.createElement("h1",{className:"h2 mb-3"},m("shares")),n.createElement(l.r,{tabs:(t=null===(e=i.O.getCurrentRoute())||void 0===e?void 0:e.appLink,[{name:m("sharedByMe"),onSelect:function(){return c.Q.C$.trigger(d)},active:(null==t?void 0:t.action)===d.action},{name:m("sharedWithMe"),onSelect:function(){return c.Q.C$.trigger(u)},active:(null==t?void 0:t.action)===u.action}])}));var e,t}},76233:(e,t,a)=>{a.r(t),a.d(t,{SharedByMeView:()=>me});var n=a(32735),r=a(81886),c=a(23481),l=a(23232),i=c.T.encloseNamespace("share.sharedByMeEmptyState");function o(e){return n.createElement(l.u,null,n.createElement(l.u.Image,{src:e.imageUrl,size:"small"}),n.createElement(l.u.Heading,null,i(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),n.createElement(l.u.Info,null,i(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&n.createElement(l.u.Cta,{appLink:e.appLink,text:i("cta")}))}var s=a(95834),m=a(69674),d=a(82602),u=a(75896),p=a(110),v=a(65858),g=a(83914),h=a(36532),E=a(49080),f=a(85063),b=a(35223);var y=c.T.encloseNamespace("share.shareStatusIndicator");function N(e){if(e.type===f.y.DirectShare)return y("active");switch(e.status){case E.F.Active:return y("active");case E.F.Expired:return y("expired")}}function w(e){if(e.type===f.y.DirectShare)return"bg-success";switch(e.status){case E.F.Active:return"bg-success";case E.F.Expired:return"bg-gray-500"}}function k(e){var t;return e.share.type!==f.y.DirectShare||(null===(t=e.share.recipients)||void 0===t?void 0:t.length)?e.share.type===f.y.ShareLink&&e.share.isPasswordProtected?n.createElement(h.u,{title:y("passwordProtected"),spanHack:!0},n.createElement(g.x,{svgName:b.vn.Lock,size:g.S.Small})):n.createElement(h.u,{title:N(e.share),spanHack:!0,spanHackClassName:"T6YAv"},n.createElement("div",{className:"".concat("_MRHG"," ").concat(w(e.share))})):n.createElement(n.Fragment,null)}var S=a(29024),C=a(40391),x=a(31754),M=a(64249),O=a(83657),A=a(36848),T=a(83345),I=a(11882),H=a(31908);function L(e){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},L(e)}function j(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 R="share.sharedByMeTable",D=c.T.encloseNamespace(R);function F(e){var t;if(e.type===f.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateShared}));return a.sort((function(e,t){return p.O.isSame(e,t)?0:p.O.isAfter(e,t)?1:-2})),a.length?u.m.last(a):""}function B(e,t,a,r,c,l,i,o){var s=o&&(o.xs||o.sm),m=[{Header:l?"":t,accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},n.createElement(S.k,{object:t,appLink:a(t),showVideoMetadata:!0,locationContext:v.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,r=e.value;return r.name?H.M.isVideoType(r)&&!(null===(t=H.M.getCanBeConsumed(r))||void 0===t?void 0:t.canNavigate)?n.createElement("span",{className:"clamp-2"},r.name):n.createElement("div",{className:"clamp-2"},H.M.isVideoType(r)&&n.createElement(I.$,{type:"series",video:r,appLink:"series"in r&&r.series?a(r.series):null,analyticsOptions:{location:v.LZ.Insights}}),n.createElement(A.F,{appLink:a(r),analyticsData:{id:r.id,name:r.name},analyticsOptions:{entity:M.I.getAnalyticsEntity(r.type),actionType:v.Vw.Click,location:v.LZ.SharedByMe}},r.name)):n.createElement("span",null,n.createElement(T.x,{namespace:R,phrase:"videoUnavailable"}))},width:60},{Header:0===e?D("sharedTo"):"",accessor:"shareRecipients",Cell:function(e){var t=e.value;return t?t.length?n.createElement(C.Kh,{recipients:t,imageCdnUrl:c,maxAvatars:s?1:2}):n.createElement(C.m9,null):n.createElement(C.Ad,null)},width:40},!s&&{Header:0===e?D("shared"):"",id:"dateShared",accessor:function(e){return(0,d.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return n.createElement(O.e,{actions:r(t),className:"w-100 justify-content-end pe-2"})},width:20}],u={Header:t,accessor:"share",id:"status",Cell:function(e){var t=e.value;return n.createElement(k,{share:t})},width:5},p={Header:D("views"),accessor:"viewCount",width:30};return l&&m.splice(0,0,u),i&&m.splice(m.length-1,0,p),m.filter(Boolean)}var U=n.memo((function(e){var t,a,r,c,l,i,o=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,c=!!e.groupByDateShared,l=e.dependencies,n.useMemo((function(){var e,n,l,i=[];return t.forEach((function(e){var t,n,c=a.find((function(t){return t.id===e.objectId})),l=null;e.type===f.y.DirectShare&&(l=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=r.find((function(t){return t.id===e.id}));t&&l.push(t)}))),c&&i.push({share:e,sharedObject:c,shareRecipients:l,dateShared:F(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0})})),c?x.x.groupByDateShared(i):(e={},n=D("title"),l=i,(n=function(e){var t=function(e){if("object"!=L(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=L(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==L(t)?t:t+""}(n))in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e)}),function(e){if(Array.isArray(e))return j(e)}(i=l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return j(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)?j(e,t):void 0}}(i)||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.")}()));return n.createElement(n.Fragment,null,Object.keys(o).map((function(t,a){return n.createElement(m.i,{key:a,columns:B(a,t,e.getObjectAppLink,e.getObjectActions,e.imageCdnUrl,e.showStatus,e.showViewCount,e.breakpoints),data:o[t],theme:s.J})})))})),_=a(71020),P=a(16714),V=a(79967),Z=a(22902),W=a(79612),z=a(37802),Y=a(99742),J=a(14070),Q=a(97291),$=a(64208),X=a(86099),G=a(2523);const K={imageColumn:"uIOaA",nameColumn:"Nta2B",sharedToColumn:"XTJBC",dateSharedColumn:"HdARK",actionsColumn:"DXyZw",heading:"XZ6o7",image:"MolfU",name:"MM43m",avatar:"EboYM",date:"by_XM",actions:"_S2M_"};function q(){return n.createElement("div",{className:"d-flex striped-row rounded"},n.createElement("div",{className:"d-flex align-items-center justify-content-center p-2 ".concat(K.imageColumn)},n.createElement("div",{className:"partial-loading-background rounded w-100 ".concat(K.image)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(K.nameColumn)},n.createElement("div",{className:"partial-loading-background w-75 ".concat(K.name)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(K.sharedToColumn)},n.createElement("div",{className:"partial-loading-background ".concat(K.avatar)})),n.createElement("div",{className:"d-none d-md-flex align-items-center p-2 ".concat(K.dateSharedColumn)},n.createElement("div",{className:"partial-loading-background ".concat(K.date)})),n.createElement("div",{className:"d-flex align-items-center justify-content-end p-2 ".concat(K.actionsColumn)},n.createElement("div",{className:"partial-loading-background rounded me-2 ".concat(K.actions)})))}function ee(e){return n.createElement("div",{className:"d-flex mb-1"},n.createElement("div",{className:"".concat(K.imageColumn," p-2")},n.createElement("div",{className:"partial-loading-background ".concat(K.heading)})),n.createElement("div",{className:"".concat(K.nameColumn," p-2")}," "),n.createElement("div",{className:"".concat(K.sharedToColumn," p-2")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(K.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(K.dateSharedColumn," p-2 d-none d-md-flex")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(K.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(K.actionsColumn," p-2")}," "))}function te(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement(ee,{fullHeader:!0}),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(q,null),n.createElement(q,null),n.createElement(q,null))),n.createElement("div",{className:"mb-3"},n.createElement(ee,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null))),n.createElement("div",{className:"mb-3"},n.createElement(ee,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null),n.createElement(q,null))))}var ae=a(20354),ne=a(4594),re=a(39151),ce=a(70227),le=c.T.encloseNamespace("liteShare.sharedByMe");function ie(e,t){return{label:le("editShareSettings"),appLink:{application:Q.O.DEFAULT,action:J.e.Default.SHARE,args:[e.id],params:{entityType:t}}}}function oe(e){return n.createElement(h.u,{title:e.label,spanHack:!0},n.createElement("a",{href:e.url,target:"_blank"},n.createElement(g.x,{svgName:b.vn.Analytics})))}var se=c.T.encloseNamespace("liteShare.sharedByMe");function me(){var e=(0,Z.T)().hasPermissions,t=(0,z.r)(null).hasInsights,a=(0,V.k)(),c=(0,$.aH)(),l=c.sentShares,i=c.sharedObjects,s=c.shareRecipients,m=c.isFetching,d=c.showPartialLoading,u=c.nextCursor,p=c.hasMore,v=c.fetchNext,g=c.imageCdnUrl,h=e(P.C.ViewMyShares)&&t;n.useEffect((function(){h&&r.Q.C$.trigger({application:Q.O.MY_SHARES,action:J.e.MyShares.HOME},{replace:!0})}),[h]),(0,W.M)({title:se("sharedByMe")});var E=function(e){var t=ae.a.useBasicFetch(re.L.config()),a=(0,Z.T)().hasPermissions,r=(0,z.r)(null).hasInsights,c=a(P.C.ViewMyShares),l=r&&c,i=e.xs||e.sm;return n.useCallback((function(e){return function(e,t,a,r){var c,l="viewUsage";if(H.M.isVideo(e)&&(c="video"),H.M.isInteractive(e)&&(c="interactive",l="viewResults"),H.M.isClip(e)&&(c="clip"),e.typeId===ne.E.Series&&(c="series"),e.typeId===ne.E.Playlist&&(c="playlist"),H.M.isVideoType(e)&&!H.M.getCanBeConsumed(e).canConsume)return[];var i=[ie(e,c)],o=ce.c.getObjectUrl(r,e);return!t&&o&&i.push({label:a?le(l):function(){return n.createElement(oe,{label:le(l),url:o})},className:"btn btn-link",button:!a,href:ce.c.getObjectUrl(r,e),openInNewTab:!0}),i}(e,l,i,t.data)}),[i])}(a);return n.createElement("div",{className:"px-3"},!h&&n.createElement(G.w,null),d?n.createElement(te,null):l.length?n.createElement(n.Fragment,null,n.createElement(U,{sentShares:l,sharedObjects:i,shareRecipients:s,getObjectAppLink:X.Qh,getObjectActions:E,imageCdnUrl:g,groupByDateShared:!0,dependencies:[m],breakpoints:a}),(p||m)&&n.createElement(_._,{isFetching:m,fetchNext:v,nextCursor:u})):n.createElement(o,{appLink:{application:Q.O.DASHBOARD,action:J.e.Dashboard.HOME},imageUrl:Y.W.EmptyStates.Share.SHARED_WITH_ME}))}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=8465-01b0f72699-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8465-01b0f72699-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/constants/TableTheme.ts","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/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTableUtils.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/partial-shared-by-me-table.scss","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/PartialSharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeViewUtils.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\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 React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'share.sharedByMeEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharedByMeEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function SharedByMeEmptyState(props: SharedByMeEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} size='small'/>\n <EmptyState.Heading>\n {getPhrase(props.useInteractiveCopy ? 'interactivesHeading' : 'genericHeading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase(props.useInteractiveCopy ? 'interactivesInfo' : 'genericInfo')}</EmptyState.Info>\n {!!props.appLink &&\n <EmptyState.Cta appLink={props.appLink} text={getPhrase('cta')} />\n }\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getStatusPhrase(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return getPhrase('active');\n\n switch (share.status) {\n case ShareLinkStatus.Active:\n return getPhrase('active');\n\n case ShareLinkStatus.Expired:\n return getPhrase('expired');\n }\n}\n\nfunction getBgColourClassName(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return 'bg-success';\n \n switch (share.status) {\n case ShareLinkStatus.Active:\n return 'bg-success';\n\n case ShareLinkStatus.Expired:\n return 'bg-gray-500';\n }\n}\n\ninterface ShareStatusIndicatorProps {\n share: UnionShareObject;\n}\n\n/**\n * TODO: add support for deleted share links (currently the api doesn't return these.)\n */\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps): JSX.Element {\n if (props.share.type === ShareType.DirectShare && !props.share.recipients?.length)\n return <></>;\n\n if (props.share.type === ShareType.ShareLink && props.share.isPasswordProtected) {\n return (\n <Tooltip title={getPhrase('passwordProtected')} spanHack>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={SvgContainerSize.Small} />\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n title={getStatusPhrase(props.share)}\n spanHack\n spanHackClassName={styles.indicatorContainer}\n >\n <div className={`${styles.indicator} ${getBgColourClassName(props.share)}`} />\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicatorContainer\":\"T6YAv\",\"indicator\":\"_MRHG\"};","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport {\n ShareStatusIndicator\n} from 'libs/shared/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator';\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport {\n AnonymousSharedToAvatar,\n SharedLinkAvatar,\n SharedToAvatarList\n} from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.sharedByMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\ninterface SharedByMeTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: BaseObject[];\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\nexport function getColumns(\n index: number,\n dateHeading: string,\n getObjectAppLink: (object: BaseObject) => Core.AppLink,\n getObjectActions: (object: BaseObject) => ActionOptions[],\n imageCdnUrl: string,\n showStatus?: boolean,\n showViewCount?: boolean,\n breakpoints?: Breakpoints\n): Column<SharedByMeTableData>[] {\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: showStatus ? '' : dateHeading,\n accessor: 'sharedObject',\n id: 'image',\n Cell: ({ value }) => (\n <div className='w-100'>\n <SharedObjectImage\n object={value}\n appLink={getObjectAppLink(value)}\n showVideoMetadata\n locationContext={LocationContext.SharedByMe}\n />\n </div>\n ),\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'sharedObject',\n id: 'name',\n Cell: ({ value }) => {\n if (value.name) {\n if (VideoHelper.isVideoType(value) && !VideoHelper.getCanBeConsumed(value)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {value.name}\n </span>\n );\n }\n\n return (\n <div className='clamp-2'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n appLink={'series' in value && value.series ? getObjectAppLink(value.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n />\n )}\n <AppLink\n appLink={getObjectAppLink(value)}\n analyticsData={{ id: value.id, name: value.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(value.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {value.name}\n </AppLink>\n </div>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedTo') : '',\n accessor: 'shareRecipients',\n Cell: ({ value }) => {\n if (!value)\n return <SharedLinkAvatar />;\n\n if (!value.length)\n return <AnonymousSharedToAvatar />;\n\n return <SharedToAvatarList recipients={value} imageCdnUrl={imageCdnUrl} maxAvatars={isMobile ? 1 : 2} />;\n },\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 40\n },\n {\n accessor: 'sharedObject',\n id: 'actions',\n Cell: ({ value }) => (\n <Actions\n actions={getObjectActions(value)}\n className='w-100 justify-content-end pe-2'\n />\n ),\n width: 20\n }\n ];\n\n const statusColumn: Column<SharedByMeTableData> = {\n Header: dateHeading,\n accessor: 'share',\n id: 'status',\n Cell: ({ value }) => (\n <ShareStatusIndicator share={value} />\n ),\n width: 5\n };\n\n const viewCountColumn: Column<SharedByMeTableData> = {\n Header: getPhrase('views'),\n accessor: 'viewCount',\n width: 30\n };\n\n if (showStatus)\n columns.splice(0, 0, statusColumn);\n\n if (showViewCount)\n columns.splice(columns.length - 1, 0, viewCountColumn);\n\n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: BaseObject[],\n shareRecipients: BaseObject[],\n groupByDate: boolean,\n dependencies: (string | boolean)[]\n): TableDataGroupings {\n return React.useMemo(() => {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects.find(o => o.id === s.objectId);\n\n let recipients: BaseObject[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients.find(s => s.id === r.id);\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject)\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0\n });\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n }, [...dependencies]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: BaseObject[];\n shareRecipients: BaseObject[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: (string | boolean)[];\n breakpoints?: Breakpoints;\n}\n\nfunction SharedByMeTableMemo(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n props.dependencies\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns(\n index,\n heading,\n props.getObjectAppLink,\n props.getObjectActions,\n props.imageCdnUrl,\n props.showStatus,\n props.showViewCount,\n props.breakpoints\n )}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}\n\nexport const SharedByMeTable = React.memo(SharedByMeTableMemo);","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"uIOaA\",\"nameColumn\":\"Nta2B\",\"sharedToColumn\":\"XTJBC\",\"dateSharedColumn\":\"HdARK\",\"actionsColumn\":\"DXyZw\",\"heading\":\"XZ6o7\",\"image\":\"MolfU\",\"name\":\"MM43m\",\"avatar\":\"EboYM\",\"date\":\"by_XM\",\"actions\":\"_S2M_\"};","import React from 'react';\n\nimport styles from './partial-shared-by-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedToColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`d-flex align-items-center justify-content-end p-2 ${styles.actionsColumn}`}>\n <div className={`partial-loading-background rounded me-2 ${styles.actions}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n \n </div>\n <div className={`${styles.sharedToColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.actionsColumn} p-2`}>\n \n </div>\n </div>\n );\n}\n\nexport function PartialSharedByMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getShareActionOptions(sharedObject: BaseObject, entityType: SharableEntityType): ActionOptions {\n return {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [sharedObject.id],\n params: { entityType }\n }\n };\n}\n\ninterface SeeUsageActionProps {\n label: string;\n url?: string;\n}\n\nfunction SeeUsageAction(props: SeeUsageActionProps): JSX.Element {\n return (\n <Tooltip title={props.label} spanHack>\n <a\n href={props.url}\n target='_blank'\n >\n <SvgContainer svgName={cvSvgLibrary.Analytics} />\n </a>\n </Tooltip>\n );\n}\n\nfunction getSharedObjectActions(\n sharedObject: BaseObject,\n showInsights: boolean,\n isMobile: boolean,\n config: Config\n): ActionOptions[] {\n let entityType: SharableEntityType;\n let analyticsPhrase = 'viewUsage';\n\n if (VideoHelper.isVideo(sharedObject))\n entityType = 'video';\n\n if (VideoHelper.isInteractive(sharedObject)) {\n entityType = 'interactive';\n analyticsPhrase = 'viewResults';\n }\n\n if (VideoHelper.isClip(sharedObject))\n entityType = 'clip';\n\n if (sharedObject.typeId === MasterType.Series)\n entityType = 'series';\n\n if (sharedObject.typeId === MasterType.Playlist)\n entityType = 'playlist';\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n }\n\n const sharedObjectActions = [getShareActionOptions(sharedObject, entityType)];\n\n const objectUrl = AnalyticsRouteHelper.getObjectUrl(config, sharedObject);\n if (!showInsights && objectUrl) {\n sharedObjectActions.push({\n label: !isMobile\n ? () => <SeeUsageAction label={getPhrase(analyticsPhrase)} url={objectUrl} />\n : getPhrase(analyticsPhrase),\n\n className: 'btn btn-link',\n button: !isMobile,\n href: AnalyticsRouteHelper.getObjectUrl(config, sharedObject),\n openInNewTab: true\n });\n }\n\n return sharedObjectActions;\n}\n\nexport function useGetSharedObjectActions(breakpoints: Breakpoints): ((object: BaseObject) => ActionOptions[]) | null {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const { hasPermissions } = usePermissions();\n const { hasInsights } = useSettings(null);\n const insightsPermission = hasPermissions(PermissionName.ViewMyShares);\n const showInsights = hasInsights && insightsPermission;\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n return React.useCallback((object: BaseObject) =>\n getSharedObjectActions(object, showInsights, isMobile, config.data), [isMobile]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedByMeEmptyState } from 'libs/shared/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState';\nimport { SharedByMeTable } from 'libs/shared/apps/share/components/shared-by-me/table/SharedByMeTable';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { PartialSharedByMeTable } from './partial-loading/PartialSharedByMeTable';\nimport {\n useGetSharedObjectActions\n} from './SharedByMeViewUtils';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedByMeView(): JSX.Element {\n const { hasPermissions } = usePermissions();\n const { hasInsights } = useSettings(null);\n\n const breakpoints = useBreakpoints();\n\n const {\n sentShares,\n sharedObjects,\n shareRecipients,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl\n } = useSharesTable();\n\n const hasMyShares = hasPermissions(PermissionName.ViewMyShares) && hasInsights;\n\n React.useEffect(() => {\n if (hasMyShares)\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }, { replace: true });\n }, [hasMyShares]);\n\n useSetPageMetadata({ title: getPhrase('sharedByMe') });\n\n const getSharedObjectActions = useGetSharedObjectActions(breakpoints);\n\n return (\n <div className='px-3'>\n {!hasMyShares && <SharesHeader />}\n\n {(() => {\n if (showPartialLoading)\n return <PartialSharedByMeTable />;\n\n if (!sentShares.length)\n return (\n <SharedByMeEmptyState\n appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }}\n imageUrl={ImageUrls.EmptyStates.Share.SHARED_WITH_ME}\n />\n );\n\n return (\n <>\n <SharedByMeTable\n sentShares={sentShares}\n sharedObjects={sharedObjects}\n shareRecipients={shareRecipients}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n imageCdnUrl={imageCdnUrl}\n groupByDateShared\n dependencies={[isFetching]}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["SHARES_TABLE_THEME","table","header","headerCell","row","cell","LazyDropdownItems","style","padding","className","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","props","label","FunctionHelper","action","appLink","AppLink","onClick","analyticsData","analyticsOptions","openInNewTab","disabled","svgName","SvgContainer","e","preventDefault","AnalyticsHelper","href","role","tabIndex","onKeyDown","key","ActionsDropdown","actions","length","isLazy","some","a","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","dropdownToggleClassName","type","id","fetchMore","size","dropdownToggleSvgSize","map","idx","showDivider","undefined","group","tooltip","Tooltip","title","spanHack","defaultProps","S","TabContents","tab","name","count","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","active","onSelect","onSelectTab","getAnalyticsRequestKey","baseKey","filter","sharerId","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","AnalyticsRouteHelper","getObjectUrl","config","object","baseUrl","analyticsWebUrl","relativeUrl","typeId","mapColourToBsVariant","groupColour","getPhrase","SHARED_BY_ME_APP_LINK","application","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink","LanguageService","SharedByMeEmptyState","EmptyState","src","imageUrl","useInteractiveCopy","text","getStatusPhrase","share","ShareType","status","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","recipients","isPasswordProtected","spanHackClassName","getDateShared","dateCreated","datesShared","r","dateShared","date1","date2","DateHelper","ArrayHelper","getColumns","dateHeading","getObjectAppLink","getObjectActions","imageCdnUrl","showStatus","showViewCount","breakpoints","isMobile","xs","sm","columns","Header","accessor","Cell","value","SharedObjectImage","showVideoMetadata","locationContext","minWidth","maxWidth","VideoHelper","canNavigate","VideoSubText","video","series","location","entity","ShareViewHelper","actionType","Text","namespace","phrase","SharedToAvatarList","maxAvatars","s","Actions","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","dependencies","groupByDateShared","tableData","forEach","sharedObject","find","o","objectId","recipient","push","viewCount","ShareHelper","Object","keys","heading","Table","theme","PartialRow","PartialHeader","fullHeader","PartialSharedByMeTable","getShareActionOptions","entityType","args","params","SeeUsageAction","url","target","SharedByMeView","hasPermissions","usePermissions","hasInsights","useSettings","useBreakpoints","useSharesTable","isFetching","showPartialLoading","nextCursor","hasMore","fetchNext","hasMyShares","PermissionName","replace","useSetPageMetadata","getSharedObjectActions","ConfigRequests","insightsPermission","showInsights","analyticsPhrase","MasterType","canConsume","sharedObjectActions","objectUrl","button","useGetSharedObjectActions","InfiniteScrollFooter","ImageUrls"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8722],{408:(t,e,r)=>{r.d(e,{B:()=>o});var n=r(2948),a=r(86702);function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(){var t,e,r=(t=(0,n.D)(a.y.OPEN_IN_APP_DATA),e=1,function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,a,i,o,l=[],c=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){u=!0,a=t}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return{trialAppLinkString:function(){if(r&&["videos","clips","series","playlists","topics","interactives"].includes(r.app)){var t=r.id;switch(r.app){case"videos":return"video:".concat(t);case"playlists":return"playlist:".concat(t);case"series":return"series:".concat(t);case"topics":return"topic:".concat(t);case"interactives":return"interactive:".concat(t);case"clips":return"clip:".concat(t)}}}()}}},5070:(t,e,r)=>{r.r(e),r.d(e,{StartSignUpView:()=>L});var n=r(32735),a=r(61404),i=r(81886),o=r(20354),l=r(70624),c=r(49985),u=r(65858),s=r(97947),p=r(83529),f=r(84789),y=r(17331),d=r(28366),g=r(60735),v=r(12754),m=r(53475),h=r(39151),b=r(48015),A=r(14070),S=r(97291),w=r(70928),k=r(48456),C=r(63643),E=r(408);function U(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,a,i,o,l=[],c=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){u=!0,a=t}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return I(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?I(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function L(t){var e=(0,l.G)(g.D.BrazeClient),r=(0,E.B)().trialAppLinkString,I=U(n.useState("lg"),2),L=I[0],B=I[1],P=U(n.useState(),2),j=P[0],O=P[1],_=o.a.useBasicFetch(h.L.config()),D=(0,b.M)(),N=o.a.useBasicFetch((null==D?void 0:D.countryCode)&&m.N.globalIdps(D.countryCode,v.x.Primary)),x=(0,C.c)();function F(){t.closePopup();var e=y.i.filterBlacklistedKeys(j);c.k.logUserAction(e||{},{actionType:u.Vw.Click,location:u.LZ.SignUpPopup,entity:u.py.SignUp,descriptor:u.Yu.ClosePopup,workflowPhase:u.eu.Discard})}return _.hasCompleted&&D&&x&&N.hasCompleted?n.createElement(a.Z,{show:!0,onHide:F,size:L},n.createElement(a.Z.Body,{className:"mx-auto p-0 ".concat(d.Z.modalBody," w-100 position-relative")},n.createElement(s.h,{onStepUpdate:function(t){O(t),"completed"!==t.currentStepId?"lg"!==L&&B("lg"):B(void 0)},pageAppLinkString:r,close:F,type:p.c.Popup,location:u.LZ.SignUpPopup,googleMapsApiKey:_.data.googleMapsApiKey,geoLocation:D,imageUrls:k.v,ajaxUrls:x,productName:f.X.Lite,getSignInUrl:function(t){return i.Q.C$.getHref({application:S.O.DEFAULT,action:A.e.Default.CHALLENGE,params:t})},globalIdps:N.data,logBrazeEvent:function(t){return w.F.logBrazeEvent(e,t)}}))):n.createElement(n.Fragment,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=8722-a9eac1941c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8722-a9eac1941c-lite.chunk.js","mappings":"iQAKM,SAAUA,IACd,I,IAAOC,G,GAAa,OAAgC,sB,EAA+B,E,o4BAAnE,GA4BhB,MAAO,CACLC,mBA3BF,WACE,GAAKD,GAGa,CAAE,SAAU,QAAS,SAAU,YAAa,SAAU,gBACzDE,SAASF,EAAUG,KAAlC,CAIA,IAAMC,EAAKJ,EAAUI,GACrB,OAAQJ,EAAUG,KAChB,IAAK,SACH,MAAO,SAAP,OAAgBC,GAClB,IAAK,YACH,MAAO,YAAP,OAAmBA,GACrB,IAAK,SACH,MAAO,UAAP,OAAiBA,GACnB,IAAK,SACH,MAAO,SAAP,OAAgBA,GAClB,IAAK,eACH,MAAO,eAAP,OAAsBA,GACxB,IAAK,QACH,MAAO,QAAP,OAAeA,GAflB,CAiBH,CAGsBC,GAExB,C,szCCCM,SAAUC,EAAgBC,GAC9B,IAAMC,GAAqB,OAAoC,iBACvDP,GAAuB,SAAvBA,mBACoE,IAAxC,WAAmC,MAAK,GAApEQ,EAAS,KAAEC,EAAY,KACwB,IAA7B,aAA6B,GAA/CC,EAAI,KAAEC,EAAO,KAEfC,EAAS,kBAA6B,cAEtCC,GAAc,SACdC,EAAa,mBACjBD,aAAW,EAAXA,EAAaE,cAAe,eAAwBF,EAAYE,YAAa,cAGzEC,GAAW,SAEjB,SAASC,IACPX,EAAMY,aACN,IAAMC,EAAiB,0BAAiCT,GACxD,kBAA8BS,GAAkB,CAAC,EAAG,CAClDC,WAAY,WACZC,SAAU,iBACVC,OAAQ,YACRC,WAAY,gBACZC,cAAe,cAEnB,CAcA,OAAKZ,EAAOa,cAAiBZ,GAAgBG,GAAaF,EAAWW,aAInE,gBAAC,IAAK,CACJC,MAAI,EACJT,OAAQA,EACRU,KAAMnB,GAEN,gBAAC,SAAU,CAACoB,UAAS,sBAAiB,cAAgB,6BACpD,gBAAC,IAAa,CACZC,aAvBR,SAAsBnB,GACpBC,EAAQD,GAEmB,cAAvBA,EAAKoB,cAKS,OAAdtB,GACFC,EAAa,MALbA,OAAasB,EAMjB,EAcQC,kBAAmBhC,EACnBiC,MAAOhB,EAEPiB,KAAM,UACNb,SAAU,iBAEVc,iBAAkBvB,EAAOF,KAAKyB,iBAC9BtB,YAAaA,EACbuB,UAAW,IACXpB,SAAUA,EACVqB,YAAa,SACbC,aAAc,SAAAC,GAAO,OAAI,eAA2B,CAClDC,YAAa,YACbC,OAAQ,sBACRC,OAAQH,GACR,EACFzB,WAAYA,EAAWJ,KACvBiC,cAAe,SAAAJ,GAAO,OAAI,kBAA8BhC,EAAoBgC,EAAQ,MA5BnF,gCAiCX,C","sources":["file:///app/packages/projects/lite/src/apps/sign-up/hooks/useTrialAppLink.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/StartSignUpView.tsx"],"sourcesContent":["import { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { DeepLinkViewModel } from 'shared/hooks/useDeepLinks';\n\nexport function useTrialAppLink() {\n const [viewModel] = useViewModel<DeepLinkViewModel>(ViewModelKeys.OPEN_IN_APP_DATA);\n\n function getTrialAppLinkString() {\n if (!viewModel) {\n return;\n }\n const validApps = [ 'videos', 'clips', 'series', 'playlists', 'topics', 'interactives' ];\n if (!validApps.includes(viewModel.app)) {\n return;\n }\n\n const id = viewModel.id;\n switch (viewModel.app) {\n case 'videos':\n return `video:${id}`;\n case 'playlists':\n return `playlist:${id}`;\n case 'series':\n return `series:${id}`;\n case 'topics':\n return `topic:${id}`;\n case 'interactives':\n return `interactive:${id}`;\n case 'clips':\n return `clip:${id}`;\n }\n }\n\n return {\n trialAppLinkString: getTrialAppLinkString()\n };\n}","import React from 'react';\nimport { Modal } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { useInstanceSafe } from 'libs/common/react/hooks/UseInstance';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { MultiStepForm } from 'libs/shared/apps/sign-up/components/multi-step-form/MultiStepForm';\nimport { MultiStepFormTypes } from 'libs/shared/apps/sign-up/enums/MultiStepFormTypes';\nimport { SignUpProduct } from 'libs/shared/apps/sign-up/enums/SignUpProduct';\nimport { DataHelper } from 'libs/shared/apps/sign-up/helpers/DataHelper';\nimport { SignUpState } from 'libs/shared/apps/sign-up/hooks/useSignUpSteps/interfaces/SignUpState';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport styles from 'libs/shared/apps/sign-up/layouts/popup-layout/popup-layout.scss';\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { AuthRequests } from 'libs/shared/flight-requests/AuthRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { Config } from 'libs/shared/interfaces';\nimport { BrazeClientService } from 'libs/shared/services/BrazeClientService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { LiteBrazeHelper } from 'shared/utils/LiteBrazeHelper';\n\nimport { SignUpImages } from 'apps/sign-up/helpers/SignUpImages';\nimport { useGetSignUpAjaxUrls } from 'apps/sign-up/hooks/useGetSignUpAjaxUrls';\nimport { useTrialAppLink } from 'apps/sign-up/hooks/useTrialAppLink';\n\ninterface StartSignUpViewProps {\n closePopup: () => void;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function StartSignUpView(props: StartSignUpViewProps): JSX.Element {\n const brazeClientService = useInstanceSafe<BrazeClientService>(SharedServices.BrazeClient);\n const { trialAppLinkString } = useTrialAppLink();\n const [ modalSize, setModalSize ] = React.useState<'lg' | 'sm' | 'xl'>('lg');\n const [ data, setData ] = React.useState<SignUpState>();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const geoLocation = useGeoLocation();\n const globalIdps = Flight.useBasicFetch<IdentityProvider[]>(\n geoLocation?.countryCode && AuthRequests.globalIdps(geoLocation.countryCode, ProductId.Primary)\n );\n \n const ajaxUrls = useGetSignUpAjaxUrls();\n\n function onHide(): void {\n props.closePopup();\n const dataWithoutPII = DataHelper.filterBlacklistedKeys(data);\n AnalyticsHelper.logUserAction(dataWithoutPII || {}, {\n actionType: UserAction.Click,\n location: LocationContext.SignUpPopup,\n entity: EntityType.SignUp,\n descriptor: SignUpDescriptors.ClosePopup,\n workflowPhase: WorkflowPhase.Discard\n });\n }\n\n function onStepUpdate(data: SignUpState) {\n setData(data);\n\n if (data.currentStepId === 'completed') {\n setModalSize(undefined);\n return;\n }\n\n if (modalSize !== 'lg')\n setModalSize('lg');\n }\n\n if (!config.hasCompleted || !geoLocation || !ajaxUrls || !globalIdps.hasCompleted)\n return <></>;\n\n return (\n <Modal\n show\n onHide={onHide}\n size={modalSize}\n >\n <Modal.Body className={`mx-auto p-0 ${styles.modalBody} w-100 position-relative`}>\n <MultiStepForm\n onStepUpdate={onStepUpdate}\n pageAppLinkString={trialAppLinkString}\n close={onHide}\n \n type={MultiStepFormTypes.Popup}\n location={LocationContext.SignUpPopup}\n\n googleMapsApiKey={config.data.googleMapsApiKey}\n geoLocation={geoLocation}\n imageUrls={SignUpImages}\n ajaxUrls={ajaxUrls}\n productName={SignUpProduct.Lite}\n getSignInUrl={options => Core.AppLinkHelper.getHref({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params: options\n })}\n globalIdps={globalIdps.data}\n logBrazeEvent={options => LiteBrazeHelper.logBrazeEvent(brazeClientService, options)}\n />\n </Modal.Body>\n </Modal>\n );\n}\n"],"names":["useTrialAppLink","viewModel","trialAppLinkString","includes","app","id","getTrialAppLinkString","StartSignUpView","props","brazeClientService","modalSize","setModalSize","data","setData","config","geoLocation","globalIdps","countryCode","ajaxUrls","onHide","closePopup","dataWithoutPII","actionType","location","entity","descriptor","workflowPhase","hasCompleted","show","size","className","onStepUpdate","currentStepId","undefined","pageAppLinkString","close","type","googleMapsApiKey","imageUrls","productName","getSignInUrl","options","application","action","params","logBrazeEvent"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9013],{65853:(e,t,a)=>{a.d(t,{R:()=>d});var n=a(23481),r=a(110),i=a(4594),l=a(49080),s=a(26361),c=a(35223),o=a(31908);function m(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 u=n.T.encloseNamespace("share.shareLinkInfo"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,a=e.privacy,n=e.hasStudentExp,r=e.entity,l=e.yearGroups;if(t===i.E.Topic||t===i.E.Series)return{icon:c.vn.VisibleOn,text:u(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(a))switch(a.privacy){case"public":return{icon:c.vn.VisibleOn,text:u("publicDescription")};case"protected":return a.overrideRestrictions?{icon:c.vn.VisibleOn,text:u("clickViewOnly")}:{icon:c.vn.Lock,text:d.getRespectRatingText(r,l,n)};case"just_my_customer":return a.overrideRestrictions?{icon:c.vn.Lock,text:u(n?"justMySchoolTeachers":"justMySchoolDescription")}:{icon:c.vn.Lock,text:d.getRespectRatingText(r,l,n)};case"restricted":case"private":return{icon:c.vn.Lock,text:u("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,a=e.isPasswordProtected,n=e.status;if(!t&&!a)return d.getPrivateIconAndText(e);if(!t)return{icon:c.vn.Lock,text:u("password")};var i=r.O.isToday(t),s=r.O.diffBetween(t,new Date,"day");if(!a){var o=i?u("expiryToday"):u("expiry",{days:s});return n===l.F.Expired&&(o=u("expired")),{icon:c.vn.Timer,text:o}}var m=i?u("passwordExpiryToday"):u("passwordExpiry",{days:s});return n===l.F.Expired&&(m=u("passwordExpired")),{icon:c.vn.Lock,text:m}},getRespectRatingText:function(e,t,a){var n;if(!e||!t)return null;if(a)return u("justMySchoolTeachers");if(!o.M.isVideoType(e))return u("collectionRating");var r=s.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(r&&!r.yearGroup)return u("onlyAdmins");var i,l,c,d=o.M.getRating(e),p=function(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,s=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return l=e.done,e},e:function(e){s=!0,i=e},f:function(){try{l||null==a.return||a.return()}finally{if(s)throw i}}}}(t);try{for(p.s();!(c=p.n()).done;){var y=c.value;(!i||y.value>i.value)&&(i=y),r&&y.value<=r.yearGroup||d&&y.rating.value<d.value||(!l||y.value<l.value)&&(l=y)}}catch(e){p.e(e)}finally{p.f()}return l?1===t.length?u("clickViewOnly"):l.value===i.value?u("maxYearGroup",{yearGroup:i.name}):u("yearGroupRange",{yearGroup:l.name}):u("onlyStaff")}}},93322:(e,t,a)=>{a.d(t,{F:()=>i});var n=a(32735),r=a(13126);function i(){n.useEffect((function(){return r.e.lockContentWidth(),function(){return r.e.unlockContentWidth()}}),[])}},24758:(e,t,a)=>{a.d(t,{A:()=>s});var n=a(32735),r=a(40391),i=a(83345),l="myShares.sharedToPill";function s(e){var t=e.shareRecipients;return n.createElement("div",{className:"d-flex align-items-center bg-gray-100 rounded-pill w-fit gap-2 p-2"},n.createElement("span",{className:"text-nowrap"},n.createElement(i.x,{namespace:l,phrase:t?"sharedTo":"sharedVia"})),!t&&n.createElement(r.Ad,{text:e.shareLinkText,avatarSize:"sm",className:"bg-dark text-white"}),t&&!(null==t?void 0:t.length)&&n.createElement(r.m9,{avatarSize:"sm"}),t&&n.createElement(r.Kh,{recipients:t,imageCdnUrl:e.imageCdnUrl,maxAvatars:e.maxAvatars,avatarSize:"sm",hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}s.defaultProps={maxAvatars:3}},57302:(e,t,a)=>{a.r(t),a.d(t,{MySharesView:()=>xe});var n=a(32735),r=a(81886),i=a(23481),l=a(20354),s=a(26025),c=a(88180),o=a(71020),m=a(83345),u=a(16714),d=a(39151),p=a(1666),y=a(31949),f=a(79967),v=a(93322),h=a(22902),g=a(79612),b=a(37802),E=a(14070),S=a(97291),k=a(64208),x=a(86099),w=a(34509),N=a(75896),I=a(36848),O=a(89965),j=a(4594);const A={noCaret:"TMpTN"};function T(e){return function(e){if(Array.isArray(e))return M(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||L(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 C(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,l,s=[],c=!0,o=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){o=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(o)throw r}}return s}}(e,t)||L(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 L(e,t){if(e){if("string"==typeof e)return M(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)?M(e,t):void 0}}function M(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 R="insights.insightsTypeFilters",P=i.T.encloseNamespace(R);function F(e){var t=[{label:P("playlists"),filter:j.E.Playlist},{label:P("series"),filter:j.E.Series}],a=e.typeIdParams.filter((function(e){return t.some((function(t){return e===t.filter}))})),i=C(n.useState(!1),2),l=i[0],s=i[1],c=C(n.useState(a),2),o=c[0],u=c[1];function d(){var a=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},a),{typeId:[].concat(T(e.typeIdParams.filter((function(e){return!t.find((function(t){return e===t.filter}))}))),T(o))})}))}return n.createElement("div",{className:"d-flex align-items-center fw-semibold"},n.createElement("p",{className:"h6 mb-0"},n.createElement(m.x,{namespace:R,phrase:"filters"})),n.createElement("div",{className:"d-flex border-start border-light ps-3 ms-3 gap-2"},n.createElement(V,{typeId:j.E.Video,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(V,{typeId:j.E.Clip,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(V,{typeId:j.E.Interactive,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(w.Z,{onToggle:function(e){s(e),e||d()},show:l},n.createElement(w.Z.Toggle,{className:A.noCaret,variant:a.length?"dark":"outline-dark"},n.createElement("span",{className:"fw-semibold mb-0"},n.createElement(m.x,{namespace:R,phrase:"moreFilters"}),a.length?" - ".concat(a.length):"")),n.createElement(w.Z.Menu,null,n.createElement("div",{className:"mx-1 px-2 py-1 mb-0"},n.createElement("h2",{className:"h6 mb-3"},n.createElement(m.x,{namespace:R,phrase:"types"})),n.createElement("ul",{className:"list-unstyled me-5"},t.map((function(e){return n.createElement("li",{key:"".concat(e.label,"-filter"),className:"my-1"},n.createElement(O.X,{id:"".concat(e.label,"-filter"),label:e.label,onChange:function(){return t=e.filter,void u(N.m.addOrRemoveImmutable(o,t));var t},checked:(t=e.filter,!!o.find((function(e){return e===t})))}));var t}))),n.createElement("button",{onClick:function(){return d(),void s(!1)},className:"btn btn-link text-info float-end p-0 mb-0"},n.createElement(m.x,{namespace:R,phrase:"apply"})))))),!!e.typeIdParams.length&&n.createElement("button",{onClick:function(){u([]);var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:[]})}))},className:"btn btn-link ms-1"},n.createElement(m.x,{namespace:R,phrase:"resetAll"})))}function V(e){var t=e.typeFilters.includes(e.typeId),a=e.appLink,r=a.params,i=N.m.addOrRemoveImmutable(e.typeFilters,e.typeId),l=Object.assign(Object.assign({},a),{params:Object.assign(Object.assign({},r),{typeId:i})});function s(){return e.typeId===j.E.Video?"videos":e.typeId===j.E.Clip?"clips":e.typeId===j.E.Interactive?"interactives":void 0}return n.createElement(I.F,{className:"btn ".concat(t?"btn-dark":"btn-outline-dark"," fw-semibold"),appLink:l,ariaLabel:"".concat(P("ariaFilterBy"),": ").concat(P(s()))},n.createElement(m.x,{namespace:R,phrase:s()}))}var D=a(11293),U=a(23232),G=a(99742),_=i.T.encloseNamespace("myShares.mySharesTableEmptyState");function B(){return n.createElement(U.u,null,n.createElement(U.u.Image,{src:G.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),n.createElement(U.u.Heading,null,_("heading")),n.createElement(U.u.Info,null,_("info")),n.createElement(U.u.Cta,{appLink:{application:S.O.DASHBOARD,action:E.e.Dashboard.HOME},text:_("cta")}))}var H=a(82602),W=a(65858),Q=a(29024),Y=a(65853),Z=a(64249),$=a(83657),q=a(60995),z=a(11882),K=a(85063),X=a(31908),J=a(110),ee=a(31754);function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function ae(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 ne(e,t,a){return(t=function(e){var t=function(e){if("object"!=te(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=te(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==te(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var re=i.T.encloseNamespace("myShares.mySharesTable");function ie(e){var t;if(e.type===K.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateShared}));return a.sort((function(e,t){return J.O.isSame(e,t)?0:J.O.isAfter(e,t)?1:-2})),a.length?N.m.last(a):""}var le=a(24758);const se={mySharesTable:"peXGl"};var ce="myShares.mySharesTable";function oe(e){var t,a=e.sharedObject;if(!a.name)return n.createElement(m.x,{namespace:ce,phrase:"videoUnavailable"});if(X.M.isVideoType(a)&&!(null===(t=X.M.getCanBeConsumed(a))||void 0===t?void 0:t.canNavigate))return n.createElement("span",{className:"clamp-2"},a.name);var r=function(){switch(a.typeId){case j.E.Series:return"series";case j.E.Playlist:return"playlist"}}();return n.createElement("div",null,X.M.isVideoType(a)&&n.createElement(z.$,{type:"series",video:a,appLink:"series"in a&&a.series?(0,x.Qh)(a.series):null,analyticsOptions:{location:W.LZ.Insights},className:"d-inline clamp-1"}),r&&n.createElement(q.m,null,n.createElement(m.x,{namespace:ce,phrase:r})),n.createElement(I.F,{appLink:(0,x.Qh)(a),className:"clamp-1",analyticsData:{id:a.id,name:a.name},analyticsOptions:{entity:Z.I.getAnalyticsEntity(a.type),actionType:W.Vw.Click,location:W.LZ.MyShares}},a.name),!!e.requireMarking&&n.createElement("div",{className:"font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2"},n.createElement(m.x,{namespace:ce,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))}function me(e){var t,a,r,i,l,s,c,o=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,l=e.interactivesPendingReview,s=e.dependencies,n.useMemo((function(){var e=[],n=a.reduce((function(e,t){return Object.assign(ne({},t.id,t),e)}),{}),s=r.reduce((function(e,t){return Object.assign(ne({},t.id,t),e)}),{}),c=null==l?void 0:l.reduce((function(e,t){return Object.assign(ne({},t.interactiveId,t),e)}),{});return t.forEach((function(t){var a,r,i=n[t.objectId],l=null;if(t.type===K.y.DirectShare&&(l=[],null===(a=t.recipients)||void 0===a||a.forEach((function(e){var t=s[e.id];t&&l.push(t)}))),i){var o=i.typeId===j.E.Interactive&&(null==c?void 0:c[i.interactiveId]);e.push(Object.assign({share:t,sharedObject:i,shareRecipients:l,dateShared:ie(t),viewCount:null!==(r=t.viewCount)&&void 0!==r?r:0,pendingReview:null==o?void 0:o.pendingReviewCount},t.type===K.y.ShareLink?{privacy:t.privacy,overrideRestrictions:t.overrideRestrictions}:{}))}})),i?ee.x.groupByDateShared(e):ne({},re("title"),e)}),function(e){if(Array.isArray(e))return ae(e)}(c=s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return ae(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)?ae(e,t):void 0}}(c)||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.")}()));return n.createElement(n.Fragment,null,Object.keys(o).map((function(t,a){return n.createElement("div",{key:t},n.createElement("div",{className:"".concat(se.mySharesTable," gap-3 px-3")},n.createElement("p",{className:"fw-semibold mb-2 ms-n3"},t),0===a&&n.createElement(n.Fragment,null,n.createElement("div",null),n.createElement("p",{className:"fw-semibold mb-2"},n.createElement(m.x,{namespace:ce,phrase:"sharedToHeading"})),n.createElement("p",{className:"fw-semibold mb-2"},n.createElement(m.x,{namespace:ce,phrase:"dateSharedHeading"})),n.createElement("p",{className:"fw-semibold mb-2"},n.createElement(m.x,{namespace:ce,phrase:"viewsHeading"})))),n.createElement("div",{className:"d-flex flex-column rounded-3 border border-light mb-4"},o[t].map((function(t){var a=t.sharedObject,r=t.share.type===K.y.ShareLink&&Y.R.getIconAndText({entity:a,entityTypeId:a.typeId,hasStudentExp:!1,isPasswordProtected:t.share.isPasswordProtected,linkExpireDate:t.share.linkExpireDate,privacy:{privacy:t.privacy,overrideRestrictions:t.overrideRestrictions},status:t.share.status,yearGroups:e.yearGroup});return n.createElement("div",{key:t.share.id,className:"".concat(se.mySharesTable," align-items-center p-3 gap-3 border-light")},n.createElement(Q.k,{object:a,appLink:e.getObjectAppLink(a),showVideoMetadata:!0,locationContext:W.LZ.MyShares,showCollectionMask:!0,showVideoCount:!0}),n.createElement(oe,{sharedObject:t.sharedObject,requireMarking:t.pendingReview}),n.createElement(le.A,{shareLinkText:null==r?void 0:r.text,shareRecipients:t.shareRecipients,imageCdnUrl:e.imageCdnUrl}),n.createElement("p",{className:"mb-0"},(0,H.WU)(t.dateShared)),n.createElement("p",{className:"mb-0"},n.createElement(m.x,{namespace:ce,phrase:"views",options:{count:t.viewCount}})),n.createElement($.e,{className:"justify-content-end gap-2",actions:e.getObjectActions(a)}))}))))})))}const ue={table:"elIjR",heading:"iWHol",image:"TMQxq",avatar:"_3GY1C",date:"nz3va",views:"FpDfX",actions:"pOtyK"};function de(){return n.createElement("div",{className:"".concat(ue.table," align-items-center striped-row rounded-3 gap-3 p-3")},n.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9 ".concat(ue.image)}),n.createElement("div",{className:"partial-loading-background w-75 ".concat(ue.name)}," "),n.createElement("div",{className:"partial-loading-background w-75 rounded-pill ".concat(ue.avatar)}),n.createElement("div",{className:"partial-loading-background ".concat(ue.date)}," "),n.createElement("div",{className:"partial-loading-background ".concat(ue.views)}," "),n.createElement("div",{className:"d-flex justify-content-end gap-2 p-3"},n.createElement("div",{className:"partial-loading-background rounded w-50 ".concat(ue.actions)}),n.createElement("div",{className:"partial-loading-background rounded w-33 ".concat(ue.actions)})))}function pe(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"striped-list no-full-width"},n.createElement("div",{className:"".concat(ue.table," gap-3 px-3")},n.createElement("div",{className:"partial-loading-background mb-2 ms-n3 ".concat(ue.date)}," "),n.createElement("div",null),n.createElement("div",{className:"partial-loading-background mb-2 ".concat(ue.date)}," "),n.createElement("div",{className:"partial-loading-background mb-2 ".concat(ue.date)}," "),n.createElement("div",{className:"partial-loading-background mb-2 ".concat(ue.date)}," ")),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(ue.date)}," "),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(ue.date)}," "),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))))}var ye="myShares.mySharesEmptyState",fe=i.T.encloseNamespace(ye);function ve(){return n.createElement(U.u,null,n.createElement(U.u.Image,{src:G.W.EmptyStates.MY_VIDEOS_PUBLIC,altText:fe("heading")}),n.createElement(U.u.Heading,null,n.createElement(m.x,{namespace:ye,phrase:"heading"})),n.createElement(U.u.Info,null,n.createElement(m.x,{namespace:ye,phrase:"info"})),n.createElement(U.u.Cta,{text:i.T.getPhrase(ye,"cta"),appLink:{application:S.O.SIGN_UP,action:E.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:W.Vw.Click,location:W.LZ.MySharesLanding,entity:W.py.AppLink,workflowPhase:W.eu.Start,descriptor:W.Yu.SignUp}}))}var he=a(35223),ge=i.T.encloseNamespace("myShares.myShares");function be(e){return function(e){if(Array.isArray(e))return Ee(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ee(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)?Ee(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ee(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 Se="myShares.myShares",ke=i.T.encloseNamespace(Se);function xe(e){var t,a,i=(0,h.T)(),w=i.hasPermissions,N=i.hasLocalPermissions,I=(0,b.r)(null).hasInsights;(0,v.F)();var O,j,A=(0,f.k)(),T=(j=null==(O=e.queryParams)?void 0:O.typeId)?"string"==typeof j?[+j]:(null==O?void 0:O.typeId.map((function(e){return+e})))||[]:[],C=s.B.getAudienceAppLinkParams(),L={application:S.O.MY_SHARES,action:E.e.MyShares.HOME,params:Object.assign(Object.assign({},C),{typeId:T})},M={recipientUserId:null==C?void 0:C.users,recipientGroupId:[].concat(be((null==C?void 0:C.classroomGroups)||[]),be((null==C?void 0:C.classrooms)||[])),objectTypeId:T.length?T:void 0},R=!N(u.E.ViewMySharesLanding)||w(u.C.ViewMyShares)&&I,P=(0,k.aH)(M,!0,R),V=P.sentShares,U=P.sharedObjects,G=P.shareRecipients,_=P.interactivesPendingReview,H=P.isFetching,W=P.showPartialLoading,Q=P.nextCursor,Y=P.hasMore,Z=P.fetchNext,$=P.imageCdnUrl,q=P.dependencies;(0,g.M)({title:ke("myShares")});var z,K,J=(0,b.r)(null).hasClassrooms,ee=l.a.useBasicFetch(d.L.config()),te=l.a.useBasicFetch(y.N.currentUser()),ae=l.a.useBasicFetch((null===(t=te.data)||void 0===t?void 0:t.isAuthenticated)&&p.h.yearGroups(te.data.customerId)),ne=(z=C,K=JSON.stringify(z),n.useCallback((function(e){return function(e,t){var a=[],n={button:!0,className:"btn btn-outline-dark"};if(X.M.isVideoType(e)){if(!X.M.getCanBeConsumed(e).canConsume)return[];a.push(Object.assign({svgName:he.vn.Analytics,label:ge("viewInsights"),appLink:Object.assign(Object.assign({},(0,x.Dw)(e)),{params:t}),group:"insights"},n))}return a.push(Object.assign({label:ge("share"),svgName:he.vn.Share,appLink:(0,x.YK)(e),group:"share"},n)),a}(e,z)}),[K]));return n.useEffect((function(){w(u.C.ViewMyShares)&&I||r.Q.Ab.PageLoad("/")}),[R]),R?n.createElement("div",{className:"px-3"},n.createElement(D.p,{analyticsUrl:null===(a=ee.data)||void 0===a?void 0:a.analyticsWebUrl,hasAnalytics:w(u.C.ViewCustomerAnalytics)}),n.createElement("div",{className:"d-flex justify-content-between border-bottom pb-3 mb-3"},n.createElement("h1",{className:"mb-1"},n.createElement(m.x,{namespace:Se,phrase:"myShares"})),n.createElement(c.B,{hasClassroomsFeature:J})),n.createElement("div",{className:"mb-3"},n.createElement(F,{appLink:L,typeIdParams:T})),W?n.createElement(pe,null):V.length?n.createElement(n.Fragment,null,n.createElement(me,{sentShares:V,sharedObjects:U,shareRecipients:G,interactivesPendingReview:_,getObjectAppLink:x.Qh,getObjectActions:ne,imageCdnUrl:$,groupByDateShared:!0,dependencies:q,breakpoints:A,yearGroup:ae.data}),(Y||H)&&n.createElement(o._,{isFetching:H,fetchNext:Z,nextCursor:Q})):n.createElement(B,null)):n.createElement(ve,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=9013-6fcc58f028-lite.chunk.js.map
|