@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/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","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/actions/actions.scss?ab20","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","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/tags/tags.scss?80ab","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","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/clip-widget-item/clip-widget-item.scss?32eb","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/interactive-widget-item/InteractiveWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/interactive-widget-item/interactive-widget-item.scss?6cbd","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.tsx","webpack://@clickview/lite/./src/shared/components/immersive-reader/immersive-reader.scss?5e79","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","webpack://@clickview/lite/./src/shared/components/play-page/play-page.scss?8eab","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","webpack://@clickview/lite/./src/shared/components/synopsis/synopsis.scss?97e6","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/components/video-details/VideoDetails.tsx","webpack://@clickview/lite/./src/shared/components/video-details/video-details.scss?391b","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useWindowListeners.ts"],"names":[],"mappings":"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","file":"scripts/6.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 * 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\"};","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 } 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\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\n\r\nconst namespace = 'shared.playPage';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\n// TODO: Add analytics to these actions\r\nconst getActions = (video: Video, 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: !isMobile ? 'btn btn-light ml-2' : '',\r\n button: !isMobile\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 label: getPhrase('viewCurriculumLinks') // 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}\r\n\r\nexport function PlayPage(props: PlayPageProps): JSX.Element {\r\n const { video, glanceTheme } = 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 [ showSynopsis, setShowSynopsis ] = React.useState(hasGlanceData);\r\n\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\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, isMobile)} />\r\n </div>\r\n\r\n {showSynopsis\r\n ? (\r\n <Synopsis\r\n theme={glanceTheme}\r\n video={video}\r\n hasGlanceData={hasGlanceData}\r\n hasDetails={hasDetails}\r\n onClickFullDescription={() => setShowSynopsis(false)}\r\n />\r\n ) : (\r\n <VideoDetailsWithScrollbar\r\n video={video}\r\n hasGlanceData={hasGlanceData}\r\n hasBadges={hasBadges}\r\n hasPPDD={hasPPDD}\r\n onClickShowSynopsis={() => setShowSynopsis(true)}\r\n />\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 onClickFullDescription: () => void;\r\n}\r\n\r\nexport function Synopsis(props: SynopsisProps): JSX.Element {\r\n const { video, theme, hasGlanceData, hasDetails, onClickFullDescription } = props;\r\n\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 (!hasGlanceData)\r\n return;\r\n\r\n const html = marked(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 }, [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 (!hasGlanceData && hasDetails) {\r\n onClickFullDescription();\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 {hasDetails && (\r\n <DivButton onClick={props.onClickFullDescription} className='cursor-pointer d-inline-block'>\r\n <strong><Text namespace={namespace} phrase='showFullDescription' /></strong>\r\n </DivButton>\r\n )}\r\n </div>\r\n\r\n {theme ? Object.keys(theme.data).map((imageDataKey: keyof typeof theme.data) => (\r\n <div\r\n key={theme.data[imageDataKey].fileId}\r\n className={`${styles[imageDataKey]} ${styles.background}`}\r\n style={{\r\n backgroundImage: `url('${ImageHelper.createUrl(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\n\r\nimport { ImmersiveReader } from 'shared/components/immersive-reader/ImmersiveReader';\r\n\r\nimport styles from './video-details.scss';\r\nimport { TagList } from 'libs/shared/components/tags/TagList';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'shared.videoDetails';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\n// 368 is the min height of Video at a glance which is defined as $glanceHeight in synopsis.scss\r\nconst MIN_GLANCE_HEIGHT = 368; // px\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 onClickShowSynopsis: () => void;\r\n}\r\n\r\nexport function VideoDetailsWithScrollbar(props: VideoDetailsWithScrollbarProps): React.ReactElement {\r\n const { video, hasGlanceData, hasBadges, hasPPDD, onClickShowSynopsis } = props;\r\n\r\n if (!hasBadges && !hasPPDD && !video.tags?.data?.length && !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={MIN_GLANCE_HEIGHT}>\r\n <div className={video.description ? 'pb-2' : ''}>\r\n <h2 className='h6'><Text phrase='details' /></h2>\r\n {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 {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={`d-flex align-items-center ${(hasBadges || hasPPDD || video.tags?.data?.length) ? 'pt-2' : ''}`}\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 {video.description && (\r\n <p className='mb-0'>{video.description}</p>\r\n )}\r\n </>\r\n )}\r\n\r\n {hasGlanceData && (\r\n <DivButton\r\n className={`${styles.showGlance} cursor-pointer d-inline-block`}\r\n onClick={onClickShowSynopsis}\r\n role='button'\r\n tabIndex={0}\r\n >\r\n <strong><Text phrase='showGlance' /></strong>\r\n </DivButton>\r\n )}\r\n </Scrollbars>\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"showGlance\":\"cv--showGlance--2fhqC\"};","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":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistOwnerAvatar.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss?dd51","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/audience-label.scss?93bd","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/clickview-avatar/ClickViewAvatar.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/clickview-avatar/clickview-avatar.scss?e4bc","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/AudienceHelper.ts"],"names":[],"mappings":"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","file":"scripts/6.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { AudienceHelper } from 'libs/shared/utils/AudienceHelper';\r\nimport { ImageSize, ResizeType } from 'libs/shared/enums/Images';\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { BaseThumbnail } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\r\n\r\nimport { PlaylistOwnerAvatar } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistOwnerAvatar';\r\n\r\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\r\n\r\nimport styles from './playlist.scss';\r\n\r\nconst namespace = 'playlists.playlistItem';\r\n\r\nfunction getBgColourClassName(playlist: Playlist, classNames: string[]): string {\r\n const bgClassName = classNames[playlist.name.charCodeAt(0) % classNames.length];\r\n\r\n return `${styles.playlistItem} ${bgClassName}`;\r\n}\r\n\r\ninterface PlaylistItemProps {\r\n data: Playlist;\r\n appLink: Core.AppLink;\r\n currentUser?: CurrentUser;\r\n presentationAudiences?: PresentationAudience[];\r\n bgColourClassNames?: string[];\r\n imageCdnUrl?: string;\r\n showCount?: boolean;\r\n showOwner?: boolean;\r\n showFallbackImage?: boolean;\r\n showLastUpdated?: boolean;\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport function PlaylistItem(props: PlaylistItemProps): JSX.Element {\r\n const imageUrl = ImageHelper.createUrl(props.data.cover && props.data.cover.url, {\r\n size: ImageSize.Medium,\r\n resizeType: ResizeType.Cover\r\n });\r\n\r\n const audiences = props.data.subjectPresentationAudiences &&\r\n props.data.subjectPresentationAudiences.data;\r\n\r\n const filteredAudiences = audiences && props.presentationAudiences &&\r\n AudienceHelper.getSortedPresentationAudiences(audiences, props.presentationAudiences);\r\n const mergedAudience = filteredAudiences && AudienceHelper.getMergedPresentationAudienceString(filteredAudiences);\r\n\r\n const count = !!props.showCount && !!props.data.videos && props.data.videos.count;\r\n\r\n const lastUpdatedDate = !!props.showLastUpdated && props.data.contentModifiedDate &&\r\n moment.utc(props.data.contentModifiedDate);\r\n\r\n let className = styles.playlistItem;\r\n\r\n const showImage = !!imageUrl || !!props.showFallbackImage;\r\n\r\n if (showImage)\r\n className += ` ${styles.playlistItemGradient}`;\r\n\r\n if (!showImage && props.bgColourClassNames)\r\n className += ` ${getBgColourClassName(props.data, props.bgColourClassNames)}`;\r\n\r\n const analyticsData = { ...props.analyticsData,\r\n id: props.data?.id,\r\n name: props.data?.name\r\n };\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <AppLink appLink={props.appLink} analyticsData={analyticsData} analyticsOptions={props.analyticsOptions}>\r\n <BaseThumbnail data={imageUrl} className={className}>\r\n {!!props.showFallbackImage && <ThumbnailFallback type={ThumbnailFallbackType.Playlist} />}\r\n <div className={`text-white ${styles.playlistMetadata}`}>\r\n {Number.isInteger(count) &&\r\n <Text phrase='videos' options={{ smartCount: count }} />\r\n }\r\n <h5 className={`${styles.playlistName} text-shadow mb-0`}>{props.data.name}</h5>\r\n {(() => {\r\n if (!lastUpdatedDate)\r\n return <></>;\r\n\r\n if (lastUpdatedDate.isBefore(moment.utc().subtract(1, 'month')))\r\n return <Text phrase='notUpdatedRecently' />;\r\n\r\n return <Text phrase='lastUpdated' options={{ timeAgo: lastUpdatedDate.fromNow() }} />;\r\n })()}\r\n {!!audiences && !!audiences.length && !!mergedAudience &&\r\n <AudienceLabel\r\n audience={mergedAudience}\r\n border='white'\r\n />\r\n }\r\n </div>\r\n {!!props.showOwner && !!props.imageCdnUrl &&\r\n <div className={styles.ownerAvatarContainer}>\r\n <PlaylistOwnerAvatar\r\n playlist={props.data}\r\n currentUser={props.currentUser}\r\n imageCdnUrl={props.imageCdnUrl}\r\n />\r\n </div>\r\n }\r\n </BaseThumbnail>\r\n </AppLink>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { Playlist, CurrentUser } from 'libs/shared/interfaces';\r\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\r\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\r\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\r\n\r\ninterface PlaylistOwnerAvatarProps {\r\n playlist: Playlist;\r\n imageCdnUrl: string;\r\n currentUser?: CurrentUser;\r\n}\r\n\r\nexport function PlaylistOwnerAvatar(props: PlaylistOwnerAvatarProps): JSX.Element {\r\n const { owner } = props.playlist;\r\n\r\n if (!owner || !props.currentUser)\r\n return <></>;\r\n\r\n const currentUserIsOwner = props.playlist.owner.id === props.currentUser.id;\r\n\r\n // TODO: Replace this with actual property.\r\n const isClickViewPlaylist = !!props.playlist.cover?.url;\r\n\r\n if (isClickViewPlaylist)\r\n return (\r\n <ClickViewAvatar />\r\n );\r\n\r\n if (currentUserIsOwner)\r\n return <></>;\r\n\r\n const url = typeof owner.avatar === 'string' ? owner.avatar : owner.avatar?.url;\r\n\r\n return (\r\n <Avatar\r\n imageUrl={url}\r\n imageCdnUrl={props.imageCdnUrl}\r\n initials={UserHelper.getInitials(owner.name, owner.surname)}\r\n />\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"playlistItem\":\"cv--playlistItem--6o0Z2\",\"playlistItemGradient\":\"cv--playlistItemGradient--2JLPt\",\"playlistMetadata\":\"cv--playlistMetadata--3MCKL\",\"playlistName\":\"cv--playlistName--1Ukz7\",\"partialHeading\":\"cv--partialHeading--13tO6\",\"ownerAvatarContainer\":\"cv--ownerAvatarContainer--CwjTl\"};","import * as React from 'react';\r\nimport { Audience } from 'libs/shared/interfaces';\r\n\r\nimport styles from './audience-label.scss';\r\n\r\ntype AudienceBorderColour = 'dark' | 'white';\r\n\r\ninterface AudienceLabelProps {\r\n audience: Audience;\r\n border: AudienceBorderColour;\r\n}\r\n\r\nexport function AudienceLabel(props: AudienceLabelProps): JSX.Element {\r\n if (!props.audience)\r\n return <></>;\r\n\r\n return (\r\n <div className={`border rounded-pill d-inline-block px-2 mt-1 ${'border-' + props.border}`}>\r\n {props.audience.name}\r\n </div>\r\n );\r\n}\r\n\r\ninterface AudienceLabelListProps {\r\n audiences: Audience[];\r\n border: AudienceBorderColour;\r\n}\r\n\r\nexport function AudienceLabelList(props: AudienceLabelListProps): JSX.Element {\r\n if (!props.audiences || !props.audiences.length)\r\n return <></>;\r\n\r\n return (\r\n <>\r\n {props.audiences.map((a, idx) => (\r\n <span key={idx} className={styles.audienceLabelListItem}>\r\n <AudienceLabel audience={a} border={props.border} />\r\n </span>\r\n ))}\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"audienceLabelListItem\":\"cv--audienceLabelListItem--2YGVO\"};","import * as React from 'react';\r\n\r\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\n\r\nimport * as styles from './clickview-avatar.scss';\r\n\r\nexport function ClickViewAvatar(): JSX.Element {\r\n return (\r\n <div className={styles.avatar}>\r\n <ClickViewPlayLogo />\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"cv--avatar--1IfFN\"};","import { HashObject } from 'libs/common/react/interfaces';\r\nimport { Audience, PresentationAudience, BaseObject } from 'libs/shared/interfaces';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nconst DIGIT_REGEX = /([0-9]+)/ig;\r\nconst NAME_REGEX = /(^\\w+)/ig;\r\nconst COUNT_OFFSET = 1;\r\n\r\nfunction processAudienceRanges(audienceValues: number[]): string[] {\r\n /**\r\n * Lookahead by increments of offset\r\n */\r\n let offset = COUNT_OFFSET;\r\n\r\n let initialVal, nextVal;\r\n let isContinguous: boolean = false;\r\n\r\n const ranges: string[] = [];\r\n\r\n // Audience values need to be in ascending order\r\n audienceValues = audienceValues.sort((a, b) => a - b);\r\n\r\n let i, j;\r\n\r\n for (i = 0; i < audienceValues.length; i++) {\r\n j = i + 1;\r\n\r\n // Set our lower boundary to compare against\r\n if (!isContinguous)\r\n initialVal = audienceValues[i];\r\n\r\n nextVal = audienceValues[j];\r\n\r\n /**\r\n * Where the next number is also the next incremental value\r\n * we're going to continue iterating until the next value\r\n * is no longer contiguos.\r\n */\r\n if (audienceValues[i] + offset === nextVal) {\r\n isContinguous = true;\r\n\r\n } else if (isContinguous) {\r\n\r\n /**\r\n * Where we were tracking a contiguous set, format appropriately \r\n * and store the vals\r\n */\r\n\r\n ranges.push(`${initialVal} - ${audienceValues[i]}`);\r\n isContinguous = false;\r\n\r\n } else {\r\n\r\n /**\r\n * Where the values arent contiguous, just store the current value\r\n */\r\n\r\n ranges.push(`${audienceValues[i]}`);\r\n isContinguous = false;\r\n }\r\n\r\n }\r\n\r\n return ranges;\r\n}\r\n\r\nexport const AudienceHelper = {\r\n /**\r\n * This is needed to sort an object's audiences, as they are not sorted by the backend.\r\n * To do this, we take the presentation audiences (sorted) and filter them by the object's\r\n * audiences, leaving behind a sorted array of object audiences.\r\n */\r\n getSortedPresentationAudiences(\r\n objectAudiences: Audience[],\r\n presentationAudiences: PresentationAudience[]\r\n ): PresentationAudience[] {\r\n const objectAudienceIds = objectAudiences.map(audience => audience.id.toString());\r\n\r\n /**\r\n * Remove audiences that aren't relevant for the user's current presentation\r\n */\r\n const filteredAudiences = presentationAudiences.filter(presAudience => {\r\n return objectAudienceIds.includes(presAudience.masterId.toString());\r\n });\r\n\r\n return filteredAudiences;\r\n },\r\n\r\n getMergedPresentationAudienceString(presentationAudiences: PresentationAudience[]): PresentationAudience {\r\n if (presentationAudiences.length === 1)\r\n return presentationAudiences[0];\r\n\r\n /**\r\n * Create a string with all of the audiences\r\n */\r\n const valuesStr = presentationAudiences.map(a => a.name).join(',');\r\n\r\n /**\r\n * Extract all the numbers and matches from the string\r\n * Where there aren't matches, just return the first Audience.\r\n */\r\n const valMatches = valuesStr.match(DIGIT_REGEX);\r\n const nameMatches = valuesStr.match(NAME_REGEX);\r\n\r\n if (!valMatches || !nameMatches) return presentationAudiences[0];\r\n\r\n const audienceValues = valMatches\r\n .map(l => +l) || [];\r\n\r\n /**\r\n * Build set of logical audience ranges\r\n */\r\n const audienceRange = processAudienceRanges(audienceValues);\r\n\r\n /**\r\n * Get matches name\r\n */\r\n const audienceName = nameMatches[0];\r\n\r\n return {\r\n name: `${audienceName} ${audienceRange.join(' , ')}`\r\n } as PresentationAudience;\r\n },\r\n\r\n /**\r\n * This function assumes the members array passed in is ordered by `name`.\r\n */\r\n sortMembersWithDuplicateNamesByAudience(members: BaseObject[]): BaseObject[] {\r\n // Returns the lowest level audience out of an array of audience objects by looking at the name\r\n const getLowestAudience = (audiences: Audience[]) => {\r\n if (!audiences.length)\r\n return null;\r\n\r\n let lowestAudience: Audience;\r\n let lowestAudienceDigit: number;\r\n\r\n audiences.forEach(audience => {\r\n const digit = +ArrayHelper.first(audience.name.match(DIGIT_REGEX));\r\n\r\n if (!lowestAudience) {\r\n lowestAudience = audience;\r\n lowestAudienceDigit = digit;\r\n return;\r\n }\r\n\r\n if (digit < lowestAudienceDigit)\r\n lowestAudience = audience;\r\n });\r\n\r\n return lowestAudience;\r\n };\r\n\r\n // This is used to track how many times a member's name appears in the collection\r\n const nameCountMap: HashObject<number> = {};\r\n\r\n let sorted: BaseObject[] = [];\r\n\r\n members.forEach(member => {\r\n if (!nameCountMap[member.name]) {\r\n nameCountMap[member.name] = 1;\r\n sorted.push(member);\r\n return;\r\n }\r\n\r\n sorted.push(member);\r\n nameCountMap[member.name]++;\r\n\r\n // Take the slice of duplicates that we want to sort by audience\r\n const slice = sorted.splice(sorted.length - nameCountMap[member.name]);\r\n\r\n // Sort the slice by lowest audience\r\n const sortedSlice = slice.sort((a: any, b: any) => {\r\n const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);\r\n const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);\r\n\r\n if (!firstObjLowestAudience && secondObjLowestAudience)\r\n return 1;\r\n\r\n if (!secondObjLowestAudience)\r\n return -1;\r\n\r\n const comparison = firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);\r\n\r\n if (comparison === 0) return comparison;\r\n\r\n return comparison > 0 ? -1 : 1;\r\n });\r\n\r\n sorted = sorted.concat(sortedSlice);\r\n });\r\n\r\n return sorted;\r\n }\r\n};"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[60],{1292:function(e,n,t){"use strict";t.r(n),t.d(n,"CancelUploadView",(function(){return h}));var r=t(0),a=t(9),c=t(153),o=t(7),i=t(48),l=t(17),s=t(238),u=t(243),p=t(824),f=t(44),d=t(73),g=t(28),b=t(5),m=t(252);function y(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,a=!1,c=void 0;try{for(var o,i=e[Symbol.iterator]();!(r=(o=i.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(e){a=!0,c=e}finally{try{r||null==i.return||i.return()}finally{if(a)throw c}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return v(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return v(e,n)}(e,n)||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 v(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var A=o.a.encloseNamespace("upload.cancelUpload");function h(e){var n=e.id,t=e.status,o=e.name,v=y(r.useState(!1),2),h=v[0],w=v[1],P=Object(c.a)(g.b.CombineUploads),U=Object(p.a)(),E=t===m.b.Uploading,S=function(){var n=E?"cancelUploadingAlertHeading":"cancelProcessingAlertHeading",t=E?"cancelUploadingAlertMessage":"cancelProcessingAlertMessage";U.success({type:i.a.Success,heading:A(n),message:A(t,{videoName:o})}),e.closePopup()},O=[{variant:"link",onClick:function(){return e.closePopup()},buttonText:"No"},{variant:"primary",onClick:function(){(w(!0),E)?(P.cancelUpload(n),a.Radio.channel(l.c.VIDEO_UPLOAD).on(f.a.UPLOAD_CANCELLED,(function(){return S()}))):(P.cancelProcessing(n),a.Radio.channel(b.b.COMBINE_UPLOADS).on(f.a.PROCESSING_CANCELLED,(function(){return S()})))},buttonText:"Yes",isSpinnerButton:!0,showSpinner:h}],C=t===m.b.Processing?"cancelProcessingTitle":"cancelUploadingTitle",L=t===m.b.Processing?"cancelProcessingMessage":"cancelUploadingMessage";return r.createElement(s.a,{title:A(C),closePopup:function(){return e.closePopup()}},r.createElement("p",null,r.createElement(d.b,{namespace:"upload.cancelUpload",phrase:L,options:{videoName:o}})),r.createElement(u.a,{buttons:O}))}},824:function(e,n,t){"use strict";t.d(n,"a",(function(){return o}));var r=t(153),a=t(48),c=t(52),o=function(){var e=Object(r.a)(c.a.ALERT);return{success:function(n){e.success(n)()},error:function(n){e.error(n)()},warning:function(n){e.createAlert({type:a.a.Warning,heading:a.c.Warning,message:n})}}}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[61],{1279:function(t,e,r){"use strict";r.r(e),r.d(e,"PlaySharedView",(function(){return f}));var n=r(0),a=r(14),o=r(89),i=r(237),c=r(1075),u=r(992),l=r(92);function s(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(n=(i=c.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(t){a=!0,o=t}finally{try{n||null==c.return||c.return()}finally{if(a)throw o}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return d(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function f(t){var e,r=s(Object(o.a)(l.a.WEB_PLAYER_DATA),2)[1],d=a.a.useBasicFetch(u.a.sharedResource(t.shortCode));return Object(i.a)(null===(e=d.data)||void 0===e?void 0:e.name),n.useEffect((function(){d.data&&r("video",d.data)}),[!!d.data]),d.data?n.createElement("div",{className:"px-3"},n.createElement(c.a,{video:d.data})):n.createElement(n.Fragment,null)}},992:function(t,e,r){"use strict";r.d(e,"a",(function(){return o}));var n=r(21),a=r(161),o={getShareData:function(t){if(t)return{url:"/api/domain/v1/share",key:"share:".concat(t),type:n.a.POST,data:{id:t,privacy:null}}},sharedResource:function(t){return{url:"/api/domain/v2/share/".concat(t,"?query=").concat(a.a.VIDEO),key:"shared:resource:".concat(t)}}}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[62],{1284:function(e,t,n){"use strict";n.r(t),n.d(t,"DialogView",(function(){return s}));var o=n(0),c=n(35),i=n(243),l=n(238);function s(e){var t=e.buttons.map((function(t){return{buttonText:t.text,className:t.className,onClick:function(){t.success?c.a.isFunction(e.onDone)&&e.onDone():c.a.isFunction(e.onFail)&&e.onFail(),t.close&&e.closePopup()},type:t.type}}));return o.createElement(l.a,{title:e.title,closePopup:e.closePopup},o.createElement("p",null,e.text),o.createElement(i.a,{buttons:t}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[63],{1278:function(e,t,i){"use strict";i.r(t),i.d(t,"ClassificationUpdateView",(function(){return r}));var a=i(0),n=i(90),s=i(14),p=i(7),c=i(1069),d=i(237),o=i(929),l=i(1012);function r(e){var t,i,r,u=e.classificationId,k=n().subtract(1,"year").toISOString(),f=n().toISOString(),g=s.a.useBasicFetch(c.a.getClassification(u)),L=s.a.useBasicFetch(c.a.getContentUpdates(k,f)),v=null===(t=L.data)||void 0===t?void 0:t.find((function(e){return e.classificationId===u}));return Object(d.a)(null!=(r=null===(i=g.data)||void 0===i?void 0:i.name)?r:p.a.getPhrase("contentUpdates.classificationUpdate","defaultPageTitle")),L.data&&g.data?a.createElement("div",{className:"bg-white px-3"},a.createElement(l.b,{classification:g.data,dashboardAppLink:e.appLinks.dashboardAppLink,contentUpdatesAppLink:e.appLinks.contentUpdatesAppLink}),a.createElement(o.a,{canEdit:!1,playlistId:"0",isUserSignedIn:!0,onSortComplete:function(){},videos:v.videos,getVideoAppLink:e.appLinks.getVideoAppLink,getSeriesAppLink:e.appLinks.getSeriesAppLink})):a.createElement(a.Fragment,null)}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[64],{1285:function(e,t,n){"use strict";n.r(t),n.d(t,"DevErrorView",(function(){return c}));var r=n(0),a=n(33),l=n(237);function c(e){var t=e.error;return Object(l.a)("Dev Error"),t?r.createElement("div",{className:"px-3"},r.createElement("h1",null,t.name),r.createElement(a.Alert,{variant:"danger"},r.createElement("h2",null,t.message)),r.createElement(a.Alert,{variant:"warning"},r.createElement("h3",null,"Call stack"),r.createElement("code",null,t.stack))):r.createElement(r.Fragment,null)}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[65],{1288:function(e,a,t){"use strict";t.r(a),t.d(a,"EditPlaylistView",(function(){return P}));var i=t(0),n=t(61),s=t(7),l=t(14),c=t(3),o=t(40),p=t(237),d=t(861),r=t(238),u=t(824),y=t(1076),w=s.a.encloseNamespace("playlists.editPlaylist");function P(e){var a=Object(n.useDispatch)(),t=Object(u.a)(),s=l.a.useBasicFetch(d.a.getPlaylist(e.playlistId));Object(p.a)(s.data&&w("title",{name:s.data.name}),[s]);return i.createElement(r.a,{title:w("heading"),closePopup:e.closePopup,showLoadingSpinner:!s.data},!!s.data&&i.createElement(y.a,{playlist:s.data,savePlaylist:function(i){l.a.fetch(a,d.a.updatePlaylist(e.playlistId,i,(function(a){t.success(w("success",{name:a.name})),o.a.logUserAction({id:a.id},o.a.mergeOptions(e.analyticsOptions,{actionType:c.n.Edit,entity:c.d.Playlist,workflowPhase:c.o.Complete})),e.closePopup()}),(function(){t.error(w("error",{name:s.data.name})),e.closePopup()})))},onClickCancel:e.closePopup,cancelButtonClass:"secondary"}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[66],{1287:function(e,a,t){"use strict";t.r(a),t.d(a,"NewPlaylistView",(function(){return g}));var i=t(0),c=t(61),n=t(2),s=t(14),l=t(7),o=t(3),p=t(40),r=t(237),u=t(154),w=t(861),P=t(238),d=t(824),y=t(10),f=t(1076),k=t(47),m=l.a.encloseNamespace("playlists.newPlaylist");function g(e){var a=Object(c.useDispatch)(),t=Object(d.a)();Object(r.a)(m("title"));var l=s.a.useBasicFetch(u.a.currentUser());return i.createElement(P.a,{title:m("title"),closePopup:e.closePopup,showLoadingSpinner:!l.data},!!l.data&&i.createElement(f.a,{savePlaylist:function(i){s.a.fetch(a,w.a.createPlaylist(l.data.id,i,(function(a){t.success(m("success",{name:i.name})),p.a.logUserAction({id:a.id},p.a.mergeOptions(e.analyticsOptions,{actionType:o.n.Create,entity:o.d.Playlist,workflowPhase:o.o.Complete})),e.closePopup(),n.a.AppLinkHelper.trigger({application:e.application,action:y.a.Playlists.PLAYLIST,args:[a.id,k.a.slugify(a.name)]})}),(function(){t.error(m("error")),e.closePopup()})))},onClickCancel:e.closePopup,cancelButtonClass:"link"}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[67],{823:function(t,e){!function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,n=i(e);n;)n=i(e=n.ownerDocument);return e}(),e=[],n=null,o=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return n||(n=function(t,n){o=t&&n?l(t,n):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),n},s._resetCrossOriginUpdater=function(){n=null,o=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var n=e.defaultView;if(n&&-1==this._monitoringDocuments.indexOf(e)){var o=this._checkForIntersections,r=null,s=null;if(this.POLL_INTERVAL?r=n.setInterval(o,this.POLL_INTERVAL):(h(n,"resize",o,!0),h(e,"scroll",o,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in n&&(s=new n.MutationObserver(o)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",o,!0)),c(e,"scroll",o,!0),s&&s.disconnect()})),e!=(this.root&&this.root.ownerDocument||t)){var u=i(e);u&&this._monitorIntersections(u.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var n=this._monitoringDocuments.indexOf(e);if(-1!=n){var o=this.root&&this.root.ownerDocument||t;if(!this._observationTargets.some((function(t){var n=t.element.ownerDocument;if(n==e)return!0;for(;n&&n!=o;){var r=i(n);if((n=r&&r.ownerDocument)==e)return!0}return!1}))){var r=this._monitoringUnsubscribes[n];if(this._monitoringDocuments.splice(n,1),this._monitoringUnsubscribes.splice(n,1),r(),e!=o){var s=i(e);s&&this._unmonitorIntersections(s.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!n||o){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(o){var i=o.element,s=u(i),h=this._rootContainsTarget(i),c=o.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=o.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:n&&!this.root?null:e,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,l)&&this._queuedEntries.push(l):c&&c.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),w=!1;!w&&_;){var b=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(w=!0,_==this.root||_==t)n&&!this.root?!o||0==o.width&&0==o.height?(_=null,b=null,v=null):b=o:b=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,b=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(b=u(_))}if(b&&(s=b,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root)e=u(this.root);else{var n=t.documentElement,o=t.body;e={top:0,left:0,right:n.clientWidth||o.clientWidth,width:n.clientWidth||o.clientWidth,bottom:n.clientHeight||o.clientHeight,height:n.clientHeight||o.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,n){return"px"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100})),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},s.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,o=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==o)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==n||r==o||r<n!=r<o)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){return f(this.root||t,e)&&(!this.root||this.root.ownerDocument==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,n=e.width*e.height,o=this.intersectionRect,i=o.width*o.height;this.intersectionRatio=n?Number((i/n).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var n,o,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=(n=this._checkForIntersections.bind(this),o=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){n(),i=null}),o))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,n,o){"function"==typeof t.addEventListener?t.addEventListener(e,n,o||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,n)}function c(t,e,n,o){"function"==typeof t.removeEventListener?t.removeEventListener(e,n,o||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,n)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var n=e.top-t.top,o=e.left-t.left;return{top:n,left:o,height:e.height,width:e.width,bottom:n+e.height,right:o+e.width}}function f(t,e){for(var n=e;n;){if(n==t)return!0;n=p(n)}return!1}function p(e){var n=e.parentNode;return 9==e.nodeType&&e!=t?i(e):n&&11==n.nodeType&&n.host?n.host:n&&n.assignedSlot?n.assignedSlot.parentNode:n}}()}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[7],{1076:function(t,e,n){"use strict";var r=n(0),a=n(826),o=n(7),i=n(73),c=n(832),l=n(851),u=n(852),s=n(886),f="playlists.validation",y=s.object().shape({name:s.string().max(250,(function(){return o.a.getPhrase(f,"nameExceeds")})).required((function(){return o.a.getPhrase(f,"nameRequired")})),description:s.string().max(65535,(function(){return o.a.getPhrase(f,"descriptionExceeds")}))});n.d(e,"a",(function(){return m}));var p=o.a.encloseNamespace("playlists.playlistDetails");function d(t){var e=Object(c.b)();return r.createElement(a.c,null,r.createElement(l.b,{label:p("nameLabel"),type:"text",name:"name",id:"name",placeholder:p("namePlaceholder"),autoFocus:!0,value:e.values.name}),r.createElement(l.b,{label:p("descriptionLabel"),component:"textarea",name:"description",id:"description",placeholder:p("descriptionPlaceholder"),value:e.values.description}),r.createElement("div",{className:"btn-container d-flex justify-content-end"},r.createElement("button",{type:"button",className:"btn btn-".concat(t.cancelButtonClass," mr-2"),onClick:t.onClickCancel},r.createElement(i.b,{namespace:"playlists.playlistDetails",phrase:"cancel"})),r.createElement(u.a,{isNew:t.isNew})))}function m(t){var e=t.playlist,n=(e=void 0===e?{}:e).name,a=void 0===n?"":n,o=e.description,i=void 0===o?"":o,l=e.id,u=void 0===l?null:l,s=t.savePlaylist,f=t.onClickCancel,p=t.cancelButtonClass;return r.createElement(c.a,{initialValues:{name:a,description:i},validationSchema:y,onSubmit:s},r.createElement(d,{isNew:!u,onClickCancel:f,cancelButtonClass:p}))}},824:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(153),a=n(48),o=n(52),i=function(){var t=Object(r.a)(o.a.ALERT);return{success:function(e){t.success(e)()},error:function(e){t.error(e)()},warning:function(e){t.createAlert({type:a.a.Warning,heading:a.c.Warning,message:e})}}}},832:function(t,e,n){"use strict";n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return u}));var r=n(0),a=n(826),o=n(35),i=n(57),c=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(t);a<r.length;a++)e.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(n[r[a]]=t[r[a]])}return n};function l(t){var e=t.castInitialValues,n=t.castValuesOnSubmit,l=t.initialValues,u=t.onSubmit,s=t.resetOnSubmit,f=c(t,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),y=e&&t.validationSchema?t.validationSchema.cast(function t(e){var n=i.a.deepClone(e);return Object.keys(n).forEach((function(e){n.hasOwnProperty(e)&&(i.a.isObject(n[e])?n[e]=t(n[e]):null===n[e]&&delete n[e])})),n}(l)):l,p={allowInitialSubmit:t.allowInitialSubmit};return r.createElement(a.d,Object.assign({enableReinitialize:!0},f,{initialValues:y,onSubmit:function(e,r){var a=r.setSubmitting,o=r.resetForm,i=n&&t.validationSchema?t.validationSchema.cast(e):e;u(i,(function(){s&&o(),a(!1)}))},initialStatus:p}),o.a.isFunction(t.children)?function(e){return t.children(e)}:r.Children.count(t.children)?t.children:null)}function u(){return Object(a.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},838:function(t,e,n){"use strict";n.d(e,"a",(function(){return p}));var r=n(244),a=n(85),o=n(865);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=y(t);if(e){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return f(this,n)}}function f(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function y(t){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(f,t);var e,n,r,i=s(f);function f(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.a.Newest,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o.a.OwnedByMe;return c(this,f),(t=i.call(this,{collectionPrefix:"user:playlists",cursor:n,sort:e})).type=r,t}return e=f,(n=[{key:"toString",value:function(){return[this.collectionPrefix,this.sort,this.cursor,this.type].filter(Boolean).join(":")}}])&&l(e.prototype,n),r&&l(e,r),f}(r.a)},842:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var r=n(826),a={getCustomFormControlClassName:function(t,e,n,a){var o="form-control";return Object(r.e)(e,n)&&Object(r.e)(t,n)&&(o+=" is-invalid"),a&&(o+=" ".concat(a)),o}}},851:function(t,e,n){"use strict";var r=n(0),a=n(826),o=n(33),i=n(35),c=n(842);function l(t){var e=Object(a.f)().values[t.fieldName];return"string"!=typeof e?r.createElement(r.Fragment,null):r.createElement("div",{className:"float-right text-muted"},e.length,"/",t.limit)}var u=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(t);a<r.length;a++)e.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(n[r[a]]=t[r[a]])}return n};function s(t){var e=t.label,n=u(t,["label"]);return r.createElement(o.Form.Group,null,r.createElement("div",{className:"custom-control custom-checkbox"},r.createElement(y,Object.assign({className:"custom-control-input"},n)),r.createElement(o.Form.Label,{className:"custom-control-label",htmlFor:n.id},e)))}n.d(e,"a",(function(){return y})),n.d(e,"b",(function(){return p}));var f=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(t);a<r.length;a++)e.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(n[r[a]]=t[r[a]])}return n};function y(t){var e=t.children,n=f(t,["children"]);return r.createElement(a.b,Object.assign({},n),i.a.isFunction(e)?function(t){return e(t)}:r.Children.count(e)?e:null)}function p(t){var e=t.label,n=t.className,i=t.showCharacterCounter,u=f(t,["label","className","showCharacterCounter"]),p=Object(a.f)(),d=p.errors,m=p.touched;return"checkbox"===u.type?r.createElement(s,Object.assign({},t)):r.createElement(o.Form.Group,null,!!e&&r.createElement(o.Form.Label,{htmlFor:u.id},e),r.createElement(y,Object.assign({className:c.a.getCustomFormControlClassName(d,m,u.name,n)},u)),!!i&&!!u.maxLength&&r.createElement(l,{fieldName:u.name,limit:u.maxLength}),r.createElement(a.a,{name:u.name},(function(t){return r.createElement(o.Form.Control.Feedback,{type:"invalid"},t)})))}},852:function(t,e,n){"use strict";var r=n(0),a=n(826);function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(a)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var c=n(246),l=n(73);n.d(e,"a",(function(){return u}));function u(t){var e=Object(a.f)(),n=function(t){var e,n=o(r.useState(!1),2),a=n[0],i=n[1];return r.useEffect((function(){var e;t.isValid&&(t.dirty||(null===(e=t.initialStatus)||void 0===e?void 0:e.allowInitialSubmit))?i(!0):i(!1)}),[t.isValid,null===(e=t.initialStatus)||void 0===e?void 0:e.allowInitialSubmit,t.dirty,t.values]),r.useEffect((function(){t.isSubmitting&&i(!1)}),[t.isSubmitting]),a}(e);r.useEffect((function(){function t(t){13===t.keyCode&&n&&e.validateForm().then((function(t){Object.keys(t).length||e.submitForm()}))}return window.addEventListener("keypress",t),function(){return window.removeEventListener("keypress",t)}}),[n]);var i="save";return t.isNew&&(i="create"),t.hasNext&&(i="next"),r.createElement(c.a,{variant:t.variant||"primary",showSpinner:e.isSubmitting,type:"submit",disabled:!n},t.submitText?r.createElement(r.Fragment,null,t.submitText):r.createElement(l.b,{namespace:"shared.formButtons",phrase:i}))}},861:function(t,e,n){"use strict";var r=n(21),a=n(46),o=n(864);n(838);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=f(t);if(e){var a=f(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return s(this,n)}}function s(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var y,p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(n,t);var e=u(n);function n(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return c(this,n),e.call(this,{collectionPrefix:"playlist:videos",id:t,cursor:r})}return n}(n(244).a);!function(t){t[t.Queued=1]="Queued",t[t.Processing=2]="Processing",t[t.Processed=3]="Processed",t[t.Errored=4]="Errored"}(y||(y={}));var d=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)&&(r[t]=Object.assign(Object.assign({},r[t]),e)),r}},m=function(t){return function(e){var n=Object.assign({},e);return n.hasOwnProperty(t)&&delete n[t],n}},v=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)?(r[t].videos||(r[t].videos={}),r[t].videos.count=r[t].videos.count?r[t].videos.count+e:e,r):n}};n.d(e,"a",(function(){return O}));var b=function(t){return t?"&cursor=".concat(t):""},h=function(t){return Number.isInteger(t)?"&maxRatingValue=".concat(t):""},g=function(t,e){return"".concat(t).concat(e?":".concat(e):"")},O={getPlaylist:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"?query=").concat(a.a.PLAYLIST),key:"playlist:".concat(t),success:e,error:n}},getSharedPlaylist:function(t,e,n,r){var o="/api/domain/v2/share/".concat(t);return{url:"".concat(o,"?query=").concat(a.a.PLAYLIST).concat(h(e)),key:"shared:playlist:".concat(t),success:n,error:r}},getUserPlaylists:function(t){var e=t.sort,n=t.type;return{url:"/api/domain/v2/me/playlists/".concat(n,"?sort=").concat(e,"&query={limit:100}")+"".concat(a.a.PLAYLIST_COLLECTION).concat(b(t.cursor)),key:t.toString()}},getPlaylistVideos:function(t,e,n){var r="orderBy:orderindex,limit:100";return Number.isInteger(e)&&(r+=",rating.value:0...".concat(e)),{url:"/api/domain/v2/objects/".concat(t,"/videos?query={").concat(r,"}")+"".concat(a.a.VIDEO_COLLECTION).concat(b(n)),key:g("playlist:".concat(t,":videos"),n)}},getSharedPlaylistVideos:function(t,e,n){return{url:"/api/domain/v2/share/".concat(t,"/videos?query={orderBy:orderindex,limit:100}")+"".concat(a.a.SHARED_PLAYLIST_VIDEO_COLLECTION)+"".concat(b(n)).concat(h(e)),key:g("shared:playlist:".concat(t,":videos"),n)}},getVideoPlaylists:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"/playlists?query={limit:100,owner.id:[").concat(e,"]}"),key:g("video:playlists:".concat(t),n)}},createPlaylist:function(t,e,n,a){return{key:"create:playlist",url:"/api/domain/v2/objects/".concat(t,"/playlists"),data:e,type:r.a.POST,success:n,error:a,invalidationKeys:"user:playlists"}},updatePlaylist:function(t,e,n,a){return{key:"update:playlist",url:"/api/domain/v2/objects/".concat(t),data:e,type:r.a.PUT,success:n,error:a,updateState:{keys:"playlist:".concat(t),updateData:d("playlist:".concat(t),e)}}},deletePlaylist:function(t,e,n){return{key:"delete:playlist",url:"/api/domain/v2/objects/".concat(t),type:r.a.DELETE,success:e,error:n,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t),updateData:m("playlist:".concat(t))}}},addToPlaylist:function(t,e,n,a){var o=["user:playlists",new p(t).toString()];return e.forEach((function(t){o.push("video:playlists:".concat(t))})),{key:"add:to:playlist",url:"/api/domain/v2/objects/".concat(t,"/associate"),data:e,type:r.a.POST,success:n,error:a,invalidationKeys:o,updateState:{keys:"playlist:".concat(t),updateData:v("playlist:".concat(t),e.length)}}},reorderVideos:function(t,e,n,a){return{key:"reorder:playlist",url:"/api/domain/v2/objects/".concat(t,"/videos/reorder"),data:e,type:r.a.PUT,success:n,error:a,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t,":videos"),updateData:function(n){return o.a.updateState("playlist:".concat(t,":videos"),e,n)}}}},removePlaylistVideo:function(t,e,n,a){return{key:"remove:playlist:video",url:"/api/domain/v2/objects/".concat(t,"/dissociate?memberId=").concat(e),type:r.a.DELETE,success:n,error:a,invalidationKeys:["user:playlists","playlist:".concat(t,":videos")]}},getIsFollowingPlaylist:function(t,e){return{url:"/api/domain/v2/objects/".concat(e,"/followedPlaylists?query={id:").concat(t,"}"),key:"playlist:".concat(t,":following:").concat(e),formatData:function(e){var n,r;return{objectId:t,isFollowing:!!(null===(r=null===(n=e)||void 0===n?void 0:n.data)||void 0===r?void 0:r.length)}},normalize:!1}},followPlaylist:function(t,e,n,a,o){return{url:"/api/domain/v2/objects/".concat(e),key:"follow:playlist:".concat(t),data:{followedPlaylists:t},type:r.a.PUT,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:a,always:o}},unfollowPlaylist:function(t,e,n,a,o){return{url:"/api/domain/v2/objects/".concat(e,"/followedplaylists/").concat(t),key:"unfollow:playlist:".concat(t),type:r.a.DELETE,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:a,always:o}},getPlaylistPrivacy:function(t){return{key:"playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),formatData:function(e){return{id:t,privacy:e}}}},updatePlaylistPrivacy:function(t,e,n,a,o){return{key:"update:playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),type:r.a.PUT,data:{privacy:e},formatData:function(){return{id:t,privacy:e}},success:n,error:a,always:o}},getMigrationTask:function(t,e){return{url:"/api/playlist-app/migration-task",key:"migration:task",formatData:function(t){return t||{status:y.Processed}},success:t,error:e}}}},864:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(127),a=n(57);function o(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var c={reorder:function(t,e,n){if(e===n)return{reorderedItems:t,reorderRequest:null};var a=r.a.moveItem(t,e,n),o=n<t.length-1?a[n+1].id:null;return{reorderedItems:a,reorderRequest:{sourceMemberId:a[n].id,destinationMemberId:o}}},updateState:function(t,e,n){for(var i=[],c=a.a.deepClone(n),l=[t],u=n[t],s=!!u&&!!u.data&&u.data.length;u&&Array.isArray(u.data);){i.push.apply(i,o(u.data));var f=u.pagination&&u.pagination.cursors&&u.pagination.cursors.next,y=!!f&&"".concat(t,":").concat(f);(u=f&&n[y])&&l.push(y)}if(!i.length)return n;var p=r.a.findIndex(i,(function(t){return t.id===e.sourceMemberId})),d=[].concat(i),m=d.splice(p,1),v=e.destinationMemberId?r.a.findIndex(d,(function(t){return t.id===e.destinationMemberId})):d.length;return d.splice(v,0,m[0]),l.forEach((function(t){var e=d.splice(0,s);c[t].data=e})),c}}},865:function(t,e,n){"use strict";var r;n.d(e,"a",(function(){return r})),function(t){t.OwnedByMe="owned_by_me",t.Followed="followed",t.All="all"}(r||(r={}))}}]);
@@ -922,7 +922,7 @@ function SwitchFilter(props) {
922
922
  /*!*********************************************!*\
923
923
  !*** ./src/apps/search/components/index.ts ***!
924
924
  \*********************************************/
925
- /*! exports provided: SearchFilters, PartialSearchFilters, FilterButton, ResetButton, FilterActions, CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
925
+ /*! exports provided: SearchFilters, PartialSearchFilters, FilterButton, FilterActions, ResetButton, CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
926
926
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
927
927
 
928
928
  "use strict";
@@ -65,9 +65,9 @@ var getVideoAppLink = function getVideoAppLink(video) {
65
65
 
66
66
  var getSeriesAppLink = function getSeriesAppLink(series) {
67
67
  return {
68
- application: null,
69
- action: null,
70
- args: [series.id]
68
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_17__["AppChannels"].DEFAULT,
69
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_18__["Actions"].Default.SERIES,
70
+ args: [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(series.name)]
71
71
  };
72
72
  };
73
73
 
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/favourite-videos/FavouriteVideosView.tsx"],"names":[],"mappings":"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","file":"scripts/76.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { VideoCollection, Video, Series, User } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, LocationContext, WorkflowPhase, UserAction, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { getVideoActionAppLink } from 'shared/utils/LiteAppLinkUtils';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'shared.favouriteVideos';\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [ video.id, TextHelper.slugify(video.name) ],\r\n params: video.lastProgressPoint ? { t: Math.floor(video.lastProgressPoint) } : {}\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [series.id]\r\n});\r\n\r\ninterface FavouriteVideosViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function FavouriteVideosView(props: FavouriteVideosViewProps): JSX.Element {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'pageTitle'));\r\n\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser());\r\n const favouriteVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n FavouriteVideoRequests.favouriteVideos(currentUser.data.id, props.cursor));\r\n\r\n useVideoMixin(favouriteVideos.data);\r\n\r\n function setFavourite(video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.VideoThumbnail,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n return (\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink, hideLabel: true }}>\r\n <div className='px-3'>\r\n <h1><Text namespace={namespace} phrase='header' /></h1>\r\n\r\n {favouriteVideos.data?.data\r\n ? (\r\n <VideoList\r\n videos={favouriteVideos.data.data}\r\n cursors={favouriteVideos.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n setFavourite={setFavourite}\r\n />\r\n ) : <PartialVideoList />\r\n }\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/favourite-videos/FavouriteVideosView.tsx"],"names":[],"mappings":"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","file":"scripts/76.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { VideoCollection, Video, Series, User } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, LocationContext, WorkflowPhase, UserAction, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { getVideoActionAppLink } from 'shared/utils/LiteAppLinkUtils';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'shared.favouriteVideos';\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.PLAY_VIDEO,\r\n args: [ video.id, TextHelper.slugify(video.name) ],\r\n params: video.lastProgressPoint ? { t: Math.floor(video.lastProgressPoint) } : {}\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: [ series.id, TextHelper.slugify(series.name) ]\r\n});\r\n\r\ninterface FavouriteVideosViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function FavouriteVideosView(props: FavouriteVideosViewProps): JSX.Element {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'pageTitle'));\r\n\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser());\r\n const favouriteVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n FavouriteVideoRequests.favouriteVideos(currentUser.data.id, props.cursor));\r\n\r\n useVideoMixin(favouriteVideos.data);\r\n\r\n function setFavourite(video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.VideoThumbnail,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n return (\r\n <VideoActionsContext.Provider value={{ getActionAppLink: getVideoActionAppLink, hideLabel: true }}>\r\n <div className='px-3'>\r\n <h1><Text namespace={namespace} phrase='header' /></h1>\r\n\r\n {favouriteVideos.data?.data\r\n ? (\r\n <VideoList\r\n videos={favouriteVideos.data.data}\r\n cursors={favouriteVideos.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n setFavourite={setFavourite}\r\n />\r\n ) : <PartialVideoList />\r\n }\r\n </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}"],"sourceRoot":""}