@clickview/lite 0.69.1-dev.1 → 0.69.1-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{9985-lite-3c49d1b796.chunk.css → 3902-lite-5eaa7e7ae0.chunk.css} +1 -2
- package/dist/css/{555-lite-1b5aa9652d.chunk.css → 4356-lite-b05b606d3d.chunk.css} +1 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1386-332e63f68c-lite.chunk.js +2 -0
- package/dist/scripts/1386-332e63f68c-lite.chunk.js.map +1 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js +3 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js.map +1 -0
- package/dist/scripts/{2640-536c550749-lite.chunk.js → 2640-052f4606f6-lite.chunk.js} +2 -2
- package/dist/scripts/2640-052f4606f6-lite.chunk.js.map +1 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js +2 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js.map +1 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js +2 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js.map +1 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js +2 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js.map +1 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js +2 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js.map +1 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js +3 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js.map +1 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js +2 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-bad2e20859.min.js → bundle-32e967af87.min.js} +3 -3
- package/dist/scripts/{bundle-bad2e20859.min.js.map → bundle-32e967af87.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js +0 -2
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js.map +0 -1
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js +0 -3
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js.map +0 -1
- package/dist/scripts/2640-536c550749-lite.chunk.js.map +0 -1
- package/dist/scripts/555-d811b49435-lite.chunk.js +0 -2
- package/dist/scripts/555-d811b49435-lite.chunk.js.map +0 -1
- package/dist/scripts/5679-b40a221c78-lite.chunk.js +0 -2
- package/dist/scripts/5679-b40a221c78-lite.chunk.js.map +0 -1
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js +0 -2
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js.map +0 -1
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js +0 -3
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js.map +0 -1
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js +0 -2
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js.map +0 -1
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js +0 -2
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js.map +0 -1
- /package/dist/css/{6078-lite-4d1b877b3f.chunk.css → 4527-lite-4d1b877b3f.chunk.css} +0 -0
- /package/dist/scripts/{2392-acfd69dfa3-lite.chunk.js.LICENSE.txt → 2392-19e4bb187b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7210-d8fa7ca624-lite.chunk.js.LICENSE.txt → 7210-2e4563178c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-bad2e20859.min.js.LICENSE.txt → bundle-32e967af87.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/2640-052f4606f6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareOption.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/embed-size/EmbedSize.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/copy-embed/copy-embed.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/copy-embed/CopyEmbed.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/share-link-privacy.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link/SharePermanentLink.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/get-embed-code/get-embed-code.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/get-embed-code/GetEmbedCode.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/looking-for-integration/LookingForIntegration.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/useGoogleClassrooms.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/share-integrations.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/ShareIntegrations.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/useMicrosoftTeamsShare.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-embed/SharePermanentLinkEmbed.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-setting/share-permanent-link-setting.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-setting/SharePermanentLinkSetting.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/main-share/MainShare.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/instant-feedback-field/InstantFeedbackField.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/prevent-skipping-field/PreventSkippingField.tsx","file:///app/packages/libs/shared/src/apps/share-v2/validation/ShareSettingsFormValidationSchema.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-settings/ShareSettings.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/ShareView.tsx","file:///app/packages/libs/shared/src/components/copy-input/copy-input.scss","file:///app/packages/libs/shared/src/components/copy-input/CopyInput.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/hooks/useScript.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/node_modules/copy-to-clipboard/index.js","file:///app/node_modules/react-copy-to-clipboard/lib/Component.js","file:///app/node_modules/react-copy-to-clipboard/lib/index.js","file:///app/node_modules/toggle-selection/index.js"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n limit?: number;\n objectTypeId?: MasterType | MasterType[];\n recipientUserId?: string | string[];\n recipientGroupId?: string | string[];\n start?: string;\n end?: string;\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: ['sent:shares-v2'],\n success,\n error,\n always\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `update:share-v2:${shareId}`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ],\n success,\n error,\n always\n };\n },\n\n getShare(\n shareId: string,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<Share>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const key = Object.values(params).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', params),\n key: `sent:shares-v2:${key}`,\n formatData: (response: Share[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: null, // TODO: Share V2 - fix hardcoded value\n previous: params.cursor\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n getShareLinkByObjectId(id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n type: HttpVerbs.POST,\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n }\n};","export enum ShareOption {\n InstantFeedback = 'instant_feedback',\n PreventSkipping = 'prevent_skipping'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, EventVersion, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ShareOption } from 'libs/shared/apps/share-v2/enums/ShareOption';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Alerts } from 'libs/shared/hooks/UseAlerts';\nimport type { Classification, Clip, Interactive, InteractiveMetadata, Playlist, Series, Subject, Video } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nexport type SharableEntityType = 'video' | 'playlist' | 'subject' | 'series' | 'interactive' | 'clip';\nexport type SharableEntity = Video | Playlist | Subject | Series | InteractiveMetadata | Clip;\nexport interface ShareSettingsFormFields {\n preventSkipping: boolean;\n instantFeedback: boolean;\n}\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const ShareViewHelper = {\n canEmbed(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n\n canAddPolicies(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n \n getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n },\n\n getFetchFunctionByType: (type: SharableEntityType) => {\n switch (type) {\n case 'video': {\n return (id: string) => Flight.useBasicFetch<Video>(VideoRequests.video(id));\n }\n \n case 'playlist': {\n return (id: string) => Flight.useBasicFetch<Playlist>(PlaylistRequests.getPlaylist(id));\n }\n \n case 'subject': {\n return (id: string, userId: string) => {\n return Flight.useBasicFetch<Classification>(ClassificationRequests.classification(id, userId));\n };\n }\n \n case 'series': {\n return (id: string) => Flight.useBasicFetch<Series>(SeriesRequests.series(id));\n }\n \n case 'interactive': {\n return (id: string) =>\n Flight.useBasicFetch<InteractiveMetadata>(InteractiveRequests.interactiveMetadata(id));\n }\n \n case 'clip': {\n return (id: string) =>\n Flight.useBasicFetch<Clip>(ClipRequests.clip(id));\n }\n }\n },\n\n getAnalyticsEntity(entityType: string): EntityType {\n switch (entityType) {\n case 'playlist':\n return EntityType.Playlist;\n case 'subject':\n return EntityType.Classification;\n case 'video':\n return EntityType.Video;\n case 'series':\n return EntityType.Series;\n case 'interactive':\n return EntityType.Interactive;\n case 'clip':\n return EntityType.Clip;\n }\n },\n\n getAnalyticsOptions(entityType: SharableEntityType): AnalyticsOptions {\n return {\n entity: ShareViewHelper.getAnalyticsEntity(entityType),\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n };\n },\n\n updateShareLink(\n dispatch: Flight.Dispatch,\n entity: SharableEntity,\n entityType: SharableEntityType,\n share: Share,\n data: UpdateShareRequest,\n alerts: Alerts,\n onSuccess?: (data: Share) => void,\n onError?: () => void\n ): void {\n const success = (updatedShare: Share) => {\n AnalyticsHelper.logUserAction(\n { ...updatedShare, objectName: entity.name },\n AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(entityType), {\n actionType: UserAction.Edit,\n entity: EntityType.ShareLink,\n eventVersion: EventVersion.V3\n })\n );\n\n if (onSuccess)\n onSuccess(updatedShare);\n\n alerts.success(getPhrase('editSuccess', { name: entity.name, escapeText: true }));\n };\n\n const error = () => {\n if (onError)\n onError();\n\n alerts.error(getPhrase('editError', { name: entity.name, escapeText: true }));\n };\n\n Flight.fetch(dispatch, ShareRequests.updateShare(share.shareId, data, success, error));\n },\n\n getShareSettingsInitialValues(share: Share, interactive: Interactive | null) {\n const defaults = {\n preventSkipping: interactive?.preventScrubbing || false,\n instantFeedback: interactive?.immediateFeedback || false\n };\n\n const ShareOptionKeyMapping: {[key in ShareOption]: keyof typeof defaults} = {\n [ShareOption.InstantFeedback]: 'instantFeedback',\n [ShareOption.PreventSkipping]: 'preventSkipping'\n };\n\n return share.options.reduce((prev, curr) => {\n if (!Object.keys(ShareOptionKeyMapping).includes(curr.option))\n return prev;\n\n if (curr.value === 'True')\n prev[ShareOptionKeyMapping[curr.option]] = true;\n else if (curr.value === 'False')\n prev[ShareOptionKeyMapping[curr.option]] = false;\n\n return prev;\n }, defaults);\n }\n\n};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'sharev2.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"embedHtmlInput\":\"lpm1A\",\"copyBtnContainer\":\"EE1mM\"};","import React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmbedSize } from 'libs/shared/apps/share-v2/components/embed-size/EmbedSize';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SharableEntity, SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport styles from './copy-embed.scss';\n\nconst namespace = 'sharev2.copyEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyEmbedProps {\n entity: SharableEntity;\n entityType: SharableEntityType;\n share: Share;\n liteUrl: string;\n entityId: string;\n onClickCancel: () => void;\n}\n\nexport function CopyEmbed(props: CopyEmbedProps): JSX.Element {\n const videoSizes = EmbedHelper.getEmbedResolutions();\n\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ copyBtnPhrase, setCopyBtnPhrase ] = React.useState<'copy' | 'copied'>('copy');\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes.find(s => s.width === '100%'));\n \n function onCopy(): void {\n setCopyBtnPhrase('copied');\n setTimeout(() => setCopyBtnPhrase('copy'), 2000);\n\n // @TODO add analytics logging\n }\n\n const url = EmbedHelper.buildEmbedUrl({\n embedUrl: props.share.link.shortenedEmbedUrl,\n host: props.liteUrl,\n shareId: props.share.shareId,\n autoplay\n });\n\n const embedString = EmbedHelper.getEmbedString({\n url,\n size: videoSize\n });\n \n return (\n <>\n <div className='mb-3'>\n <LanguageNamespaceContext.Provider value={namespace}>\n <label><Text namespace={namespace} phrase='label' /></label>\n <div className='position-relative mb-3'>\n <textarea\n className={`form-control rounded w-100 h-100 ${styles.embedHtmlInput}`}\n spellCheck={false}\n value={embedString}\n rows={7}\n readOnly\n />\n <CopyToClipboard onCopy={onCopy} text={embedString}>\n <button className={`btn btn-outline-dark border border-secondary position-absolute bottom-0 end-0 ${styles.copyBtnContainer}`} type='button'>\n {getPhrase(copyBtnPhrase)}\n </button>\n </CopyToClipboard>\n </div>\n <EmbedSize\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n />\n </LanguageNamespaceContext.Provider>\n </div>\n <PopupButtons align='start'>\n <PopupButtons.Cancel onClick={props.onClickCancel} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'clickview' | 'tv' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent)\n return 'tv';\n \n if (privacy.isClickViewContent)\n return 'clickview';\n\n /**\n * Remove this check once we have `isTvContent` changes in staging\n */\n if (privacy.canManageAccess)\n return 'private';\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"NV2KW\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport type { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-link-privacy.scss';\n\nconst namespace = 'sharev2.shareLinkPrivacy';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharePrivacyItemProps {\n active: boolean;\n title: string;\n description: string;\n onClick: () => void\n}\n\nfunction SharePrivacyItem(props: SharePrivacyItemProps) {\n const { active, title, description, onClick } = props;\n\n return (\n <button\n className={`${active ? styles.active : ''} dropdown-item d-flex align-items-center justify-content-between py-2`}\n onClick={!active ? onClick : null}\n >\n <div className='me-4'>\n <p className='font-label mb-1'>{title}</p>\n <p className='font-size-sm mb-0'>{description}</p>\n </div>\n {active && <SvgContainer svgName={cvSvgLibrary.Check} />}\n </button>\n );\n}\n\ninterface ShareLinkPrivacyProps {\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n entityTypeId: MasterType;\n yearGroups: YearGroup[];\n privacy: SharePrivacy;\n entityPrivacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function ShareLinkPrivacy(props: ShareLinkPrivacyProps): JSX.Element {\n const canUpdatePrivacy = props.shareOverrideRestrictions && !props.hasStudentExp;\n\n const accessType = ShareLinkHelper.getShareLinkAccessType(props.entityPrivacy);\n\n const { icon, text } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.privacy,\n entityTypeId: props.entityTypeId,\n hasStudentExp: props.hasStudentExp,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n const respectRatingText = ShareLinkHelper.getRespectRatingText(props.entity, props.yearGroups, props.hasStudentExp);\n\n const respectRatingPrivacy: SharePrivacy = accessType === 'private' ?\n SharePrivacy.JustMySchool : SharePrivacy.Protected;\n const justMySchoolPrivacy: SharePrivacy = accessType === 'private' ?\n SharePrivacy.JustMySchoolOverrideRestriction : SharePrivacy.ProtectedOverrideRestriction;\n\n if (!canUpdatePrivacy) {\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span>{text}</span>\n </div>\n );\n }\n \n return (\n <div className='btn-group'>\n <button\n className={`btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover`}\n data-bs-toggle='dropdown'\n >\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span className='me-1'>{text}</span>\n </button>\n <ul className='dropdown-menu cursor-pointer'>\n <li>\n <SharePrivacyItem\n active={props.privacy === justMySchoolPrivacy}\n title={getPhrase('justMySchool')}\n description={accessType === 'private' ? getPhrase('justMySchoolDescription') : getPhrase('clickViewOnly')}\n onClick={() => props.onClickSavePrivacy(justMySchoolPrivacy)}\n />\n </li>\n <li>\n <SharePrivacyItem\n active={props.privacy === respectRatingPrivacy}\n title={getPhrase('respectRatings')}\n description={respectRatingText}\n onClick={() => props.onClickSavePrivacy(respectRatingPrivacy)}\n />\n </li>\n {/* <li>\n <SharePrivacyItem\n active={props.privacy === SharePrivacy.PinCode}\n title={getPhrase('pinCode')}\n description={getPhrase('pinCodeDescription')}\n onClick={() => props.onClickSavePrivacy(SharePrivacy.PinCode)}\n />\n </li> */}\n {accessType === 'private' &&\n <li>\n <SharePrivacyItem\n active={props.privacy === SharePrivacy.Public}\n title={getPhrase('public')}\n description={getPhrase('publicDescription')}\n onClick={() => props.onClickSavePrivacy(SharePrivacy.Public)}\n />\n </li>\n }\n </ul>\n </div>\n );\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import React from 'react';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareLinkPrivacy } from 'libs/shared/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface SharePermanentLinkProps {\n share: Share;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function SharePermanentLink(props: SharePermanentLinkProps): JSX.Element {\n const [ logged, setLogged ] = React.useState(false);\n \n function onCopy() {\n if (logged)\n return;\n\n setLogged(true);\n \n AnalyticsHelper.logUserAction({\n id: props.entity.id,\n name: props.entity.name\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.CopyLink,\n eventVersion: EventVersion.V3\n }));\n }\n\n return (\n <div className='d-flex justify-content-start align-items-start flex-column gap-2'>\n {props.share.type === ShareType.Link && (\n <ShareLinkPrivacy\n privacy={props.share.privacy}\n entityPrivacy={props.privacy}\n entityTypeId={props.entity.typeId}\n entity={props.entity}\n yearGroups={props.yearGroups}\n \n hasStudentExp={props.hasStudentExp}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n )}\n <CopyInput value={props.share.link.shortenedUrl} onCopy={onCopy} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverBackground\":\"okJLU\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './get-embed-code.scss';\n\nconst namespace = 'sharev2.getEmbedCode';\n\ninterface GetEmbedCodeProps {\n onClickGetEmbedCode: () => void\n}\n\nexport function GetEmbedCode(props: GetEmbedCodeProps) {\n return (\n <DivButton\n onClick={props.onClickGetEmbedCode}\n className={`d-inline-block p-1 pe-2 rounded-1 ${styles.hoverBackground}`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Code} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='getEmbedCode' />\n </div>\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'sharev2.lookingForIntegration';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\ninterface LookingForIntegrationProps {\n appLink: Core.AppLink;\n backToName?: string;\n closePopup?: () => void;\n}\n\ninterface LookingForIntegrationViewModel {\n show: boolean;\n}\n\nexport function LookingForIntegration(props: LookingForIntegrationProps): JSX.Element {\n const [ visibility, setVisibility ] = useViewModel<LookingForIntegrationViewModel>(\n SharedViewModelKeys.LOOKING_FOR_INTEGRATION,\n { show: true },\n { storage: StorageType.LocalStorage }\n );\n\n if (!visibility.show)\n return <></>;\n\n return (\n <div className={`d-flex justify-content-between rounded p-2 bg-light-blue`}>\n <AppLink\n appLink={props.appLink}\n onClick={() => props.closePopup?.()}\n className='d-inline-flex align-items-center mb-0'\n >\n <span className='ms-1 font-label text-info'>\n <Text namespace={namespace} phrase='lookingForIntegration' />\n </span>\n </AppLink>\n <button onClick={() => setVisibility({ show: false })} aria-label={`${getPhrase('ariaClose')}`}>\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n size={SvgContainerSize.Small}\n className='text-info d-inline-block svg-container'\n />\n </button>\n </div>\n );\n}","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nconst GOOGLE_CLASSROOM_CONTAINER_ID = 'g-share-to-classroom';\n\nexport function useGoogleClassrooms(shouldLoad: boolean): string {\n /**\n * Google sdk reads the config off the window.\n */\n if (shouldLoad)\n (window as any).___gcfg = { parsetags: 'explicit' };\n\n const loaded = useScript('https://apis.google.com/js/platform.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.gapi?.sharetoclassroom?.go(GOOGLE_CLASSROOM_CONTAINER_ID);\n }, [ shouldLoad, loaded ]);\n\n return GOOGLE_CLASSROOM_CONTAINER_ID;\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverable\":\"ARIeV\",\"msTeamsContainer\":\"eFMEH\",\"avatar\":\"yBYuA\"};","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { useGoogleClassrooms } from 'libs/shared/apps/share-v2/views/share/components/share-integrations/useGoogleClassrooms';\nimport { useMicrosoftTeamsShare } from 'libs/shared/apps/share-v2/views/share/components/share-integrations/useMicrosoftTeamsShare';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport styles from './share-integrations.scss';\n\nconst DEFAULT_ICON_SIZE = '32';\n\ninterface ShareIntegrationsProps {\n integrations: IntegrationId[];\n url: string;\n appLink?: AppLink;\n iconSize?: 'sm' | 'md';\n closePopup?: () => void;\n}\n\nexport function ShareIntegrations(props: ShareIntegrationsProps): JSX.Element {\n const googleContainerId = useGoogleClassrooms(props.integrations?.includes(IntegrationId.GoogleClassroom));\n useMicrosoftTeamsShare(props.integrations?.includes(IntegrationId.MicrosoftTeams));\n\n if (!props.integrations.length)\n return null;\n\n function getIconSize() {\n switch (props.iconSize) {\n case 'sm': return '24';\n case 'md':\n default: return DEFAULT_ICON_SIZE;\n }\n }\n\n const iconSize = getIconSize();\n const integrationsContainerStyle = { height: `${iconSize}px`, width: `${iconSize}px` };\n\n return (\n <div className='d-flex gap-1 align-items-start'>\n {props.integrations.includes(IntegrationId.GoogleClassroom) &&\n <div\n id={googleContainerId}\n className={`rounded partial-loading-background`}\n style={integrationsContainerStyle}\n >\n <div\n className='g-sharetoclassroom'\n data-size={iconSize}\n data-url={props.url}\n />\n </div>\n }\n {props.integrations.includes(IntegrationId.MicrosoftTeams) &&\n <div className={`rounded overflow-hidden ${styles.hoverable}`}>\n <div\n className={`teams-share-button ${styles.msTeamsContainer}`}\n style={integrationsContainerStyle}\n data-href={props.url}\n data-button-type='smallTransWhite'\n data-preview='false'\n data-icon-px-size={iconSize}\n />\n </div>\n }\n </div>\n );\n}\n","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nexport function useMicrosoftTeamsShare(shouldLoad: boolean): void {\n const loaded = useScript('https://teams.microsoft.com/share/launcher.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.shareToMicrosoftTeams?.renderButtons();\n }, [ shouldLoad, loaded ]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { GetEmbedCode } from 'libs/shared/apps/share-v2/components/get-embed-code/GetEmbedCode';\nimport { LookingForIntegration } from 'libs/shared/apps/share-v2/components/looking-for-integration/LookingForIntegration';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport { ShareIntegrations } from '../share-integrations/ShareIntegrations';\n\ninterface SharePermanentLinkEmbedProps {\n share: Share;\n canEmbed: boolean;\n enableIntegrationBanner: boolean;\n integrations: IntegrationId[];\n hasManageIntegrationsPermission: boolean;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n\n onClickGetEmbedCode: () => void;\n closePopup: () => void;\n}\n\nexport function SharePermanentLinkEmbed(props: SharePermanentLinkEmbedProps): JSX.Element {\n const appLink = props.hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink;\n\n const hasIntegrations = !!props.integrations.length;\n \n return (\n <div className='d-flex flex-column gap-2 justify-content-between'>\n {props.enableIntegrationBanner && !hasIntegrations &&\n <LookingForIntegration\n appLink={appLink}\n closePopup={props.closePopup}\n />\n }\n \n <div className='d-flex flex-row justify-content-between'>\n {props.canEmbed &&\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} />\n }\n {props.enableIntegrationBanner && hasIntegrations &&\n <ShareIntegrations\n integrations={props.integrations}\n url={props.share.link.shortenedUrl}\n closePopup={props.closePopup}\n appLink={appLink}\n />\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverBackground\":\"l3eJu\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-permanent-link-setting.scss';\n\nconst namespace = 'sharev2.sharePermanentLinkSetting';\n\ninterface SharePermanentLinkSettingProps {\n manageShareLinkSettings: boolean;\n \n onClickEditSettings: () => void;\n}\n\nexport function SharePermanentLinkSetting(props: SharePermanentLinkSettingProps): JSX.Element {\n if (!props.manageShareLinkSettings)\n return null;\n \n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClickEditSettings}\n className={`d-inline-block p-1 pe-2 rounded-1 ${styles.hoverBackground}`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Cog} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='editSettings' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SharePermanentLink } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link/SharePermanentLink';\nimport { SharePermanentLinkEmbed } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link-embed/SharePermanentLinkEmbed';\nimport { SharePermanentLinkSetting } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link-setting/SharePermanentLinkSetting';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface MainShareProps {\n share: Share;\n integrations: IntegrationId[];\n entity: SharableEntity;\n entityType: SharableEntityType;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n \n canEmbed: boolean;\n canAddPolicies: boolean;\n enableIntegrationBanner: boolean;\n shareOverrideRestrictions: boolean;\n\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n\n closePopup: () => void;\n onClickEditSettings: () => void;\n onClickGetEmbedCode: () => void;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function MainShare(props: MainShareProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n \n const showLinkEmbedOptions = props.canEmbed\n || (props.enableIntegrationBanner && !!props.integrations.length);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n\n return (\n <div className='d-flex flex-column gap-2'>\n <SharePermanentLink\n share={props.share}\n entity={props.entity}\n entityType={props.entityType}\n yearGroups={props.yearGroups}\n privacy={props.privacy}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n {props.share && showLinkEmbedOptions && (\n <SharePermanentLinkEmbed\n share={props.share}\n canEmbed={props.canEmbed}\n integrations={props.integrations}\n hasManageIntegrationsPermission={hasManageIntegrationsPermission}\n enableIntegrationBanner={props.enableIntegrationBanner}\n messagePopupAppLink={props.messagePopupAppLink}\n integrationSettingAppLink={props.integrationSettingAppLink}\n onClickGetEmbedCode={props.onClickGetEmbedCode}\n closePopup={props.closePopup}\n />\n )}\n {props.share && props.canAddPolicies &&\n <SharePermanentLinkSetting\n manageShareLinkSettings={hasPermissions(PermissionName.ManageShareLinkSettings)}\n onClickEditSettings={props.onClickEditSettings}\n />\n }\n </div>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'sharev2.instantFeedbackField';\n\nexport function InstantFeedbackField(): JSX.Element {\n const formikProps = useFormikContext<ShareSettingsFormFields>();\n\n function setInstantFeedbackField(): void {\n formikProps.setFieldValue('instantFeedback', !formikProps.values.instantFeedback);\n formikProps.submitForm();\n }\n\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='heading' /></label>\n <p className='m-0 text-secondary'><Text namespace={namespace} phrase='info' /></p>\n </div>\n <div>\n <ToggleSwitch\n onClick={setInstantFeedbackField}\n on={!!formikProps.values.instantFeedback}\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'sharev2.preventSkippingField';\n\nexport function PreventSkippingField(): JSX.Element {\n const formikProps = useFormikContext<ShareSettingsFormFields>();\n\n function setPreventSkippingField(): void {\n formikProps.setFieldValue('preventSkipping', !formikProps.values.preventSkipping);\n formikProps.submitForm();\n }\n\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='heading' /></label>\n <p className='m-0 text-secondary'><Text namespace={namespace} phrase='info' /></p>\n </div>\n <div>\n <ToggleSwitch\n onClick={setPreventSkippingField}\n on={!!formikProps.values.preventSkipping}\n />\n </div>\n </div>\n );\n}","import { boolean, object } from 'yup';\n\nexport const ShareSettingsFormValidationSchema = object().shape({\n preventSkipping: boolean(),\n instantFeedback: boolean()\n});","import React from 'react';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstantFeedbackField } from 'libs/shared/apps/share-v2/components/instant-feedback-field/InstantFeedbackField';\nimport { PreventSkippingField } from 'libs/shared/apps/share-v2/components/prevent-skipping-field/PreventSkippingField';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { SharableEntityType, type ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { ShareSettingsFormValidationSchema } from 'libs/shared/apps/share-v2/validation/ShareSettingsFormValidationSchema';\nimport { type FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'sharev2.shareSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ShareSettingsProps {\n initialValues: ShareSettingsFormFields;\n entityType: SharableEntityType;\n onClickSaveLink: (data: UpdateShareRequest, onError: () => void) => void;\n onClickCancel: () => void;\n}\n\ninterface ShareSettingsFormProps {\n hideInstantFeedback?: boolean;\n}\n\nfunction ShareSettingsForm(props: ShareSettingsFormProps): JSX.Element {\n return (\n <Form className='d-flex flex-column gap-2'>\n <h3 className='h6'>\n <Text namespace={namespace} phrase='heading' />\n </h3>\n <PreventSkippingField />\n {!props.hideInstantFeedback &&\n <InstantFeedbackField />\n }\n </Form>\n );\n}\n\nexport function ShareSettings(props: ShareSettingsProps): JSX.Element {\n function onSubmit(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n props.onClickSaveLink({\n options: {\n instantFeedback: data.instantFeedback,\n preventSkipping: data.preventSkipping\n }\n }, onDone);\n }\n \n return (\n <>\n <FormWrapper<ShareSettingsFormFields>\n initialValues={props.initialValues}\n onSubmit={onSubmit}\n castInitialValues={false}\n validationSchema={ShareSettingsFormValidationSchema}\n >\n <div className='d-flex flex-column gap-3'>\n <ShareSettingsForm\n hideInstantFeedback={props.entityType !== 'interactive'}\n />\n <PopupButtons align='start'>\n <PopupButtons.Cancel onClick={props.onClickCancel} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </div>\n </FormWrapper>\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CopyEmbed } from 'libs/shared/apps/share-v2/components/copy-embed/CopyEmbed';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { type SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MainShare } from 'libs/shared/apps/share-v2/views/share/components/main-share/MainShare';\nimport { ShareSettings } from 'libs/shared/apps/share-v2/views/share/components/share-settings/ShareSettings';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport type { Config, CurrentUser, Interactive, InteractiveMetadata, PopupViewProps, YearGroup } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\ntype ShareScreen = 'main' | 'link-settings' | 'copy-embed';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n enableIntegrationBanner: boolean;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n shareId?: string;\n}\n\nconst namespace = 'shared.sharev2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n isLoadingSettings,\n shareOverrideRestrictions\n } = useSettings(null);\n \n const [ screen, setScreen ] = React.useState<ShareScreen>('main');\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const share = Flight.useBasicFetch<Share>(props.shareId\n ? ShareRequests.getShare(props.shareId)\n : ShareRequests.getShareLinkByObjectId(props.entityId));\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n /**\n * Fetch interactive videos options to set them as defaults\n * if the interactive share data does not have any options set\n */\n const interactive = Flight.useBasicFetch<Interactive>(\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) && entity.data.interactiveId &&\n InteractiveRequests.interactive(entity.data.interactiveId)\n );\n\n function onClickSaveLink(data: UpdateShareRequest, onError: () => void): void {\n ShareViewHelper.updateShareLink(\n dispatch,\n entity.data,\n props.entityType,\n share.data,\n data,\n alerts,\n null,\n onError\n );\n }\n\n function onClickSavePrivacy(privacy: SharePrivacy): void {\n Flight.fetch(\n dispatch,\n ShareRequests.updateShare(\n share.data.shareId,\n { privacy },\n () => alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name, escapeText: true })),\n () => alerts.error(getPhrase('privaciesError', { name: entity.data.name, escapeText: true }))\n )\n );\n }\n\n const dataLoaded = !!share.data\n && !!config.data\n && !!entity.data\n && !!privacy.data\n && !!yearGroups\n && !isLoadingSettings;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n >\n {(() => {\n if (!dataLoaded) return null;\n \n switch (screen) {\n case 'main':\n return (\n <MainShare\n entityType={props.entityType}\n entity={entity.data}\n yearGroups={yearGroups.data}\n share={share.data}\n privacy={privacy.data}\n enableIntegrationBanner={props.enableIntegrationBanner}\n canEmbed={ShareViewHelper.canEmbed(props.entityType)}\n canAddPolicies={ShareViewHelper.canAddPolicies(props.entityType)}\n integrations={ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams)}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onClickEditSettings={() => setScreen('link-settings')}\n onClickGetEmbedCode={() => setScreen('copy-embed')}\n onClickSavePrivacy={onClickSavePrivacy}\n closePopup={props.closePopup}\n integrationSettingAppLink={props.integrationSettingAppLink}\n messagePopupAppLink={props.messagePopupAppLink}\n />\n );\n case 'link-settings':\n return (\n <ShareSettings\n initialValues={ShareViewHelper.getShareSettingsInitialValues(share.data, interactive.data)}\n entityType={props.entityType}\n onClickSaveLink={onClickSaveLink}\n onClickCancel={() => setScreen('main')}\n />\n );\n case 'copy-embed':\n return (\n <CopyEmbed\n entity={entity.data}\n entityId={props.entityId}\n entityType={props.entityType}\n share={share.data}\n liteUrl={config.data.liteUrl}\n onClickCancel={() => setScreen('main')}\n />\n );\n }\n })()}\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"normal\":\"Q1UGv\",\"copyBtn\":\"J3fBx\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport styles from './copy-input.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ showCopiedText, setShowCopiedText ] = React.useState(false);\n\n function onCopy(e: React.MouseEvent): void {\n e.preventDefault();\n\n if (props.onCopy)\n props.onCopy();\n\n if (showCopiedText)\n return;\n\n setShowCopiedText(true);\n setTimeout(() => setShowCopiedText(false), 2000);\n }\n\n const input = (\n <div className='d-flex flex-row gap-2 position-relative w-100'>\n <input\n type='text'\n autoComplete='off'\n className={`form-control ${props.styling === 'normal' ? styles.normal : ''}`}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n <CopyToClipboard text={props.value}>\n <button\n role={showCopiedText ? 'status' : ''}\n className={`btn btn-outline-dark border border-secondary py-0 text-nowrap`}\n onClick={onCopy}\n >\n {showCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import React from 'react';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\n/**\n * We only need to load any script once.\n */\nconst loadedScripts: HashObject<boolean> = {};\n\nexport function useScript(src: string, shouldLoad: boolean): boolean {\n const [ loaded, setLoaded ] = React.useState(false);\n\n React.useEffect(() => {\n if (!src || !shouldLoad || loadedScripts[src])\n return;\n\n const script = document.createElement('script');\n\n script.src = src;\n script.async = true;\n script.onload = () => {\n loadedScripts[src] = true;\n /**\n * Onload event is fired before script content is parsed.\n * By calling set timeout, we ensure setLoaded is called after\n * the script is parsed in the event loop.\n */\n window.setTimeout(() => setLoaded(true), 0);\n };\n\n document.body.appendChild(script);\n\n return () => {\n script.onload = null;\n document.body.removeChild(script);\n };\n }, [ src, shouldLoad ]);\n\n return loadedScripts[src] || loaded;\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["normalizeOptions","namespace","ShareRequests","createShare","data","success","error","always","url","key","type","invalidationKeys","updateShare","shareId","getShare","bootstrapName","getSentShares","params","Object","values","join","formatData","response","count","length","pagination","cursors","next","previous","cursor","normalize","getShareLinkByObjectId","id","objectId","getPrivacy","ShareOption","getPhrase","LanguageService","ShareViewHelper","canEmbed","includes","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","IntegrationHelper","filter","i","enabled","map","getFetchFunctionByType","VideoRequests","PlaylistRequests","userId","ClassificationRequests","SeriesRequests","InteractiveRequests","ClipRequests","getAnalyticsEntity","entityType","getAnalyticsOptions","entity","location","workflowPhase","updateShareLink","dispatch","share","alerts","onSuccess","onError","updatedShare","AnalyticsHelper","objectName","name","actionType","eventVersion","escapeText","getShareSettingsInitialValues","interactive","defaults","preventSkipping","preventScrubbing","instantFeedback","immediateFeedback","ShareOptionKeyMapping","InstantFeedback","PreventSkipping","options","reduce","prev","curr","keys","option","value","EmbedSize","props","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","className","Text","phrase","Dropdown","variant","label","size","width","height","onClick","Checkbox","checked","onChange","CopyEmbed","EmbedHelper","copyBtnPhrase","setCopyBtnPhrase","find","s","embedUrl","link","shortenedEmbedUrl","host","liteUrl","embedString","spellCheck","rows","readOnly","onCopy","setTimeout","text","PopupButtons","align","onClickCancel","SharePrivacy","ShareLinkHelper","getPrivateIconAndText","entityTypeId","privacy","hasStudentExp","yearGroups","MasterType","icon","Array","isArray","Public","ProtectedOverrideRestriction","Protected","getRespectRatingText","JustMySchoolOverrideRestriction","JustMySchool","PinCode","PasswordProtected","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","DateHelper","dayDifference","Date","days","ShareLinkStatus","video","VideoHelper","restriction","RestrictionHelper","_restrictions","yearGroup","maxYearGroup","minAllowedYearGroup","rating","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","ShareType","SharePrivacyItem","active","title","description","SvgContainer","svgName","ShareLinkPrivacy","canUpdatePrivacy","shareOverrideRestrictions","accessType","entityPrivacy","respectRatingText","respectRatingPrivacy","justMySchoolPrivacy","onClickSavePrivacy","SharePermanentLink","logged","setLogged","Link","typeId","CopyInput","shortenedUrl","descriptor","GetEmbedCode","DivButton","onClickGetEmbedCode","S","LookingForIntegration","SharedViewModelKeys","show","storage","visibility","setVisibility","AppLink","appLink","closePopup","GOOGLE_CLASSROOM_CONTAINER_ID","DEFAULT_ICON_SIZE","ShareIntegrations","shouldLoad","loaded","googleContainerId","window","___gcfg","parsetags","useScript","gapi","sharetoclassroom","go","useGoogleClassrooms","integrations","IntegrationId","shareToMicrosoftTeams","renderButtons","iconSize","integrationsContainerStyle","style","SharePermanentLinkEmbed","hasManageIntegrationsPermission","integrationSettingAppLink","messagePopupAppLink","hasIntegrations","enableIntegrationBanner","SharePermanentLinkSetting","manageShareLinkSettings","onClickEditSettings","MainShare","hasPermissions","usePermissions","showLinkEmbedOptions","PermissionName","InstantFeedbackField","formikProps","htmlFor","ToggleSwitch","setFieldValue","submitForm","on","PreventSkippingField","ShareSettingsFormValidationSchema","shape","ShareSettingsForm","hideInstantFeedback","ShareSettings","FormWrapper","initialValues","onSubmit","onDone","onClickSaveLink","castInitialValues","validationSchema","ShareView","useSettings","shareToGoogleClassroom","isLoadingSettings","screen","setScreen","currentUser","UserRequests","entityId","config","ConfigRequests","isAuthenticated","CustomerRequests","customerId","MasterTypeHelper","interactiveId","dataLoaded","Popup","showLoadingSpinner","showCopiedText","setShowCopiedText","input","autoComplete","styling","CopyToClipboard","role","e","preventDefault","copiedText","copyText","Form","defaultProps","castValuesOnSubmit","formattedInitialValues","cast","omitChildValues","child","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","reset","errors","entries","children","f","useFormikContextWrapper","loadedScripts","src","setLoaded","script","document","createElement","async","onload","body","appendChild","removeChild","getShareIntegrations","settingName","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","createRange","getSelection","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","clearData","setData","selectNodeContents","addRange","execCommand","Error","err","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","_typeof","obj","Symbol","iterator","constructor","prototype","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_React$PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_isNativeReflectConstruct","result","Super","NewTarget","this","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","args","_key","concat","event","_this$props","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3902],{26025:(e,a,t)=>{t.d(a,{B:()=>c});var r=t(1048),n=t(75795),c={getAudienceAppLinkParams:function(){var e=n.O.getCurrentRoute().appLink,a=r.t.isObject(e.params)?e.params:{},t=a.users,c=a.classrooms,l=a.classroomGroups,s=function(e){var t=a[e];if(t)return Array.isArray(t)?t:[t]},i={};return t&&(i.users=s("users")),c&&(i.classrooms=s("classrooms")),l&&(i.classroomGroups=s("classroomGroups")),i},getDateRangeAppLinkParams:function(){var e=n.O.getCurrentRoute().appLink,a=r.t.isObject(e.params)?e.params:{},t=a.from,c=a.to,l=a.rangeName,s={};return t&&(s.from=t),c&&(s.to=c),l&&(s.rangeName=l),s}}},35115:(e,a,t)=>{t.d(a,{p:()=>m});var r=t(32735),n=t(49935),c=t(95278);const l="pJf6R",s="MSvzY",i="IFmvc",o="pOcvk";var m=r.memo((function(){return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"mb-1 partial-loading-background ".concat("YrP_G")}),r.createElement("div",{className:"pb-3"},r.createElement(n.b2,{numItems:2})),r.createElement("div",{className:"pb-2"},r.createElement(c.Z,null)),r.createElement("div",{className:"d-flex align-items-center py-2"},r.createElement("div",{className:"mx-4 partial-loading-background ".concat(l)}),r.createElement("div",{className:"me-2 partial-loading-background ".concat(s)}),r.createElement("div",{className:"me-auto partial-loading-background ".concat(s)}),r.createElement("div",{className:"partial-loading-background ".concat("j62jt")})),r.createElement("ul",{className:"striped-list list-unstyled"},Array(20).fill(null).map((function(e,a){return r.createElement("li",{key:a},r.createElement("div",{className:"d-flex align-items-center py-1 px-4"},r.createElement("div",{className:"me-2 partial-loading-background ".concat(l)}),r.createElement("div",{className:"me-2 partial-loading-background ".concat("droqZ")}),r.createElement("div",{className:"w-25"},r.createElement("div",{className:"partial-loading-background ".concat("gorcb")})),r.createElement("div",{className:"me-auto d-flex"},Math.random()>.5?r.createElement(r.Fragment,null,r.createElement("div",{className:"partial-loading-background rounded-pill me-1 ".concat(i," ").concat("SdQ90")}),r.createElement("div",{className:"partial-loading-background rounded-pill ".concat(i," ").concat(o)})):r.createElement("div",{className:"partial-loading-background rounded-pill ".concat(i," ").concat(o)})),r.createElement("div",{className:"me-2 partial-loading-background ".concat(s)}),r.createElement("div",{className:"partial-loading-background ".concat("S7p4K")})))}))))}))},69583:(e,a,t)=>{t.r(a),t.d(a,{ClassroomReportsView:()=>j});var r=t(32735),n=t(23481),c=t(20354),l=t(87801),s=t(83523),i=t(1666),o=t(31949),m=t(79967),d=t(79612),u=t(99742),p=t(86099),g=t(35115),v=t(88630),f=t(31491),b=t(22602),E=t(67467),h=t(5056),k=t(28001),N=t(45231),y=t(69003);function A(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,r=Array(a);t<a;t++)r[t]=e[t];return r}var S=n.T.encloseNamespace("classrooms.classroomStudents");function j(e){var a,t,n,j,w,C,O=(w=r.useState(!1),C=2,function(e){if(Array.isArray(e))return e}(w)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,n,c,l,s=[],i=!0,o=!1;try{if(c=(t=t.call(e)).next,0===a){if(Object(t)!==t)return;i=!1}else for(;!(i=(r=c.call(t)).done)&&(s.push(r.value),s.length!==a);i=!0);}catch(e){o=!0,n=e}finally{try{if(!i&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(o)throw n}}return s}}(w,C)||function(e,a){if(e){if("string"==typeof e)return A(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A(e,a):void 0}}(w,C)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),R=O[0],x=O[1],F=c.a.useBasicFetch(o.N.currentUser()),L=c.a.useBasicFetch(F.data&&v.F.getClassroom(e.id,F.data.id)),_=(0,m.k)(),I=c.a.useBasicFetch((null===(a=F.data)||void 0===a?void 0:a.isAuthenticated)&&i.h.yearGroups(F.data.customerId)),P=(0,y.cl)([]),G=(0,N.a)({scopeId:e.id},!0,!0),M=null===(n=null===(t=L.data)||void 0===t?void 0:t._integrations)||void 0===n?void 0:n.rostered;return(0,d.M)({title:S("pageTitle",{classroomName:null===(j=L.data)||void 0===j?void 0:j.name})}),(0,f._)(L),L.data?r.createElement(b.R,{classroom:L.data,currentUser:F.data,onTogglePin:console.log,activeTab:"reports",isRostered:M},r.createElement("div",{className:"d-flex gap-3 m-3 justify-content-end"},r.createElement("label",{className:"mb-0"},"View as student feed"),r.createElement(s.Z,{on:R,onClick:function(){return x(!R)}})),R&&r.createElement("img",{src:u.W.CLASSROM_FEED}),!R&&(G.showPartialLoading?r.createElement(k.L,null):G.sentShares.length?r.createElement(r.Fragment,null,r.createElement(h.R,{sentShares:G.sentShares,sharedObjects:G.sharedObjects.items,shareRecipients:G.shareRecipients.items,interactivesPendingReview:G.interactivesPendingReview.itemsArr,getObjectAppLink:p.Qh,getObjectActions:function(e,a){return(0,y.sD)(e,a,P.audienceAppLinkParams,!0,!1,_)},imageCdnUrl:G.imageCdnUrl,groupByDateShared:!0,breakpoints:_,yearGroups:I.data,hasDemoInsights:!1}),(G.hasMore||G.isFetching)&&r.createElement(l._,{isFetching:G.isFetching,fetchNext:G.fetchNext,nextCursor:G.nextCursor})):r.createElement(E.o,null))):r.createElement(g.p,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=3902-39aaff7ce9-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3902-39aaff7ce9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/partial-manage-classroom-students.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/PartialManageClassroomStudents.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/classroom-reports/ClassroomReportsView.tsx"],"sourcesContent":["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};","// extracted by mini-css-extract-plugin\nexport default {\"heading\":\"YrP_G\",\"avatar\":\"droqZ\",\"checkbox\":\"pJf6R\",\"actionIcon\":\"MSvzY\",\"addStudents\":\"j62jt\",\"studentName\":\"gorcb\",\"group\":\"IFmvc\",\"sm\":\"pOcvk\",\"lg\":\"SdQ90\",\"moreActions\":\"S7p4K\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialPillTabSelector } from 'libs/shared/components/pill-tab-selector/partial-loading/PartialPillTabSelector';\n\nimport styles from './partial-manage-classroom-students.scss';\n\nexport const PartialManageClassroomStudents = React.memo(function(): JSX.Element {\n return (\n <div className='px-3'>\n {/* Heading */}\n <div className={`mb-1 partial-loading-background ${styles.heading}`} />\n\n {/* Breadcrumbs */}\n <div className='pb-3'>\n <PartialBreadcrumbs numItems={2} />\n </div>\n\n {/* Pill tab selector */}\n <div className='pb-2'>\n <PartialPillTabSelector />\n </div>\n\n <div className='d-flex align-items-center py-2'>\n {/* Checkbox */}\n <div className={`mx-4 partial-loading-background ${styles.checkbox}`} />\n {/* Group selector */}\n <div className={`me-2 partial-loading-background ${styles.actionIcon}`} />\n {/* Delete action */}\n <div className={`me-auto partial-loading-background ${styles.actionIcon}`} />\n\n {/* Add new students button */}\n <div className={`partial-loading-background ${styles.addStudents}`} />\n </div>\n\n {/* Students list */}\n <ul className='striped-list list-unstyled'>\n {Array(20).fill(null).map((student, i) => (\n <li key={i}>\n <div className='d-flex align-items-center py-1 px-4'>\n {/* Checkbox */}\n <div className={`me-2 partial-loading-background ${styles.checkbox}`} />\n\n {/* Avatar */}\n <div className={`me-2 partial-loading-background ${styles.avatar}`} />\n\n {/* Student name */}\n <div className='w-25'>\n <div className={`partial-loading-background ${styles.studentName}`} />\n </div>\n\n {/* Groups list. Randomly renders either 1 or 2 groups. Group widths are randomly generated */}\n <div className='me-auto d-flex'>\n {Math.random() > 0.5\n ? (\n <>\n <div className={`partial-loading-background rounded-pill me-1 ${styles.group} ${styles.lg}`} />\n <div className={`partial-loading-background rounded-pill ${styles.group} ${styles.sm}`} />\n </>\n ) : <div className={`partial-loading-background rounded-pill ${styles.group} ${styles.sm}`} />\n }\n </div>\n\n {/* Group selector */}\n <div className={`me-2 partial-loading-background ${styles.actionIcon}`} />\n {/* More actions */}\n <div className={`partial-loading-background ${styles.moreActions}`} />\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n});","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classroom, CurrentUser, YearGroup } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { PartialManageClassroomStudents } from 'apps/classrooms/components/manage-classroom-students/partial-loading/PartialManageClassroomStudents';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { useHandleClassroomErrors } from 'apps/classrooms/hooks/useHandleClassroomErrors';\nimport { ClassroomLayout } from 'apps/classrooms/layouts/ClassroomLayout';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { useMySharesTable } from 'apps/my-shares/hooks/useMySharesTable';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'classrooms.classroomStudents';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomReportsViewProps {\n id: string;\n cursor: string;\n}\n\nexport function ClassroomReportsView(props: ClassroomReportsViewProps): JSX.Element {\n const [ showFeed, setShowFeed ] = React.useState(false);\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classroom = Flight.useBasicFetch<Classroom>(currentUser.data &&\n ClassroomRequests.getClassroom(props.id, currentUser.data.id));\n const breakpoints = useBreakpoints();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const sharesParams = getSharesParams([]);\n\n const shareData = useMySharesTable({\n scopeId: props.id\n }, true, true);\n\n const isRostered = classroom.data?._integrations?.rostered;\n\n useSetPageMetadata({\n title: getPhrase('pageTitle', { classroomName: classroom.data?.name })\n });\n\n useHandleClassroomErrors(classroom);\n\n function renderTable() {\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n \n if (!shareData.sentShares.length)\n return <MySharesTableEmptyState />;\n\n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={(obj, shareId) => getShareObjectActions(\n obj,\n shareId,\n sharesParams.audienceAppLinkParams,\n true,\n false,\n breakpoints\n )}\n imageCdnUrl={shareData.imageCdnUrl}\n groupByDateShared\n breakpoints={breakpoints}\n yearGroups={yearGroups.data}\n hasDemoInsights={false}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n }\n\n if (!classroom.data)\n return <PartialManageClassroomStudents />;\n\n return (\n <ClassroomLayout\n classroom={classroom.data}\n currentUser={currentUser.data}\n onTogglePin={console.log}\n activeTab='reports'\n isRostered={isRostered}\n >\n <div className='d-flex gap-3 m-3 justify-content-end'>\n <label className='mb-0'>View as student feed</label>\n <ToggleSwitch on={showFeed} onClick={() => setShowFeed(!showFeed)} />\n </div>\n\n {showFeed && <img src={ImageUrls.CLASSROM_FEED} />}\n {!showFeed && renderTable()}\n </ClassroomLayout>\n );\n}\n"],"names":["AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","users","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","PartialManageClassroomStudents","className","numItems","PartialPillTabSelector","fill","map","student","i","Math","random","getPhrase","ClassroomReportsView","props","showFeed","setShowFeed","currentUser","classroom","data","id","breakpoints","yearGroups","isAuthenticated","customerId","sharesParams","shareData","scopeId","isRostered","_integrations","rostered","title","classroomName","name","onTogglePin","console","log","activeTab","on","onClick","src","showPartialLoading","sentShares","length","sharedObjects","items","shareRecipients","interactivesPendingReview","itemsArr","getObjectAppLink","getObjectActions","obj","shareId","audienceAppLinkParams","imageCdnUrl","groupByDateShared","hasDemoInsights","hasMore","isFetching","fetchNext","nextCursor"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4356],{54405:(e,t,a)=>{a.d(t,{X:()=>n});var n={interactive:function(){return{url:"/mocks/insights/interactive.json",key:"demo:interactive",normalize:!1}},interactiveMetadata:function(){return{url:"/mocks/insights/interactive-metadata.json",key:"demo:interactive:metadata",normalize:!1}},interactiveResults:function(){return{url:"/mocks/insights/interactive-results.json",key:"demo:interactive:results",normalize:!1}},videoViews:function(){return{url:"/mocks/insights/video-views.json",key:"demo:video:views",normalize:!1}},users:function(){return{url:"/mocks/insights/users.json",key:"demo:users",normalize:!1}},individualHeatmap:function(){return{url:"/mocks/insights/individual-heatmap.json",key:"demo:individual:heatmap",normalize:!1}},aggregateHeatmap:function(){return{url:"/mocks/insights/aggregate-heatmap.json",key:"demo:aggregate:heatmap",normalize:!1}}}},18006:(e,t,a)=>{a.d(t,{c:()=>n,q:()=>r});var n="D8qRe7",r="GRWx6w"},9566:(e,t,a)=>{a.d(t,{G:()=>m,V:()=>u});var n=a(23481),r=a(110),i=a(35223),s=a(14070),l=a(97291),c=a(93975),o=n.T.encloseNamespace("myShares.demoInsights"),m={share:{shareId:"demo-insights",type:c.y.Link},sharedObject:null,shareRecipients:null,dateShared:r.O.subtract(new Date,7,"days").toISOString(),viewCount:23},d={application:l.O.MY_SHARES,action:s.e.MyShares.INTERACTIVE_OVERVIEW_DEMO},u={svgName:i.vn.Analytics,label:o("demoInsights"),appLink:d,group:"insights",className:"btn btn-outline-dark"}},85988:(e,t,a)=>{a.r(t),a.d(t,{MySharesView:()=>se});var n=a(32735),r=a(81886),i=a(23481),s=a(20354),l=a(74917),c=a(87801),o=a(16714),m=a(39151),d=a(1666),u=a(54405),p=a(31949),g=a(25882),h=a(79967),b=a(22902),y=a(79612),f=a(37802),v=a(46390),E=a(86099),k=a(99746),I=a(8935),S=a(75896),j=a(15611),O=a(89965),N=a(83914),w=a(83345),x=a(4594),C=a(35223);const L={noCaret:"_F6P_",filterContainer:"ZBgdA"};function A(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,s,l=[],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)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){o=!0,r=e}finally{try{if(!c&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(o)throw r}}return l}}(e,t)||F(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 P(e){return function(e){if(Array.isArray(e))return U(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||F(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 F(e,t){if(e){if("string"==typeof e)return U(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)?U(e,t):void 0}}function U(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 V="insights.insightsTypeFilters",T=i.T.encloseNamespace(V);function M(e){var t=e.breakpoints.xs||e.breakpoints.sm,a=[].concat(P(t?[{label:T("interactives"),filter:x.E.Interactive},{label:T("videos"),filter:x.E.Video},{label:T("clips"),filter:x.E.Clip}]:[]),[{label:T("playlists"),filter:x.E.Playlist},{label:T("series"),filter:x.E.Series}]),i=e.typeIdParams.filter((function(e){return a.some((function(t){return e===t.filter}))})),s=A(n.useState(!1),2),l=s[0],c=s[1],o=A(n.useState(i),2),m=o[0],d=o[1];function u(){var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:S.m.uniq([].concat(P(e.typeIdParams),P(m)))})}))}function p(){d([]);var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:[]})}))}return n.createElement("div",{className:"d-flex align-items-center fw-semibold"},n.createElement("p",{className:"d-none d-md-inline h6 mb-0"},n.createElement(w.x,{namespace:V,phrase:"filters"})),n.createElement("div",{className:"".concat(L.filterContainer," d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2")},n.createElement("div",{className:"d-none d-md-flex gap-2"},n.createElement(R,{typeId:x.E.Interactive,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(R,{typeId:x.E.Video,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(R,{typeId:x.E.Clip,typeFilters:e.typeIdParams,appLink:e.appLink})),n.createElement(I.Z,{onToggle:function(e){c(e),e||u()},show:l,className:"col"},n.createElement(I.Z.Toggle,{className:"".concat(L.noCaret," col-12 col-md-auto"),variant:i.length?"dark":"outline-dark"},n.createElement("div",{className:"d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0"},n.createElement(N.x,{svgName:C.vn.Filter,className:"svg-container d-inline-block d-md-none"}),n.createElement(w.x,{namespace:V,phrase:t?"filters":"moreFilters"}),i.length?" - ".concat(i.length):"")),n.createElement(I.Z.Menu,null,n.createElement("div",{className:"mx-1 px-2 py-1 mb-0"},n.createElement("h2",{className:"h6 mb-3"},n.createElement(w.x,{namespace:V,phrase:"types"})),n.createElement("ul",{className:"list-unstyled me-5"},a.map((function(a){return n.createElement("li",{key:"".concat(a.label,"-filter"),className:"my-1"},n.createElement(O.X,{id:"".concat(a.label,"-filter"),label:a.label,onChange:function(){return e=a.filter,void d(S.m.addOrRemoveImmutable(m,e));var e},checked:(r=a.filter,t?!!m.find((function(e){return e===r}))||!!e.typeIdParams.find((function(e){return e===r})):!!m.find((function(e){return e===r})))}));var r}))),n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("button",{onClick:function(){p(),c(!1)},className:"btn btn-link text-secondary p-0 mb-0"},n.createElement(w.x,{namespace:V,phrase:"resetAll"})),n.createElement("button",{onClick:function(){u(),c(!1)},className:"btn btn-link text-info p-0 mb-0"},n.createElement(w.x,{namespace:V,phrase:"apply"}))))))),!!e.typeIdParams.length&&n.createElement("button",{onClick:p,className:"d-none d-md-block btn btn-link ms-1"},n.createElement(w.x,{namespace:V,phrase:"resetAll"})))}function R(e){var t=e.typeFilters.includes(e.typeId),a=e.appLink,r=a.params,i=S.m.addOrRemoveImmutable(e.typeFilters,e.typeId),s=Object.assign(Object.assign({},a),{params:Object.assign(Object.assign({},r),{typeId:i})});function l(){return e.typeId===x.E.Video?"videos":e.typeId===x.E.Clip?"clips":e.typeId===x.E.Interactive?"interactives":void 0}return n.createElement(j.F,{className:"btn ".concat(t?"btn-dark":"btn-outline-dark"," fw-semibold"),appLink:s,ariaLabel:"".concat(T("ariaFilterBy"),": ").concat(T(l()))},n.createElement(w.x,{namespace:V,phrase:l()}))}var _=a(51401),G=a(18006),D=a(9566);const B={background:"HAuP3"};var z="myShares.demoInsights",H=i.T.encloseNamespace(z);function Z(e){var t=e.liteUrl.includes("staging"),a=e.breakpoints.xs||e.breakpoints.sm;return n.createElement("div",null,n.createElement(_.g,{heading:H("demoHeading"),isFirst:!0}),n.createElement("div",{className:"".concat(B.background," rounded-3 border-md bg-light-orange mb-4")},n.createElement(_.F,{shareData:Object.assign(Object.assign({},D.G),{sharedObject:Object.assign(Object.assign({},e.demoInteractive),{id:t?G.c:G.q})}),getObjectActions:function(){return[Object.assign(Object.assign({},D.V),{button:!a})]},getObjectAppLink:function(){return null},imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups,breakpoints:e.breakpoints},n.createElement("div",{className:"d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2"},n.createElement(w.x,{namespace:z,phrase:"demoInsightPill"})))))}var q=a(67467),Q=a(5056),W=a(28001),X=a(45231),Y=a(65858),$=a(97958),J=a(99742),K=a(14070),ee=a(97291),te="myShares.mySharesEmptyState",ae=i.T.encloseNamespace(te);function ne(){return n.createElement($.u,null,n.createElement($.u.Image,{src:J.W.EmptyStates.MY_VIDEOS_PUBLIC,altText:ae("heading")}),n.createElement($.u.Heading,null,n.createElement(w.x,{namespace:te,phrase:"heading"})),n.createElement($.u.Info,null,n.createElement(w.x,{namespace:te,phrase:"info"})),n.createElement($.u.Cta,{text:i.T.getPhrase(te,"cta"),appLink:{application:ee.O.SIGN_UP,action:K.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:Y.Vw.Click,location:Y.LZ.MySharesLanding,entity:Y.py.AppLink,workflowPhase:Y.eu.Start,descriptor:Y.Yu.SignUp}}))}var re=a(69003),ie=i.T.encloseNamespace("myShares.myShares");function se(e){var t,a,i,I;(0,y.M)({title:ie("myShares")});var S=(0,b.T)(),j=S.hasPermissions,O=S.hasLocalPermissions,N=(0,f.r)(null),w=N.hasShareFlowV2,x=N.hasClassrooms,C=(0,v.G)().isPlugin,L=(0,h.k)(),A=(0,g.v)().accessPolicy,P=(0,re.cl)(e.typeId),F=!O(o.E.ViewMySharesLanding)||j(o.C.ViewMyShares)&&w,U=w&&j(o.C.ViewInsights),V=null===(t=null==A?void 0:A.metadata)||void 0===t?void 0:t.hasDemoInsights,T=s.a.useBasicFetch(m.L.config()),R=s.a.useBasicFetch(p.N.currentUser()),_=s.a.useBasicFetch((null===(a=R.data)||void 0===a?void 0:a.isAuthenticated)&&d.h.yearGroups(R.data.customerId)),G=s.a.useBasicFetch(V&&u.X.interactiveMetadata()),D=(0,X.a)(P.sentSharesParams,!0,F);return n.useEffect((function(){j(o.C.ViewMyShares)&&w||r.Q.Ab.PageLoad("/")}),[F]),F?n.createElement("div",{className:"px-3"},n.createElement(k.p,{analyticsUrl:null===(i=T.data)||void 0===i?void 0:i.analyticsWebUrl,hasAnalytics:j(o.C.ViewCustomerAnalytics)}),n.createElement("div",{className:"d-flex justify-content-between border-bottom pb-3 mb-3"},n.createElement("h1",{className:"mb-1"},"Reports"),n.createElement(l.B,{hasClassroomsFeature:x})),n.createElement("div",{className:"mb-3"},n.createElement(M,{appLink:P.currentAppLink,typeIdParams:P.typeIdAppLinkParams,breakpoints:L})),V&&G.data&&n.createElement(Z,{demoInteractive:G.data,liteUrl:null===(I=T.data)||void 0===I?void 0:I.liteUrl,breakpoints:L,imageCdnUrl:D.imageCdnUrl,yearGroups:_.data}),function(){var e;return D.showPartialLoading?n.createElement(W.L,null):D.sentShares.length?n.createElement(n.Fragment,null,n.createElement(Q.R,{sentShares:D.sentShares,sharedObjects:D.sharedObjects.items,shareRecipients:D.shareRecipients.items,interactivesPendingReview:D.interactivesPendingReview.itemsArr,getObjectAppLink:E.Qh,getObjectActions:function(e,t){return(0,re.sD)(e,t,P.audienceAppLinkParams,U,C,L)},groupByDateShared:!0,breakpoints:L,hasDemoInsights:V,imageCdnUrl:null===(e=T.data)||void 0===e?void 0:e.imageCdnUrl,yearGroups:_.data}),(D.hasMore||D.isFetching)&&n.createElement(c._,{isFetching:D.isFetching,fetchNext:D.fetchNext,nextCursor:D.nextCursor})):n.createElement(q.o,null)}()):n.createElement(ne,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=4356-36ce3ceec1-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/4356-36ce3ceec1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-list/type-filter/insights-type-filters.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-list/type-filter/InsightsTypeFilters.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/my-shares-demo-insights.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/empty-state/MySharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesView.tsx"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","export const DEMO_INTERACTIVE_STAGING_ID = 'D8qRe7';\nexport const DEMO_INTERACTIVE_PROD_ID = 'GRWx6w';","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst DEMO_INSIGHT_DAYS_AGO = 7;\n\nexport const DEMO_INSIGHTS_SHARE: MySharesTableData = {\n share: {\n shareId: 'demo-insights',\n type: ShareType.Link\n } as ShareLink,\n sharedObject: null,\n shareRecipients: null,\n dateShared: DateHelper.subtract(new Date(), DEMO_INSIGHT_DAYS_AGO, 'days').toISOString(),\n viewCount: 23\n};\n\nconst DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTION: ActionOptions = {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n className: 'btn btn-outline-dark'\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"noCaret\":\"_F6P_\",\"filterContainer\":\"ZBgdA\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\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 { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './insights-type-filters.scss';\n\nconst namespace = 'insights.insightsTypeFilters';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsTypeFilterProps {\n appLink: Core.AppLink;\n typeIdParams: MasterType[];\n breakpoints: Breakpoints;\n}\n\nexport function InsightsTypeFilters(props: InsightsTypeFilterProps) {\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n const moreFilterOptions = [\n ...(isMobile ? [{\n label: getPhrase('interactives'),\n filter: MasterType.Interactive\n }, {\n label: getPhrase('videos'),\n filter: MasterType.Video\n }, {\n label: getPhrase('clips'),\n filter: MasterType.Clip\n }] : []),\n {\n label: getPhrase('playlists'),\n filter: MasterType.Playlist\n }, {\n label: getPhrase('series'),\n filter: MasterType.Series\n }];\n\n const moreFiltersSelected = getMoreFiltersSelected();\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ moreFilters, setMoreFilters ] = React.useState(moreFiltersSelected);\n\n function applyFilter() {\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: ArrayHelper.uniq([\n ...props.typeIdParams,\n ...moreFilters\n ])\n }\n });\n }\n\n function resetFilters() {\n setMoreFilters([]);\n\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: []\n }\n });\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n applyFilter();\n }\n\n function onClickApply() {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onClickReset() {\n resetFilters();\n setShowDropdown(false);\n }\n\n function onSelectFilter(filter: MasterType) {\n setMoreFilters(ArrayHelper.addOrRemoveImmutable(moreFilters, filter));\n }\n\n function isFilterSelected(filter: MasterType) {\n if (isMobile) {\n return !!moreFilters.find(selectedFilter => selectedFilter === filter) ||\n !!props.typeIdParams.find(selectedFilter => selectedFilter === filter);\n }\n\n return !!moreFilters.find(selectedFilter => selectedFilter === filter);\n }\n\n function getMoreFiltersSelected() {\n return props.typeIdParams.filter(typeId =>\n moreFilterOptions.some(option => typeId === option.filter));\n }\n\n return (\n <div className='d-flex align-items-center fw-semibold'>\n <p className='d-none d-md-inline h6 mb-0'><Text namespace={namespace} phrase='filters' /></p>\n <div className={`${styles.filterContainer} d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2`}>\n <div className='d-none d-md-flex gap-2'>\n <InsightTypeFilterButton\n typeId={MasterType.Interactive}\n typeFilters={props.typeIdParams}\n appLink={props.appLink}\n />\n <InsightTypeFilterButton typeId={MasterType.Video} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton typeId={MasterType.Clip} typeFilters={props.typeIdParams} appLink={props.appLink} />\n </div>\n <Dropdown onToggle={onToggleDropdown} show={showDropdown} className='col'>\n <Dropdown.Toggle\n className={`${styles.noCaret} col-12 col-md-auto`}\n variant={moreFiltersSelected.length ? 'dark' : 'outline-dark'}\n >\n <div className='d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0'>\n <SvgContainer svgName={cvSvgLibrary.Filter} className='svg-container d-inline-block d-md-none' />\n <Text namespace={namespace} phrase={isMobile ? 'filters' : 'moreFilters'} />\n {moreFiltersSelected.length ? ` - ${moreFiltersSelected.length}` : ''}\n </div>\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className='mx-1 px-2 py-1 mb-0'>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='types' /></h2>\n <ul className='list-unstyled me-5'>\n {moreFilterOptions.map(option => (\n <li key={`${option.label}-filter`} className='my-1'>\n <Checkbox\n id={`${option.label}-filter`}\n label={option.label}\n onChange={() => onSelectFilter(option.filter)}\n checked={isFilterSelected(option.filter)}\n />\n </li>\n ))}\n </ul>\n <div className='d-flex justify-content-between'>\n <button onClick={onClickReset} className='btn btn-link text-secondary p-0 mb-0'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n <button onClick={onClickApply} className='btn btn-link text-info p-0 mb-0'>\n <Text namespace={namespace} phrase='apply' />\n </button>\n </div>\n </div>\n </Dropdown.Menu>\n </Dropdown>\n </div>\n {!!props.typeIdParams.length &&\n <button onClick={resetFilters} className='d-none d-md-block btn btn-link ms-1'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n }\n </div>\n );\n}\n\ninterface InsightTypeFilterButtonProps {\n typeId: MasterType;\n typeFilters: MasterType[];\n appLink: Core.AppLink;\n}\n\nfunction InsightTypeFilterButton(props: InsightTypeFilterButtonProps) {\n const selected = props.typeFilters.includes(props.typeId);\n\n const currentAppLink = props.appLink;\n const currentParams = currentAppLink.params as HashObject;\n\n const newType: MasterType[] = ArrayHelper.addOrRemoveImmutable(props.typeFilters, props.typeId);\n\n const newAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n typeId: newType\n }\n };\n\n function getTypePhrase(): string {\n if (props.typeId === MasterType.Video) return 'videos';\n if (props.typeId === MasterType.Clip) return 'clips';\n if (props.typeId === MasterType.Interactive) return 'interactives';\n }\n\n return (\n <AppLink\n className={`btn ${selected ? 'btn-dark' : 'btn-outline-dark'} fw-semibold`}\n appLink={newAppLink}\n ariaLabel={`${getPhrase('ariaFilterBy')}: ${getPhrase(getTypePhrase())}`}\n >\n <Text namespace={namespace} phrase={getTypePhrase()} />\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"HAuP3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INTERACTIVE_PROD_ID, DEMO_INTERACTIVE_STAGING_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_ACTION, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nimport styles from './my-shares-demo-insights.scss';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n liteUrl: string;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n breakpoints: Breakpoints;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isStaging = props.liteUrl.includes('staging');\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: isStaging ? DEMO_INTERACTIVE_STAGING_ID : DEMO_INTERACTIVE_PROD_ID\n };\n }\n\n function getObjectActions() {\n return [\n {\n ...DEMO_INSIGHTS_ACTION,\n button: !isMobile\n }\n ];\n }\n\n return (\n <div>\n <MySharesTableHeading heading={getPhrase('demoHeading')} isFirst={true} />\n\n <div className={`${styles.background} rounded-3 border-md bg-light-orange mb-4`}>\n <MySharesTableRow\n shareData={{ ...DEMO_INSIGHTS_SHARE, sharedObject: getDemoInteractive() }}\n getObjectActions={getObjectActions}\n getObjectAppLink={() => null}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n breakpoints={props.breakpoints}\n >\n <div className='d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2'>\n <Text namespace={namespace} phrase='demoInsightPill' />\n </div>\n </MySharesTableRow>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesEmptyState() {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC} altText={getPhrase('heading')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MySharesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AudienceFilterView } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterView';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { InsightsTypeFilters } from 'apps/my-shares/components/insights-list/type-filter/InsightsTypeFilters';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { useMySharesTable } from 'apps/my-shares/hooks/useMySharesTable';\nimport { MySharesEmptyState } from 'apps/my-shares/views/my-shares/empty-state/MySharesEmptyState';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesViewProps {\n typeId: string | string[];\n}\n\nexport function MySharesView(props: MySharesViewProps) {\n // Shared hooks\n useSetPageMetadata({ title: getPhrase('myShares') });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2, hasClassrooms } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const breakpoints = useBreakpoints();\n const { accessPolicy } = useAccessPolicy();\n\n const sharesParams = getSharesParams(props.typeId);\n\n // Local variables\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMySharesLanding) ||\n hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n const hasInsightsPermission = hasShareFlowV2 && hasPermissions(PermissionName.ViewInsights);\n const showDemoInsight = accessPolicy?.metadata?.hasDemoInsights;\n\n // Flight fetching\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(showDemoInsight &&\n InsightsDemoRequests.interactiveMetadata());\n\n const shareData = useMySharesTable(sharesParams.sentSharesParams, true, shouldFetch);\n\n React.useEffect(() => {\n if (!(hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2))\n Core.LocationUtils.PageLoad('/');\n }, [shouldFetch]);\n\n if (!shouldFetch)\n return <MySharesEmptyState />;\n\n return (\n <div className='px-3'>\n <InsightsAdminAlert\n analyticsUrl={config.data?.analyticsWebUrl}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n />\n\n <div className='d-flex justify-content-between border-bottom pb-3 mb-3'>\n <h1 className='mb-1'>Reports</h1>\n\n <AudienceFilterView hasClassroomsFeature={hasClassrooms} />\n </div>\n\n <div className='mb-3'>\n <InsightsTypeFilters\n appLink={sharesParams.currentAppLink}\n typeIdParams={sharesParams.typeIdAppLinkParams}\n breakpoints={breakpoints}\n />\n </div>\n\n {showDemoInsight && demoInteractive.data &&\n <MySharesDemoInsight\n demoInteractive={demoInteractive.data}\n liteUrl={config.data?.liteUrl}\n breakpoints={breakpoints}\n imageCdnUrl={shareData.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n }\n\n {(() => {\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n\n if (!shareData.sentShares.length)\n return (\n <MySharesTableEmptyState />\n );\n\n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={(obj, shareId) => getShareObjectActions(\n obj,\n shareId,\n sharesParams.audienceAppLinkParams,\n hasInsightsPermission,\n isPlugin,\n breakpoints\n )}\n groupByDateShared\n breakpoints={breakpoints}\n hasDemoInsights={showDemoInsight}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n })()}\n </div>\n );\n}\n"],"names":["InsightsDemoRequests","interactive","url","key","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","DEMO_INTERACTIVE_STAGING_ID","DEMO_INTERACTIVE_PROD_ID","getPhrase","DEMO_INSIGHTS_SHARE","share","shareId","type","sharedObject","shareRecipients","dateShared","Date","toISOString","viewCount","DEMO_INSIGHTS_APPLINK","application","action","DEMO_INSIGHTS_ACTION","svgName","label","appLink","group","className","namespace","LanguageService","InsightsTypeFilters","props","isMobile","breakpoints","xs","sm","moreFilterOptions","filter","MasterType","moreFiltersSelected","typeIdParams","typeId","some","option","showDropdown","setShowDropdown","moreFilters","setMoreFilters","applyFilter","currentParams","params","ArrayHelper","resetFilters","Text","phrase","InsightTypeFilterButton","typeFilters","Dropdown","onToggle","isShowing","show","variant","length","SvgContainer","map","Checkbox","id","onChange","checked","find","selectedFilter","onClick","selected","includes","currentAppLink","newType","newAppLink","getTypePhrase","AppLink","ariaLabel","MySharesDemoInsight","isStaging","liteUrl","heading","isFirst","MySharesTableRow","shareData","demoInteractive","getObjectActions","button","getObjectAppLink","imageCdnUrl","yearGroups","MySharesEmptyState","EmptyState","src","ImageUrls","altText","text","analyticsData","analyticsOptions","actionType","location","entity","workflowPhase","descriptor","SignUp","MySharesView","useSetPageMetadata","title","usePermissions","hasPermissions","hasLocalPermissions","useSettings","hasShareFlowV2","hasClassrooms","isPlugin","usePluginHelper","useBreakpoints","accessPolicy","useAccessPolicy","sharesParams","shouldFetch","PermissionName","hasInsightsPermission","showDemoInsight","metadata","hasDemoInsights","config","ConfigRequests","currentUser","UserRequests","data","isAuthenticated","CustomerRequests","customerId","useMySharesTable","sentSharesParams","InsightsAdminAlert","analyticsUrl","analyticsWebUrl","hasAnalytics","AudienceFilterView","hasClassroomsFeature","typeIdAppLinkParams","showPartialLoading","PartialMySharesTable","sentShares","MySharesTable","sharedObjects","items","interactivesPendingReview","itemsArr","obj","audienceAppLinkParams","groupByDateShared","hasMore","isFetching","InfiniteScrollFooter","fetchNext","nextCursor","MySharesTableEmptyState"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4527],{9806:(e,t,n)=>{"use strict";n.d(t,{k:()=>C});var a=n(32735),o=n(65858),i=n(64249),r=n(15611),l=n(7432),c=n(11834),s=n(83345),d=n(56754),u=n(86348),p=n(7733),m=n(54610),v=n(4594),y=n(68626),f=n(9085),b=n(67453),h=n(31908);const g={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",k="rounded overflow-hidden";function w(){return a.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},a.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),a.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},a.createElement("div",{className:"d-flex align-items-end h-50"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.a," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-75"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.b," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-100"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.c," rounded shadow")}))))}function C(e){var t=a.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,h.M.isVideoType(n)?16/9:n.typeId===v.E.Playlist?1:n.typeId===v.E.Series?9/16:void 0),"px"))}),[]),n=h.M.isVideoType(e.object),C=function(e){var t=b.j.getDisplayImageFromObject(e);if(h.M.isVideoType(e))return{image:t,imageType:m.__.Thumbnails,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Video})};switch(e.typeId){case v.E.Series:return{image:t,imageType:m.__.TallPosters,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Series,svgContainerClassName:g.posterFallbackSvg})};case v.E.Playlist:return{image:t,imageType:m.__.Covers,imageClassName:(null==t?void 0:t.url)?k:"".concat(k," ").concat((0,f.x)(e.name,p.o)),imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?g.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),O=C.image,x=C.imageType,j=C.imageClassName,N=C.imageFallbackComponent,S=e.showVideoMetadata?{}:{hideDuration:!0,hideMask:!0,hideRating:!0,hideVideoTypeBadge:!0};return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&a.createElement("div",{className:"".concat(g.thumbnailContainer," position-relative")},e.showInsightsMask&&a.createElement(w,null),a.createElement(r.F,{appLink:e.appLink},a.createElement(u.u,Object.assign({video:e.object,size:e.thumbnailSize,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic"},S))),!!e.requireMarking&&a.createElement("div",{className:"".concat(e.showInsightsMask&&g.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},a.createElement("div",{className:"".concat(g.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},a.createElement(s.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&a.createElement(a.Fragment,null,"videos"in e.object?a.createElement(d.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):a.createElement(l.Z,{data:null==O?void 0:O.url,imageType:x,imageOptions:e.imageOptions,appLink:e.appLink,className:j,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext}},N))))}C.defaultProps={imageOptions:{size:m.h2.Small}}},56754:(e,t,n)=>{"use strict";n.d(t,{I:()=>E});var a=n(32735),o=n(75896),i=n(65858),r=n(15611),l=n(83914),c=n(83345);const s={thumbnailTitle:"OsWjL"};function d(e){return a.createElement("h3",{title:e.title,className:"h6"},e.title)}function u(e){return e.appLink?a.createElement(r.F,{appLink:e.appLink,className:"".concat(s.thumbnailTitle)},a.createElement(d,Object.assign({},e))):a.createElement(d,Object.assign({},e))}var p=n(86348),m=n(62335),v=n(4594),y=n(68626),f=n(45778),b=n(35223);const h={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var g="shared.collectionThumbnail";function E(e){var t,n,s,d,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===v.E.Playlist){var a=e.collection;a.clips.count&&(n=a.clips),a.interactives.count&&(n=a.interactives)}return o.m.first(n.data)}}(),k=function(){var t,n,a=0;if(e.collection.videos&&e.collection.videos.count&&(a+=e.collection.videos.count),e.collection.typeId===v.E.Playlist){var o=e.collection;(null===(t=o.interactives)||void 0===t?void 0:t.count)&&(a+=o.interactives.count),(null===(n=o.clips)||void 0===n?void 0:n.count)&&(a+=o.clips.count)}return a}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),C=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),O=Object.assign({actionType:i.Vw.Click,entity:(d=e.collection,f.G.isType(d,v.E.Playlist)?i.py.Playlist:f.G.isType(d,v.E.Series)?i.py.Series:void 0)},e.analyticsOptions);return a.createElement("div",null,a.createElement("div",{className:"position-relative ".concat(h.thumbnailContainer," z-1")},a.createElement(r.F,{appLink:e.appLink,analyticsData:C,analyticsOptions:O,preventFocus:!0},e.showMask&&a.createElement("div",{className:"".concat(h.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},a.createElement(l.x,{svgName:b.vn.Play,className:"svg-container text-white"}),a.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(s=e.hoverText)||void 0===s?void 0:s.length)?a.createElement("span",null,e.hoverText):a.createElement(c.x,{namespace:g,phrase:"playAll"})))),E&&a.createElement(p.u,{video:E,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&a.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.createElement(l.x,{svgName:b.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},a.createElement(l.x,{svgName:b.vn.Series,className:"svg-container text-white me-1"}),a.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},a.createElement(c.x,{namespace:g,phrase:"videos",options:{count:k,smartCount:k}}))))),w&&a.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&a.createElement(m.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&a.createElement(u,{title:e.collection.name,appLink:e.titleAppLink})))}},63178:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ShareOptionsView:()=>U});var a=n(32735),o=n(2948),i=n(20354),r=n(50938),l=n(5255),c=n(4606),s=n(26025),d=n(74901),u=n(40003),p=n(49475),m=n(91693),v=n(4594),y=n(16714),f=n(39151),b=n(5112),h=n(60011),g=n(31949),E=n(17913),k=n(91286),w=n(93322),C=n(22902),O=n(79612),x=n(37802),j=n(35223),N=n(31908),S=n(86702),I=n(59087),L=n(65858),P=n(9806),T=n(54610),D=n(14070),A=n(97291),M=n(4315);function F(e){var t,n,o,i,r,l,c,s;console.log("ShareOptions",e);var d=null!==(o=null===(n=null===(t=e.shareLink)||void 0===t?void 0:t.link)||void 0===n?void 0:n.shortenedUrl)&&void 0!==o?o:"";return a.createElement("div",{className:"mb-4"},a.createElement("div",{className:"d-flex gap-2"},e.sharedObject&&a.createElement("div",{style:{minWidth:180},className:"d-flex flex-column"},a.createElement(P.k,{object:e.sharedObject,showVideoMetadata:!0,locationContext:L.LZ.Insights,imageOptions:{size:T.h2.Medium},showCollectionMask:!0,showVideoCount:!0})),a.createElement("div",{className:"d-flex flex-column justify-content-end"},a.createElement("div",{className:"flex-grow-1"}),e.shareLink&&a.createElement(M.e,{shareLink:e.shareLink}),a.createElement("div",{className:"flex-grow-1"}),a.createElement("div",{className:"d-flex gap-2"},a.createElement(m.h,{svgName:j.vn.Share,className:"btn btn-outline-dark",appLink:{application:A.O.SHARE_V2,action:D.e.ShareV2.LINK,args:[null===(i=e.sharedObject)||void 0===i?void 0:i.id],params:{entityType:null===(r=e.sharedObject)||void 0===r?void 0:r.type,shareId:null===(l=e.shareLink)||void 0===l?void 0:l.shareId}}},"Share a link or embed"),a.createElement(m.h,{svgName:j.vn.Download,onClick:function(){return console.log("QR code..")},className:"btn btn-outline-dark",appLink:{application:A.O.INSIGHTS,action:D.e.Insights.QR_CODE,params:{value:d}}},"QR code"))),a.createElement("div",{className:"flex-grow-1"}),e.pinCode&&a.createElement("div",{className:"border p-3 rounded-3 d-flex flex-column align-items-center"},a.createElement("p",null,"Go to ",a.createElement("a",{href:"https://staging.clickview.net/pin",target:"_blank",className:"text-info"},"staging.clickview.net/pin")," and enter PIN:"),a.createElement("div",{className:"d-flex align-items-center"},a.createElement("h4",{className:"mb-0 pb-0 me-1"},null===(c=e.pinCode)||void 0===c?void 0:c.code),a.createElement(I.CopyToClipboard,{text:null===(s=e.pinCode)||void 0===s?void 0:s.code},a.createElement(m.h,{svgName:j.vn.Copy,className:"btn"})),a.createElement(m.h,{svgName:j.vn.NewWindow,onClick:function(){console.log("Expanding code..")},className:"btn"})))))}var _=n(26203),R=n(10447),V=n(93975),z=n(91574);function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function U(e){var t,n,I,L,P,T,D,A,M,U,W,H,G,q,K,J,Q,Y,Z,$,X=(Z=(0,o.D)(S.y.ANONYMISE_USERS),$=1,function(e){if(Array.isArray(e))return e}(Z)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,i,r,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,o=e}finally{try{if(!c&&null!=n.return&&(r=n.return(),Object(r)!==r))return}finally{if(s)throw o}}return l}}(Z,$)||function(e,t){if(e){if("string"==typeof e)return B(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}(Z,$)||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],ee=i.a.useBasicFetch(f.L.config()),te=i.a.useBasicFetch(e.shareId&&z.o.getShareLink(e.shareId)),ne=i.a.useBasicFetch(e.shareId&&z.o.getPincodeByShareId(e.shareId)),ae=(0,x.r)(null),oe=ae.hasShareFlowV2,ie=ae.publicInteractiveAttempts,re=(0,C.T)().hasPermissions,le=[v.E.Video,v.E.Clip,v.E.Interactive].includes(e.typeId)&&N.M.getVideoRequest(e.objectId,e.typeId),ce=i.a.useBasicFetch(le),se=i.a.useBasicFetch(g.N.currentUser()),de=e.typeId===v.E.Series&&h.J.series(e.objectId),ue=i.a.useBasicFetch(de),pe=e.typeId===v.E.Playlist&&b.C.getPlaylist(e.objectId),me=i.a.useBasicFetch(pe),ve=s.B.getAudienceAppLinkParams(),ye=s.B.getDateRangeAppLinkParams(),fe=Object.assign(Object.assign(Object.assign({},ve),ye),{shareId:e.shareId}),be=Object.assign(Object.assign({},(0,u.wO)((0,u.Hb)(),ye)),(0,d.K)(ve)),he=i.a.useBasicFetch(se.data&&E.u.individualEngagement(e.objectId,be,null===(t=se.data)||void 0===t?void 0:t.id,ie)),ge=(null===(I=null===(n=he.data)||void 0===n?void 0:n.data)||void 0===I?void 0:I.map((function(e){return e.userId})).filter(Boolean))||[],Ee=(0,c.U)(ge),ke=Ee.users,we=Ee.isLoading,Ce=(0,l.Y)(e.shareId);(0,w.F)(),(0,O.M)({title:null!==(D=null!==(P=null===(L=ce.data)||void 0===L?void 0:L.name)&&void 0!==P?P:null===(T=ue.data)||void 0===T?void 0:T.name)&&void 0!==D?D:null===(A=me.data)||void 0===A?void 0:A.name}),(0,k.v)([ce,ue,me]);var Oe=!(!he.data||ge.length&&we),xe=!(null===(M=he.data)||void 0===M?void 0:M.data.length)||!ge.length&&!Object.keys(Ce).length,je=!Oe||xe;return a.createElement("div",{className:"px-3"},a.createElement(_.j,{video:null!==(W=null!==(U=ce.data)&&void 0!==U?U:ue.data)&&void 0!==W?W:me.data,dateRangeAppLinkParams:ye,tabs:e.typeId===v.E.Interactive?(0,R.kj)(e.objectId,"shareOptions",fe,oe):e.typeId===v.E.Clip?(0,R.$o)(e.objectId,"shareOptions",fe,oe):e.typeId===v.E.Video?(0,R.$6)(e.objectId,"shareOptions",fe,oe):e.typeId===v.E.Series?(0,R.lo)(e.objectId,"shareOptions",fe):e.typeId===v.E.Playlist?(0,R.W_)(e.objectId,"shareOptions",fe):void 0,hasAnalytics:re(y.C.ViewCustomerAnalytics),analyticsWebUrl:null===(H=ee.data)||void 0===H?void 0:H.analyticsWebUrl,hasShareFlowV2:oe,shareId:e.shareId}),a.createElement(F,{sharedObject:null!==(q=null!==(G=ce.data)&&void 0!==G?G:ue.data)&&void 0!==q?q:me.data,shareLink:te.data,pinCode:ne.data}),a.createElement("div",{className:"d-flex align-items-center mt-5"},a.createElement("h3",{className:"p-0 m-0"},"Students who have viewed this video"),(null===(K=te.data)||void 0===K?void 0:K.type)===V.y.Classroom&&a.createElement(m.h,{svgName:j.vn.Plus,onClick:function(){return console.log("Add new student..")},className:"btn btn-outline-dark ms-auto"},"Add new student")),a.createElement("div",{className:"col-12 mt-2 mb-5"},a.createElement(r.z,{key:(0,p.u)(Object.assign(Object.assign({},ve),ye)),engagement:null!==(Q=null===(J=he.data)||void 0===J?void 0:J.data)&&void 0!==Q?Q:[],users:null!=ke?ke:[],imageCdnUrl:null===(Y=ee.data)||void 0===Y?void 0:Y.imageCdnUrl,anonymiseUsers:X,border:!0,anonSessions:Ce,hideWhenEmpty:!1,theme:{header:je?"border-0":"border-bottom",table:je?"bg-white rounded px-0 rounded-bottom-0":"bg-white rounded px-0"}}),je&&a.createElement("div",{style:{minHeight:400},className:"border border-top-0 rounded-1 rounded-top-0 pt-5 pb-5 text-center"},a.createElement("h4",null,"Waiting for students to view..."))))}},4315:(e,t,n)=>{"use strict";n.d(t,{e:()=>d});var a=n(32735),o=n(12528),i=n(4594),r=n(35223),l=n(93975);function c(e){return c="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},c(e)}function s(e,t,n){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e){return a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:"d-flex align-items-center justify-content-center"},a.createElement("div",null,a.createElement(o.f,{svgName:u[e.shareLink.type],variant:p[e.shareLink.type],textVariant:"white",svgWrapperClassName:"p-1"})),a.createElement("div",{className:"d-flex flex-column ms-2"},a.createElement("label",{className:"m-0"},(n=(t=e).shareLink,r=t.classroomName,n.type===l.y.Classroom&&r?r:m[n.type])),a.createElement("span",{className:"text-secondary"},function(e){var t,n,a,o,r=e.shareLink;if(r.type===l.y.Classroom){var c=null!==(n=null===(t=r.recipients)||void 0===t?void 0:t.filter((function(e){return e.recipientTypeId===i.E.ClassroomGroup})).length)&&void 0!==n?n:0,s=null!==(o=null===(a=r.recipients)||void 0===a?void 0:a.filter((function(e){return e.recipientTypeId===i.E.User})).length)&&void 0!==o?o:0;return c&&s?"".concat(c," ").concat(v(c,"group","groups"),", ").concat(s," ").concat(v(s,"student","students")):c?"".concat(c," ").concat(v(c,"group","groups")):s?"".concat(s," ").concat(v(s,"student","students")):"All students in classroom can view"}return r.type===l.y.Open?"Anyone in my school can view":r.type===l.y.Link?"Anyone with a link can view":r.type===l.y.Live?"Live now":"Anyone can view for 30 days"}(e)))));var t,n,r}var u=s(s(s(s({},l.y.Open,r.vn.School),l.y.Link,r.vn.Link),l.y.Classroom,r.vn.Classrooms),l.y.Live,r.vn.Play),p=s(s(s(s({},l.y.Open,"blue"),l.y.Link,"black"),l.y.Classroom,"teal"),l.y.Live,"purple"),m=s(s(s(s({},l.y.Open,"Open classroom"),l.y.Link,"Link"),l.y.Classroom,"Classroom"),l.y.Live,"Live");function v(e,t,n){return 1===e?t:n}},93975:(e,t,n)=>{"use strict";var a;n.d(t,{y:()=>a}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(a||(a={}))},91574:(e,t,n)=>{"use strict";n.d(t,{o:()=>r});var a=n(99940),o=n(97395),i={namespace:"share-v2"},r={createShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:a.k.POST,data:e,normalizeOptions:i,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:n,always:o}},getShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSharesByObjectId:function(e,t,n,o){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,r={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},l=Object.values(r).join(":");return{url:o._.urlBuilder("/api/share/v2/shares/sent",r),key:"sent:shares-v2:".concat(l),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:r.offset+e.length}}}},type:a.k.GET,normalize:!1,success:t,error:n,always:i}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:a.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},91969:(e,t,n)=>{"use strict";var a=n(47033),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,r,l,c,s,d=!1;t||(t={}),n=t.debug||!1;try{if(r=a(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(a){if(a.stopPropagation(),t.format)if(a.preventDefault(),void 0===a.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else a.clipboardData.clearData(),a.clipboardData.setData(t.format,e);t.onCopy&&(a.preventDefault(),t.onCopy(a.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(a){n&&console.error("unable to copy using execCommand: ",a),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(a){n&&console.error("unable to copy using clipboardData: ",a),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),r()}return d}},44818:(e,t,n)=>{"use strict";function a(e){return a="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},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=l(n(32735)),i=l(n(91969)),r=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(f,e);var t,n,l,c,y=(l=f,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(l);if(c){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,e)});function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return v(p(e=y.call.apply(y,[this].concat(n))),"onClick",(function(t){var n=e.props,a=n.text,r=n.onCopy,l=n.children,c=n.options,s=o.default.Children.only(l),d=(0,i.default)(a,c);r&&r(a,d),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)})),e}return t=f,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,r),a=o.default.Children.only(t);return o.default.cloneElement(a,s(s({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),f}(o.default.PureComponent);t.CopyToClipboard=y,v(y,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var a=n(44818).CopyToClipboard;a.CopyToClipboard=a,e.exports=a},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],a=0;a<e.rangeCount;a++)n.push(e.getRangeAt(a));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}}}]);
|
|
2
|
+
//# sourceMappingURL=4527-42075d96f4-lite.chunk.js.map
|