@clickview/lite 0.81.3 → 0.82.0-rc.0

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/7604-bd0283d577-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/delete-share-content/DeleteShareContent.tsx","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/utils/get-share-privacy-config/getSharePrivacyConfig.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/hooks/use-main-share-data/useMainShareData.ts","file:///app/packages/libs/shared/src/apps/share/views/share/components/share-integrations/ShareIntegrationsHelper.ts","file:///app/packages/libs/shared/src/components/multistep-popup/MultiStepPopup.tsx","file:///app/packages/libs/shared/src/components/new-badge/NewBadge.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/copy-embed-view/CopyEmbedView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-integrations/share-integrations.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-integrations/ShareIntegrations.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-delete/SharePermanentLinkDelete.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-setting/SharePermanentLinkSetting.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions.tsx","file:///app/packages/libs/shared/src/hooks/useCopyToClipboard.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/assign-prompt.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/AssignPrompt.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/create-share.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/CreateShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/hooks/useCreateShareData.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link/SharePermanentLink.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/MainShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-settings-view/ShareSettingsView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-view/ShareView.tsx","file:///app/packages/projects/lite/src/apps/share/views/share-view/ShareView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.deleteShareContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareContentProps {\n loading: boolean;\n phrases: {\n leadingSentence: string;\n bulletPoints: string[];\n acknowledgement: string;\n deleteButton: string;\n backButton?: string;\n };\n onDelete: () => void;\n onBack?: () => void;\n}\n\nexport function DeleteShareContent(props: DeleteShareContentProps) {\n const [ ack, setAck ] = React.useState(false);\n\n function onDelete() {\n if (!ack || props.loading)\n return;\n\n props.onDelete();\n }\n\n return (\n <div className='d-flex flex-column gap-3'>\n <p className='m-0'>{props.phrases.leadingSentence}</p>\n <ul className='m-0'>\n {props.phrases.bulletPoints.map((phrase, index) => (\n <li key={index}>\n {phrase}\n </li>\n ))}\n </ul>\n <Checkbox\n id='ack'\n checked={ack}\n onChange={e => setAck(e.target.checked)}\n label={props.phrases.acknowledgement}\n />\n <PopupButtons>\n {props.onBack && (\n <PopupButtons.Cancel\n onClick={props.onBack}\n text={props.phrases.backButton ?? getPhrase('backButton')}\n variant='link'\n />\n )}\n <PopupButtons.Submit\n onClick={onDelete}\n text={props.phrases.deleteButton}\n variant='danger'\n disabled={!ack || props.loading}\n showSpinner={props.loading}\n />\n </PopupButtons>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"NV2KW\"};","import React from 'react';\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 { getSharePrivacyConfig } from '../../utils/get-share-privacy-config/getSharePrivacyConfig';\n\nimport styles from './share-link-privacy.scss';\n\ninterface SharePrivacyItemProps {\n title: string;\n activePrivacy: SharePrivacy;\n description: string;\n sharePrivacy: SharePrivacy;\n onClick: (sharePrivacy: SharePrivacy) => void\n}\n\nfunction SharePrivacyItem(props: SharePrivacyItemProps) {\n const active = props.activePrivacy === props.sharePrivacy;\n\n function onClick() {\n if (active)\n return;\n\n props.onClick(props.sharePrivacy);\n }\n\n return (\n <li>\n <button\n className={`${active ? styles.active : ''} dropdown-item d-flex align-items-center justify-content-between py-2`}\n onClick={onClick}\n >\n <div className='me-4'>\n <p className='font-label mb-1'>{props.title}</p>\n <p className='font-size-sm mb-0'>{props.description}</p>\n </div>\n {active && <SvgContainer svgName={cvSvgLibrary.Check} />}\n </button>\n </li>\n );\n}\n\ninterface ShareLinkPrivacyProps {\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n entityTypeId: MasterType;\n yearGroups: YearGroup[];\n sharePrivacy: 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 config = getSharePrivacyConfig({\n entity: props.entity,\n entityPrivacy: props.entityPrivacy,\n hasStudentExp: props.hasStudentExp,\n yearGroups: props.yearGroups,\n _showPasswordProtected: props.sharePrivacy === SharePrivacy.PasswordProtected\n });\n\n const { icon, text } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.sharePrivacy,\n entityTypeId: props.entityTypeId,\n hasStudentExp: props.hasStudentExp,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\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 {Object.values(SharePrivacy).map(sharePrivacy => {\n const { title, description, predicate } = config[sharePrivacy];\n \n if (!predicate())\n return;\n\n return (\n <SharePrivacyItem\n key={sharePrivacy}\n sharePrivacy={sharePrivacy}\n activePrivacy={props.sharePrivacy}\n title={title}\n description={description}\n onClick={props.onClickSavePrivacy}\n />\n );\n })}\n </ul>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\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 type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.getSharePrivacyConfig';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype SharePrivacyConfigItem = {\n title: string;\n description: string;\n predicate: () => boolean;\n}\n\ninterface UseSharePrivacyConfigOptions {\n entityPrivacy: SharePrivacyResponse;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n hasStudentExp: boolean;\n /**\n * To support legacy password protected share links\n */\n _showPasswordProtected?: boolean;\n}\n\nexport function getSharePrivacyConfig(\n options: UseSharePrivacyConfigOptions\n): {[key in SharePrivacy]: SharePrivacyConfigItem} {\n const accessType = ShareLinkHelper.getShareLinkAccessType(options.entityPrivacy);\n const respectRatingText = ShareLinkHelper.getRespectRatingText(\n options.entity,\n options.yearGroups,\n options.hasStudentExp\n );\n\n const SharePrivacyItemConfig: {[key in SharePrivacy]: SharePrivacyConfigItem} = {\n [SharePrivacy.JustMySchool]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.Protected]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.JustMySchoolOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('justMySchoolDescription'),\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.ProtectedOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('clickViewOnly'),\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.Public]: {\n title: getPhrase('public'),\n description: getPhrase('publicDescription'),\n predicate: () => accessType === 'owner'\n },\n /**\n * Not supported\n */\n [SharePrivacy.Direct]: {\n title: '',\n description: '',\n predicate: () => false\n },\n [SharePrivacy.PasswordProtected]: {\n title: getPhrase('passwordProtectedTitle'),\n description: getPhrase('passwordProtectedDescription'),\n predicate: () => options._showPasswordProtected\n },\n [SharePrivacy.PinCode]: {\n title: getPhrase('pinCode'),\n description: getPhrase('pinCodeDescription'),\n predicate: () => false\n }\n };\n\n return SharePrivacyItemConfig;\n}\n\nexport function getDefaultSharePrivacy(options: UseSharePrivacyConfigOptions): SharePrivacy {\n const items = getSharePrivacyConfig(options);\n\n const validItems = Object.entries(items).filter(([ , config ]) => config.predicate());\n\n if (!validItems.length)\n return;\n\n return ArrayHelper.first(validItems)[0] as SharePrivacy;\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { DeleteShareContent } from 'libs/shared/apps/share-v2/components/delete-share-content/DeleteShareContent';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\n\nconst namespace = 'sharev2.deleteShareLinkConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareLinkConfirmationViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n previousAppLink?: Core.AppLink;\n goToSettingsStep?: () => void;\n}\n\nexport function DeleteShareLinkConfirmationView(props: DeleteShareLinkConfirmationViewProps) {\n const alerts = useAlerts();\n\n const [ loading, setLoading ] = React.useState(false);\n\n const { share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { deleteShareLink } = useShareLinkActions({\n entityId: props.entityId\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n function onClickDelete() {\n setLoading(true);\n\n deleteShareLink(share.data?.shareId).then(() => {\n log({\n type: 'delete-share-link',\n share: share.data\n });\n\n setLoading(false);\n alerts.success(getPhrase('deleteSuccess'));\n props.closePopup();\n\n if (props.previousAppLink) {\n AppLinkHelper.trigger(props.previousAppLink);\n }\n }).catch(() => {\n alerts.error(getPhrase('deleteFailed', { name: entity.data.name, escapeText: true }));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n const loaded = !!share.data && !!entity.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n <DeleteShareContent\n loading={loading}\n phrases={{\n leadingSentence: getPhrase('intro'),\n bulletPoints: [\n getPhrase('loseAccessInfo'),\n getPhrase('loseAccessUsage')\n ],\n acknowledgement: getPhrase('acknowledgement'),\n backButton: getPhrase('back'),\n deleteButton: getPhrase('delete')\n }}\n onDelete={onClickDelete}\n onBack={props.goToSettingsStep ? props.goToSettingsStep : undefined}\n />\n </Popup>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { ShareLogFn } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.useMainShareData';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UseMainShareDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n log: ShareLogFn;\n}\n\nexport function useMainShareData(options: UseMainShareDataOptions) {\n const alerts = useAlerts();\n const { hasPermissions } = usePermissions();\n\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n isLoadingSettings,\n shareOverrideRestrictions\n } = useSettings(null);\n \n const {\n currentUser,\n entity,\n privacy,\n share,\n config\n } = useShareLinkData({ entityId: options.entityId, entityType: options.entityType });\n \n const {\n loaded: shareActionLoaded,\n updateShareLink\n } = useShareLinkActions({ entityId: options.entityId });\n \n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n async function onClickSavePrivacy(updatedPrivacy: SharePrivacy): Promise<void> {\n try {\n const updatedShare = await updateShareLink(share.data.shareId, { privacy: updatedPrivacy });\n options.log({\n type: 'update-share-link',\n share: updatedShare\n });\n alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name, escapeText: true }));\n } catch {\n alerts.error(getPhrase('privaciesError', { name: entity.data.name, escapeText: true }));\n }\n }\n \n const canEmbed = ShareViewHelper.canEmbed(options.entityType);\n const integrations = ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const hasManageShareLinkSettings = hasPermissions(PermissionName.ManageShareLinkSettings);\n const canAccessSettings = share.data && ShareViewHelper.canAddPolicies(options.entityType);\n \n const loaded = shareActionLoaded\n && !!share.data\n && !!entity.data\n && !!privacy.data\n && !!config.data\n && !!currentUser.data\n && !!yearGroups\n && !isLoadingSettings;\n\n\n return {\n data: {\n share,\n loaded,\n entity,\n privacy,\n config,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n },\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n };\n}","import { LocationUtils } from 'libs/common/backbone/core/LocationUtils';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nconst POPUP_FEATURES = 'toolbar=0,location=0,menubar=0,width=600,height=600';\n\n/**\n * ⚠️ Hacky solution warning ⚠️\n * \n * Both Google Classroom and MS Teams provide an SDK to do essentially what this file does.\n * However when using their SDK, we lose control of how the items are displayed on our page.\n * \n * Ed-puzzle seems like it does what we've done here\n * so i've taken a leaf out of their book and taken a similar approach.\n * This puts us at risk of them changing their SDK and our implementation not changing\n * \n * If MS Teams or Google Classroom stop working, this is most likely why. But we should be able\n * to simply find out what their new parameters are and open a popup to the new shape in\n * order to fix any issues \n * \n * High risk, low reward 🤙\n * \n * - Sha\n */\nexport const ShareIntegrationsHelper = {\n launchGoogleClassroom(link: string) {\n const url = UrlHelper.urlBuilder('https://classroom.google.com/share', { link });\n LocationUtils.PageLoad(url, true, POPUP_FEATURES);\n },\n launchMicrosoftTeams(link: string) {\n const url = UrlHelper.urlBuilder('https://teams.microsoft.com/share', {\n href: link,\n preview: false,\n referrer: LocationUtils.GetCurrentHostname(),\n s: Date.now()\n });\n LocationUtils.PageLoad(url, true, POPUP_FEATURES);\n }\n};","import React from 'react';\n\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nexport interface MultiStepPopupViewProps extends PopupViewProps {\n animate?: boolean;\n loading?: boolean;\n}\n\nexport type MultiStepItemConfig<TProps, TSteps extends string> = {\n [Key in TSteps]: {\n view: (props: TProps) => JSX.Element;\n }\n}\n\ninterface MultiStepPopupProps<\n TProps,\n TSteps extends string\n> {\n step: TSteps;\n data: TProps;\n steps: MultiStepItemConfig<TProps, TSteps>;\n loading?: boolean;\n animate?: boolean;\n setStep: (step: TSteps) => void;\n closePopup: () => void;\n}\n\nexport function MultiStepPopup<TProps, TSteps extends string>(\n props: MultiStepPopupProps<TProps, TSteps>\n): JSX.Element {\n const [ animate, setAnimate ] = React.useState<boolean>(props.animate ?? true);\n\n function setStep(step: TSteps) {\n /**\n * We want to animate the popup for the first time it loads in.\n * After that every step changes should not animate other popups\n */\n setAnimate(false);\n props.setStep(step);\n }\n\n function closePopup() {\n props.closePopup();\n }\n\n const stepConfig = props.steps[props.step];\n /**\n * This is so that we do not override `loading` prop \n * passed into `ViewComponent` from `props.data` if `props.loading` is undefined.\n * We only want to override the prop if this is set.\n */\n const loading = typeof props.loading !== 'undefined' ? { loading: props.loading } : {};\n \n const viewProps: TProps = {\n ...props.data,\n ...loading,\n animate: props.animate ?? animate,\n closePopup,\n setStep\n };\n\n if (!stepConfig)\n return <></>;\n\n const ViewComponent = stepConfig.view;\n\n return <ViewComponent {...viewProps} />;\n}","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.newBadge';\n\ninterface NewBadgeProps {\n size: 'sm' | 'std';\n invert?: boolean;\n text?: string;\n className?: string;\n}\n\nexport function NewBadge(props: NewBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex justify-content-center',\n 'fw-medium text-blue',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-blue',\n props.className\n )}>\n {props.text || <Text phrase='new' namespace={namespace} />}\n </span>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { EmbedDetails } from 'libs/shared/apps/share/components/copy-embed-html/CopyEmbedHtml';\nimport { CopyEmbedHtml } from 'libs/shared/apps/share-v2/components/copy-embed-html/CopyEmbedHtml';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.copyEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CopyEmbedViewProps extends MultiStepPopupViewProps{\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n showEmbedCopiedText: boolean;\n}\n\nexport function CopyEmbedView(props: CopyEmbedViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const { config, share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n\n function onCopy(embedDetails: EmbedDetails) {\n log({\n type: 'copy-embed-html',\n id: props.entityId,\n shareId: share.data.shareId,\n shareType: share.data.type,\n embedDetails\n });\n fetch(ShareRequests.updateDateShared(share.data.shareId));\n }\n \n const loaded = !!share.data\n && !!config.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n {loaded &&\n <>\n <div className='mb-3'>\n <CopyEmbedHtml\n analyticsOptions={{}}\n entity={entity.data}\n embedUrl={share.data.link.shortenedEmbedUrl}\n entityId={props.entityId}\n entityType={props.entityType}\n liteUrl={config.data.liteUrl}\n shareId={share.data.shareId}\n onCopy={onCopy}\n showEmbedCopiedText={props.showEmbedCopiedText}\n styling='normal-v2'\n />\n </div>\n <PopupButtons>\n <PopupButtons.Cancel variant='link' onClick={props.goToShareLinkStep} text={getPhrase('back')} />\n </PopupButtons>\n </>\n }\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"integration\":\"pIUQ7\"};","import React from 'react';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport styles from './share-integrations.scss';\n\ninterface ShareIntegrationsProps {\n integrations: IntegrationId[];\n onClickGoogleClassroom?: () => void;\n onClickMicrosoftTeams?: () => void;\n googleClassroomIcon: string;\n microsoftTeamsIcon: string;\n}\n\nexport function ShareIntegrations(props: ShareIntegrationsProps): JSX.Element {\n if (!props.integrations.length)\n return <></>;\n\n return (\n <div className='d-flex gap-1 align-items-start'>\n {props.integrations.includes(IntegrationId.GoogleClassroom) &&\n <button\n type='button'\n onClick={props.onClickGoogleClassroom}\n className={styles.integration}\n style={{ backgroundImage: `url(${props.googleClassroomIcon})` }}\n />\n }\n {props.integrations.includes(IntegrationId.MicrosoftTeams) &&\n <button\n type='button'\n onClick={props.onClickMicrosoftTeams}\n className={`${styles.integration} rounded`}\n style={{ backgroundImage: `url(${props.microsoftTeamsIcon})` }}\n />\n }\n </div>\n );\n}\n","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\nconst namespace = 'sharev2.sharePermanentLinkDelete';\n\ninterface SharePermanentLinkDeleteProps {\n onClick: () => void;\n}\n\nexport function SharePermanentLinkDelete(props: SharePermanentLinkDeleteProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClick}\n className='d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue'\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Delete} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='deleteLink' />\n </div>\n </DivButton>\n </div>\n );\n}","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\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 hover-bg-light-blue`}\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 { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport { GetEmbedCode } from '../get-embed-code/GetEmbedCode';\nimport { ShareIntegrations } from '../share-integrations/ShareIntegrations';\nimport { SharePermanentLinkDelete } from '../share-permanent-link-delete/SharePermanentLinkDelete';\nimport { SharePermanentLinkSetting } from '../share-permanent-link-setting/SharePermanentLinkSetting';\n\ninterface SharePermanentLinkActionsProps {\n canEmbed: boolean;\n showIntegrations: boolean;\n canAccessSettings: boolean;\n integrations: IntegrationId[];\n hasManageShareLinkSettings: boolean;\n hideSettings?: boolean;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n onClickGetEmbedCode: () => void;\n onClickGoogleClassroom: () => void;\n onClickMicrosoftTeams: () => void;\n googleClassroomIcon: string;\n microsoftTeamsIcon: string;\n}\n\nexport function SharePermanentLinkActions(props: SharePermanentLinkActionsProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between gap-2'>\n <div>\n {props.canEmbed &&\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} minimal />\n }\n\n {!props.hideSettings && (props.canAccessSettings ?\n <SharePermanentLinkSetting\n manageShareLinkSettings={props.hasManageShareLinkSettings}\n onClickEditSettings={props.goToSettingsStep}\n /> :\n <SharePermanentLinkDelete onClick={props.goToDeleteStep} />)}\n </div>\n <div>\n {props.showIntegrations && !!props.integrations.length &&\n <ShareIntegrations\n integrations={props.integrations}\n onClickGoogleClassroom={props.onClickGoogleClassroom}\n onClickMicrosoftTeams={props.onClickMicrosoftTeams}\n googleClassroomIcon={props.googleClassroomIcon}\n microsoftTeamsIcon={props.microsoftTeamsIcon}\n />\n }\n </div>\n </div>\n );\n}","import { useCallback, useState } from 'react';\n\n/**\n * The copied text as `string` or `null` if nothing has been copied yet.\n */\ntype CopiedValue = string | null\n\n/**\n * Function to copy text to the clipboard.\n * @param text - The text to copy to the clipboard.\n * @returns {Promise<boolean>} A promise that resolves to `true` if the text was copied successfully, or `false` otherwise.\n */\ntype CopyFn = (text: string) => Promise<boolean>\n\n/**\n * Custom hook that copies text to the clipboard using the [`Clipboard API`](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)\n * if available else it falls back to [`document.execCommand`](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)\n * @see [Documentation](https://usehooks-ts.com/react-hook/use-copy-to-clipboard)\n * @see [Documentation](https://github.com/jaredLunde/react-hook/blob/master/packages/copy/src/index.tsx)\n * @example\n * ```tsx\n * const [copiedText, copyToClipboard] = useCopyToClipboard();\n * const textToCopy = 'Hello, world!';\n *\n * // Attempt to copy text to the clipboard\n * copyToClipboard(textToCopy)\n * .then(success => {\n * if (success) {\n * console.log(`Text \"${textToCopy}\" copied to clipboard successfully.`);\n * } else {\n * console.error('Failed to copy text to clipboard.');\n * }\n * });\n * ```\n */\nexport function useCopyToClipboard(): {copiedText: CopiedValue, copyToClipboard: CopyFn} {\n const [ copiedText, setCopiedText ] = useState<CopiedValue>(null);\n\n const copy: CopyFn = useCallback(async text => {\n // Try to save to clipboard then save it in the state if worked\n try {\n await copyToClipboard(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n }, []);\n\n return { copiedText, copyToClipboard: copy };\n}\n\nfunction copyToClipboard(text: string) {\n // uses the Async Clipboard API when available. Requires a secure browing\n // context (i.e. HTTPS)\n if (navigator.clipboard) return navigator.clipboard.writeText(text);\n // puts the text to copy into a <span>\n const span = document.createElement('span');\n span.textContent = text;\n // preserves consecutive spaces and newlines\n span.style.whiteSpace = 'pre';\n // adds the <span> to the page\n document.body.appendChild(span);\n // makes a selection object representing the range of text selected by the user\n const selection = window.getSelection();\n if (!selection) return Promise.reject();\n const range = window.document.createRange();\n selection.removeAllRanges();\n range.selectNode(span);\n selection.addRange(range);\n // copies text to the clipboard\n try {\n window.document.execCommand('copy');\n } catch (err) {\n return Promise.reject();\n }\n // cleans up the dom element and selection\n selection.removeAllRanges();\n window.document.body.removeChild(span);\n // the Async Clipboard API returns a promise that may reject with `undefined`\n // so we match that here for consistency\n return Promise.resolve();\n}","// extracted by mini-css-extract-plugin\nexport default {\"assignPrompt\":\"R73Xv\",\"badge\":\"urP15\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'sharev2.assignPrompt';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport { NewBadge } from 'libs/shared/components/new-badge/NewBadge';\n\nimport styles from './assign-prompt.scss';\n\ninterface AssignPromptProps {\n appLink: Core.AppLink;\n}\n\nexport function AssignPrompt(props: AssignPromptProps): JSX.Element {\n return (\n <AppLink\n appLink={props.appLink}\n className={classNames(\n 'd-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue',\n styles.assignPrompt\n )}\n >\n <div className='d-flex flex-row gap-2 align-items-center fw-medium'>\n <Text namespace={namespace} phrase='title' />\n <NewBadge size='sm' text={getPhrase('badgeText')} className={styles.badge} />\n </div>\n <div>\n <SvgContainer svgName={cvSvgLibrary.ChevronRight} />\n </div>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"mc17h\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareIntegrationsHelper } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrationsHelper';\nimport { SharePermanentLinkActions } from 'libs/shared/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { useCreateShareData } from 'libs/shared/apps/share-v2/views/create-share-view/hooks/useCreateShareData';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCopyToClipboard } from 'libs/shared/hooks/useCopyToClipboard';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { EmbedHelper } from 'libs/shared/utils/EmbedHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport styles from './create-share.scss';\n\ntype CreateLinkType = 'link' | 'embed' | 'google-classroom' | 'microsoft-teams';\n\nconst namespace = 'sharev2.createShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CreateShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n setShowCopiedText: (val: boolean) => void;\n setShowEmbedCopiedText: (val: boolean) => void;\n goToShareLinkStep: () => void;\n goToCopyEmbedStep: () => void;\n assignFlowSelectorAppLink?: Core.AppLink;\n enableIntegrationBanner: boolean;\n googleClassroomIcon: string;\n microsoftTeamsIcon: string;\n}\n\nconst PLACEHOLDER_TEXT = 'https://clickv.ie/...';\n\nexport function CreateShareView(props: CreateShareViewProps): JSX.Element {\n const alerts = useAlerts();\n const { copyToClipboard } = useCopyToClipboard();\n\n const {\n data,\n hasClassrooms,\n hasStudentExp,\n canEmbed,\n integrations,\n createShareLink\n } = useCreateShareData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const {\n entity,\n share,\n currentUser,\n config,\n loaded\n } = data;\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V4\n }\n });\n\n const [ loadingType, setLoadingType ] = React.useState<null | 'copy' | 'create'>(null);\n\n function onCreateLink(share: Share) {\n copyToClipboard(share.link?.shortenedUrl)\n .then(success => {\n /**\n * If the copy to clipboard somehow fails we still want to take\n * them to main share view where they can copy the link again.\n * Rather showing 'Copied' falsely we show them a toast that\n * says share link has been created.\n * - Nish\n */\n if (!success) {\n alerts.success(getPhrase('createSuccess', { name: entity.data.name, escapeText: true }));\n return;\n }\n \n /**\n * If we successfully copy the share link we show 'Copied' in the\n * button in main share link view\n * - Nish\n */\n log({\n type: 'copy-share-link',\n id: entity.data.id,\n shareId: share.shareId,\n shareType: share.type\n });\n props.setShowCopiedText(true);\n setTimeout(() => props.setShowCopiedText(false), 3000);\n })\n .finally(() => {\n props.goToShareLinkStep();\n });\n }\n\n function onCreateEmbed(share: Share) {\n const videoSizes = EmbedHelper.getEmbedResolutions();\n const url = EmbedHelper.buildEmbedUrl({\n embedUrl: share.link.shortenedEmbedUrl,\n host: config.data.liteUrl,\n shareId: share.shareId,\n autoplay: false\n });\n const embedString = EmbedHelper.getEmbedString({\n url,\n size: videoSizes[0]\n });\n \n copyToClipboard(embedString)\n .then(success => {\n if (!success) {\n alerts.success(getPhrase('createSuccess', { name: entity.data.name, escapeText: true }));\n return;\n }\n\n /**\n * If we successfully copy the share link we show 'Copied' in the\n * button in the embed view\n * - Nish\n */\n log({\n type: 'copy-embed-html',\n id: props.entityId,\n shareId: share.shareId,\n shareType: share.type,\n embedDetails: {\n size: videoSizes[0],\n autoplay: false\n }\n });\n props.setShowEmbedCopiedText(true);\n setTimeout(() => props.setShowEmbedCopiedText(false), 3000);\n })\n .finally(() => {\n props.goToCopyEmbedStep();\n });\n }\n\n function onCreateGoogleClassroom(share: Share) {\n ShareIntegrationsHelper.launchGoogleClassroom(share.link.shortenedUrl);\n props.goToShareLinkStep();\n }\n\n function onCreateMicrosoftTeams(share: Share) {\n ShareIntegrationsHelper.launchMicrosoftTeams(share.link.shortenedUrl);\n props.goToShareLinkStep();\n }\n\n function onSuccess(share: Share, type: CreateLinkType) {\n log({\n type: 'create-share-link',\n share\n });\n \n const handler: Record<CreateLinkType, (share: Share) => void> = {\n 'link': onCreateLink,\n 'embed': onCreateEmbed,\n 'google-classroom': onCreateGoogleClassroom,\n 'microsoft-teams': onCreateMicrosoftTeams\n };\n\n handler[type](share);\n }\n\n function getOnClickCreateLink(type: CreateLinkType) {\n return () => {\n setLoadingType(type === 'link' ? 'copy' : 'create');\n\n createShareLink()\n .then(share => onSuccess(share, type))\n .catch(() => {\n alerts.error(getPhrase('createError', { name: entity.data.name, escapeText: true }));\n })\n .finally(() => {\n setLoadingType(null);\n });\n };\n }\n\n React.useEffect(() => {\n if (!share.data)\n return;\n \n props.goToShareLinkStep();\n }, [share.data]);\n\n /**\n * We intentionally show the prompt here if hideAssignButtonOnVideoActions is true\n * This is the entry to assign when the assign button is hidden - Sha\n * \n * However, we do not want to show the prompt if the customer does\n * not have access to classrooms (like tertiary customers for example)\n * or if the user is a student - Boris\n */\n const showAssignPrompt = AssignHelper.hideAssignButtonOnVideoActions(currentUser.data)\n && hasClassrooms\n && !hasStudentExp;\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3 d-flex flex-column gap-2'\n };\n }\n\n const modalClassNames = getModalClassNames();\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={modalClassNames?.topContentClassName}>\n <p className='mb-2'><Text namespace={namespace} phrase='info' /></p>\n <div className='d-flex gap-2 position-relative w-100'>\n <input\n type='text'\n autoComplete='off'\n className={`form-control ${styles.input}`}\n spellCheck={false}\n placeholder={PLACEHOLDER_TEXT}\n readOnly\n />\n <SpinnerButton\n variant='dark'\n showSpinner={!!loadingType}\n className='text-nowrap d-flex align-items-center gap-1'\n onClick={getOnClickCreateLink('link')}\n spinnerText={loadingType === 'copy' ? getPhrase('buttonLoading') : getPhrase('buttonLoadingCreate')}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} />\n <Text namespace={namespace} phrase='button' />\n </SpinnerButton>\n </div>\n <SharePermanentLinkActions\n canEmbed={canEmbed}\n integrations={integrations}\n canAccessSettings={false}\n showIntegrations={props.enableIntegrationBanner}\n hasManageShareLinkSettings={false}\n goToDeleteStep={null}\n goToSettingsStep={null}\n onClickGetEmbedCode={getOnClickCreateLink('embed')}\n onClickGoogleClassroom={getOnClickCreateLink('google-classroom')}\n onClickMicrosoftTeams={getOnClickCreateLink('microsoft-teams')}\n hideSettings\n googleClassroomIcon={props.googleClassroomIcon}\n microsoftTeamsIcon={props.microsoftTeamsIcon}\n />\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}","import { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\ninterface UseCreateShareDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n}\n\nexport function useCreateShareData(options: UseCreateShareDataOptions) {\n const { hasPermissions } = usePermissions();\n\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n hasClassrooms,\n isLoadingSettings\n } = useSettings(null);\n\n const canEmbed = ShareViewHelper.canEmbed(options.entityType);\n const integrations = ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams);\n\n const { entity, share, currentUser, config } = useShareLinkData({\n entityId: options.entityId,\n entityType: options.entityType\n });\n\n const { loaded: shareLinkActionsLoaded, createShareLink } = useShareLinkActions({\n entityId: options.entityId\n });\n\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n\n const loaded = (\n !isLoadingSettings &&\n !!entity.data &&\n !!currentUser.data &&\n !!config.data &&\n !!shareLinkActionsLoaded\n );\n\n return {\n data: {\n entity,\n share,\n currentUser,\n config,\n loaded\n },\n hasClassrooms,\n hasStudentExp,\n canEmbed,\n integrations,\n createShareLink\n };\n}","import React from 'react';\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 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 } 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 showCopiedText: boolean;\n onCopy?: () => 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 typeof props.onCopy === 'function' && props.onCopy();\n }\n\n return (\n <div className='d-flex justify-content-start align-items-start flex-column gap-2'>\n <ShareLinkPrivacy\n sharePrivacy={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 <CopyInput\n styling='normal-v2'\n value={props.share.link.shortenedUrl}\n showCopiedText={props.showCopiedText}\n onCopy={onCopy}\n />\n </div>\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';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareIntegrationsHelper } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrationsHelper';\nimport { SharePermanentLink } from 'libs/shared/apps/share-v2/components/share-permanent-link/SharePermanentLink';\nimport { SharePermanentLinkActions } from 'libs/shared/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { LookingForIntegration } from 'libs/shared/components/looking-for-integration/LookingForIntegration';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport { useMainShareData } from './hooks/use-main-share-data/useMainShareData';\n\nconst namespace = 'sharev2.mainShareView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface MainShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n showCopiedText?: boolean;\n entityType: SharableEntityType;\n enableIntegrationBanner: boolean;\n messagePopupAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n assignFlowSelectorAppLink?: Core.AppLink;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n goToCopyEmbedStep: () => void;\n googleClassroomIcon: string;\n microsoftTeamsIcon: string;\n}\n\nexport function MainShareView(props: MainShareViewProps): JSX.Element {\n const fetch = Flight.useGetFetch();\n const { hasClassrooms } = useSettings(null);\n const { hasPermissions } = usePermissions();\n \n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n eventVersion: EventVersion.V3,\n location: LocationContext.Popup\n }\n });\n \n const {\n data,\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n } = useMainShareData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n\n const {\n share,\n loaded,\n entity,\n privacy,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n } = data;\n\n /**\n * We intentionally show the prompt here if hideAssignButtonOnVideoActions is true\n * This is the entry to assign when the assign button is hidden - Sha\n * \n * However, we do not want to show the prompt if the customer does\n * not have access to classrooms (like tertiary customers for example)\n * or if the user is a student - Boris\n */\n const showAssignPrompt = AssignHelper.hideAssignButtonOnVideoActions(currentUser.data)\n && hasClassrooms\n && !hasPermissions(PermissionName.StudentExperience);\n\n function onCopy() {\n log({\n type: 'copy-share-link',\n id: entity.data.id,\n shareId: share.data.shareId,\n shareType: share.data.type\n });\n fetch(ShareRequests.updateDateShared(share.data.shareId));\n }\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3'\n };\n }\n\n const modalClassNames = getModalClassNames();\n\n const integrationAppLink = hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink;\n\n return (\n <Popup\n animation={props.animate}\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={classNames('d-flex flex-column gap-2', modalClassNames?.topContentClassName)}>\n <SharePermanentLink\n share={share.data}\n entity={entity.data}\n privacy={privacy.data}\n yearGroups={yearGroups.data}\n entityType={props.entityType}\n hasStudentExp={hasStudentExp}\n showCopiedText={props.showCopiedText}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onCopy={onCopy}\n onClickSavePrivacy={onClickSavePrivacy}\n />\n <SharePermanentLinkActions\n canEmbed={canEmbed}\n integrations={integrations}\n canAccessSettings={canAccessSettings}\n showIntegrations={props.enableIntegrationBanner}\n hasManageShareLinkSettings={hasManageShareLinkSettings}\n goToDeleteStep={props.goToDeleteStep}\n goToSettingsStep={props.goToSettingsStep}\n onClickGetEmbedCode={props.goToCopyEmbedStep}\n onClickGoogleClassroom={() => ShareIntegrationsHelper.launchGoogleClassroom(share.data.link.shortenedUrl)}\n onClickMicrosoftTeams={() => ShareIntegrationsHelper.launchMicrosoftTeams(share.data.link.shortenedUrl)}\n googleClassroomIcon={props.googleClassroomIcon}\n microsoftTeamsIcon={props.microsoftTeamsIcon}\n />\n {props.enableIntegrationBanner && !integrations.length &&\n <LookingForIntegration\n normalText\n hideDismiss\n hideBackground\n appLink={integrationAppLink}\n closePopup={props.closePopup}\n />\n }\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareSettingsForm } from 'libs/shared/apps/share-v2/components/share-settings-form/ShareSettingsForm';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, type ShareSettingsFormFields, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { type FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { useShareSettingsData } from './hooks/use-share-settings-data/useShareSettingsData';\n\nconst namespace = 'sharev2.shareSettingsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface ShareSettingsViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n goToDeleteStep: () => void;\n}\n\n\nexport function ShareSettingsView(props: ShareSettingsViewProps): JSX.Element {\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n const { initialValues, onClickSaveLink } = useShareSettingsData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n \n function onSubmit(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n onClickSaveLink({\n options: {\n immediateFeedback: data.immediateFeedback,\n preventScrubbing: data.preventScrubbing\n }\n }, onDone);\n }\n\n const {\n showImmediateFeedbackField,\n showPreventScrubbingField\n } = ShareViewHelper.getEnabledSettingsField(props.entityType);\n\n return (\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={props.loading}\n closePopup={props.closePopup}\n animation={props.animate}\n >\n <ShareSettingsForm\n initialValues={initialValues}\n onSubmit={onSubmit}\n onClickDelete={props.goToDeleteStep}\n showImmediateFeedbackField={showImmediateFeedbackField}\n showPreventScrubbingField={showPreventScrubbingField}\n />\n <PopupButtons className='mt-3'>\n <PopupButtons.Cancel onClick={props.goToShareLinkStep} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { AllShareLinkViewProps } from 'libs/shared/apps/share-v2/interfaces/MultiStepPopup';\nimport { ShareScreen } from 'libs/shared/apps/share-v2/interfaces/ShareScreen';\nimport { type SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyEmbedView } from 'libs/shared/apps/share-v2/views/copy-embed-view/CopyEmbedView';\nimport { CreateShareView } from 'libs/shared/apps/share-v2/views/create-share-view/CreateShareView';\nimport { DeleteShareLinkConfirmationView } from 'libs/shared/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView';\nimport { MainShareView } from 'libs/shared/apps/share-v2/views/main-share-view/MainShareView';\nimport { ShareSettingsView } from 'libs/shared/apps/share-v2/views/share-settings-view/ShareSettingsView';\nimport { MultiStepPopup } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport type { PopupViewProps } from 'libs/shared/interfaces';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n enableIntegrationBanner: boolean;\n assignFlowSelectorAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n googleClassroomIcon?: string;\n microsoftTeamsIcon?: string;\n}\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const { share } = useShareLinkData({ entityId: props.entityId, entityType: props.entityType });\n\n const [ animate, setAnimate ] = React.useState<boolean>(true);\n const [ screen, setScreen ] = React.useState<ShareScreen>(share.data ? 'share-link' : 'create-link');\n const [ showCopiedText, setShowCopiedText ] = React.useState(false);\n const [ showEmbedCopiedText, setShowEmbedCopiedText ] = React.useState(false);\n\n const canAccessSettings = ShareViewHelper.canAddPolicies(props.entityType);\n\n function setStep(step: ShareScreen) {\n setAnimate(false);\n setScreen(step);\n }\n\n function goToSettingsStep() {\n if (!canAccessSettings) {\n setStep('share-link');\n return;\n }\n \n setStep('link-settings');\n }\n\n const data: AllShareLinkViewProps = {\n entityId: props.entityId,\n entityType: props.entityType,\n showCopiedText: showCopiedText,\n showEmbedCopiedText: showEmbedCopiedText,\n messagePopupAppLink: props.messagePopupAppLink,\n enableIntegrationBanner: props.enableIntegrationBanner,\n integrationSettingAppLink: props.integrationSettingAppLink,\n assignFlowSelectorAppLink: props.assignFlowSelectorAppLink,\n goToShareLinkStep: () => setStep('share-link'),\n goToDeleteStep: () => setStep('delete-confirmation'),\n goToCopyEmbedStep: () => setStep('copy-embed'),\n goToSettingsStep,\n closePopup: props.closePopup,\n setShowCopiedText: setShowCopiedText,\n setShowEmbedCopiedText: setShowEmbedCopiedText,\n googleClassroomIcon: props.googleClassroomIcon,\n microsoftTeamsIcon: props.microsoftTeamsIcon\n };\n\n return (\n <MultiStepPopup<AllShareLinkViewProps, ShareScreen>\n step={screen}\n animate={animate}\n setStep={setStep}\n loading={!share.hasCompleted}\n closePopup={props.closePopup}\n data={data}\n steps={{\n 'create-link': {\n view: CreateShareView\n },\n 'share-link': {\n view: MainShareView\n },\n 'link-settings': {\n view: ShareSettingsView\n },\n 'copy-embed': {\n view: CopyEmbedView\n },\n 'delete-confirmation': {\n view: DeleteShareLinkConfirmationView\n }\n }}\n />\n );\n}\n","import React from 'react';\n\nimport { ShareView as OldShareView } from 'libs/shared/apps/share/views/share/ShareView';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ShareView as NewShareView } from 'libs/shared/apps/share-v2/views/share-view/ShareView';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n enableIntegrationBanner?: boolean\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareView(props: ShareViewProps) {\n const { hasShareFlowV2, isLoadingSettings } = useSettings(null);\n\n if (isLoadingSettings)\n return <></>;\n\n if (!hasShareFlowV2) {\n return (\n <OldShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n />\n );\n }\n\n /**\n * Series can only be assigned to existing classrooms.\n */\n const assignFlowSelectorAppLink = props.entityType === 'series'\n ? AssignAppLinkHelper.existingClassroom({\n entityType: 'series',\n objectId: props.entityId\n })\n : AssignAppLinkHelper.flowSelector({\n entityType: props.entityType,\n objectId: props.entityId\n });\n\n return (\n <NewShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n assignFlowSelectorAppLink={assignFlowSelectorAppLink}\n googleClassroomIcon={ImageUrls.ShareIntegrations.GoogleClassroom}\n microsoftTeamsIcon={ImageUrls.ShareIntegrations.MicrosoftTeams}\n />\n );\n}"],"names":["getPhrase","DeleteShareContent","props","ack","setAck","className","phrases","leadingSentence","bulletPoints","map","phrase","index","key","id","checked","onChange","e","target","label","acknowledgement","onBack","onClick","text","backButton","variant","loading","onDelete","deleteButton","disabled","showSpinner","SharePrivacyItem","active","activePrivacy","sharePrivacy","title","description","SvgContainer","svgName","ShareLinkPrivacy","canUpdatePrivacy","shareOverrideRestrictions","hasStudentExp","config","getSharePrivacyConfig","entity","entityPrivacy","yearGroups","_showPasswordProtected","SharePrivacy","ShareLinkHelper","privacy","entityTypeId","icon","Object","values","predicate","onClickSavePrivacy","options","accessType","respectRatingText","getDefaultSharePrivacy","items","validItems","entries","filter","length","DeleteShareLinkConfirmationView","alerts","setLoading","entityId","entityType","share","deleteShareLink","log","data","type","analyticsOptions","location","eventVersion","loaded","closePopup","showLoadingSpinner","animation","animate","shareId","then","success","previousAppLink","error","name","escapeText","goToSettingsStep","undefined","useMainShareData","hasPermissions","shareToGoogleClassroom","shareToMicrosoftTeams","isLoadingSettings","currentUser","shareActionLoaded","updateShareLink","customerId","canEmbed","integrations","hasManageIntegrationsPermission","hasManageShareLinkSettings","canAccessSettings","updatedPrivacy","updatedShare","POPUP_FEATURES","ShareIntegrationsHelper","launchGoogleClassroom","link","url","launchMicrosoftTeams","href","preview","referrer","s","Date","now","MultiStepPopup","setAnimate","stepConfig","steps","step","viewProps","setStep","ViewComponent","view","namespace","NewBadge","size","invert","LanguageService","CopyEmbedView","fetch","useShareLinkData","getShareEventLogger","Popup","CopyEmbedHtml","embedUrl","shortenedEmbedUrl","liteUrl","onCopy","embedDetails","shareType","ShareRequests","showEmbedCopiedText","styling","PopupButtons","goToShareLinkStep","ShareIntegrations","includes","IntegrationId","onClickGoogleClassroom","style","backgroundImage","googleClassroomIcon","onClickMicrosoftTeams","microsoftTeamsIcon","SharePermanentLinkDelete","DivButton","S","Text","SharePermanentLinkSetting","manageShareLinkSettings","onClickEditSettings","SharePermanentLinkActions","GetEmbedCode","onClickGetEmbedCode","minimal","hideSettings","goToDeleteStep","showIntegrations","useCopyToClipboard","useState","copiedText","setCopiedText","copyToClipboard","useCallback","console","warn","navigator","clipboard","writeText","span","document","createElement","textContent","whiteSpace","body","appendChild","selection","window","getSelection","Promise","reject","range","createRange","removeAllRanges","selectNode","addRange","execCommand","err","removeChild","resolve","AssignPrompt","AppLink","appLink","PLACEHOLDER_TEXT","CreateShareView","usePermissions","useSettings","hasClassrooms","ShareViewHelper","useShareLinkActions","shareLinkActionsLoaded","createShareLink","PermissionName","useCreateShareData","loadingType","setLoadingType","onCreateLink","shortenedUrl","setShowCopiedText","setTimeout","onCreateEmbed","videoSizes","EmbedHelper","host","autoplay","embedString","setShowEmbedCopiedText","goToCopyEmbedStep","onCreateGoogleClassroom","onCreateMicrosoftTeams","getOnClickCreateLink","onSuccess","showAssignPrompt","AssignHelper","modalClassNames","popupContentClassName","popupBodyClassName","topContentClassName","contentClassName","bodyClassName","autoComplete","spellCheck","placeholder","readOnly","SpinnerButton","spinnerText","enableIntegrationBanner","assignFlowSelectorAppLink","SharePermanentLink","logged","setLogged","typeId","CopyInput","value","showCopiedText","MainShareView","integrationAppLink","integrationSettingAppLink","messagePopupAppLink","LookingForIntegration","normalText","hideDismiss","hideBackground","ShareSettingsView","useShareSettingsData","initialValues","onClickSaveLink","showImmediateFeedbackField","showPreventScrubbingField","ShareSettingsForm","onSubmit","onDone","immediateFeedback","preventScrubbing","onClickDelete","screen","setScreen","hasCompleted","hasShareFlowV2","emptyStateImageUrl","ImageUrls","errorStateImageUrl","application","action","AssignAppLinkHelper","objectId"],"sourceRoot":""}