@clickview/lite 0.0.24-rc.4 → 0.0.24

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 (194) hide show
  1. package/dist/css/11.chunk.css.map +1 -1
  2. package/dist/css/12.chunk.css.map +1 -1
  3. package/dist/css/13.chunk.css.map +1 -1
  4. package/dist/css/14.chunk.css.map +1 -1
  5. package/dist/css/15.chunk.css.map +1 -1
  6. package/dist/css/16.chunk.css.map +1 -1
  7. package/dist/css/17.chunk.css.map +1 -1
  8. package/dist/css/18.chunk.css.map +1 -1
  9. package/dist/css/20.chunk.css.map +1 -1
  10. package/dist/css/29.chunk.css.map +1 -1
  11. package/dist/css/3.chunk.css.map +1 -1
  12. package/dist/css/30.chunk.css.map +1 -1
  13. package/dist/css/31.chunk.css.map +1 -1
  14. package/dist/css/33.chunk.css.map +1 -1
  15. package/dist/css/38.chunk.css +11 -34
  16. package/dist/css/38.chunk.css.map +1 -1
  17. package/dist/css/4.chunk.css +3 -3
  18. package/dist/css/44.chunk.css +11 -3
  19. package/dist/css/44.chunk.css.map +1 -1
  20. package/dist/css/45.chunk.css +38 -0
  21. package/dist/css/45.chunk.css.map +1 -0
  22. package/dist/css/5.chunk.css.map +1 -1
  23. package/dist/css/52.chunk.css +52 -0
  24. package/dist/css/52.chunk.css.map +1 -0
  25. package/dist/css/59.chunk.css +14 -0
  26. package/dist/css/59.chunk.css.map +1 -0
  27. package/dist/css/6.chunk.css.map +1 -1
  28. package/dist/css/60.chunk.css +43 -0
  29. package/dist/css/60.chunk.css.map +1 -0
  30. package/dist/en.json +1 -1
  31. package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
  32. package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
  33. package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
  34. package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
  35. package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
  36. package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
  37. package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
  38. package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
  39. package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
  40. package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
  41. package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
  42. package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
  43. package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
  44. package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
  45. package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
  46. package/dist/projects/lite/src/app.d.ts +1 -0
  47. package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
  48. package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
  49. package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
  50. package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
  51. package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
  52. package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
  53. package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
  54. package/dist/scripts/1.chunk.js.map +1 -1
  55. package/dist/scripts/10.chunk.js +484 -1203
  56. package/dist/scripts/10.chunk.js.map +1 -1
  57. package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
  58. package/dist/scripts/11.chunk.js +289 -1388
  59. package/dist/scripts/11.chunk.js.map +1 -1
  60. package/dist/scripts/12-72a5373486.chunk.js +1 -0
  61. package/dist/scripts/12.chunk.js +1371 -283
  62. package/dist/scripts/12.chunk.js.map +1 -1
  63. package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
  64. package/dist/scripts/13.chunk.js +361 -394
  65. package/dist/scripts/13.chunk.js.map +1 -1
  66. package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
  67. package/dist/scripts/14.chunk.js +793 -332
  68. package/dist/scripts/14.chunk.js.map +1 -1
  69. package/dist/scripts/15-90226fb996.chunk.js +1 -0
  70. package/dist/scripts/15.chunk.js +295 -214
  71. package/dist/scripts/15.chunk.js.map +1 -1
  72. package/dist/scripts/16-913b2535ea.chunk.js +1 -0
  73. package/dist/scripts/16.chunk.js +530 -434
  74. package/dist/scripts/16.chunk.js.map +1 -1
  75. package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
  76. package/dist/scripts/17.chunk.js +296 -170
  77. package/dist/scripts/17.chunk.js.map +1 -1
  78. package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
  79. package/dist/scripts/18.chunk.js +265 -199
  80. package/dist/scripts/18.chunk.js.map +1 -1
  81. package/dist/scripts/19-2380200cfb.chunk.js +1 -0
  82. package/dist/scripts/19.chunk.js +7 -3
  83. package/dist/scripts/19.chunk.js.map +1 -1
  84. package/dist/scripts/2-53e37c2047.chunk.js +1 -0
  85. package/dist/scripts/2.chunk.js +18673 -622
  86. package/dist/scripts/2.chunk.js.map +1 -1
  87. package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
  88. package/dist/scripts/20.chunk.js +1824 -221
  89. package/dist/scripts/20.chunk.js.map +1 -1
  90. package/dist/scripts/21-ef4a226771.chunk.js +1 -0
  91. package/dist/scripts/22-99c04e164f.chunk.js +1 -0
  92. package/dist/scripts/23-028eb81a43.chunk.js +1 -0
  93. package/dist/scripts/23.chunk.js +1 -1
  94. package/dist/scripts/23.chunk.js.map +1 -1
  95. package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
  96. package/dist/scripts/24.chunk.js.map +1 -1
  97. package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
  98. package/dist/scripts/25.chunk.js.map +1 -1
  99. package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
  100. package/dist/scripts/26.chunk.js +1 -1
  101. package/dist/scripts/26.chunk.js.map +1 -1
  102. package/dist/scripts/27-e844268f38.chunk.js +1 -0
  103. package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
  104. package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
  105. package/dist/scripts/29.chunk.js +435 -500
  106. package/dist/scripts/29.chunk.js.map +1 -1
  107. package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
  108. package/dist/scripts/3.chunk.js +625 -18676
  109. package/dist/scripts/3.chunk.js.map +1 -1
  110. package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
  111. package/dist/scripts/30.chunk.js +634 -429
  112. package/dist/scripts/30.chunk.js.map +1 -1
  113. package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
  114. package/dist/scripts/31.chunk.js +371 -670
  115. package/dist/scripts/31.chunk.js.map +1 -1
  116. package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
  117. package/dist/scripts/32.chunk.js +27 -54
  118. package/dist/scripts/32.chunk.js.map +1 -1
  119. package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
  120. package/dist/scripts/33.chunk.js +700 -312
  121. package/dist/scripts/33.chunk.js.map +1 -1
  122. package/dist/scripts/34-2de007b628.chunk.js +1 -0
  123. package/dist/scripts/34.chunk.js +3 -3
  124. package/dist/scripts/34.chunk.js.map +1 -1
  125. package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
  126. package/dist/scripts/36-bc85df33de.chunk.js +1 -0
  127. package/dist/scripts/36.chunk.js.map +1 -1
  128. package/dist/scripts/37-e26652840b.chunk.js +1 -0
  129. package/dist/scripts/37.chunk.js +288 -464
  130. package/dist/scripts/37.chunk.js.map +1 -1
  131. package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
  132. package/dist/scripts/39-6549f483c6.chunk.js +1 -0
  133. package/dist/scripts/39.chunk.js +1 -1
  134. package/dist/scripts/39.chunk.js.map +1 -1
  135. package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
  136. package/dist/scripts/4.chunk.js +259 -1021
  137. package/dist/scripts/4.chunk.js.map +1 -1
  138. package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
  139. package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
  140. package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
  141. package/dist/scripts/42.chunk.js.map +1 -1
  142. package/dist/scripts/43-1141245420.chunk.js +1 -0
  143. package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
  144. package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
  145. package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
  146. package/dist/scripts/47-ab30686138.chunk.js +1 -0
  147. package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
  148. package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
  149. package/dist/scripts/5-974660e17b.chunk.js +1 -0
  150. package/dist/scripts/5.chunk.js +1017 -259
  151. package/dist/scripts/5.chunk.js.map +1 -1
  152. package/dist/scripts/50-af699c531e.chunk.js +1 -0
  153. package/dist/scripts/51-aa7b835007.chunk.js +1 -0
  154. package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
  155. package/dist/scripts/53-d75ca53045.chunk.js +1 -0
  156. package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
  157. package/dist/scripts/55-ed637c4847.chunk.js +1 -0
  158. package/dist/scripts/55.chunk.js.map +1 -1
  159. package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
  160. package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
  161. package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
  162. package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
  163. package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
  164. package/dist/scripts/6.chunk.js +291 -1250
  165. package/dist/scripts/6.chunk.js.map +1 -1
  166. package/dist/scripts/60-5713de53e2.chunk.js +1 -0
  167. package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
  168. package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
  169. package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
  170. package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
  171. package/dist/scripts/65-2322082836.chunk.js +1 -0
  172. package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
  173. package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
  174. package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
  175. package/dist/scripts/7.chunk.js +1 -1
  176. package/dist/scripts/76.chunk.js +3 -3
  177. package/dist/scripts/76.chunk.js.map +1 -1
  178. package/dist/scripts/79.chunk.js +931 -347
  179. package/dist/scripts/79.chunk.js.map +1 -1
  180. package/dist/scripts/8-95563e3d36.chunk.js +1 -0
  181. package/dist/scripts/8.chunk.js +14 -920
  182. package/dist/scripts/8.chunk.js.map +1 -1
  183. package/dist/scripts/80.chunk.js +22 -313
  184. package/dist/scripts/80.chunk.js.map +1 -1
  185. package/dist/scripts/9.chunk.js +320 -17
  186. package/dist/scripts/9.chunk.js.map +1 -1
  187. package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
  188. package/dist/scripts/bundle.js +147 -121
  189. package/dist/scripts/bundle.js.map +1 -1
  190. package/dist/scripts/bundles.json +2 -2
  191. package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
  192. package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
  193. package/dist/scripts/polyfills-2723daf478.min.js +1 -0
  194. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/footer/PreferenceFooter.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/footer/preference-footer.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/index.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/subject-preference-grid.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/SubjectPreferenceItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/contexts/SubjectPreferencesContext.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts"],"names":[],"mappings":"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","file":"scripts/12.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './preference-footer.scss';\r\n\r\ninterface PreferenceFooterProps extends React.PropsWithChildren<{}> {\r\n justify?: 'end' | 'center' | 'between';\r\n}\r\n\r\nPreferenceFooter.defaultProps = {\r\n justify: 'between'\r\n};\r\n\r\nexport function PreferenceFooter(props: PreferenceFooterProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const widthClass = (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS) ? 'w-100' : 'w-75';\r\n\r\n let justifyClass = `justify-content-${props.justify}`;\r\n\r\n return (\r\n <div className={`${widthClass} ${justifyClass} ${styles.preferenceFooter} d-flex px-3`}>\r\n {props.children}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preferenceFooter\":\"cv--preferenceFooter--P29kw\"};","export * from './footer/PreferenceFooter';\r\nexport * from './nav/PreferencesNav';\r\nexport * from './subject-preference-grid/SubjectPreferenceGrid';\r\nexport * from './subject-preference-item/SubjectPreferenceItem';\r\nexport * from './preference-item/PreferenceItem';","import React from 'react';\r\n\r\nimport { ExpandableItemStatus, SelectableItemStatus } from './PreferenceItemStatus';\r\n\r\nimport styles from './preference-item.scss';\r\n\r\ninterface PreferenceItemProps {\r\n name: string;\r\n imageUrl: string;\r\n\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\r\n isDisabled?: boolean;\r\n isSelected: boolean;\r\n hideStatus?: boolean;\r\n radioButton?: boolean;\r\n\r\n isExpandable?: boolean;\r\n expand?: boolean;\r\n selectedChildCount?: number;\r\n\r\n extraClasses?: string;\r\n}\r\n\r\nexport function PreferenceItem(props: PreferenceItemProps): JSX.Element {\r\n function getContainerClass(): string {\r\n let baseClass = styles.preferenceItem;\r\n\r\n if (props.extraClasses)\r\n baseClass += ' ' + props.extraClasses;\r\n\r\n if (props.isDisabled)\r\n baseClass += ' ' + styles.disabled;\r\n\r\n if (props.isSelected && !props.isExpandable)\r\n baseClass += ' ' + styles.selected;\r\n\r\n if (props.hideStatus)\r\n baseClass += ' ' + styles.noBorder;\r\n\r\n return baseClass;\r\n }\r\n\r\n const caretClass = `${styles.expandCaret} ${props.expand ? styles.up : styles.down}`;\r\n\r\n return (\r\n <li\r\n className={getContainerClass()}\r\n onClick={props.onClick}\r\n aria-checked={props.isSelected}\r\n aria-haspopup={props.isExpandable}\r\n role={props.isExpandable ? 'button' : 'checkbox'}\r\n style={{ backgroundImage: `url(${props.imageUrl})` }}\r\n tabIndex={0}\r\n >\r\n <div className={`${styles.textBox} p-2`}>\r\n <p className='m-0 text-truncate'>\r\n {props.name}\r\n <span className={props.isExpandable ? caretClass : ''} />\r\n </p>\r\n\r\n {!props.hideStatus && (\r\n <>{props.isExpandable\r\n ? <ExpandableItemStatus selectedChildrenCount={props.selectedChildCount} />\r\n : <SelectableItemStatus selected={props.isSelected} radioButton={props.radioButton} />\r\n }</>\r\n )}\r\n </div>\r\n </li>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './preference-item.scss';\r\n\r\ninterface ExpandableItemStatusProps {\r\n selectedChildrenCount: number;\r\n}\r\n\r\nexport const ExpandableItemStatus = (props: ExpandableItemStatusProps): JSX.Element => {\r\n if (!props.selectedChildrenCount)\r\n return <></>;\r\n\r\n return (\r\n <div className={`${styles.itemStatus} ${styles.green}`}>\r\n {props.selectedChildrenCount}\r\n </div>\r\n );\r\n};\r\n\r\ninterface SelectableItemStatusProps {\r\n selected: boolean;\r\n radioButton?: boolean;\r\n}\r\n\r\nexport const SelectableItemStatus = (props: SelectableItemStatusProps): JSX.Element => {\r\n let svg;\r\n\r\n if (props.selected)\r\n svg = <SvgContainer svgName={cvSvgLibrary.Check} />;\r\n else if (!props.radioButton)\r\n svg = <SvgContainer svgName={cvSvgLibrary.Plus} />;\r\n else\r\n svg = <>&nbsp;</>;\r\n\r\n return (\r\n <div className={`${styles.itemStatus} ${props.selected ? styles.green : styles.unchecked}`}>\r\n {svg}\r\n </div>\r\n );\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preferenceItem\":\"cv--preferenceItem--1LDb6\",\"expandCaret\":\"cv--expandCaret--3QEWB\",\"down\":\"cv--down--2y-iF\",\"up\":\"cv--up--1kGNY\",\"disabled\":\"cv--disabled--2w4FH\",\"selected\":\"cv--selected--1lSYv\",\"noBorder\":\"cv--noBorder--3Mxuo\",\"textBox\":\"cv--textBox--3HCeK\",\"itemStatus\":\"cv--itemStatus--2msq4\",\"unchecked\":\"cv--unchecked--2VQLv\",\"green\":\"cv--green--AHd64\"};","import * as React from 'react';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { Classification } from 'libs/shared/interfaces';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport { SubjectPreferenceItem } from 'libs/shared/apps/subjects/components/preferences';\r\nimport { SubjectPreferencesContext } from 'libs/shared/apps/subjects/contexts/SubjectPreferencesContext';\r\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\r\n\r\nimport styles from './subject-preference-grid.scss';\r\n\r\nfunction useGetRowItemCapacity(): number {\r\n const viewportWidth = useGetMediaQueryString();\r\n\r\n switch (viewportWidth) {\r\n case MediaQueryStrings.LG:\r\n default:\r\n return 5;\r\n\r\n case MediaQueryStrings.MD:\r\n return 4;\r\n\r\n case MediaQueryStrings.SM:\r\n return 3;\r\n\r\n case MediaQueryStrings.XS:\r\n return 2;\r\n }\r\n}\r\n\r\nfunction isDisabled(subject: ClassificationPreference, expandedSubject: ClassificationPreference): boolean {\r\n if (!expandedSubject || subject.id === expandedSubject.id)\r\n return false;\r\n\r\n if (expandedSubject.children.find(child => child.id === subject.id))\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\ninterface SubjectPreferenceGridRowProps extends SubjectPreferenceGridProps {}\r\n\r\nfunction SubjectPreferenceGridRow(props: SubjectPreferenceGridRowProps): JSX.Element {\r\n const { expandedSubject, selectedSubjects: selections } = React.useContext(SubjectPreferencesContext);\r\n\r\n return (\r\n <>\r\n {props.subjects.map(subject => {\r\n const itemDisabled = isDisabled(subject, expandedSubject);\r\n\r\n let clickHandler = props.onSelect;\r\n\r\n if (subject.isExpandableOption)\r\n clickHandler = props.onExpand;\r\n\r\n if (itemDisabled)\r\n clickHandler = props.onCollapse;\r\n\r\n if (props.hasSelectedBulk)\r\n clickHandler = () => {};\r\n\r\n return (\r\n <SubjectPreferenceItem\r\n key={subject.id}\r\n subject={subject}\r\n selected={!props.hasSelectedBulk && selections.includes(subject.id)}\r\n disabled={props.hasSelectedBulk || itemDisabled}\r\n onClick={(e: React.MouseEvent<HTMLLIElement, MouseEvent>) => clickHandler(subject)}\r\n hasSelectedBulk={props.hasSelectedBulk}\r\n />\r\n );\r\n })}\r\n </>\r\n );\r\n}\r\n\r\ninterface SubjectPreferenceGridProps {\r\n subjects: ClassificationPreference[];\r\n onSelect: (subject: Classification) => void;\r\n onExpand: (subject: Classification) => void;\r\n onCollapse: (subject: Classification) => void;\r\n hasSelectedBulk?: boolean;\r\n}\r\n\r\nexport function SubjectPreferenceGrid(props: SubjectPreferenceGridProps): JSX.Element {\r\n const { subjects, hasSelectedBulk, ...eventHandlers } = props;\r\n const { expandedSubject } = React.useContext(SubjectPreferencesContext);\r\n\r\n const itemsPerRow = useGetRowItemCapacity();\r\n\r\n /**\r\n * This is an array of arrays, where each sub-array is a row of classifications.\r\n * We do this to make sure any sub-grid's of child preference options get rendered in the row\r\n * directly beneath their parent's row.\r\n */\r\n const subjectRows = subjects.reduce((\r\n acc: ClassificationPreference[][], subject: ClassificationPreference, index: number\r\n ) => {\r\n index % itemsPerRow === 0\r\n ? acc.push([subject]) // Start a new row\r\n : ArrayHelper.last(acc).push(subject); // Fill up an existing row\r\n\r\n return acc;\r\n }, []);\r\n\r\n return (\r\n <ul className={styles.grid}>\r\n {subjectRows.map((row, i) => {\r\n const isExpanded = expandedSubject && !!row.find(subject => {\r\n return expandedSubject.id === subject.id && subject.isExpandableOption;\r\n });\r\n\r\n return (\r\n <React.Fragment key={i}>\r\n <SubjectPreferenceGridRow\r\n subjects={row}\r\n hasSelectedBulk={hasSelectedBulk}\r\n {...eventHandlers}\r\n />\r\n\r\n {isExpanded && (\r\n <li className={`${styles.subgrid} m-0`}>\r\n <SubjectPreferenceGrid\r\n subjects={expandedSubject.children as ClassificationPreference[]}\r\n hasSelectedBulk={hasSelectedBulk}\r\n {...eventHandlers}\r\n />\r\n </li>\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </ul>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid\":\"cv--grid--G_RXX\",\"subgrid\":\"cv--subgrid--38ohZ\"};","import * as React from 'react';\r\n\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\nimport { SubjectPreferencesContext } from 'libs/shared/apps/subjects/contexts/SubjectPreferencesContext';\r\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\r\nimport { PreferenceItem } from 'libs/shared/apps/subjects/components/preferences/preference-item/PreferenceItem';\r\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\r\n\r\ninterface SubjectPreferenceItemProps {\r\n subject: ClassificationPreference;\r\n selected: boolean;\r\n disabled?: boolean;\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\r\n extraClasses?: string;\r\n hideStatus?: boolean;\r\n hasSelectedBulk?: boolean;\r\n}\r\n\r\nexport function SubjectPreferenceItem(props: SubjectPreferenceItemProps): JSX.Element {\r\n const context = React.useContext(SubjectPreferencesContext);\r\n\r\n const coverUrl = props.subject.cover ? ImageHelper.createUrl(props.subject.cover.url, { size: ImageSize.Small }) : '';\r\n\r\n const childIds = props.subject.isExpandableOption ? props.subject.children.map(child => child.id) : [];\r\n const selectedChildCount = !props.hasSelectedBulk\r\n ? context?.selectedSubjects?.filter(selection => childIds.includes(selection)).length\r\n : 0;\r\n\r\n const component = (\r\n <PreferenceItem\r\n name={props.subject.name}\r\n imageUrl={coverUrl}\r\n onClick={props.onClick}\r\n isSelected={props.selected}\r\n isDisabled={props.disabled}\r\n isExpandable={props.subject.isExpandableOption}\r\n expand={context?.expandedSubject?.id === props.subject.id}\r\n selectedChildCount={selectedChildCount}\r\n extraClasses={props.extraClasses}\r\n hideStatus={props.hideStatus}\r\n />\r\n );\r\n\r\n return props.disabled\r\n ? <span>{component}</span>\r\n : <Tooltip title={props.subject.name}>{component}</Tooltip>;\r\n}","import { createContext } from 'react';\r\nimport { ClassificationPreference } from '../interfaces/ClassificationPreference';\r\n\r\ninterface SubjectPreferencesContextFields {\r\n selectedSubjects: string[];\r\n expandedSubject: ClassificationPreference;\r\n}\r\n\r\nexport const SubjectPreferencesContext = createContext<SubjectPreferencesContextFields>(undefined);","import { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/Actions.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/actions.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/curriculum-links/CurriculumLinks.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/tags/TagItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/tags/TagList.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/tags/tags.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-owner-text/VideoOwnerText.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/index.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/clip-widget-item/ClipWidgetItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/clip-widget-item/clip-widget-item.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/interactive-widget-item/InteractiveWidgetItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/interactive-widget-item/interactive-widget-item.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/CurriculumType.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/immersive-reader/immersive-reader.scss","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/play-page/PlayPage.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/play-page/VideoTitle.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/play-page/play-page.scss","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/resources/Resources.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/synopsis/Synopsis.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/synopsis/synopsis.scss","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/video-details/VideoDetails.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/constants/MinimumGlanceHeight.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useWindowListeners.ts"],"names":[],"mappings":"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","file":"scripts/12.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\ninterface ActionButtonProps {\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function ActionButton(props: React.PropsWithChildren<ActionButtonProps>): JSX.Element {\r\n let className = 'ml-2';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n const buttonContent = props.showSpinner\r\n ? <Spinner as='span' animation='border' role='status' size='sm' />\r\n : props.children;\r\n\r\n if (props.tooltip) {\r\n return (\r\n <Tooltip title={props.tooltip}>\r\n <span>\r\n <IconButton\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n onClick={props.onClick}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n if (props.svgName) {\r\n return (\r\n <IconButton\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n svgName={props.svgName}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </IconButton>\r\n );\r\n }\r\n\r\n if (props.appLink)\r\n return (\r\n <AppLink\r\n onClick={props.onClick}\r\n appLink={props.appLink}\r\n className={className}\r\n analyticsData={props.analyticsData}\r\n analyticsOptions={props.analyticsOptions}\r\n >\r\n {buttonContent}\r\n </AppLink>\r\n );\r\n\r\n function onClickButton(e: React.MouseEvent): void {\r\n if (props.analyticsData && props.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.analyticsData, props.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.onClick))\r\n props.onClick(e);\r\n }\r\n\r\n return (\r\n <button onClick={onClickButton} className={className}>\r\n {buttonContent}\r\n </button>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\n\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\n\r\nimport { ActionsDropdown } from './ActionsDropdown';\r\nimport { ActionButton } from './ActionButton';\r\n\r\nimport styles from './actions.scss';\r\nimport { IconButton } from '../icon-button/IconButton';\r\n\r\nexport interface ActionOptions {\r\n label: string;\r\n appLink?: Core.AppLink;\r\n onClick?: (e: React.MouseEvent) => void;\r\n svgName?: string;\r\n className?: string;\r\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\r\n tooltip?: string;\r\n showSpinner?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\r\n\r\ninterface ActionsProps {\r\n actions: ActionOptions[];\r\n className?: string;\r\n actionsDropdownClassName?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport function Actions(props: ActionsProps): JSX.Element {\r\n const buttonActions: ActionOptions[] = [];\r\n const moreActions: ActionOptions[] = [];\r\n\r\n props.actions.forEach(a => {\r\n if (a.button)\r\n buttonActions.push(a);\r\n else\r\n moreActions.push(a);\r\n });\r\n\r\n let className = 'd-flex';\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n <>\r\n {!!buttonActions.length &&\r\n <span className={styles.buttonList}>\r\n {buttonActions.map((a, idx) => (\r\n <React.Fragment key={idx}>\r\n {a.label ? (\r\n <ActionButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n tooltip={a.tooltip}\r\n showSpinner={a.showSpinner}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n >\r\n {a.label}\r\n </ActionButton>\r\n ) : (\r\n <IconButton\r\n appLink={a.appLink}\r\n onClick={a.onClick}\r\n svgName={a.svgName}\r\n className={a.className}\r\n analyticsData={a.analyticsData}\r\n analyticsOptions={a.analyticsOptions}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </span>\r\n }\r\n {props.sortComponent ? props.sortComponent : '' }\r\n {!!moreActions.length &&\r\n <ActionsDropdown\r\n actions={moreActions}\r\n className={!!buttonActions.length && 'ml-2'}\r\n dropdownToggleClassName={props.actionsDropdownClassName}\r\n />\r\n }\r\n </>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './actions.scss';\r\n\r\nimport { ActionOptions } from './Actions';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nfunction getDropdownItemClassName(actionClassName?: string): string {\r\n let className = 'dropdown-item';\r\n\r\n if (actionClassName)\r\n className += ` ${actionClassName}`;\r\n\r\n return className;\r\n}\r\n\r\ntype DropdownActionOptions = Omit<ActionOptions, 'button' | 'tooltip'>;\r\n\r\ninterface ActionsDropdownItemProps {\r\n action: DropdownActionOptions;\r\n}\r\n\r\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\r\n if (props.action.appLink)\r\n return (\r\n <AppLink\r\n appLink={props.action.appLink}\r\n onClick={props.action.onClick}\r\n className={getDropdownItemClassName(props.action.className)}\r\n analyticsData={props.action.analyticsData}\r\n analyticsOptions={props.action.analyticsOptions}\r\n >\r\n {props.action.label}\r\n </AppLink>\r\n );\r\n\r\n function onClick(e: React.MouseEvent): void {\r\n if (props.action.analyticsData && props.action.analyticsOptions)\r\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\r\n\r\n if (FunctionHelper.isFunction(props.action.onClick))\r\n props.action.onClick(e);\r\n }\r\n\r\n return (\r\n <span\r\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\r\n onClick={onClick}\r\n >\r\n {props.action.label}\r\n </span>\r\n );\r\n}\r\n\r\ninterface ActionsDropdownProps {\r\n actions: DropdownActionOptions[];\r\n className?: string;\r\n dropdownToggleClassName?: string;\r\n}\r\n\r\nActionsDropdown.defaultProps = {\r\n dropdownToggleClassName: 'btn btn-light'\r\n};\r\n\r\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\r\n if (!props.actions || !props.actions.length)\r\n return <></>;\r\n\r\n // Generate unique id to avoid collisions.\r\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\r\n\r\n let dropdownToggleClassName = `px-0 ${styles.dropdownToggle}`;\r\n\r\n if (props.dropdownToggleClassName)\r\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\r\n\r\n return (\r\n <Dropdown className={props.className ? props.className : ''} alignRight>\r\n <Dropdown.Toggle as='button' type='button' id={dropdownToggleId} className={dropdownToggleClassName}>\r\n <SvgContainer svgName={cvSvgLibrary.More} size={SvgContainerSize.Small} />\r\n </Dropdown.Toggle>\r\n <Dropdown.Menu>\r\n {props.actions.map((a, idx) =>\r\n <ActionsDropdownItem key={idx} action={a} />\r\n )}\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonList\":\"cv--buttonList--2v9CT\",\"dropdownToggle\":\"cv--dropdownToggle--AYBvQ\"};","import React from 'react';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\n\r\nimport { Curriculum } from 'libs/shared/interfaces';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { CurriculumType } from 'libs/shared/enums/CurriculumType';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nimport styles from './curriculum-links.scss';\r\nimport { DivButton } from '../div-button/DivButton';\r\n\r\nconst namespace = 'shared.curriculumLinks';\r\n\r\ninterface CurriculumStructure {\r\n [CurriculumType.Subject]: Curriculum<CurriculumType.Subject>;\r\n [CurriculumType.Audience]: Curriculum<CurriculumType.Audience>;\r\n [CurriculumType.Area]: Curriculum<CurriculumType.Area>[];\r\n [CurriculumType.Leaf]: Curriculum<CurriculumType.Leaf>[];\r\n}\r\n\r\ninterface CurriculumLeafProps {\r\n leaf: Curriculum<CurriculumType.Leaf>;\r\n}\r\n\r\nfunction CurriculumLeaf(props: CurriculumLeafProps): JSX.Element {\r\n return (\r\n <AppLink appLink={null} className='d-flex'>\r\n {props.leaf.name && (\r\n <h5 className={\r\n `${styles.curriculumCode} align-self-start text-nowrap font-size-normal badge-pill tag py-1 px-2 my-0 mr-1`\r\n }>\r\n {props.leaf.name}\r\n </h5>\r\n )}\r\n {props.leaf.description && (\r\n <p className='m-0 align-self-center'>{props.leaf.description}</p>\r\n )}\r\n </AppLink>\r\n );\r\n}\r\n\r\ninterface CurriculumSubjectProps {\r\n linkSet: Curriculum[];\r\n}\r\n\r\nfunction CurriculumSubject(props: CurriculumSubjectProps): JSX.Element {\r\n const structure: CurriculumStructure = {\r\n [CurriculumType.Subject]: null,\r\n [CurriculumType.Audience]: null,\r\n [CurriculumType.Area]: [],\r\n [CurriculumType.Leaf]: []\r\n };\r\n\r\n props.linkSet.forEach(curriculumObj => {\r\n if (Array.isArray(structure[curriculumObj.type]))\r\n (structure[curriculumObj.type] as Curriculum[]).push(curriculumObj);\r\n else\r\n (structure[curriculumObj.type] as Curriculum) = curriculumObj;\r\n });\r\n\r\n const areaText = structure[CurriculumType.Area].map(ca => ca.name).join(' - ').toUpperCase();\r\n\r\n return (\r\n <>\r\n <h3 className='font-size-normal font-weight-500 mb-2'>\r\n {structure[CurriculumType.Audience].name} - {structure[CurriculumType.Subject].name}\r\n </h3>\r\n <div className='ml-1 mr-2'>\r\n <h4 className={`${styles.area} text-muted mb-2 font-weight-normal`}>{areaText}</h4>\r\n <ul className='list-unstyled'>\r\n {structure[CurriculumType.Leaf].map(leaf => (\r\n <li key={leaf.id} className='mb-2'>\r\n <CurriculumLeaf leaf={leaf} />\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\ninterface CurriculumLinksProps {\r\n height: number;\r\n curriculumLinks: Curriculum[][];\r\n onClickSeeLess: () => void;\r\n}\r\n\r\nexport function CurriculumLinks(props: CurriculumLinksProps): JSX.Element {\r\n return (\r\n <div className='rounded border p-3 mb-3'>\r\n <Scrollbars autoHeight autoHeightMax={props.height}>\r\n <div className='mb-2 d-flex justify-content-between align-items-center'>\r\n <h2 className='h6 mb-0'>\r\n <Text namespace={namespace} phrase='curriculumLinks' />\r\n </h2>\r\n\r\n <DivButton className='text-muted' onClick={props.onClickSeeLess}>\r\n <Text namespace={namespace} phrase='seeLess' />\r\n </DivButton>\r\n </div>\r\n\r\n <ul className='list-unstyled m-0'>\r\n {props.curriculumLinks.map((linkSet, i) => (\r\n <li key={`linkset-${i}`} className={styles.curriculumSet}>\r\n <CurriculumSubject linkSet={linkSet} />\r\n </li>\r\n ))}\r\n </ul>\r\n </Scrollbars>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"curriculumSet\":\"cv--curriculumSet--rYMeg\",\"area\":\"cv--area--F-oQE\",\"curriculumCode\":\"cv--curriculumCode--TOD1n\"};","import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Tag } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nimport styles from './tags.scss';\r\n\r\ninterface TagItemProps {\r\n tag: Tag;\r\n appLink?: Core.AppLink;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function TagItem({ tag, appLink, disabled }: TagItemProps): JSX.Element {\r\n let classNames = 'badge-pill tag py-1 px-2 my-1 mr-1';\r\n\r\n if (appLink && !disabled)\r\n classNames += ' cursor-pointer';\r\n\r\n if (disabled)\r\n classNames += ' ' + styles.disabled;\r\n\r\n return appLink\r\n ? <AppLink appLink={appLink} className={classNames}>{tag.name}</AppLink>\r\n : <span className={classNames}>{tag.name}</span>;\r\n}","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { TagCollection, Tag } from 'libs/shared/interfaces';\r\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\r\n\r\nimport styles from './tags.scss';\r\n\r\ninterface TagListProps {\r\n tags: TagCollection;\r\n getAppLink?: (tag: Tag) => Core.AppLink;\r\n}\r\n\r\nexport function TagList({ tags, getAppLink }: TagListProps): JSX.Element {\r\n if (!tags || !tags.data)\r\n return <></>;\r\n\r\n return (\r\n <div className={styles.tagList}>\r\n {tags.data.map((tag: Tag) => {\r\n const appLink = FunctionHelper.isFunction(getAppLink) ? getAppLink(tag) : null;\r\n\r\n return <TagItem key={tag.id} tag={tag} appLink={appLink} />;\r\n })}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tagList\":\"cv--tagList--yvetE\",\"disabled\":\"cv--disabled--3ZfKv\"};","import React from 'react';\r\nimport { User } from 'libs/shared/interfaces';\r\n\r\ninterface VideoOwnerTextProps {\r\n owner: User;\r\n}\r\n\r\nexport function VideoOwnerText(props: VideoOwnerTextProps): JSX.Element {\r\n if (!props.owner)\r\n return <></>;\r\n\r\n let name = props.owner.name;\r\n\r\n if (props.owner.surname)\r\n name += ` ${props.owner.surname.substr(0, 1)}`.toUpperCase();\r\n\r\n const customer = props.owner.customers?.data?.[0];\r\n const customerName = customer?.name ?? '';\r\n\r\n if (customerName)\r\n name += ', ';\r\n\r\n return (\r\n <small className='clamp-1'>\r\n {name}\r\n {customerName && <em>{customerName}</em>}\r\n {/* TODO: Display a cv icon */}\r\n {customerName === 'ClickView' && <>CV Icon</>}\r\n </small>\r\n );\r\n}","export * from './FixedWidget';\r\nexport * from './FixedWidgetReducer';\r\nexport * from './PartialFixedWidget';","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Video, Clip } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\r\n\r\nimport styles from './clip-widget-item.scss';\r\n\r\nexport interface ClipWidgetItemProps {\r\n video: Video;\r\n data: Clip;\r\n appLink: Core.AppLink;\r\n}\r\n\r\nexport const ClipWidgetItem = React.memo(function(props: ClipWidgetItemProps): JSX.Element {\r\n return (\r\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\r\n <div className='row m-0 border rounded p-2 h-100'>\r\n <div className='col-6 p-0'>\r\n <VideoThumbnail\r\n video={props.video}\r\n appLink={props.appLink}\r\n type='static'\r\n videoType='clip'\r\n clip={props.data}\r\n size={ThumbnailSize.Small}\r\n textPosition={ThumbnailTextPosition.Independent}\r\n preload\r\n />\r\n </div>\r\n\r\n <div className='col-6 p-0'>\r\n <div className='pl-3'>\r\n <AppLink appLink={props.appLink}>\r\n <h3 className='h6 mb-1 clamp-2'>{props.data.name}</h3>\r\n </AppLink>\r\n\r\n <VideoOwnerText owner={props.data.owner} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"cv--item--pYl_b\",\"thumbnail\":\"cv--thumbnail--92H1z\",\"smallItemIconWidth\":\"cv--smallItemIconWidth--3DbAB\",\"smallItemInfoWidth\":\"cv--smallItemInfoWidth--1D2_c\",\"smallProgressBarContainer\":\"cv--smallProgressBarContainer--1gwy8\",\"smallItemNameWidth\":\"cv--smallItemNameWidth--3TPSf\"};","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Interactive, Video } from 'libs/shared/interfaces';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\r\n\r\nimport styles from './interactive-widget-item.scss';\r\n\r\nconst namespace = 'shared.interactiveWidgetItem';\r\n\r\nexport interface InteractiveWidgetItemProps {\r\n video: Video;\r\n data: Interactive;\r\n appLink: Core.AppLink;\r\n}\r\n\r\nexport const InteractiveWidgetItem = React.memo(function(props: InteractiveWidgetItemProps): JSX.Element {\r\n return (\r\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\r\n <div className='row m-0 border rounded p-2 h-100'>\r\n <div className='col-6 p-0'>\r\n <VideoThumbnail\r\n video={props.video}\r\n interactive={props.data}\r\n appLink={props.appLink}\r\n type='static'\r\n videoType='interactive'\r\n size={ThumbnailSize.Small}\r\n textPosition={ThumbnailTextPosition.Independent}\r\n preload\r\n />\r\n </div>\r\n\r\n <div className='col-6 p-0'>\r\n <div className='pl-3'>\r\n <AppLink appLink={props.appLink}>\r\n <h3 className='h6 mb-1 clamp-2'>{props.data.name}</h3>\r\n </AppLink>\r\n\r\n <VideoOwnerText owner={props.data.owner} />\r\n\r\n <AppLink className='info-link' appLink={props.appLink}>\r\n <Text namespace={namespace} phrase='previewQuestions' />\r\n </AppLink>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"cv--item--2An5o\",\"thumbnail\":\"cv--thumbnail--Wvc5s\",\"smallItemIconWidth\":\"cv--smallItemIconWidth--2IdDd\",\"smallItemInfoWidth\":\"cv--smallItemInfoWidth--1Iat7\",\"smallProgressBarContainer\":\"cv--smallProgressBarContainer--17I8T\"};","export enum CurriculumType {\r\n Subject = 'CurriculumSubject',\r\n Audience = 'CurriculumAudience',\r\n Area = 'CurriculumArea',\r\n Leaf = 'CurriculumLeaf'\r\n}","import * as React from 'react';\r\nimport * as ImmersiveReaderSdk from '@microsoft/immersive-reader-sdk';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\r\n\r\nimport styles from './immersive-reader.scss';\r\n\r\nconst namespace = 'shared.immersiveReader';\r\n\r\ninterface ImmersiveReaderResponse {\r\n token: string;\r\n subdomain: string;\r\n}\r\n\r\ntype ImmersiveReaderProps = PropsWithAnalyticsOptions<{\r\n text: string;\r\n title?: string;\r\n className?: string;\r\n\r\n analyticsData: {\r\n id: string;\r\n type: string\r\n }\r\n}>;\r\n\r\nexport function ImmersiveReader(props: ImmersiveReaderProps): JSX.Element {\r\n const config = Flight.useBasicFetch(ConfigRequests.config);\r\n const immersiveReaderResponse = Flight.useBasicFetch<ImmersiveReaderResponse>({\r\n url: '/api/integrations/token/immersive-reader',\r\n key: 'immersive:reader:token'\r\n });\r\n\r\n if (!config.data || !immersiveReaderResponse.data)\r\n return <></>;\r\n\r\n if (!props.title)\r\n props.title = LanguageService.getPhrase(namespace, 'titleFallback');\r\n\r\n function launchImmersiveReader(): void {\r\n AnalyticsHelper.logUserAction(props.analyticsData, props.analyticsOptions);\r\n\r\n const content = {\r\n title: props.title,\r\n chunks: [{\r\n content: props.text\r\n }]\r\n };\r\n\r\n const { data: { subdomain, token } } = immersiveReaderResponse;\r\n\r\n const options = {\r\n uiZIndex: 5000 // Should always appear above our content\r\n };\r\n\r\n ImmersiveReaderSdk.launchAsync(token, subdomain, content, options);\r\n }\r\n\r\n return (\r\n <div className={`${styles.button} ${props.className || ''}`} onClick={launchImmersiveReader}>\r\n <svg viewBox='0 0 40 37'>\r\n <path d='M37.4,0.9 L37.4,9.6 L35.4,9.6 L35.4,2.9 L24.4,2.9 C22.9,3.3 20,4.5 20,6 L20,17.2 L18,17.2 L18,6 C18,5 15.6,3.6 13.8,2.9 L2,2.9 L2,29 L12.4,29 L12.4,31 L0,31 L0,0.9 L14.1,0.9 L14.3,1 C15,1.2 17.5,2.2 18.9,3.7 C20.5,1.9 23.5,1.1 23.9,1 L24.1,1 L37.4,1 L37.4,0.9 Z' fill='#000000'></path>\r\n <path d='M27.4,37 L25.8,37 L18.4,29.4 L14,29.4 L14,21 L18.4,20.9 L26.1,13 L27.4,13 L27.4,37 Z M16,27.4 L19.2,27.4 L25.3,33.7 L25.3,16.6 L19.2,22.9 L15.9,22.9 L15.9,27.4 L16,27.4 Z' fill='#0197F2'></path>\r\n <path d='M31.3,32.7 L29.6,31.7 C29.6,31.7 31.7,28.3 31.7,25.2 C31.7,21.9 29.6,18.5 29.6,18.4 L31.3,17.4 C31.4,17.6 33.7,21.3 33.7,25.2 C33.7,28.8 31.4,32.6 31.3,32.7 Z' fill='#0197F2'></path>\r\n <path d='M36.4,36.2 L34.8,35 C34.8,35 38,30.8 38,25.2 C38,19.6 34.8,15.4 34.8,15.4 L36.4,14.2 C36.5,14.4 40,19 40,25.3 C40,31.5 36.5,36 36.4,36.2 Z' fill='#0197F2'></path>\r\n </svg>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"cv--button--10_KK\"};","import React from 'react';\r\n\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Video, Theme, Curriculum } from 'libs/shared/interfaces';\r\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { Actions as ActionsComponent, ActionOptions } from 'libs/shared/components/actions/Actions';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\r\nimport { ClipWidgetItemProps, ClipWidgetItem } from 'libs/shared/components/widgets/items/clip-widget-item/ClipWidgetItem';\r\nimport { CurriculumLinks } from 'libs/shared/components/curriculum-links/CurriculumLinks';\r\n\r\nimport { PlayerContext } from 'shared/hooks/useInitPlayerContext';\r\nimport { Resources } from 'shared/components/resources/Resources';\r\nimport { VideoDetailsWithScrollbar } from 'shared/components/video-details/VideoDetails';\r\nimport { useOnScroll, useOnResize } from 'shared/hooks/useWindowListeners';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { Synopsis } from 'shared/components/synopsis/Synopsis';\r\n\r\nimport { VideoTitle } from './VideoTitle';\r\nimport { MINIMUM_GLANCE_HEIGHT } from 'shared/constants/MinimumGlanceHeight';\r\n\r\nconst namespace = 'shared.playPage';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype DetailsViewType = 'synopsis' | 'details' | 'curriculumLinks';\r\n\r\n// TODO: Add analytics to these actions\r\nconst getActions = (video: Video, isIPad: boolean, isMobile: boolean): ActionOptions[] => ([\r\n {\r\n label: getPhrase('makeInteractive'), // TODO: Add appLink\r\n svgName: cvSvgLibrary.Plus, // TODO: Change to new \"Make Interactive\" icon\r\n className: !isIPad ? 'btn btn-light ml-2' : '',\r\n button: !isIPad\r\n },\r\n {\r\n label: getPhrase('addToPlaylist'),\r\n appLink: { application: AppChannels.PLAYLISTS, action: Actions.Playlists.ADD_TO_PLAYLIST, args: [video.id]},\r\n svgName: cvSvgLibrary.AddToPlaylists,\r\n className: !isMobile ? 'btn btn-light ml-2' : '',\r\n button: !isMobile\r\n },\r\n {\r\n label: getPhrase('share'),\r\n appLink: { application: AppChannels.DEFAULT, action: Actions.Default.SHARE, args: [video.id], params: { entityType: 'video' } },\r\n svgName: cvSvgLibrary.Share2,\r\n className: !isMobile ? 'btn btn-light ml-2' : '',\r\n button: !isMobile\r\n },\r\n {\r\n label: getPhrase('createClip') // TODO: Add appLink\r\n }\r\n]);\r\n\r\nexport function onUpdateViewport(\r\n playerRef: React.MutableRefObject<HTMLElement>,\r\n setPlayerData: (key: keyof PlayerContext, data: any) => void\r\n): void {\r\n if (!playerRef.current)\r\n return;\r\n\r\n const rect = playerRef.current.getBoundingClientRect();\r\n const left = window.pageXOffset || document.documentElement.scrollLeft;\r\n const top = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n /**\r\n * Only show floating player\r\n * if the normal player is no longer in view\r\n */\r\n if (rect.top < -rect.height) {\r\n setPlayerData('viewportPosition', null);\r\n return;\r\n }\r\n\r\n setPlayerData('viewportPosition', { top: top + rect.top, left: left + rect.left, width: rect.width });\r\n}\r\n\r\ninterface PlayPageProps {\r\n video: Video;\r\n // relatedVideos: Video[];\r\n setFavourite?: (video: Video, shouldFavourite: boolean, onError?: () => void) => void;\r\n glanceTheme?: Theme;\r\n curriculumLinks?: Curriculum[][];\r\n}\r\n\r\nexport function PlayPage(props: PlayPageProps): JSX.Element {\r\n const { video, glanceTheme, curriculumLinks } = props;\r\n\r\n const hasGlanceData = video.glance?.content && video.glance.format === 'text/markdown';\r\n\r\n const {\r\n rating, productionYear, interactives, resources, productionCompanies, distributors, producers, directors, tags\r\n } = video;\r\n\r\n // tslint:disable-next-line\r\n const hasPPDD = !!productionCompanies.data?.length || !!distributors.data?.length || !!producers.data?.length || !!directors.data?.length;\r\n const hasBadges = !!rating?.value || !!productionYear || !!interactives.data?.length || !!resources.data?.length;\r\n\r\n const hasDetails = !!video.description || hasBadges || hasPPDD || !!tags.data?.length;\r\n\r\n const [ , setPlayerData ] = useViewModel<PlayerContext>(ViewModelKeys.WEB_PLAYER_DATA);\r\n const [ detailsView, setDetailsView ] = React.useState<DetailsViewType>(hasGlanceData ? 'synopsis' : 'details');\r\n\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD || isMobile;\r\n\r\n // Get reference to the player dom element\r\n const player = React.useRef(null);\r\n\r\n // Memoize so we don't call throttle repeatedly\r\n const throttledOnUpdateViewport = React.useMemo(() => (\r\n FunctionHelper.throttle(() => onUpdateViewport(player, setPlayerData), 100, {\r\n leading: true,\r\n trailing: false\r\n })\r\n ), []);\r\n\r\n useOnScroll(throttledOnUpdateViewport);\r\n useOnResize(throttledOnUpdateViewport);\r\n\r\n const playerRef = React.useCallback(node => {\r\n if (!node)\r\n return;\r\n\r\n player.current = node;\r\n throttledOnUpdateViewport();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setPlayerData('isOnPlayPage', true);\r\n\r\n // Clear the position when this component is closed\r\n return () => {\r\n setPlayerData('viewportPosition', null);\r\n setPlayerData('isOnPlayPage', false);\r\n };\r\n }, []);\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='embed-responsive embed-responsive-16by9 mb-3' ref={playerRef}></div>\r\n\r\n <div className='d-flex justify-content-between align-items-center pb-3'>\r\n <VideoTitle video={video} setFavourite={props.setFavourite} />\r\n <ActionsComponent actions={getActions(video, isIPad, isMobile)} />\r\n </div>\r\n\r\n {detailsView === 'synopsis' && (\r\n <Synopsis\r\n theme={glanceTheme}\r\n video={video}\r\n hasGlanceData={hasGlanceData}\r\n hasDetails={hasDetails}\r\n onClickShowDescription={() => setDetailsView('details')}\r\n hasCurriculumLinks={!!curriculumLinks?.length}\r\n onClickShowCurriculumLinks={() => setDetailsView('curriculumLinks')}\r\n />\r\n )}\r\n\r\n {detailsView === 'details' && (\r\n <VideoDetailsWithScrollbar\r\n video={video}\r\n hasBadges={hasBadges}\r\n hasPPDD={hasPPDD}\r\n hasGlanceData={hasGlanceData}\r\n onClickShowSynopsis={() => setDetailsView('synopsis')}\r\n hasCurriculumLinks={!!curriculumLinks?.length}\r\n onClickSeeCurriculumLinks={() => setDetailsView('curriculumLinks')}\r\n />\r\n )}\r\n\r\n {detailsView === 'curriculumLinks' && (\r\n <CurriculumLinks\r\n height={MINIMUM_GLANCE_HEIGHT}\r\n curriculumLinks={curriculumLinks}\r\n onClickSeeLess={() => setDetailsView(hasGlanceData ? 'synopsis' : 'details')}\r\n />\r\n )}\r\n\r\n <Resources video={video} />\r\n\r\n {!!video.interactives?.data?.length && (\r\n <div className='mx-n1'>\r\n <FixedWidget\r\n name={getPhrase('interactives', { count: video.interactives.data.length })}\r\n contents={WidgetContents.Interactives}\r\n collection={video.interactives.data}\r\n prefetched\r\n childComponent={(itemProps: InteractiveWidgetItemProps) => (\r\n <InteractiveWidgetItem {...itemProps} video={video} />)}\r\n analyticsData={{ widgetId: 'interactives' }}\r\n />\r\n </div>\r\n )}\r\n\r\n {!!video.clips?.data?.length && (\r\n <div className='mx-n1'>\r\n <FixedWidget\r\n name={getPhrase('clips', { count: video.interactives.data.length })}\r\n contents={WidgetContents.Clips}\r\n collection={video.clips.data}\r\n prefetched\r\n childComponent={(itemProps: ClipWidgetItemProps) => (\r\n <ClipWidgetItem {...itemProps} video={video} />)}\r\n analyticsData={{ widgetId: 'clips' }}\r\n />\r\n </div>\r\n )}\r\n\r\n {/* {!!props.relatedVideos && <>\r\n <h2 className={'h4 mt-3'}><Text namespace={namespace} phrase={'relatedVideos'} /></h2>\r\n <VideoList\r\n videos={props.relatedVideos}\r\n getSeriesAppLink={getSeriesAppLink}\r\n getVideoAppLink={getVideoAppLink}\r\n setFavourite={props.setFavourite}\r\n />\r\n </>} */}\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { Video } from 'libs/shared/interfaces';\r\nimport { SeriesLink } from 'libs/shared/components/series-link/SeriesLink';\r\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport styles from './play-page.scss';\r\n\r\ninterface VideoTitleProps {\r\n video: Video;\r\n setFavourite?: (video: Video, shouldFavourite: boolean, onError?: () => void) => void;\r\n}\r\n\r\nexport function VideoTitle(props: VideoTitleProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n const appLink: Core.AppLink = {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: video.series ? [ video.series.id, TextHelper.slugify(video.series.name) ] : []\r\n };\r\n\r\n return (\r\n <div>\r\n {!!video.series && <SeriesLink video={video} appLink={appLink} className={`${styles.series} clamp-1`} />}\r\n <div className='d-flex align-items-center'>\r\n <h1 className='h3 d-inline-block m-0'>\r\n {video.name}\r\n </h1>\r\n {!!FunctionHelper.isFunction(props.setFavourite) &&\r\n <FavouriteButton\r\n setFavourite={props.setFavourite}\r\n video={video}\r\n className='d-inline-block ml-2 align-text-bottom'\r\n />\r\n }\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"series\":\"cv--series--2vEW0\"};","import * as React from 'react';\r\n\r\nimport { Video } from 'libs/shared/interfaces';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\ninterface VideoResourcesProps {\r\n video: Video;\r\n className?: string;\r\n}\r\n\r\nexport function Resources(props: VideoResourcesProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n if (!video.resources || !video.resources.data || !video.resources.data.length)\r\n return <></>;\r\n\r\n return (\r\n <div className='pb-3'>\r\n <h2 className='h4'>\r\n <Text phrase='resources' options={{ count: video.resources.data.length }} />\r\n </h2>\r\n\r\n {video.resources.data.map((r, i) => <div key={i}>{r.name}</div>)}\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport * as marked from 'marked';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { Video, Theme } from 'libs/shared/interfaces';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { PlayerContext } from 'shared/hooks/useInitPlayerContext';\r\n\r\nimport styles from './synopsis.scss';\r\n\r\nconst namespace = 'shared.synopsis';\r\n\r\ninterface SynopsisProps {\r\n video: Video;\r\n theme: Theme;\r\n hasGlanceData: boolean;\r\n hasDetails: boolean;\r\n onClickShowDescription: () => void;\r\n hasCurriculumLinks: boolean;\r\n onClickShowCurriculumLinks: () => void;\r\n}\r\n\r\nexport function Synopsis(props: SynopsisProps): JSX.Element {\r\n const [ markdownHTML, setMarkdownHTML ] = React.useState('');\r\n\r\n const [ , setPlayerData ] = useViewModel<PlayerContext>(ViewModelKeys.WEB_PLAYER_DATA);\r\n\r\n React.useEffect(() => {\r\n if (!props.hasGlanceData)\r\n return;\r\n\r\n const html = marked(props.video.glance.content);\r\n\r\n // Add styling to any tags\r\n const wrappedTags = html.split('a href=\"cv-tag://').join('a class=\"badge-pill tag mr-1 my-1 px-2 py-1\" href=\"cv-tag://');\r\n\r\n setMarkdownHTML(wrappedTags);\r\n }, [props.video.glance?.content]);\r\n\r\n /**\r\n * If we don't have a glance, or our glance is not markdown\r\n * we tell the PlayPage to render the description instead and return.\r\n */\r\n if (!props.hasGlanceData && props.hasDetails) {\r\n props.onClickShowDescription();\r\n return <></>;\r\n }\r\n\r\n /**\r\n * Because the markdown is injected as a HTML string, we cannot attach click event handlers directly onto\r\n * the links that we want to. Instead, we attach one click handler to the entire markdown container, meaning\r\n * click events bubble up, and we can use `event.target` to see which element was clicked.\r\n */\r\n function onClickMarkDown(event: React.MouseEvent<HTMLDivElement, MouseEvent>): void {\r\n event.preventDefault();\r\n\r\n const href = (event.target as HTMLDivElement).getAttribute('href');\r\n\r\n // Ignore click events that do not have a href\r\n if (!href)\r\n return;\r\n\r\n // When a timestamp is clicked, we update the player time\r\n if (href.includes('cv-timestamp://')) {\r\n const time = href.split('cv-timestamp://')[1];\r\n setPlayerData('startTime', time);\r\n return;\r\n }\r\n\r\n // When a tag is clicked, we navigate to search results for that tag\r\n if (href.includes('cv-tag://')) {\r\n const tag = href.split('cv-tag://')[1];\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.SEARCH,\r\n action: Actions.Search.HOME,\r\n params: { tag }\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n return (\r\n <div className={\r\n `rounded border px-3 mb-3 position-relative d-flex align-items-center justify-content-center ${styles.container}`\r\n }>\r\n <div className={`${styles.content} py-5`}>\r\n <h2><Text namespace={namespace} phrase='videoAtAGlance' /></h2>\r\n <div\r\n onClick={onClickMarkDown}\r\n dangerouslySetInnerHTML={{ __html: markdownHTML }}\r\n />\r\n\r\n <div className='mt-3'>\r\n {props.hasDetails && (\r\n <DivButton\r\n onClick={props.onClickShowDescription}\r\n className='cursor-pointer d-inline-block mr-4 font-weight-500'\r\n >\r\n <Text namespace={namespace} phrase='readFullDescription' />\r\n </DivButton>\r\n )}\r\n {props.hasCurriculumLinks && (\r\n <DivButton\r\n onClick={props.onClickShowCurriculumLinks}\r\n className='cursor-pointer d-inline-block font-weight-500'\r\n >\r\n <Text namespace={namespace} phrase='seeCurriculumLinks' />\r\n </DivButton>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {props.theme ? Object.keys(props.theme.data).map((imageDataKey: keyof typeof props.theme.data) => (\r\n <div\r\n key={props.theme.data[imageDataKey].fileId}\r\n className={`${styles[imageDataKey]} ${styles.background}`}\r\n style={{\r\n backgroundImage: `url('${ImageHelper.createUrl(props.theme.data[imageDataKey].url, { format: 'png' })}')`\r\n }}\r\n />\r\n )) : <></>}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1XOYA\",\"content\":\"cv--content--UcxNO\",\"background\":\"cv--background--3gpaY\",\"topLeft\":\"cv--topLeft--2s7I6\",\"bottomLeft\":\"cv--bottomLeft--23UKL\",\"topRight\":\"cv--topRight--ec_-l\",\"bottomRight\":\"cv--bottomRight--1xMKp\"};","import * as React from 'react';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Video, BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\r\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { LocationContext, EntityType, UserAction, ClickDescriptor } from 'libs/analytics/interfaces';\r\nimport { TagList } from 'libs/shared/components/tags/TagList';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { ImmersiveReader } from 'shared/components/immersive-reader/ImmersiveReader';\r\nimport { MINIMUM_GLANCE_HEIGHT } from 'shared/constants/MinimumGlanceHeight';\r\n\r\nconst namespace = 'shared.videoDetails';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface CommaListProps {\r\n label: string;\r\n items: BasePaginatedCollection<BaseObject>;\r\n className?: string;\r\n}\r\n\r\nfunction CommaList(props: CommaListProps): React.ReactElement {\r\n const { label, items, className } = props;\r\n\r\n const hasItems = items && items.data && items.data.length;\r\n\r\n if (!hasItems)\r\n return <></>;\r\n\r\n const commaSeperated = items.data.map(i => i.name).join(', ');\r\n\r\n return (\r\n <div className={className}>{label}: {commaSeperated}</div>\r\n );\r\n}\r\n\r\ninterface VideoDetailsWithScrollbarProps {\r\n video: Video;\r\n hasGlanceData: boolean;\r\n hasBadges: boolean;\r\n hasPPDD: boolean;\r\n hasCurriculumLinks: boolean;\r\n onClickShowSynopsis: () => void;\r\n onClickSeeCurriculumLinks: () => void;\r\n}\r\n\r\nexport function VideoDetailsWithScrollbar(props: VideoDetailsWithScrollbarProps): React.ReactElement {\r\n const { video } = props;\r\n\r\n if (!props.hasBadges && !props.hasPPDD && !props.video.tags?.data?.length && !props.video.description)\r\n return <></>;\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='rounded border p-3 mb-3'>\r\n <Scrollbars autoHeight autoHeightMax={MINIMUM_GLANCE_HEIGHT}>\r\n <div className={video.description ? 'pb-2' : ''}>\r\n <div className='mb-2 d-flex align-items-center justify-content-between'>\r\n <h2 className='h6 mb-0'><Text phrase='details' /></h2>\r\n {(props.hasGlanceData || props.hasCurriculumLinks) && (\r\n <DivButton\r\n className='text-muted'\r\n onClick={props.hasGlanceData ? props.onClickShowSynopsis : props.onClickSeeCurriculumLinks}\r\n >\r\n <Text phrase={props.hasGlanceData ? 'seeGlance' : 'seeCurriculumLinks'} />\r\n </DivButton>\r\n )}\r\n </div>\r\n {props.hasBadges && (\r\n <BadgeListContainer className='pb-1'>\r\n <Badge type={BadgeType.Rating} data={video.rating} />\r\n <Badge type={BadgeType.ProductionYear} data={video.productionYear} />\r\n <Badge type={BadgeType.Interactive} data={video.interactives} />\r\n <Badge type={BadgeType.Resources} data={video.resources} />\r\n </BadgeListContainer>\r\n )}\r\n\r\n {props.hasPPDD && (\r\n <div className='pb-2'>\r\n <CommaList\r\n label={getPhrase('productionCompanies', { smartCount: video.productionCompanies?.data?.length })}\r\n items={video.productionCompanies}\r\n />\r\n <CommaList\r\n label={getPhrase('distributors', { smartCount: video.distributors?.data?.length })}\r\n items={video.distributors}\r\n />\r\n <CommaList\r\n label={getPhrase('producers', { smartCount: video.producers?.data?.length })}\r\n items={video.producers}\r\n />\r\n <CommaList\r\n label={getPhrase('directors', { smartCount: video.directors?.data?.length })}\r\n items={video.directors}\r\n />\r\n </div>\r\n )}\r\n\r\n {!!video.tags?.data?.length && (\r\n <TagList\r\n tags={video.tags}\r\n getAppLink={tag => ({\r\n application: AppChannels.SEARCH,\r\n action: Actions.Search.HOME,\r\n params: { tag: tag.name }\r\n })}\r\n />\r\n )}\r\n </div>\r\n\r\n {!!video.description && (\r\n <>\r\n <div\r\n className={\r\n `d-flex align-items-center ${(props.hasBadges || props.hasPPDD || video.tags?.data?.length) ? 'pt-2' : ''}`\r\n }\r\n >\r\n <h2 className='h6 mb-1'>\r\n <Text phrase='description' />\r\n </h2>\r\n <ImmersiveReader\r\n text={video.description}\r\n title={video.name}\r\n className='pl-2'\r\n analyticsOptions={{\r\n location: LocationContext.PlayPage,\r\n entity: EntityType.Video,\r\n actionType: UserAction.Click,\r\n descriptor: ClickDescriptor.LaunchImmersiveReader\r\n }}\r\n analyticsData={{\r\n id: video.id,\r\n type: 'description'\r\n }}\r\n />\r\n </div>\r\n {props.video.description && (\r\n <p className='mb-0'>{props.video.description}</p>\r\n )}\r\n </>\r\n )}\r\n </Scrollbars>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// 368 is the min height of Video at a glance which is defined as $glanceHeight in synopsis.scss\r\nexport const MINIMUM_GLANCE_HEIGHT = 368; // px","import * as React from 'react';\r\n\r\nfunction createUseWindowListener(event: string): any {\r\n return function useWindowListener(callback: () => void): void {\r\n /**\r\n * Memoize the callback so it's the same function\r\n * when we call removeEventListener\r\n */\r\n const memoCallback = React.useCallback(callback, []);\r\n\r\n React.useEffect(() => {\r\n window.addEventListener(event, memoCallback);\r\n return () => window.removeEventListener(event, memoCallback);\r\n }, []);\r\n };\r\n}\r\n\r\nexport const useOnScroll = createUseWindowListener('scroll');\r\nexport const useOnResize = createUseWindowListener('resize');\r\n\r\n"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[13],{1019:function(e,t,a){"use strict";var n,r=a(0),i=a(35),o=a(57),c=a(127),s=a(895),l=a(51),u=function(e){var t=e.breadcrumb,a=t.label,n=t.appLink,i=t.active;return r.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?r.createElement("strong",null,a):r.createElement(l.a,{appLink:n},a))},d=function(e){var t=e.breadcrumbs;return r.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return r.createElement(u,{key:t,breadcrumb:e})})))};function m(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||f(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||f(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){if(e){if("string"==typeof e)return v(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function b(e,t,a){return{label:e.name,appLink:t(e),active:a}}function y(e){var t=function(e,t){var a,n=e.currentItem,s=e.getItemAppLink,l=e.getParent,u=e.rootItem,d=e.data,f=e.subview,v=p(Object(r.useState)([]),2),y=v[0],g=v[1],h=null===(a=d)||void 0===a?void 0:a.map((function(e){var t;return null===(t=e)||void 0===t?void 0:t.name})).join("-");r.useEffect((function(){if(!t&&!o.a.isEmpty(d)){var e=d.map((function(e,t){return b(e,s,t+1===d.length)}));u&&e.unshift(u),g(e)}}),[h]),r.useEffect((function(){if(t&&i.a.isFunction(l)){var e=[b(n,s,!0)];for(n=l(n);n;)e.unshift(b(n,s)),n=l(n);return u&&e.unshift(u),g(e)}}),[n,l,s,u]);var E=r.useRef({label:f,appLink:null,active:!0}).current;if(f){y.includes(E)||g([].concat(m(y),[E]));var k=y.filter((function(e){return e.active&&e!==E}));k.length&&(c.a.first(k).active=!1)}return y}(e,e.type===n.Dynamic);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement(d,{breadcrumbs:t}))}a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return y})),a.d(t,"c",(function(){return h})),function(e){e[e.Static=0]="Static",e[e.Dynamic=1]="Dynamic"}(n||(n={}));var g=s.a.getPartialLoadingItems({numItems:3}),h=function(){return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},g.map((function(e,t){var a=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}},1281:function(e,t,a){"use strict";a.r(t),a.d(t,"SeriesView",(function(){return I}));var n=a(0),r=a(61),i=a(14),o=a(7),c=a(154),s=a(157),l=a(831),u=a(913),d=a(1019),m=a(830),p=a(848),f=a(13),v=a(40),b=a(3),y=a(47),g=a(237),h=a(824),E=a(993),k=a(10),N=a(5),A=a(850);function C(e){return function(e){if(Array.isArray(e))return O(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return O(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return O(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var S=o.a.encloseNamespace("shared.series"),L=function(e){return{application:N.a.SUBJECT,action:k.a.Subjects.CLASSIFICATION,args:[e.id,y.a.slugify(e.name)]}},w=function(e){return{application:N.a.DEFAULT,action:k.a.Default.PLAY_VIDEO,args:[e.id,y.a.slugify(e.name)],params:e.lastProgressPoint?{t:Math.floor(e.lastProgressPoint)}:{}}},j=function(e){return{application:N.a.DEFAULT,action:k.a.Default.SERIES,args:[e.id,y.a.slugify(e.name)]}},x=function(e){return[{label:o.a.getPhrase("shared.series","share"),appLink:e&&{application:N.a.DEFAULT,action:k.a.Default.SHARE,args:[e.id],params:{entityType:"series"}},svgName:f.b.Share,className:"btn btn-light mr-2",button:!0},{label:o.a.getPhrase("shared.series","follow"),appLink:{application:N.a.DEFAULT,action:"index"},svgName:f.b.Bell,className:"btn btn-light",button:!0}]};function I(e){var t,a=Object(r.useDispatch)(),f=Object(h.a)(),y=i.a.useBasicFetch(s.a.config),O=i.a.useBasicFetch(c.a.currentUser()),I=i.a.useBasicFetch(E.a.series(e.id)),D=i.a.useBasicFetch(E.a.seriesVideos(e.id,e.cursor));Object(g.a)(null===(t=I.data)||void 0===t?void 0:t.name),Object(A.a)(D.data);var P=[I.data];if(e.classificationId){var T=i.a.useBasicFetch(E.a.breadcrumbs(e.classificationId));T.data&&P.unshift.apply(P,C(T.data))}if(!D.data||!y.data||!I.data)return n.createElement(n.Fragment,null);var F=S("series",{seriesName:I.data.name});return n.createElement("div",{className:"px-3"},n.createElement(u.a,{heading:F,banner:null,imageCdnUrl:y.data.imageCdnUrl,backButtonAppLink:{application:N.a.DASHBOARD,action:k.a.Dashboard.HOME},backButtonText:"Home",actions:x(I.data)}),n.createElement("div",null,n.createElement("div",{className:"border-bottom py-3 mb-3"},e.classificationId&&P.length<2?n.createElement(d.c,null):n.createElement(d.b,{currentItem:I.data,type:d.a.Static,getItemAppLink:L,data:P,rootItem:{label:S("dashboard"),appLink:{application:N.a.DASHBOARD,action:k.a.Dashboard.HOME}}}),I.data.description&&n.createElement("p",{className:"pt-3"},I.data.description)),D.data?D.isFetching?n.createElement(p.a,null):n.createElement(m.c,{videos:D.data.data,cursors:D.data.pagination.cursors,getVideoAppLink:w,getSeriesAppLink:j,setFavourite:function(e,t,n){i.a.fetch(a,l.a.updateIsVideoFavourited(e.id,O.data.id,t,(function(){v.a.logUserAction({id:e.id},{entity:b.d.Video,actionType:b.n.Favourite,descriptor:t?b.m.On:b.m.Off,location:b.j.VideoThumbnail,workflowPhase:b.o.Complete}),f.success(o.a.getPhrase("shared.series",t?"favourited":"unfavourited",{video:e.name}))}),n))}}):n.createElement(n.Fragment,null,"Empty State")))}},825:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0);function r(e){return n.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},827:function(e,t,a){e.exports={buttonList:"_2v9CT",dropdownToggle:"AYBvQ"}},828:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(240),o=a(40),c=a(55),s=a(51),l=a(13),u=a(827),d=a.n(u),m=a(35);function p(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function f(e){if(e.action.appLink)return n.createElement(s.a,{appLink:e.action.appLink,onClick:e.action.onClick,className:p(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions},e.action.label);return n.createElement("span",{className:"cursor-pointer ".concat(p(e.action.className)),onClick:function(t){e.action.analyticsData&&e.action.analyticsOptions&&o.a.logUserAction(e.action.analyticsData,e.action.analyticsOptions),m.a.isFunction(e.action.onClick)&&e.action.onClick(t)}},e.action.label)}function v(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t="actions-dropdown-".concat(i.a.getRandomInt()),a="px-0 ".concat(d.a.dropdownToggle);return e.dropdownToggleClassName&&(a+=" ".concat(e.dropdownToggleClassName)),n.createElement(r.Dropdown,{className:e.className?e.className:"",alignRight:!0},n.createElement(r.Dropdown.Toggle,{as:"button",type:"button",id:t,className:a},n.createElement(c.a,{svgName:l.b.More,size:c.b.Small})),n.createElement(r.Dropdown.Menu,null,e.actions.map((function(e,t){return n.createElement(f,{key:t,action:e})}))))}v.defaultProps={dropdownToggleClassName:"btn btn-light"};var b=a(235),y=a(156);function g(e){var t="ml-2";e.className&&(t+=" ".concat(e.className));var a=e.showSpinner?n.createElement(r.Spinner,{as:"span",animation:"border",role:"status",size:"sm"}):e.children;if(e.tooltip)return n.createElement(y.a,{title:e.tooltip},n.createElement(b.a,{appLink:e.appLink,svgName:e.svgName,onClick:e.onClick,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a));if(e.svgName)return n.createElement(b.a,{onClick:e.onClick,appLink:e.appLink,svgName:e.svgName,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a);if(e.appLink)return n.createElement(s.a,{onClick:e.onClick,appLink:e.appLink,className:t,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a);return n.createElement("button",{onClick:function(t){e.analyticsData&&e.analyticsOptions&&o.a.logUserAction(e.analyticsData,e.analyticsOptions),m.a.isFunction(e.onClick)&&e.onClick(t)},className:t},a)}function h(e){var t=[],a=[];e.actions.forEach((function(e){e.button?t.push(e):a.push(e)}));var r="d-flex";return e.className&&(r+=" ".concat(e.className)),n.createElement("div",{className:r},n.createElement(n.Fragment,null,!!t.length&&n.createElement("span",{className:d.a.buttonList},t.map((function(e,t){return n.createElement(n.Fragment,{key:t},e.label?n.createElement(g,{appLink:e.appLink,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},e.label):n.createElement(b.a,{appLink:e.appLink,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}))}))),e.sortComponent?e.sortComponent:"",!!a.length&&n.createElement(v,{actions:a,className:!!t.length&&"ml-2",dropdownToggleClassName:e.actionsDropdownClassName})))}a.d(t,"a",(function(){return h}))},830:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"b",(function(){return u}));var n=a(0),r=a(818),i=a(2),o=a(837),c=a(844),s=n.createContext({isSortable:!1});function l(e){var t=n.useContext(s).isSortable?c.a:c.b,a=i.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},e.videos.map((function(a,r){return n.createElement(t,{key:a.id,idx:r,index:r,video:a,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,setFavourite:e.setFavourite,hideInteractiveBadge:e.hideInteractiveBadge})}))),e.cursors&&n.createElement(o.b,{appLink:a,cursors:e.cursors}))}var u=Object(r.SortableContainer)((function(e){return n.createElement(s.Provider,{value:{isSortable:!0,currentSortingIndex:e.currentSortingIndex}},n.createElement(l,Object.assign({},e)))}))},831:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(21),r=a(46),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function o(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t),key:"favourite:video:".concat(t,":").concat(e),data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}function c(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t,"/favouriteVideos/").concat(e),key:"favourite:video:".concat(t,":").concat(e),type:n.a.DELETE,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}var s={favouriteVideos:function(e,t){var a="".concat(r.a.VIDEO_COLLECTION).concat(function(e){return e?"&cursor=".concat(e):""}(t));return{url:"/api/domain/v2/objects/".concat(e,"/favouriteVideos?query=").concat(a),key:"favourite:videos:".concat(e).concat(t?":".concat(t):"")}},updateIsVideoFavourited:function(e,t,a,n,r){return(a?o:c)(e,t,n,r)},isFavourited:function(e,t){var a=t.slice().sort(),n=a.map((function(e){return"id=".concat(e)}));if(n.length)return{url:"/api/domain/v2/objects?query=favouritedBy{id:".concat(e,"}&").concat(n.join("&")),key:"video:is:favourited:".concat(e,":by:id:").concat(a.join(",")),formatData:function(e){var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map((function(e){var t,a,n=e.favouritedBy,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})}))}}}}},837:function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return d}));var n=a(0),r=a(825),i=a(51),o=a(73),c=a(40),s=a(3);function l(e,t){return t?{application:e.application,action:e.action,args:e.args,params:Object.assign({},e.params,{cursor:t})}:null}function u(e){var t=e.appLink,a=e.cursors,r=e.className;function u(e){c.a.logUserAction({page:e},{location:s.j.Pagination,entity:s.d.Pagination,actionType:s.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:r},n.createElement(i.a,{appLink:l(t,a.previous),className:"btn btn-secondary mr-1 ".concat(a.previous?"":"disabled"),onClick:function(){return u("previous")}},n.createElement(o.b,{phrase:"previous"})),n.createElement(i.a,{appLink:l(t,a.next),className:"btn btn-secondary ".concat(a.next?"":"disabled"),onClick:function(){return u("next")}},n.createElement(o.b,{phrase:"next"}))))}function d(e){function t(e){c.a.logUserAction({page:e},{location:s.j.Pagination,entity:s.d.Pagination,actionType:s.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:e.className},n.createElement(r.a,{onClick:function(){1!==e.currentPage&&(t("previous"),e.onClickBack())},className:"btn btn-secondary mr-1 cursor-pointer ".concat(1===e.currentPage?"disabled":"")},n.createElement(o.b,{phrase:"previous"})),n.createElement(r.a,{onClick:function(){e.currentPage!==e.totalPages&&(t("next"),e.onClickNext())},className:"btn btn-secondary cursor-pointer ".concat(e.currentPage===e.totalPages?"disabled":"")},n.createElement(o.b,{phrase:"next"}))))}u.defaultProps={className:"py-2"},d.defaultProps={className:"py-2"}},843:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n={userVideoHistory:function(e,t,a,n,r,i){var o="video:history:".concat(e,":").concat(t),c="/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history");return a&&(o+=":".concat(a),c+="?cursor=".concat(a)),{key:o,url:c,success:n,error:r,always:i}},videoHistory:function(e,t,a,n,r,i){var o=a.sort().map((function(e){return"videoId=".concat(e)}));return{key:"video:history:".concat(e,":").concat(t,":videos:").concat(o.join("&")),url:"/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history?").concat(o.join("&")),formatData:function(e){var t;return(null===(t=e)||void 0===t?void 0:t.length)?e.map((function(e){return{id:e.videoId,lastProgressPoint:e.lastProgressPoint}})):e},success:n,error:r,always:i}}}},844:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(818),o=a(860),c=a(245),s=a(55),l=a(839),u=a(854),d=a(45),m=function(e){return!!e&&e.series&&!!e.series.id},p=a(13),f=a(830),v=a(35),b=a(828),y=a(242),g=a(128),h=a(107),E=a(845),k=a.n(E),N=[g.a.AddToPlaylist,g.a.Share];function A(e){var t=n.useContext(y.a),a=t.videoActions,r=void 0===a?N:a,i=t.getActionAppLink,o=t.hideLabel,c=Object(h.a)(d.a.XS);if(!v.a.isFunction(i))return n.createElement(n.Fragment,null);var s=[];return r.forEach((function(t){var a=i(e.video,t);a&&s.push(Object.assign({appLink:a,className:"btn btn-link",button:!c},Object(g.b)()[t]))})),o&&!c&&(s=s.map((function(e){return Object.assign(Object.assign({},e),{label:null})}))),n.createElement(b.a,{actions:s,className:"float-right mt-n1",actionsDropdownClassName:"btn btn-link rounded-circle p-0 ".concat(k.a.actionsDropdown)})}var C=a(73),O=a(846),S=a.n(O);function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return w(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function j(e){var t=L(n.useState(e.truncate),2),a=t[0],r=t[1];return Object(h.a)(d.a.XS)?n.createElement(n.Fragment,null):n.createElement("div",{className:"position-relative overflow-hidden ".concat(a?"clamp-2":"")},n.createElement("p",{className:"m-0"},e.video.description,!!e.isExpandable&&n.createElement("span",{className:"cursor-pointer ".concat(S.a.ellipsis),onClick:function(){return r(!a)}},n.createElement(C.b,{namespace:"shared.videoItemDescription",phrase:a?"showMore":"showLess"}))))}j.defaultProps={truncate:!0};var x=a(51);function I(e){return n.createElement(x.a,{appLink:e.appLink},n.createElement("h5",{className:"m-0 mb-1 clamp-2"},e.video.name))}var D=a(863),P=a(858),T=a(847),F=a.n(T),B=a(236),V=a(3);a.d(t,"b",(function(){return M})),a.d(t,"a",(function(){return H}));var U=Object(i.SortableHandle)((function(){return n.createElement(r.Col,{xs:2,className:"d-flex justify-content-center align-items-center cursor-pointer ".concat(F.a.dragHandleContainer)},n.createElement(s.a,{svgName:p.b.Handle,size:s.b.Small}))}));function M(e){var t,a=Object(B.a)(),i=a===d.a.XS,s=a===d.a.SM||a===d.a.MD,p=a===d.a.SM,v=n.useContext(f.a).isSortable&&!i,b=e.getVideoAppLink(e.video),y=m(e.video)&&e.getSeriesAppLink(e.video.series);return n.createElement(r.Row,{className:"py-2"},n.createElement(r.Col,{xs:i?12:s?4:3,className:"flex-column align-items-flex-start mb-1"},n.createElement(r.Row,null,!!v&&n.createElement(U,null),n.createElement(r.Col,{xs:(t=v,t?10:12)},n.createElement(o.a,{video:e.video,appLink:b,seriesAppLink:y,size:v?l.a.Small:l.a.Medium,textPosition:u.a.Independent,setFavourite:e.setFavourite,type:"static",analyticsOptions:{location:V.j.VideoListItem}})))),n.createElement(r.Col,{xs:i?12:s?8:9},n.createElement(A,{video:e.video}),n.createElement(c.a,{className:"d-block",video:e.video,appLink:y,analyticsOptions:{location:V.j.VideoListItem}}),n.createElement(I,{video:e.video,appLink:e.getVideoAppLink(e.video)}),n.createElement(D.a,null,n.createElement(P.a,{type:P.b.Rating,data:e.video.rating}),n.createElement(P.a,{type:P.b.ProductionYear,data:e.video.productionYear}),!e.hideInteractiveBadge&&n.createElement(P.a,{type:P.b.Interactive,data:e.video.interactives})),!p&&n.createElement(j,{video:e.video})))}var H=Object(i.SortableElement)((function(e){return n.createElement(M,Object.assign({},e))}))},845:function(e,t,a){e.exports={actionsDropdown:"XR0aX"}},846:function(e,t,a){e.exports={ellipsis:"LJY5U"}},847:function(e,t,a){e.exports={dragHandleContainer:"_24s1b"}},848:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(33),o=a(45),c=a(236),s=a(849),l=a.n(s);function u(e){var t=Object(c.a)(),a=t===o.a.XS,n=t===o.a.SM||t===o.a.MD,s=e.withReordering&&!a;return r.a.createElement(r.a.Fragment,null,Array(e.numVideos).fill(null).map((function(e,t){return r.a.createElement(i.Row,{key:t,className:"py-2"},r.a.createElement(i.Col,{xs:a?12:n?4:3,className:"flex-column align-items-flex-start mb-1"},r.a.createElement(i.Row,null,!!s&&r.a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialDragHandle)})),r.a.createElement(i.Col,{xs:s?10:12},r.a.createElement("div",{className:"partial-loading-background rounded-lg ".concat(l.a.partialThumbnail)})))),r.a.createElement(i.Col,{xs:a?12:n?8:9},r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialSeriesLink)}),r.a.createElement("div",{className:"partial-loading-background mb-1 ".concat(l.a.partialName)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialDescription)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialBadges)}),r.a.createElement("div",{className:"partial-loading-background ".concat(l.a.partialActions)})))})))}u.defaultProps={numVideos:15}},849:function(e,t,a){e.exports={partialName:"_7KNC2",partialDescription:"Vk_wR",partialThumbnail:"_3peRZ",partialDragHandle:"_1F7_f"}},850:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(14),r=a(154),i=a(831),o=a(239),c=a(843);function s(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var u={ratings:!0,favourites:!0,watchHistory:!0};function d(e,t){var a,r=n.a.useGetResponse(null===(a=t)||void 0===a?void 0:a.key),i=n.a.useGetFetch(t);e&&t&&r.shouldFetch&&i()}function m(e){var t,a,l,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=Object.assign(Object.assign({},u),m),f=p.ratings,v=p.favourites,b=p.watchHistory,y=n.a.useBasicFetch(r.a.currentUser()),g=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),h=y.data,E=[];f&&(E=[].concat(s(E),[!!(null===(t=g)||void 0===t?void 0:t.length)&&o.a.videoRatings(g)])),v&&(E=[].concat(s(E),[!!(null===(a=g)||void 0===a?void 0:a.length)&&h&&i.a.isFavourited(h.id,g)])),b&&(E=[].concat(s(E),[!!(null===(l=g)||void 0===l?void 0:l.length)&&h&&c.a.videoHistory(h.customerId,h.id,g)])),E.forEach((function(t){return d(!!e,t)}))}},895:function(e,t,a){"use strict";function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return r(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"a",(function(){return i}));var i={getPartialLoadingItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.numItems,a=void 0===t?5:t,r=e.minWidth,i=void 0===r?50:r,o=e.maxWidth,c=void 0===o?100:o,s=function(){return Math.max(Math.floor(Math.random()*c),i)};return n(Array(a)).map((function(){return{width:"".concat(s(),"px")}}))}}},913:function(e,t,a){"use strict";var n=a(0),r=a(7),i=a(55),o=a(51),c=a(13);function s(e){var t=e.backToName,a=e.appLink,s=e.color,l=e.extraClasses,u=t?r.a.getPhrase("shared.backButton","backTo",{backToName:t}):r.a.getPhrase("shared.backButton","back"),d="black"===s?"":"text-light";return n.createElement(o.a,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(d)},n.createElement(i.a,{svgName:c.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},u))}s.defaultProps={color:"black",extraClasses:""};var l=a(155),u=a(115),d=a(828),m=a(931),p=a.n(m);a.d(t,"a",(function(){return f})),a.d(t,"b",(function(){return v}));var f=n.memo((function(e){var t=e.heading,a=e.banner,r=e.imageCdnUrl,i=e.actions,o=e.sortComponent,c=l.a.createBannerUrl(a,{fallbackBaseUrl:r,fallbackCategoryName:t,type:u.b.Banners},{size:u.a.Large,resizeType:u.c.Cover});return n.createElement("div",{className:"banner banner-header",style:{backgroundImage:"url('".concat(c,"')")}},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(s,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("h1",{className:"".concat(p.a.text," text-white text-shadow position-absolute mb-3 clamp-2")},t),!!i&&n.createElement("div",{className:p.a.actionsContainer},n.createElement(d.a,{actions:i,sortComponent:o})))}),(function(e,t){return e.actions===t.actions})),v=function(){return n.createElement("div",{className:"partial-banner partial-loading-background"})}},931:function(e,t,a){e.exports={actionsContainer:"_286KF",text:"_3TSgh"}},993:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(161),r=function(e){return"/api/domain/v2/objects/".concat(e)},i=function(e,t){return"/api/domain/v2/objects/".concat(e,"/videos?query=").concat(n.a.VIDEO_COLLECTION).concat(function(e){return e?"&cursor=".concat(e):""}(t))},o=function(e){return"/api/domain/v1/subjects/".concat(e,"/path")},c={series:function(e){return{url:r(e),key:"series:".concat(e)}},seriesVideos:function(e,t){return{url:i(e,t),key:"series:".concat(e,":videos:").concat(t)}},breadcrumbs:function(e){if(e)return{url:o(e),key:"series:".concat(e,":breadcrumbs")}}}}}]);