@clickview/lite 0.69.1-dev.0 → 0.69.1-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{9985-lite-3c49d1b796.chunk.css → 3902-lite-5eaa7e7ae0.chunk.css} +1 -2
  3. package/dist/css/{555-lite-1b5aa9652d.chunk.css → 4356-lite-b05b606d3d.chunk.css} +1 -2
  4. package/dist/css/{2636-lite-f995954232.chunk.css → 4527-lite-4d1b877b3f.chunk.css} +4 -0
  5. package/dist/css/{1239-lite-8152f713c8.chunk.css → 7210-lite-a568e8ec1e.chunk.css} +1 -0
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/1210-7afb28caac-lite.chunk.js +2 -0
  8. package/dist/scripts/1210-7afb28caac-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1386-332e63f68c-lite.chunk.js +2 -0
  10. package/dist/scripts/1386-332e63f68c-lite.chunk.js.map +1 -0
  11. package/dist/scripts/232-1522c00252-lite.chunk.js +3 -0
  12. package/dist/scripts/232-1522c00252-lite.chunk.js.map +1 -0
  13. package/dist/scripts/2392-19e4bb187b-lite.chunk.js +3 -0
  14. package/dist/scripts/2392-19e4bb187b-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{2640-536c550749-lite.chunk.js → 2640-052f4606f6-lite.chunk.js} +2 -2
  16. package/dist/scripts/2640-052f4606f6-lite.chunk.js.map +1 -0
  17. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js +2 -0
  18. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js.map +1 -0
  19. package/dist/scripts/3079-0a333d6805-lite.chunk.js +2 -0
  20. package/dist/scripts/3079-0a333d6805-lite.chunk.js.map +1 -0
  21. package/dist/scripts/3110-eee18143c6-lite.chunk.js +2 -0
  22. package/dist/scripts/3110-eee18143c6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/312-693aa30814-lite.chunk.js +2 -0
  24. package/dist/scripts/312-693aa30814-lite.chunk.js.map +1 -0
  25. package/dist/scripts/3902-39aaff7ce9-lite.chunk.js +2 -0
  26. package/dist/scripts/3902-39aaff7ce9-lite.chunk.js.map +1 -0
  27. package/dist/scripts/4229-477b1858dc-lite.chunk.js +2 -0
  28. package/dist/scripts/4229-477b1858dc-lite.chunk.js.map +1 -0
  29. package/dist/scripts/4356-36ce3ceec1-lite.chunk.js +2 -0
  30. package/dist/scripts/4356-36ce3ceec1-lite.chunk.js.map +1 -0
  31. package/dist/scripts/4527-42075d96f4-lite.chunk.js +2 -0
  32. package/dist/scripts/4527-42075d96f4-lite.chunk.js.map +1 -0
  33. package/dist/scripts/{4845-f3646fb657-lite.chunk.js → 4845-9b4657e696-lite.chunk.js} +2 -2
  34. package/dist/scripts/4845-9b4657e696-lite.chunk.js.map +1 -0
  35. package/dist/scripts/5679-444d9a7f76-lite.chunk.js +2 -0
  36. package/dist/scripts/5679-444d9a7f76-lite.chunk.js.map +1 -0
  37. package/dist/scripts/6046-104677f08c-lite.chunk.js +2 -0
  38. package/dist/scripts/6046-104677f08c-lite.chunk.js.map +1 -0
  39. package/dist/scripts/{6188-e108abca25-lite.chunk.js → 6188-77fc2f3ec5-lite.chunk.js} +2 -2
  40. package/dist/scripts/6188-77fc2f3ec5-lite.chunk.js.map +1 -0
  41. package/dist/scripts/6351-dff9edbb16-lite.chunk.js +3 -0
  42. package/dist/scripts/6351-dff9edbb16-lite.chunk.js.map +1 -0
  43. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js +2 -0
  44. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js.map +1 -0
  45. package/dist/scripts/7210-2e4563178c-lite.chunk.js +3 -0
  46. package/dist/scripts/7210-2e4563178c-lite.chunk.js.map +1 -0
  47. package/dist/scripts/7480-3564c0c2da-lite.chunk.js +2 -0
  48. package/dist/scripts/7480-3564c0c2da-lite.chunk.js.map +1 -0
  49. package/dist/scripts/7482-13e6f78c32-lite.chunk.js +2 -0
  50. package/dist/scripts/7482-13e6f78c32-lite.chunk.js.map +1 -0
  51. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js +2 -0
  52. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js.map +1 -0
  53. package/dist/scripts/{bundle-90d3c7fd15.min.js → bundle-32e967af87.min.js} +3 -3
  54. package/dist/scripts/{bundle-90d3c7fd15.min.js.map → bundle-32e967af87.min.js.map} +1 -1
  55. package/package.json +1 -1
  56. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js +0 -2
  57. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js.map +0 -1
  58. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js +0 -3
  59. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js.map +0 -1
  60. package/dist/scripts/1386-d93ee75e0c-lite.chunk.js +0 -2
  61. package/dist/scripts/1386-d93ee75e0c-lite.chunk.js.map +0 -1
  62. package/dist/scripts/2392-acfd69dfa3-lite.chunk.js +0 -3
  63. package/dist/scripts/2392-acfd69dfa3-lite.chunk.js.map +0 -1
  64. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js +0 -2
  65. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js.map +0 -1
  66. package/dist/scripts/2640-536c550749-lite.chunk.js.map +0 -1
  67. package/dist/scripts/3036-d18c598435-lite.chunk.js +0 -2
  68. package/dist/scripts/3036-d18c598435-lite.chunk.js.map +0 -1
  69. package/dist/scripts/4229-75ba28a266-lite.chunk.js +0 -2
  70. package/dist/scripts/4229-75ba28a266-lite.chunk.js.map +0 -1
  71. package/dist/scripts/4266-e856b96643-lite.chunk.js +0 -3
  72. package/dist/scripts/4266-e856b96643-lite.chunk.js.map +0 -1
  73. package/dist/scripts/4598-f326dc1aec-lite.chunk.js +0 -2
  74. package/dist/scripts/4598-f326dc1aec-lite.chunk.js.map +0 -1
  75. package/dist/scripts/4845-f3646fb657-lite.chunk.js.map +0 -1
  76. package/dist/scripts/555-d811b49435-lite.chunk.js +0 -2
  77. package/dist/scripts/555-d811b49435-lite.chunk.js.map +0 -1
  78. package/dist/scripts/6046-44c115a89c-lite.chunk.js +0 -2
  79. package/dist/scripts/6046-44c115a89c-lite.chunk.js.map +0 -1
  80. package/dist/scripts/6188-e108abca25-lite.chunk.js.map +0 -1
  81. package/dist/scripts/6317-49be898c73-lite.chunk.js +0 -2
  82. package/dist/scripts/6317-49be898c73-lite.chunk.js.map +0 -1
  83. package/dist/scripts/6973-ede6601614-lite.chunk.js +0 -2
  84. package/dist/scripts/6973-ede6601614-lite.chunk.js.map +0 -1
  85. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js +0 -3
  86. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js.map +0 -1
  87. package/dist/scripts/7480-02bc4e08a3-lite.chunk.js +0 -2
  88. package/dist/scripts/7480-02bc4e08a3-lite.chunk.js.map +0 -1
  89. package/dist/scripts/9040-9393c59004-lite.chunk.js +0 -2
  90. package/dist/scripts/9040-9393c59004-lite.chunk.js.map +0 -1
  91. package/dist/scripts/9985-c488ab5f65-lite.chunk.js +0 -2
  92. package/dist/scripts/9985-c488ab5f65-lite.chunk.js.map +0 -1
  93. /package/dist/css/{3036-lite-1b3e9aa905.chunk.css → 3079-lite-1b3e9aa905.chunk.css} +0 -0
  94. /package/dist/css/{7075-lite-a377febbb0.chunk.css → 6351-lite-a377febbb0.chunk.css} +0 -0
  95. /package/dist/scripts/{4266-e856b96643-lite.chunk.js.LICENSE.txt → 232-1522c00252-lite.chunk.js.LICENSE.txt} +0 -0
  96. /package/dist/scripts/{1239-ed9b8aadb4-lite.chunk.js.LICENSE.txt → 2392-19e4bb187b-lite.chunk.js.LICENSE.txt} +0 -0
  97. /package/dist/scripts/{2392-acfd69dfa3-lite.chunk.js.LICENSE.txt → 6351-dff9edbb16-lite.chunk.js.LICENSE.txt} +0 -0
  98. /package/dist/scripts/{7075-9a76ce47c9-lite.chunk.js.LICENSE.txt → 7210-2e4563178c-lite.chunk.js.LICENSE.txt} +0 -0
  99. /package/dist/scripts/{bundle-90d3c7fd15.min.js.LICENSE.txt → bundle-32e967af87.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/2636-63e5f2c9e6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/shared-object-image.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/SharedObjectImage.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/collection-thumbnail-title.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/CollectionThumbnailTitle.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/collection-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/CollectionThumbnail.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/share-v2/components/ShareAvatar.tsx","file:///app/packages/projects/lite/src/apps/insights/components/share-options/ShareOptions.tsx","file:///app/packages/projects/lite/src/apps/insights/views/share-options/ShareOptionsView.tsx","file:///app/packages/projects/lite/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/projects/lite/src/apps/share-v2/flight-requests/ShareRequests.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":["// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\",\"thumbnailContainer\":\"d3CKN\",\"insightsMask\":\"KM76U\",\"requireMarking\":\"peLH7\",\"badge\":\"mVu0E\",\"bar\":\"zO3MS\",\"a\":\"K1jW5\",\"expandBar\":\"YITJl\",\"b\":\"tCpLF\",\"c\":\"lC0cq\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnail } from 'libs/shared/components/thumbnails/collection/CollectionThumbnail';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { BaseObject, Image, Playlist, Series } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-object-image.scss';\n\nconst namespace = 'shared.sharedObjectImage';\n\nconst BASE_IMAGE_CLASS_NAME = 'rounded overflow-hidden';\n\ninterface ImageProps {\n image: Image;\n imageType: ImageType;\n imageClassName?: string;\n imageFallbackComponent: JSX.Element;\n}\n\nfunction getImageProps(object: BaseObject): ImageProps {\n const image = ImageHelper.getDisplayImageFromObject(object);\n\n if (VideoHelper.isVideoType(object))\n return {\n image,\n imageType: ImageType.Thumbnails,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: <ImageFallback type={ImageFallbackType.Video} />\n };\n\n switch (object.typeId) {\n case MasterType.Series:\n return {\n image,\n imageType: ImageType.TallPosters,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent:\n <ImageFallback type={ImageFallbackType.Series} svgContainerClassName={styles.posterFallbackSvg} />\n };\n\n case MasterType.Playlist:\n return {\n image,\n imageType: ImageType.Covers,\n imageClassName: !image?.url\n ? `${BASE_IMAGE_CLASS_NAME} ${getBgColorClass(object.name, BG_COLOUR_CLASS_NAMES)}`\n : BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: (\n <ImageFallback\n type={ImageFallbackType.Playlist}\n svgContainerClassName={image?.url ? styles.coverFallbackSvg : 'd-none'}\n extraClasses={!image?.url && 'bg-transparent'}\n />\n )\n };\n }\n}\n\nfunction InsightsMask() {\n return (\n <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`}>\n <div className='position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3'></div>\n <div className='d-flex align-items-end gap-2 h-50 z-1'>\n <div className='d-flex align-items-end h-50'>\n <div className={`${styles.bar} ${styles.a} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-75'>\n <div className={`${styles.bar} ${styles.b} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-100'>\n <div className={`${styles.bar} ${styles.c} rounded shadow`}></div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction getImageRatio(object: BaseObject): ImageFallbackType {\n if (VideoHelper.isVideoType(object))\n return 16 / 9;\n\n if (object.typeId === MasterType.Playlist)\n return 1;\n\n if (object.typeId === MasterType.Series)\n return 9 / 16;\n}\n\nSharedObjectImage.defaultProps = {\n imageOptions: { size: ImageSize.Small }\n};\n\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: boolean;\n requireMarking?: number;\n imageOptions?: ImageOptions;\n showInsightsMask?: boolean;\n showCollectionMask?: boolean;\n showVideoCount?: boolean;\n}\n\nexport function SharedObjectImage(props: SharedObjectImageProps): JSX.Element {\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (!el || !props.fixedHeight)\n return;\n\n el.style.width = `${el.offsetHeight * getImageRatio(props.object)}px`;\n }, []);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object);\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n return (\n <div className='d-flex align-items-center justify-content-center w-100 h-100'>\n <div ref={ref} className={props.fixedHeight ? 'h-100' : 'w-100'}>\n {useVideoThumbnail &&\n <div className={`${styles.thumbnailContainer} position-relative`}>\n {props.showInsightsMask && <InsightsMask />}\n <AppLink appLink={props.appLink}>\n <VideoThumbnail\n video={props.object}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideDuration\n hideMask\n />\n </AppLink>\n {!!props.requireMarking && (\n <div className={`${props.showInsightsMask && styles.requireMarking} position-absolute bottom-0 end-0 z-1 m-2`}>\n <div className={`${styles.badge} d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n </div>\n )}\n </div>\n }\n {!useVideoThumbnail &&\n <>\n {'videos' in (props.object as Playlist | Series) ? (\n <CollectionThumbnail\n collection={props.object}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n showMask={props.showCollectionMask}\n showVideoCount={props.showVideoCount}\n />\n ) : (\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n className={imageClassName}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n >\n {imageFallbackComponent}\n </BaseImage>\n )}\n </>\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailTitle\":\"OsWjL\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './collection-thumbnail-title.scss';\n\ninterface BaseCollectionThumbnailTitleProps {\n title: string;\n}\n\nfunction BaseCollectionThumbnailTitle(props: BaseCollectionThumbnailTitleProps): JSX.Element {\n return (\n <h3 title={props.title} className='h6'>{props.title}</h3>\n );\n}\n\ninterface CollectionThumbnailTitleProps extends BaseCollectionThumbnailTitleProps {\n appLink: Core.AppLink;\n}\n\nexport function CollectionThumbnailTitle(props: CollectionThumbnailTitleProps) {\n if (!props.appLink) {\n return (\n <BaseCollectionThumbnailTitle {...props} />\n );\n }\n \n return (\n <AppLink appLink={props.appLink} className={`${styles.thumbnailTitle}`}>\n <BaseCollectionThumbnailTitle {...props} />\n </AppLink>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"M4zat\",\"mask\":\"r0Ztg\",\"thumbnailContainer\":\"uD9dz\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\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 { CollectionThumbnailTitle } from 'libs/shared/components/thumbnails/collection/title/CollectionThumbnailTitle';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Playlist, Series } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './collection-thumbnail.scss';\n\nconst namespace = 'shared.collectionThumbnail';\n\ntype SupportedContentType = Playlist | Series;\n\ninterface CollectionThumbnailProps {\n appLink?: Core.AppLink\n collection: SupportedContentType;\n imageOptions?: ImageOptions;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showMask?: boolean;\n showVideoCount?: boolean;\n title?: string;\n titleAppLink?: Core.AppLink;\n subText?: string;\n subTextAppLink?: Core.AppLink;\n hoverText?: string;\n}\n\nexport function CollectionThumbnail(props: CollectionThumbnailProps) {\n function getFirstVideo() {\n let collectionVideos = props.collection?.videos;\n\n if (!collectionVideos)\n return;\n\n if (!collectionVideos.count && props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.clips.count)\n collectionVideos = playlist.clips;\n\n if (playlist.interactives.count)\n collectionVideos = playlist.interactives;\n }\n\n return ArrayHelper.first(collectionVideos.data);\n }\n\n function getVideoCount() {\n let totalCount = 0;\n\n if (props.collection.videos && props.collection.videos.count) {\n totalCount += props.collection.videos.count;\n }\n\n if (props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.interactives?.count)\n totalCount += playlist.interactives.count;\n\n if (playlist.clips?.count)\n totalCount += playlist.clips.count;\n }\n\n return totalCount;\n }\n\n function getEntityType(collection: SupportedContentType) {\n if (MasterTypeHelper.isType<Playlist>(collection, MasterType.Playlist)) {\n return EntityType.Playlist;\n }\n\n if (MasterTypeHelper.isType<Series>(collection, MasterType.Series)) {\n return EntityType.Series;\n }\n }\n\n const firstVideo = getFirstVideo();\n const videoCount = getVideoCount();\n const showTexts = props.title?.length || props.subText?.length;\n\n const analyticsData = {\n id: props.collection.id.toString(),\n name: props.collection.name,\n\n ...props.analyticsData\n };\n\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: getEntityType(props.collection),\n \n ...props.analyticsOptions\n };\n\n return (\n <div>\n <div className={`position-relative ${styles.thumbnailContainer} z-1`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {props.showMask &&\n <div className={`${styles.mask} position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none`}>\n <div className={`${styles.badge} d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2`}>\n <SvgContainer svgName={cvSvgLibrary.Play} className='svg-container text-white' />\n <p className='d-inline fw-medium text-white mb-0'>\n {props.hoverText?.length ?\n <span>{props.hoverText}</span> :\n <Text namespace={namespace} phrase='playAll' />\n }\n </p>\n </div>\n </div>\n }\n\n {firstVideo &&\n <VideoThumbnail\n video={firstVideo}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n hideRating\n hideDuration\n hideVideoTypeBadge\n />\n }\n\n {!firstVideo &&\n <div className='ratio ratio-16x9 bg-light rounded-3'>\n <div className='d-flex justify-content-center align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.Play} className='w-33 opacity-25 text-gray-400' />\n </div>\n </div>\n }\n\n {props.showVideoCount &&\n <div className={`${styles.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`}>\n <SvgContainer svgName={cvSvgLibrary.Series} className='svg-container text-white me-1' />\n <p className='d-inline fw-semibold text-white mb-0'>\n <Text namespace={namespace} phrase='videos' options={{ count: videoCount, smartCount: videoCount }} />\n </p>\n </div>\n }\n </AppLink>\n\n </div>\n \n {showTexts &&\n <div className='mt-2 d-flex flex-column'>\n {props.subText &&\n <TitleSubText title={props.subText} appLink={props.subTextAppLink}>\n {props.subText}\n </TitleSubText>\n }\n {props.title &&\n <CollectionThumbnailTitle\n title={props.collection.name}\n appLink={props.titleAppLink}\n />\n }\n </div>\n }\n </div>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ShareType } from '../enums/ShareType';\nimport { ShareLink } from '../interfaces/ShareLink';\n\ninterface ShareAvatarProps {\n shareLink: ShareLink;\n classroomName?: string;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n return (\n <div className='d-flex align-items-center'>\n <div className='d-flex align-items-center justify-content-center'>\n <div>\n <IconCircle\n svgName={icons[props.shareLink.type]}\n variant={iconColours[props.shareLink.type]}\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <div className='d-flex flex-column ms-2'>\n <label className='m-0'>{getTitle(props)}</label>\n <span className='text-secondary'>{getSubtitle(props)}</span>\n </div>\n </div>\n </div>\n );\n}\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.School,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'teal',\n [ShareType.Live]: 'purple'\n};\n\nconst titles = {\n [ShareType.Open]: 'Open classroom',\n [ShareType.Link]: 'Link',\n [ShareType.Classroom]: 'Classroom',\n [ShareType.Live]: 'Live'\n};\n\nfunction pluralize(count: number, singular: string, plural: string) {\n return count === 1 ? singular : plural;\n}\n\nfunction getTitle({ shareLink, classroomName }: ShareAvatarProps) {\n if (shareLink.type === ShareType.Classroom && classroomName)\n return classroomName;\n\n return titles[shareLink.type];\n}\n\nfunction getSubtitle({ shareLink }: ShareAvatarProps) {\n if (shareLink.type === ShareType.Classroom) {\n const groupCount = shareLink.recipients?.filter(r => r.recipientTypeId === MasterType.ClassroomGroup).length ?? 0;\n const studentCount = shareLink.recipients?.filter(r => r.recipientTypeId === MasterType.User).length ?? 0;\n\n if (groupCount && studentCount)\n return `${groupCount} ${pluralize(groupCount, 'group', 'groups')}, ${studentCount} ${pluralize(studentCount, 'student', 'students')}`;\n\n if (groupCount)\n return `${groupCount} ${pluralize(groupCount, 'group', 'groups')}`;\n\n if (studentCount)\n return `${studentCount} ${pluralize(studentCount, 'student', 'students')}`;\n\n return `All students in classroom can view`;\n }\n\n if (shareLink.type === ShareType.Open)\n return 'Anyone in my school can view';\n\n if (shareLink.type === ShareType.Link)\n return 'Anyone with a link can view';\n\n if (shareLink.type === ShareType.Live)\n return 'Live now';\n\n return 'Anyone can view for 30 days';\n}","import React from 'react';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ShareAvatar } from 'apps/share-v2/components/ShareAvatar';\nimport { Pincode } from 'apps/share-v2/interfaces/Pincode';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\ninterface ShareOptionsProps {\n sharedObject?: BaseObject;\n shareLink?: ShareLink;\n pinCode?: Pincode;\n}\n\nexport function ShareOptions(props: ShareOptionsProps) {\n console.log('ShareOptions', props);\n\n function onExpandCode() {\n console.log('Expanding code..');\n }\n\n const qrCodeValue = props.shareLink?.link?.shortenedUrl ?? '';\n \n return (\n <div className='mb-4'>\n <div className='d-flex gap-2'>\n\n { props.sharedObject && (\n <div style={{ minWidth: 180 }} className='d-flex flex-column'>\n <SharedObjectImage\n object={props.sharedObject}\n showVideoMetadata\n locationContext={LocationContext.Insights}\n imageOptions={{ size: ImageSize.Medium }}\n showCollectionMask\n showVideoCount\n />\n </div>\n )}\n \n <div className='d-flex flex-column justify-content-end'>\n <div className='flex-grow-1' />\n {props.shareLink && <ShareAvatar shareLink={props.shareLink} />}\n <div className='flex-grow-1' />\n <div className='d-flex gap-2'>\n <IconButton\n svgName={cvSvgLibrary.Share}\n className='btn btn-outline-dark'\n appLink={{\n application: AppChannels.SHARE_V2,\n action: Actions.ShareV2.LINK,\n args: [props.sharedObject?.id],\n params: {\n entityType: props.sharedObject?.type,\n shareId: props.shareLink?.shareId\n }\n }}\n >\n Share a link or embed\n </IconButton>\n <IconButton\n svgName={cvSvgLibrary.Download}\n onClick={() => console.log('QR code..')}\n className='btn btn-outline-dark'\n appLink={{\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.QR_CODE,\n params: {\n value: qrCodeValue\n }\n }}\n >\n QR code\n </IconButton>\n </div>\n </div>\n\n <div className='flex-grow-1' />\n\n {props.pinCode && (\n <div className='border p-3 rounded-3 d-flex flex-column align-items-center'>\n <p>Go to <a href='https://staging.clickview.net/pin' target='_blank' className='text-info'>staging.clickview.net/pin</a> and enter PIN:</p>\n <div className='d-flex align-items-center'>\n <h4 className='mb-0 pb-0 me-1'>{props.pinCode?.code}</h4>\n <CopyToClipboard text={props.pinCode?.code}>\n <IconButton\n svgName={cvSvgLibrary.Copy}\n className='btn'\n />\n </CopyToClipboard>\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n onClick={onExpandCode}\n className='btn'\n />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, Playlist, Series, VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ShareOptions } from 'apps/insights/components/share-options/ShareOptions';\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { getInsightsClipTabs, getInsightsInteractiveTabs, getInsightsPlaylistTabs, getInsightsSeriesTabs, getInsightsVideoTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareRequests } from 'apps/share-v2/flight-requests/ShareRequests';\nimport { Pincode } from 'apps/share-v2/interfaces/Pincode';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\ninterface ShareOptionsViewProps {\n objectId: string;\n typeId: MasterType;\n shareId?: string;\n}\n\nexport function ShareOptionsView(props: ShareOptionsViewProps) {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const shareLink = Flight.useBasicFetch<ShareLink>(props.shareId && ShareRequests.getShareLink(props.shareId));\n const pinCode = Flight.useBasicFetch<Pincode>(props.shareId && ShareRequests.getPincodeByShareId(props.shareId));\n\n const { hasShareFlowV2 } = useSettings(null);\n const { hasPermissions } = usePermissions();\n\n const isVideo = () => [ MasterType.Video, MasterType.Clip, MasterType.Interactive ].includes(props.typeId);\n const isSeries = () => props.typeId === MasterType.Series;\n const isPlaylist = () => props.typeId === MasterType.Playlist;\n\n const videoRequest = isVideo() && VideoHelper.getVideoRequest(props.objectId, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const seriesRequest = isSeries() && SeriesRequests.series(props.objectId);\n const series = Flight.useBasicFetch<Series>(seriesRequest);\n\n const playlistRequest = isPlaylist() && PlaylistRequests.getPlaylist(props.objectId);\n const playlist = Flight.useBasicFetch<Playlist>(playlistRequest);\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams\n };\n\n useLockContentWidth();\n useSetPageMetadata({ title: video.data?.name ?? series.data?.name ?? playlist.data?.name });\n useHandleObjectError([ video, series, playlist ]);\n\n function getInsightsTabs() {\n if (props.typeId === MasterType.Interactive)\n return getInsightsInteractiveTabs(props.objectId, 'shareOptions', params, hasShareFlowV2);\n\n if (props.typeId === MasterType.Clip)\n return getInsightsClipTabs(props.objectId, 'shareOptions', params, hasShareFlowV2);\n\n if (props.typeId === MasterType.Video)\n return getInsightsVideoTabs(props.objectId, 'shareOptions', params, hasShareFlowV2);\n\n if (props.typeId === MasterType.Series)\n return getInsightsSeriesTabs(props.objectId, 'shareOptions', params);\n\n if (props.typeId === MasterType.Playlist)\n return getInsightsPlaylistTabs(props.objectId, 'shareOptions', params);\n }\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={video.data ?? series.data ?? playlist.data}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsTabs()}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n analyticsWebUrl={config.data?.analyticsWebUrl}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n />\n <ShareOptions\n sharedObject={video.data ?? series.data ?? playlist.data}\n shareLink={shareLink.data}\n pinCode={pinCode.data}\n />\n <div className='d-flex align-items-center'>\n <h3 className='p-0 m-0'>Students who have viewed this video</h3>\n {shareLink.data?.type === ShareType.Classroom && (\n <IconButton\n svgName={cvSvgLibrary.Plus}\n onClick={() => console.log('Add new student..')}\n className='btn btn-outline-dark ms-auto'\n >\n Add new student\n </IconButton>\n )}\n </div>\n <div className='border rounded-1 d-flex flex-column mt-3'>\n <div className='d-flex flex-row border-bottom p-2'>\n <h5 className='w-25'>Name</h5>\n <h5 className='w-25'>Views</h5>\n <h5 className='w-50'>Engagement</h5>\n </div>\n <div className='d-flex flex-column justify-content-center align-items-center p-5'>\n <h3 className='mt-3 mb-3'>⏱️ Waiting for students to view...</h3>\n </div>\n </div>\n </div>\n );\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { CreateShareLinkRequest } from 'apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\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 scopeId?: string;\n}\n\nexport const ShareRequests = {\n createShareLink(\n data: CreateShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2:link',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [\n `share:link:object:${data.objectId}`,\n `privacy:${data.objectId}`,\n 'sent:shares',\n 'get:share-v2:shares:object'\n ],\n success,\n error,\n always\n };\n },\n\n getShareLink(\n shareId: string,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `get:share-v2:link:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSharesByObjectId(\n objectId: string | number,\n success?: (shares: ShareLink[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<ShareLink>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const adaptedParams = {\n scopeId: params.scopeId,\n limit: params.limit || 25,\n offset: parseInt(params.cursor) || 0\n };\n\n const key = Object.values(adaptedParams).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', adaptedParams),\n key: `sent:shares-v2:${key}`,\n formatData: (response: ShareLink[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: adaptedParams.offset + response.length\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n createPincode(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: 'create:share-v2:pincode',\n type: HttpVerbs.POST\n };\n },\n\n getPincode(code: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\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":["namespace","BASE_IMAGE_CLASS_NAME","InsightsMask","className","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","useVideoThumbnail","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","type","svgContainerClassName","url","getBgColorClass","name","extraClasses","getImageProps","showInsightsMask","AppLink","appLink","VideoThumbnail","video","imageOptions","textPosition","ThumbnailTextPosition","hideDuration","hideMask","requireMarking","Text","phrase","options","smartCount","CollectionThumbnail","collection","analyticsData","id","analyticsOptions","entity","ShareViewHelper","actionType","location","locationContext","showMask","showCollectionMask","showVideoCount","BaseImage","data","defaultProps","size","BaseCollectionThumbnailTitle","title","CollectionThumbnailTitle","firstVideo","collectionVideos","videos","count","playlist","clips","interactives","ArrayHelper","getFirstVideo","videoCount","totalCount","getVideoCount","showTexts","length","subText","toString","MasterTypeHelper","preventFocus","SvgContainer","svgName","hoverText","hideRating","hideVideoTypeBadge","TitleSubText","subTextAppLink","titleAppLink","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","useLockContentWidth","ShareAvatar","IconCircle","icons","shareLink","variant","iconColours","textVariant","svgWrapperClassName","classroomName","ShareType","titles","groupCount","recipients","filter","r","recipientTypeId","studentCount","pluralize","getSubtitle","singular","plural","ShareOptions","console","log","qrCodeValue","link","shortenedUrl","sharedObject","minWidth","showVideoMetadata","IconButton","application","action","args","params","entityType","shareId","onClick","value","pinCode","href","target","code","CopyToClipboard","text","ShareOptionsView","config","ConfigRequests","ShareRequests","hasShareFlowV2","useSettings","hasPermissions","usePermissions","videoRequest","includes","objectId","seriesRequest","SeriesRequests","series","playlistRequest","PlaylistRequests","audienceAppLinkParams","dateRangeAppLinkParams","useSetPageMetadata","InsightsHeader","tabs","hasAnalytics","PermissionName","analyticsWebUrl","normalizeOptions","createShareLink","success","error","always","key","invalidationKeys","getShareLink","getSharesByObjectId","getSentShares","adaptedParams","scopeId","limit","offset","parseInt","cursor","Object","values","formatData","response","pagination","cursors","next","normalize","createPincode","getPincode","getPincodeByShareId","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","Symbol","iterator","constructor","prototype","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","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","_key","concat","event","_this$props","children","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/2640-536c550749-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 { 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 onClickSaveLink: (data: UpdateShareRequest, onError: () => void) => void;\n onClickCancel: () => void;\n}\n\nfunction ShareSettingsForm(): 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 <InstantFeedbackField />\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 <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 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","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":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3036],{54405:(e,a,t)=>{t.d(a,{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}}}},9566:(e,a,t)=>{t.d(a,{G:()=>d,V:()=>m});var n=t(23481),i=t(110),r=t(35223),s=t(14070),o=t(97291),l=t(93975),c=n.T.encloseNamespace("myShares.demoInsights"),d={share:{shareId:"demo-insights",type:l.y.Link},sharedObject:null,shareRecipients:null,dateShared:i.O.subtract(new Date,7,"days").toISOString(),viewCount:23},u={application:o.O.MY_SHARES,action:s.e.MyShares.INTERACTIVE_OVERVIEW_DEMO},m={svgName:r.vn.Analytics,label:c("demoInsights"),appLink:u,group:"insights",className:"btn btn-outline-dark"}},30475:(e,a,t)=>{t.r(a),t.d(a,{InteractiveInsightsOverviewDemoView:()=>D});var n=t(32735),i=t(23481),r=t(2948),s=t(20354),o=t(75896),l=t(26025),c=t(38143),d=t(39151),u=t(54405),m=t(31949),v=t(93322),p=t(79612),h=t(88630),g=t(26203),y=t(54948),E=t(82602),f=t(65853),k=t(91693),S=t(83345),A=t(36532),b=t(49080),I=t(35223),O=t(86099),N=t(24758),w=t(9566),T="insights.shareInfoDemo",M=i.T.encloseNamespace(T);function L(e){var a=e.video&&f.R.getIconAndText({entity:e.video,entityTypeId:e.video.typeId,hasStudentExp:!1,isPasswordProtected:null,linkExpireDate:null,privacy:{privacy:"public",overrideRestrictions:!1},status:b.F.Active,yearGroups:null});return n.createElement("div",{className:"mb-4"},n.createElement("h2",{className:"h4"},n.createElement(S.x,{namespace:T,phrase:"shareInfo"})),n.createElement("div",{className:"d-flex border p-3 rounded-3 align-items-center justify-content-between"},n.createElement("div",{className:"d-flex align-items-center gap-2"},n.createElement(N.A,{shareRecipients:null,imageCdnUrl:e.imageCdnUrl,hasShareLink:!0,maxAvatars:4,shareLinkText:null==a?void 0:a.text}),"·",n.createElement("p",{className:"mb-0"},(0,E.WU)(w.G.dateShared)),"·",n.createElement("p",{className:"mb-0"},n.createElement(S.x,{namespace:T,phrase:"views",options:{count:w.G.viewCount}}))),n.createElement(A.u,{id:"shareButton",title:M("demoOnly"),spanHack:!0},n.createElement(k.h,{appLink:(0,O.YK)(e.video),svgName:I.vn.Share,className:"btn btn-outline-dark pointer-events-none"},n.createElement(S.x,{namespace:T,phrase:"share"})))))}var R=t(10447),_=t(14070),j=t(97291);function C(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}var x=i.T.encloseNamespace("insights.interactiveInsightsOverviewView");function D(){var e,a,t,i,E,f,k,S=(f=(0,r.D)(c.g.ANONYMISE_USERS),k=1,function(e){if(Array.isArray(e))return e}(f)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,i,r,s,o=[],l=!0,c=!1;try{if(r=(t=t.call(e)).next,0===a){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=r.call(t)).done)&&(o.push(n.value),o.length!==a);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(f,k)||function(e,a){if(e){if("string"==typeof e)return C(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)?C(e,a):void 0}}(f,k)||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];(0,v.F)();var A=s.a.useBasicFetch(m.N.currentUser()),b=s.a.useBasicFetch(d.L.config()),I=s.a.useBasicFetch(u.X.interactiveMetadata()),O=s.a.useBasicFetch(u.X.interactive()),N=l.B.getAudienceAppLinkParams(),w=l.B.getDateRangeAppLinkParams(),T=s.a.useBasicFetch(u.X.interactiveResults()),M=1===(null===(e=N.classrooms)||void 0===e?void 0:e.length)&&!(null===(a=N.classroomGroups)||void 0===a?void 0:a.length),D=s.a.useBasicFetch(M&&h.F.getClassroomStudents(o.m.first(N.classrooms))),F=s.a.useBasicFetch(u.X.aggregateHeatmap()),V=s.a.useBasicFetch(u.X.videoViews());(0,p.M)({title:I.data?x("pageTitle",{video:null===(t=I.data)||void 0===t?void 0:t.name}):null});var B=A.data&&b.data&&I.data&&O.data&&T.data&&(!M||D.data)&&F.data&&!!V.data,U=Object.assign(Object.assign({},N),w),H=function(e,a){return{resultsAppLink:{application:j.O.MY_SHARES,action:_.e.MyShares.INTERACTIVE_STUDENTS_DEMO,args:[""],params:a},questionsAppLink:{application:j.O.MY_SHARES,action:_.e.MyShares.INTERACTIVE_QUESTIONS_DEMO,args:[""],params:a},heatmapAppLink:{application:j.O.MY_SHARES,action:_.e.MyShares.INTERACTIVE_HEATMAP_DEMO,args:[""],params:a}}}(0,U);return n.createElement("div",{className:"px-3"},n.createElement(g.j,{video:I.data,tabs:(0,R.aq)(null===(i=I.data)||void 0===i?void 0:i.id,"insights",U),dateRangeAppLinkParams:w,isDemo:!0}),n.createElement(L,{video:I.data,imageCdnUrl:null===(E=b.data)||void 0===E?void 0:E.imageCdnUrl}),n.createElement(y.m,{aggregateEngagement:F.data,interactive:O.data,interactiveMetadata:I.data,classroomStudents:D.data,results:T.data,videoViews:V.data,config:b.data,interactiveInsightsAppLinks:H,classroomFilterOnly:!1,anonymiseUsers:S,params:U,hasDataLoaded:B,hasShared:!0}))}},93975:(e,a,t)=>{var n;t.d(a,{y:()=>n}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(n||(n={}))}}]);
2
- //# sourceMappingURL=3036-d18c598435-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/3036-d18c598435-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/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/ShareInfoDemo.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/demo/overview/InteractiveInsightsOverviewDemoView.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/demo/overview/InteractiveInsightsOverviewDemoUtils.ts","file:///app/packages/projects/lite/src/apps/share-v2/enums/ShareType.ts"],"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};","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","import React from 'react';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getShareAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\nimport { DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nconst namespace = 'insights.shareInfoDemo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ShareInfoDemoProps {\n video: VideoTypes;\n imageCdnUrl: string;\n}\n\nexport function ShareInfoDemo(props: ShareInfoDemoProps) {\n const shareLinkText = props.video &&\n ShareLinkHelper.getIconAndText({\n entity: props.video,\n entityTypeId: props.video.typeId,\n hasStudentExp: false,\n isPasswordProtected: null,\n linkExpireDate: null,\n privacy: {\n privacy: 'public',\n overrideRestrictions: false\n },\n status: ShareLinkStatus.Active,\n yearGroups: null\n });\n\n return (\n <div className='mb-4'>\n <h2 className='h4'><Text namespace={namespace} phrase='shareInfo' /></h2>\n\n <div className='d-flex border p-3 rounded-3 align-items-center justify-content-between'>\n <div className='d-flex align-items-center gap-2'>\n <SharedToPill\n shareRecipients={null}\n imageCdnUrl={props.imageCdnUrl}\n hasShareLink={true}\n maxAvatars={4}\n shareLinkText={shareLinkText?.text}\n />\n ·\n <p className='mb-0'>{formatDate(DEMO_INSIGHTS_SHARE.dateShared)}</p>\n ·\n <p className='mb-0'><Text namespace={namespace} phrase='views' options={{ count: DEMO_INSIGHTS_SHARE.viewCount }} /></p>\n </div>\n <Tooltip id='shareButton' title={getPhrase('demoOnly')} spanHack>\n <IconButton\n appLink={getShareAppLink(props.video)}\n svgName={cvSvgLibrary.Share}\n className='btn btn-outline-dark pointer-events-none'\n >\n <Text namespace={namespace} phrase='share' />\n </IconButton>\n </Tooltip>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BasePaginatedCollection, Config, CurrentUser, Engagement, Interactive, InteractiveMetadata, InteractiveResultSet, User } from 'libs/shared/interfaces';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InteractiveInsightsOverview } from 'apps/my-shares/components/interactive-insights-overview/InteractiveInsightsOverview';\nimport { ShareInfoDemo } from 'apps/my-shares/components/share-info/ShareInfoDemo';\nimport { getInsightsDemoInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\nimport { getInteractiveInsightsAppLinks } from 'apps/my-shares/views/demo/overview/InteractiveInsightsOverviewDemoUtils';\n\nconst namespace = 'insights.interactiveInsightsOverviewView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function InteractiveInsightsOverviewDemoView() {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(InsightsDemoRequests.interactive());\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const results = Flight.useBasicFetch<InteractiveResultSet>(InsightsDemoRequests.interactiveResults());\n\n const classroomFilterOnly =\n audienceAppLinkParams.classrooms?.length === 1 && !audienceAppLinkParams.classroomGroups?.length;\n const classroomStudents = Flight.useBasicFetch<BasePaginatedCollection<User>>(classroomFilterOnly &&\n ClassroomRequests.getClassroomStudents(ArrayHelper.first(audienceAppLinkParams.classrooms)));\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n InsightsDemoRequests.aggregateHeatmap()\n );\n\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(\n InsightsDemoRequests.videoViews()\n );\n\n useSetPageMetadata({ title: interactiveMetadata.data ? getPhrase('pageTitle', { video: interactiveMetadata.data?.name }) : null });\n\n const hasDataLoaded =\n currentUser.data &&\n config.data &&\n interactiveMetadata.data &&\n interactive.data &&\n results.data &&\n (!classroomFilterOnly || classroomStudents.data) &&\n aggregateEngagement.data &&\n !!videoViews.data;\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams\n };\n const interactiveInsightsAppLinks = getInteractiveInsightsAppLinks(\n '',\n params\n );\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={interactiveMetadata.data}\n tabs={getInsightsDemoInteractiveTabs(interactiveMetadata.data?.id, 'insights', params)}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n isDemo\n />\n\n <ShareInfoDemo video={interactiveMetadata.data} imageCdnUrl={config.data?.imageCdnUrl} />\n\n <InteractiveInsightsOverview\n aggregateEngagement={aggregateEngagement.data}\n interactive={interactive.data}\n interactiveMetadata={interactiveMetadata.data}\n classroomStudents={classroomStudents.data}\n results={results.data}\n videoViews={videoViews.data}\n config={config.data}\n interactiveInsightsAppLinks={interactiveInsightsAppLinks}\n classroomFilterOnly={false}\n anonymiseUsers={anonymiseUsers}\n params={params}\n hasDataLoaded={hasDataLoaded}\n hasShared={true}\n />\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getInteractiveInsightsAppLinks(id: string, params?: HashObject) {\n return {\n resultsAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_DEMO,\n args: [id],\n params\n },\n questionsAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_DEMO,\n args: [id],\n params\n },\n heatmapAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_DEMO,\n args: [id],\n params\n }\n };\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}"],"names":["InsightsDemoRequests","interactive","url","key","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","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","ShareInfoDemo","props","shareLinkText","video","ShareLinkHelper","entity","entityTypeId","typeId","hasStudentExp","isPasswordProtected","linkExpireDate","privacy","overrideRestrictions","status","ShareLinkStatus","yearGroups","Text","phrase","SharedToPill","imageCdnUrl","hasShareLink","maxAvatars","text","options","count","Tooltip","id","title","spanHack","IconButton","InteractiveInsightsOverviewDemoView","anonymiseUsers","SharedViewModelKeys","useLockContentWidth","currentUser","UserRequests","config","ConfigRequests","audienceAppLinkParams","dateRangeAppLinkParams","results","classroomFilterOnly","classrooms","length","classroomGroups","classroomStudents","ClassroomRequests","ArrayHelper","aggregateEngagement","useSetPageMetadata","data","name","hasDataLoaded","params","interactiveInsightsAppLinks","resultsAppLink","args","questionsAppLink","heatmapAppLink","getInteractiveInsightsAppLinks","InsightsHeader","tabs","isDemo","InteractiveInsightsOverview","hasShared","ShareType"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4229],{5255:(t,e,r)=>{r.d(e,{Y:()=>o});var n=r(20354),a=r(30439);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function o(t){var e,r=n.a.useBasicFetch(t&&a.o.getAnonSessions(t));return(null===(e=r.data)||void 0===e?void 0:e.length)?r.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(r={},n=e.sessionId,a=e,(n=function(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}(n))in r?Object.defineProperty(r,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[n]=a,r));var r,n,a}),{}):{}}},41196:(t,e,r)=>{r.d(e,{W:()=>s});var n=r(20354),a=r(71553),i=r(20768),o=r(31949);function s(t,e,r){var s,c=n.a.useBasicFetch(o.N.currentUser()),u=n.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),l=n.a.useBasicFetch(!!(null===(s=u.data)||void 0===s?void 0:s.interactiveId)&&i.b.interactive(u.data.interactiveId)),d=!!c.data&&!!l.data&&!!e;return n.a.useBasicFetch(d&&a.I.interactiveResultSet(u.data.interactiveId,u.data.id,c.data,e,r))}},74901:(t,e,r)=>{function n(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}r.d(e,{K:()=>i});var i=function(t){var e=[],r=[];return t.users&&e.push.apply(e,n(t.users)),t.classrooms&&r.push.apply(r,n(t.classrooms)),t.classroomGroups&&r.push.apply(r,n(t.classroomGroups)),{userId:e,groupId:r}}},94644:(t,e,r)=>{r.d(e,{r:()=>l});var n=r(50242),a=r(81886),i=r(67058),o=r(14553),s=r(49267),c=r(49075),u={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:s.a,privacy:o.q},badRequest:c._,internalServerError:c._};function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i;i="number"==typeof t?t:t.status;var o=Object.assign(Object.assign({},u),e);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==n.o.InternalServer?i!==n.o.NotFound?i!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new o.badRequest):r.forbidden||a.Q.Ry.throw(new o.forbidden.privacy):r.notFound||a.Q.Ry.throw(new o.notFound):r.internalServerError||a.Q.Ry.throw(new c._))}}},91286:(t,e,r)=>{r.d(e,{v:()=>o});var n=r(32735),a=r(94644);function i(t){return t.map((function(t){return t.statusCode})).join(":")}function o(t,e,r){var o=Array.isArray(t)?t:[t];(0,n.useEffect)((function(){o.forEach((function(t){(0,a.r)(t.statusCode,e,r)}))}),[i(o),e,r])}},24191:(t,e,r)=>{r.r(e),r.d(e,{InteractiveInsightsQuestionsView:()=>B});var n=r(32735),a=r(23481),i=r(2948),o=r(20354),s=r(5255),c=r(41196),u=r(26025),l=r(74901),d=r(40003),v=r(30439),f=r(38143),y=r(16714),b=r(39151),m=r(20768),h=r(91286),p=r(93322),g=r(22902),S=r(79612),I=r(37802),w=r(26203),A=r(68536),j=r(10447);function F(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var O=a.T.encloseNamespace("shared.interactiveInsightsQuestionsView");function B(t){var e,r,a,B,E,R,k=(E=(0,i.D)(f.g.ANONYMISE_USERS),R=1,function(t){if(Array.isArray(t))return t}(E)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,a,i,o,s=[],c=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==e);c=!0);}catch(t){u=!0,a=t}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return s}}(E,R)||function(t,e){if(t){if("string"==typeof t)return F(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?F(t,e):void 0}}(E,R)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,p.F)();var C=(0,I.r)(null).hasShareFlowV2,_=(0,g.T)().hasPermissions,q=o.a.useBasicFetch(b.L.config()),L=o.a.useBasicFetch(m.b.interactiveMetadata(t.interactiveId)),M=o.a.useBasicFetch((null===(e=L.data)||void 0===e?void 0:e.interactiveId)&&m.b.interactive(L.data.interactiveId)),P=o.a.useBasicFetch(v.o.getShareLinkByObjectId(t.interactiveId)),Q=(0,s.Y)(null===(r=P.data)||void 0===r?void 0:r.id),U=u.B.getAudienceAppLinkParams(),N=u.B.getDateRangeAppLinkParams(),T=(0,c.W)(t.interactiveId,Object.assign(Object.assign({},(0,d.wO)((0,d.Hb)(),N)),(0,l.K)(U)),!0);(0,S.M)({title:L.data?O("pageTitle",{video:null===(a=L.data)||void 0===a?void 0:a.name}):null}),(0,h.v)([M,L,T]);var V=M.data&&L.data&&!!T.data,W=Object.assign(Object.assign({},U),N);return n.createElement("div",{className:"px-3"},n.createElement(w.j,{dateRangeAppLinkParams:N,tabs:(0,j.kj)(t.interactiveId,"questions",W),video:L.data,hasAnalytics:_(y.C.ViewCustomerAnalytics),analyticsWebUrl:null===(B=q.data)||void 0===B?void 0:B.analyticsWebUrl,hasShareFlowV2:C}),n.createElement(A.x,{interactive:M.data,interactiveMetadata:L.data,interactionId:t.interactionId,config:q.data,sortBy:t.sortBy,isFetching:T.isFetching||M.isFetching,anonymiseUsers:k,results:T.data,hasDataLoaded:V,anonSessions:Q}))}}}]);
2
- //# sourceMappingURL=4229-75ba28a266-lite.chunk.js.map