@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/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/classroom-group-details-form/classroom-group-details-form.scss?365a","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/colour-picker/ColourPicker.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/colour-picker/colour-picker.scss?adf9","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/enums/GroupColour.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/utils/GroupHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/validation/ClassroomGroupValidationSchema.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.tsx"],"names":[],"mappings":"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","file":"scripts/33.chunk.js","sourcesContent":["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 { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};","import React from 'react';\r\nimport { Form } from 'formik';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\r\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ColourPicker } from 'apps/classrooms/components/colour-picker/ColourPicker';\r\n\r\nimport styles from './classroom-group-details-form.scss';\r\n\r\nconst namespace = 'classrooms.classroomGroupDetailsForm';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface ClassroomGroupDetailsFormProps {\r\n isNew: boolean;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function ClassroomGroupDetailsForm(props: ClassroomGroupDetailsFormProps): JSX.Element {\r\n const formikProps = useFormikContextWrapper<MockClassroomGroup>();\r\n\r\n return (\r\n <>\r\n <div>\r\n <h2 className='w-50 d-inline-block h6'><Text namespace={namespace} phrase='nameLabel' /></h2>\r\n <h2 className='d-inline-block h6'><Text namespace={namespace} phrase='colourLabel' /></h2>\r\n </div>\r\n\r\n <Form>\r\n <div className='pb-3 d-flex'>\r\n <div className='w-50'>\r\n <FormField\r\n type='text'\r\n name='name'\r\n id='name'\r\n className={`${styles.groupNameInput}`}\r\n placeholder={getPhrase('groupNamePlaceholder')}\r\n autoFocus\r\n value={formikProps.values.name}\r\n />\r\n </div>\r\n <div className='form-group'>\r\n <ColourPicker\r\n onSelect={c => formikProps.setFieldValue('colour', c)}\r\n selection={formikProps.values.colour}\r\n id={`${props.isNew ? 'create' : 'edit'}-classroom-group`}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className='btn-container d-flex justify-content-end'>\r\n <button type='button' className='btn btn-link mr-2' onClick={props.onClickCancel}>\r\n <Text namespace={namespace} phrase='cancel' />\r\n </button>\r\n <FormButtons isNew={props.isNew} />\r\n </div>\r\n </Form>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"groupNameInput\":\"cv--groupNameInput--3hGvq\"};","import React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\nimport { mapColourToClassName } from 'apps/classrooms/utils/GroupHelper';\r\n\r\nimport styles from './colour-picker.scss';\r\n\r\ninterface ColourPickerProps {\r\n id: string;\r\n onSelect?: (colour: string) => void;\r\n selection?: GroupColour;\r\n disabled?: boolean;\r\n}\r\n\r\nColourPicker.defaultProps = {\r\n selection: GroupColour.White,\r\n onSelect: () => {}\r\n};\r\n\r\nexport function ColourPicker(props: ColourPickerProps): JSX.Element {\r\n function getToggleButtonClass(): string {\r\n const baseClass = `${styles.dropdownToggle} outline-none p-0 d-flex align-items-center text-decoration-none`;\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n\r\n return `${baseClass} ${disabledClass}`;\r\n }\r\n\r\n function getOptionClass(colour: GroupColour): string {\r\n const baseClass = `${styles.colourOption} position-relative`;\r\n const borderClass = colour === GroupColour.White ? 'border border-dark' : '';\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n const colorClass = mapColourToClassName(colour);\r\n\r\n return `${baseClass} ${borderClass} ${disabledClass} ${colorClass}`;\r\n }\r\n\r\n const dropdownProps: HashObject = {};\r\n if (props.disabled)\r\n dropdownProps.show = false;\r\n\r\n return (\r\n <Dropdown {...dropdownProps}>\r\n <Dropdown.Toggle id={props.id} variant='link' className={getToggleButtonClass()}>\r\n <div className={`border border-secondary rounded bg-white ${styles.colourButton}`}>\r\n <div className={`px-0 py-1 rounded ${mapColourToClassName(props.selection)}`}>\r\n &nbsp;\r\n </div>\r\n </div>\r\n\r\n {!props.disabled &&\r\n <SvgContainer svgName={cvSvgLibrary.Caret} />\r\n }\r\n </Dropdown.Toggle>\r\n\r\n <Dropdown.Menu>\r\n <ul className={`${styles.colourList} list-unstyled d-flex flex-wrap px-2 m-0`}>\r\n {Object.keys(GroupColour).map(colourKey => {\r\n const colour = (GroupColour as any)[colourKey];\r\n\r\n return (\r\n <li key={`${props.id}:${colour}`} className='m-1'>\r\n <DivButton\r\n onClick={() => props.onSelect(colour)}\r\n className={getOptionClass(colour)}\r\n >\r\n {colour === GroupColour.White\r\n ? <div className={styles.lineThrough} />\r\n : <>&nbsp;</>\r\n }\r\n </DivButton>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownToggle\":\"cv--dropdownToggle--347DY\",\"colourButton\":\"cv--colourButton--1rKvE\",\"colourList\":\"cv--colourList--328-w\",\"colourOption\":\"cv--colourOption--1Tw7u\",\"lineThrough\":\"cv--lineThrough--18oZq\"};","import React from 'react';\r\n\r\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\nimport { ClassroomGroupValidationSchema } from 'apps/classrooms/validation/ClassroomGroupValidationSchema';\r\nimport { ClassroomGroupDetailsForm } from 'apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm';\r\n\r\ninterface EditClassroomGroupDetailsProps {\r\n group?: MockClassroomGroup;\r\n saveGroup: (group: MockClassroomGroup) => void;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function EditClassroomGroupDetails(props: EditClassroomGroupDetailsProps): React.ReactElement {\r\n const { group, saveGroup, onClickCancel } = props;\r\n\r\n const initialValues: MockClassroomGroup = {\r\n id: group?.id,\r\n name: group?.name,\r\n colour: group?.colour,\r\n students: []\r\n };\r\n\r\n return (\r\n <FormWrapper<MockClassroomGroup>\r\n initialValues={initialValues}\r\n validationSchema={ClassroomGroupValidationSchema}\r\n onSubmit={saveGroup}\r\n >\r\n <ClassroomGroupDetailsForm isNew={!group} onClickCancel={onClickCancel} />\r\n </FormWrapper>\r\n );\r\n}","export enum GroupColour {\r\n White = 'white',\r\n Pink = 'pink',\r\n YellowOrange = 'yellow-orange',\r\n Emerald = 'emerald',\r\n PuertoRico = 'puerto-rico',\r\n PictonBlue = 'picton-blue',\r\n EastSide = 'east-side',\r\n Portage = 'portage'\r\n}","import { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\n\r\nexport function mapColourToClassName(groupName: GroupColour): string {\r\n return `bg-${groupName}`;\r\n}","import { object, string } from 'yup';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { GroupColour } from '../enums/GroupColour';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('classrooms.classroomValidation');\r\n\r\nexport const ClassroomGroupValidationSchema = object().shape({\r\n name: string()\r\n .max(255, () => getPhrase('nameExceeds'))\r\n .required(() => getPhrase('nameRequired'))\r\n .default(''),\r\n colour: string()\r\n .required(() => getPhrase('colourRequired'))\r\n .default(GroupColour.White)\r\n});","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PopupViewProps, PropsWithPopupViewProps, PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { MockClassroom } from 'apps/user-manager/interfaces';\r\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\r\nimport { EditClassroomGroupDetails } from 'apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nconst namespace = 'classrooms.editClassroomGroup';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype EditClassroomGroupViewProps = PropsWithPopupViewProps<PropsWithAnalyticsOptions<{\r\n classroomId: string;\r\n groupId: string;\r\n}>>;\r\n\r\nexport function EditClassroomGroupView(props: EditClassroomGroupViewProps): JSX.Element {\r\n const classroom = Flight.useBasicFetch<MockClassroom>(ClassroomRequests.getClassroom(props.classroomId));\r\n\r\n const alerts = useAlerts();\r\n const dispatch = useDispatch();\r\n\r\n const saveGroup = (editedGroup: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.editGroup(editedGroup, classroom.data, () => {\r\n alerts.success(getPhrase('success', { groupName: editedGroup.name }));\r\n\r\n AnalyticsHelper.logUserAction(editedGroup, props.analyticsOptions);\r\n\r\n props.closePopup();\r\n }, () => {\r\n // TODO: Handle possible errors once we have a server side\r\n alerts.error(getPhrase('error', { groupName: group.name }));\r\n }));\r\n };\r\n\r\n const group = classroom.data\r\n ? classroom.data.groups.find(g => g.id === props.groupId)\r\n : null;\r\n\r\n return (\r\n <Popup title={getPhrase('title')} closePopup={props.closePopup} showLoadingSpinner={!group}>\r\n <EditClassroomGroupDetails\r\n saveGroup={saveGroup}\r\n group={group}\r\n onClickCancel={props.closePopup}\r\n />\r\n </Popup>\r\n );\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss?6264","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useGetCollectionItems.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/default/views/my-videos/DismissibleAlert.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/default/views/my-videos/MyVideosView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/upload/components/uploading-item/UploadingItem.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/upload/hooks/useGetUploadingItems.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/33.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './partial-video-list.scss';\r\n\r\ninterface PartialVideoListProps {\r\n withReordering?: boolean;\r\n numVideos?: number;\r\n}\r\n\r\nPartialVideoList.defaultProps = {\r\n numVideos: 15\r\n};\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n const withDragHandle = props.withReordering && !isMobile;\r\n\r\n return (\r\n <>\r\n {Array(props.numVideos).fill(null).map((_, i) => (\r\n <Row key={i} className='py-2'>\r\n <Col xs={isMobile ? 12 : isIPad ? 4 : 3} className='flex-column align-items-flex-start mb-1'>\r\n <Row>\r\n {!!withDragHandle && (\r\n <div className='d-flex align-items-center justify-content-center col-2'>\r\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\r\n </div>\r\n )}\r\n <Col xs={withDragHandle ? 10 : 12}>\r\n <div className={`partial-loading-background rounded-lg ${styles.partialThumbnail}`} />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isIPad ? 8 : 9}>\r\n <div className={`partial-loading-background ${styles.partialSeriesLink}`} />\r\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\r\n <div className={`partial-loading-background ${styles.partialDescription}`} />\r\n <div className={`partial-loading-background ${styles.partialBadges}`} />\r\n <div className={`partial-loading-background ${styles.partialActions}`} />\r\n </Col>\r\n </Row>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialName\":\"cv--partialName--7KNC2\",\"partialDescription\":\"cv--partialDescription--Vk_wR\",\"partialThumbnail\":\"cv--partialThumbnail--3peRZ\",\"partialDragHandle\":\"cv--partialDragHandle--1F7_f\"};","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\n/**\r\n * Hook used to listen to updates on a Backbone Collection\r\n * and trigger a re-render.\r\n */\r\nexport function useGetCollectionItems<T>(\r\n getCollection: () => Core.Collection,\r\n onRemove?: () => void,\r\n dependencies: React.DependencyList = []\r\n ): T[] {\r\n const [ , setUpdate ] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n const collection = getCollection();\r\n collection.off('add remove change');\r\n collection.on('add remove change', () => {\r\n setUpdate(s => !s);\r\n });\r\n if (onRemove)\r\n collection.on('remove', onRemove);\r\n return () => collection.off('add remove change');\r\n }, dependencies);\r\n\r\n return getCollection().toJSON();\r\n}","import * as React from 'react';\r\nimport { Alert } from 'react-bootstrap';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nconst namespace = 'default.myVideos';\r\n\r\nexport function DismissibleAlert(): JSX.Element {\r\n const [ show, setShow ] = React.useState(!localStorage.getItem('uploadInfoDismissed'));\r\n\r\n const onDismiss = () => {\r\n localStorage.setItem('uploadInfoDismissed', '1');\r\n setShow(false);\r\n };\r\n\r\n if (!show)\r\n return <></>;\r\n\r\n return (\r\n <Alert variant={'info'} onClose={onDismiss} dismissible>\r\n <Text namespace={namespace} phrase={'alertMessage'} /><br />\r\n <small><Text namespace={namespace} phrase={'alertSecondaryMessage'} /></small>\r\n </Alert>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\n\r\nimport { Config, VideoCollection, Video, Series, Library, User } from 'libs/shared/interfaces';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { Services } from 'shared/constants/Services';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { useGetUploadingItems } from 'apps/upload/hooks/useGetUploadingItems';\r\nimport { CombineUploadsService, CombinedUpload, CombinedUploadStatus } from 'apps/upload/services/CombineUploadsService';\r\nimport { UploadingItem } from 'apps/upload/components/uploading-item/UploadingItem';\r\n\r\nimport { DismissibleAlert } from './DismissibleAlert';\r\n\r\nconst namespace = 'default.myVideos';\r\n\r\nfunction getVideoActions(): VideoAction[] {\r\n return [\r\n VideoAction.Edit,\r\n VideoAction.AddToPlaylist,\r\n VideoAction.Share\r\n ];\r\n}\r\n\r\nfunction getVideoActionAppLink(video: Video, action: VideoAction): Core.AppLink {\r\n switch (action) {\r\n case VideoAction.Edit:\r\n return { application: AppChannels.DEFAULT, action: Actions.Default.EDIT_VIDEO, args: [video.id]};\r\n case VideoAction.AddToPlaylist:\r\n return { application: AppChannels.PLAYLISTS, action: 'add:to:playlist', args: [video.id]};\r\n case VideoAction.Share:\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SHARE,\r\n args: [video.id],\r\n params: {\r\n entityType: 'video'\r\n }\r\n };\r\n }\r\n}\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 MyVideosViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function MyVideosView(props: MyVideosViewProps): JSX.Element {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'pageTitle'));\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const workspace = Flight.useBasicFetch<Library>(UserRequests.workspace);\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser());\r\n\r\n const workspaceRequest = workspace.data && VideoRequests.workspace(workspace.data.id, props.cursor);\r\n const workspaceVideos = Flight.useGetResponse<VideoCollection>(workspaceRequest && workspaceRequest.key);\r\n const fetchData = Flight.useGetFetch(workspaceRequest);\r\n\r\n useVideoMixin(workspaceVideos.data);\r\n\r\n React.useEffect(() => {\r\n if ((!workspace.shouldFetch && workspace.data) && workspaceVideos.shouldFetch)\r\n fetchData();\r\n }, [ workspace.shouldFetch, workspace.data, workspaceVideos.shouldFetch ]);\r\n\r\n /**\r\n * Get reference to the combined service even though useGetUploadingItems does it too\r\n * so that we can provide the callbacks\r\n */\r\n const combinedUploadService = useService<CombineUploadsService>(Services.CombineUploads);\r\n\r\n /**\r\n * fetchData will be undefined on the first run through of this view because\r\n * the workspace.data will be null, so we pass a dependency of !workspace.data\r\n * so this callback is re-created once we have wokspace.data and the fetchData\r\n * is properly encapsulated.\r\n */\r\n const items = useGetUploadingItems(() => {\r\n fetchData && fetchData();\r\n }, [!!workspace.data]);\r\n\r\n /**\r\n * Using React.useCallback because this component will render\r\n * every time a chunk is loaded and every time the pending items\r\n * is fetched\r\n */\r\n const onClickDelete = React.useCallback((item: CombinedUpload) => {\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.UPLOAD,\r\n action: Actions.Upload.CANCEL_UPLOAD,\r\n args: [item.id],\r\n params: {\r\n name: item.name,\r\n status: item.status\r\n }\r\n });\r\n }, []);\r\n\r\n const onClickAlternate = React.useCallback((item: CombinedUpload) => {\r\n switch (item.status) {\r\n case CombinedUploadStatus.Errored:\r\n combinedUploadService.retryItem(item);\r\n return;\r\n case CombinedUploadStatus.Processing:\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.EDIT_VIDEO,\r\n args: [item.videoId]\r\n });\r\n return;\r\n case CombinedUploadStatus.Uploading:\r\n combinedUploadService.editUpload(item);\r\n break;\r\n default:\r\n // This should never happen\r\n }\r\n }, []);\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\r\n value={{\r\n videoActions: getVideoActions(),\r\n getActionAppLink: getVideoActionAppLink,\r\n hideLabel: true\r\n }}\r\n >\r\n <div className='px-3'>\r\n <h1><Text namespace={namespace} phrase='header' /></h1>\r\n <div>\r\n <p className='h6'><Text namespace={namespace} phrase='description' /></p>\r\n <DismissibleAlert />\r\n {items.map(item => <UploadingItem\r\n item={item}\r\n onClickAlternate={onClickAlternate}\r\n onClickDelete={onClickDelete}\r\n key={item.id}\r\n />)}\r\n {workspaceVideos.data?.data\r\n ? (\r\n <VideoList\r\n videos={workspaceVideos.data.data}\r\n cursors={workspaceVideos.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 </div>\r\n </VideoActionsContext.Provider>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { ProgressBar, Row, Col } from 'react-bootstrap';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { AspectRatio, BaseThumbnail } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\n\r\nimport { CombinedUploadStatus, CombinedUpload } from 'apps/upload/services/CombineUploadsService';\r\n\r\nconst namespace = 'upload.uploadingItem';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\nfunction getClassName(status: CombinedUploadStatus): string {\r\n switch (status) {\r\n case CombinedUploadStatus.Uploading:\r\n return 'text-success';\r\n case CombinedUploadStatus.Processing:\r\n return 'text-info';\r\n case CombinedUploadStatus.Errored:\r\n return 'text-danger';\r\n }\r\n}\r\n\r\nfunction getVariant(status: CombinedUploadStatus): 'success' | 'info' | 'danger' {\r\n switch (status) {\r\n case CombinedUploadStatus.Uploading:\r\n return 'success';\r\n case CombinedUploadStatus.Processing:\r\n return 'info';\r\n case CombinedUploadStatus.Errored:\r\n return 'danger';\r\n }\r\n}\r\n\r\nfunction getProgressText(status: CombinedUploadStatus, progress: number): string | JSX.Element {\r\n const rounded = Math.round(progress) || 0;\r\n\r\n switch (status) {\r\n case CombinedUploadStatus.Uploading:\r\n return `${getPhrase('uploading')} ${rounded}%`;\r\n\r\n case CombinedUploadStatus.Processing:\r\n if (rounded === 0)\r\n return <em>{getPhrase('waitingToBeProcessed')}</em>;\r\n else\r\n return <em>{getPhrase('processing')} {rounded}%</em>;\r\n\r\n case CombinedUploadStatus.Errored:\r\n return getPhrase('error');\r\n }\r\n}\r\n\r\ninterface UploadingItemProps {\r\n item: CombinedUpload;\r\n onClickDelete: (item: CombinedUpload) => void;\r\n onClickAlternate: (item: CombinedUpload) => void;\r\n}\r\n\r\nexport function UploadingItem(props: UploadingItemProps): JSX.Element {\r\n const { status, progress, name } = props.item;\r\n\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n /**\r\n * We're using React.useCallback here because this view\r\n * will get re-rendered many times by it's parent during\r\n * an upload\r\n */\r\n const onClickAlternate = React.useCallback(() => {\r\n props.onClickAlternate(props.item);\r\n }, []);\r\n\r\n const onClickDelete = React.useCallback(() => {\r\n props.onClickDelete(props.item);\r\n }, []);\r\n\r\n return (\r\n <Row className='py-2'>\r\n <Col xs={isMobile ? 12 : isIPad ? 4 : 3}>\r\n <div className='rounded'>\r\n <BaseThumbnail data='' aspectRatio={AspectRatio.SixteenByNine}>\r\n <ThumbnailFallback type={ThumbnailFallbackType.Video} />\r\n </BaseThumbnail>\r\n </div>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isIPad ? 8 : 9}>\r\n <h5 className='m-0 pb-1'>{name}</h5>\r\n <span className={getClassName(status)}>{getProgressText(status, progress)}</span>\r\n <div className='d-flex'>\r\n <ProgressBar className='flex-grow-1 align-self-center' variant={getVariant(status)} now={progress} />\r\n <SvgContainer\r\n className='svg-container cursor-pointer ml-2'\r\n svgName={status === CombinedUploadStatus.Errored ? cvSvgLibrary.Bell : cvSvgLibrary.Edit}\r\n onClick={onClickAlternate}\r\n />\r\n <SvgContainer\r\n className='svg-container cursor-pointer ml-2'\r\n svgName={cvSvgLibrary.Delete}\r\n onClick={onClickDelete}\r\n />\r\n </div>\r\n </Col>\r\n </Row>\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useService } from 'libs/common/react/hooks/UseService';\r\nimport { useGetCollectionItems } from 'libs/shared/hooks/useGetCollectionItems';\r\n\r\nimport { CombineUploadsService, CombinedUpload } from '../services/CombineUploadsService';\r\n\r\nexport function useGetUploadingItems(onRemove: () => void, dependencies: React.DependencyList): CombinedUpload[] {\r\n const combineUploadsService = useService<CombineUploadsService>('combine:uploads:service');\r\n\r\n return useGetCollectionItems(() => combineUploadsService.getCollection(), onRemove, dependencies);\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[34],{1006:function(e,t,a){"use strict";var n=a(900);a.d(t,"a",(function(){return n.a})),a.d(t,"b",(function(){return n.b}))},1007:function(e,t,a){"use strict";a.d(t,"a",(function(){return k}));var n=a(0),r=a.n(n),s=a(7),o=a(14),i=a(40),c=a(3),l=a(238),u=a(824),d=a(962),m=a(871),p=a(882),v=a(867),f=a(908),h=a(829);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,s=void 0;try{for(var o,i=e[Symbol.iterator]();!(n=(o=i.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,s=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw s}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return g(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function k(e){var t=r.a.useContext(p.a),a=t.state,n=t.dispatch,g=y(r.a.useState(!!a.invalidUsers[e.user.lookupId]),2),k=g[0],b=g[1],E=y(r.a.useState(e.user.lookupId),2),S=E[0],w=E[1],O=o.a.useBasicFetch(m.a.getAll()),C=o.a.useBasicFetch(h.a.getUserRoles()),U=Object(u.a)();r.a.useEffect((function(){b(!!a.invalidUsers[e.user.lookupId]),i.a.logUserAction({isInvalid:!!a.invalidUsers[e.user.lookupId],data:e.user},i.a.mergeOptions(e.analyticsOptions,{workflowPhase:c.o.Start}))}),[e.user]);var A=a.invalidUsers[S];if(k&&!A)return r.a.createElement(r.a.Fragment,null);var N={user:k?A.user:e.user,initialErrors:k?A.errors:{},saveUser:function(t){if(k){var r=Object.keys(a.invalidUsers),o=r.indexOf(S),l=r[o+1]||r[0];w(l)}var u=k?A.user.lookupId:e.user.lookupId;n({type:"save",payload:Object.assign(Object.assign({},t),{lookupId:u})}),i.a.logUserAction({isInvalid:!1,data:t},i.a.mergeOptions(e.analyticsOptions,{workflowPhase:c.o.Complete})),U.success(s.a.getPhrase("userManager.editUploadedUserPopup","success")),k&&Object.keys(a.invalidUsers).length||e.closePopup()},onClickCancel:e.closePopup,hasNext:k&&Object.keys(a.invalidUsers).length>1};return e.userType===v.a.Student?N.yearLevels=O.data:N.userRoles=C.data,r.a.createElement(l.a,{closePopup:e.closePopup,title:e.title},e.userType===v.a.Student?r.a.createElement(d.a,Object.assign({},N)):r.a.createElement(f.a,Object.assign({},N)))}},1260:function(e,t,a){e.exports={yearLevel:"_32fjr"}},1313:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),s=a(61),o=a(2),i=a(14),c=a(7),l=a(89),u=a(237),d=a(73),m=a(824),p=a(837),v=a(40),f=a(3),h=a(5),y=a(10),g=a(875),k=a(256),b=a(257),E=a(1006),S=a(871),w=a(829),O=a(882),C=a(55),U=a(13),A=a(825),N=a(1260),P=a.n(N);function T(e){var t=e.error?"p-2 text-danger font-weight-bold":"p-2",a="",n=e.error||e.data;return e.yearLevel&&!e.error&&(a+="".concat(P.a.yearLevel," rounded-pill px-2")),r.a.createElement("td",{className:t},r.a.createElement("span",{className:a},n))}function R(e){var t,a=e.student,n=e.errors,s=e.onClickEdit,o=e.onClickDelete;return r.a.createElement("tr",null,r.a.createElement(T,{data:a.name,error:n.name}),r.a.createElement(T,{data:a.surname,error:n.surname}),r.a.createElement(T,{data:null===(t=a.yearLevel)||void 0===t?void 0:t.name,error:n.yearLevel,yearLevel:!0}),r.a.createElement(T,{data:a.email,error:n.email}),r.a.createElement("td",{className:"p-2 d-flex justify-content-end"},r.a.createElement(A.a,{className:"mr-2 cursor-pointer",onClick:function(){return s(a)}},r.a.createElement(C.a,{svgName:U.b.Edit})),r.a.createElement(A.a,{className:"cursor-pointer",onClick:function(){return o(a)}},r.a.createElement(C.a,{svgName:U.b.Delete}))))}function j(e){var t=r.a.useContext(O.a).state;return r.a.createElement(d.a.Provider,{value:"userManager.studentReviewTable"},r.a.createElement("table",{className:"w-100"},r.a.createElement("thead",null,r.a.createElement("tr",null,r.a.createElement("th",{className:"p-2"},r.a.createElement(d.b,{phrase:"firstName"})),r.a.createElement("th",{className:"p-2"},r.a.createElement(d.b,{phrase:"lastName"})),r.a.createElement("th",{className:"p-2"},r.a.createElement(d.b,{phrase:"yearLevel"})),r.a.createElement("th",{className:"p-2"},r.a.createElement(d.b,{phrase:"email"})),r.a.createElement("th",{className:"p-2"}," "))),r.a.createElement("tbody",{className:"striped-list"},e.students.map((function(a,n){var s;return r.a.createElement(R,{key:a.lookupId,student:a,errors:(null===(s=t.invalidUsers[a.lookupId])||void 0===s?void 0:s.errors)||{},onClickEdit:e.onClickEdit,onClickDelete:e.onClickDelete})})))))}var x=a(1007),L=a(238),I=a(243),M="userManager.deleteUploadedStudentPopup",B=c.a.encloseNamespace(M);function D(e){var t,a=r.a.useContext(O.a).dispatch,n=Object(m.a)();var s=[{variant:"link",onClick:e.closePopup,buttonText:B("cancel")},{variant:"danger",onClick:function(){a({type:"delete",payload:e.student}),v.a.logUserAction({},v.a.mergeOptions(e.analyticsOptions,{workflowPhase:f.o.Discard,descriptor:f.k.Single})),n.success(B("success")),e.closePopup()},buttonText:B("delete")}];return r.a.createElement(d.a.Provider,{value:M},r.a.createElement(L.a,{title:B("title"),closePopup:e.closePopup},r.a.createElement("p",{className:"m-0 pb-1"},r.a.createElement(d.b,{phrase:"confirmation"})),r.a.createElement("ul",null,r.a.createElement("li",null,r.a.createElement(d.b,{phrase:"firstName",options:{firstName:e.student.name}})),r.a.createElement("li",null,r.a.createElement(d.b,{phrase:"lastName",options:{lastName:e.student.surname}})),r.a.createElement("li",null,r.a.createElement(d.b,{phrase:"yearLevel",options:{yearLevel:null===(t=e.student.yearLevel)||void 0===t?void 0:t.name}})),r.a.createElement("li",null,r.a.createElement(d.b,{phrase:"email",options:{email:e.student.email}}))),r.a.createElement(I.a,{buttons:s})))}var K=a(867);function Y(e,t){var a;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(a=J(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,o=!0,i=!1;return{s:function(){a=e[Symbol.iterator]()},n:function(){var e=a.next();return o=e.done,e},e:function(e){i=!0,s=e},f:function(){try{o||null==a.return||a.return()}finally{if(i)throw s}}}}function H(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,s=void 0;try{for(var o,i=e[Symbol.iterator]();!(n=(o=i.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,s=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw s}}return a}(e,t)||J(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e,t){if(e){if("string"==typeof e)return F(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?F(e,t):void 0}}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"StudentUploadReviewView",(function(){return V}));var _=function(e,t,a,n){return new(a||(a=Promise))((function(r,s){function o(e){try{c(n.next(e))}catch(e){s(e)}}function i(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,i)}c((n=n.apply(e,t||[])).next())}))},q=c.a.encloseNamespace("userManager.studentUploadReview");function G(e){return Object.keys(e.invalidUsers).length}function V(e){var t=H(Object(l.a)("bulk:student:upload"),2),a=t[0],n=t[1];Object(u.a)(q("pageTitle"));var c=H(r.a.useState(!0),2),C=c[0],U=c[1],A=H(r.a.useState(),2),N=A[0],P=A[1],T=H(r.a.useState(),2),R=T[0],L=T[1],I=H(r.a.useState(1),2),M=I[0],B=I[1],J=H(r.a.useState([]),2),F=J[0],V=J[1],z=H(r.a.useReducer(O.b,null),2),W=z[0],$=z[1],Q=Object(s.useDispatch)(),X=Object(m.a)(),Z=Object(k.a)(),ee=i.a.useBasicFetch(S.a.getAll());function te(){return C?Math.ceil(G(W)/25):Math.ceil(W.users.length/25)}return r.a.useEffect((function(){if(ee.data&&!W)if(a){var t=Object(E.a)(ee.data);!function(){_(this,void 0,void 0,regeneratorRuntime.mark((function r(){var s,o,i,c;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:s={},o=Y(a),r.prev=2,o.s();case 4:if((i=o.n()).done){r.next=16;break}return c=i.value,r.prev=6,r.next=9,t.validate(c,{abortEarly:!1});case 9:r.next=14;break;case 11:r.prev=11,r.t0=r.catch(6),s[c.lookupId]={user:c,errors:r.t0.inner.reduce((function(e,t){return e[t.path.split(".")[0]]=t.message,e}),{})};case 14:r.next=4;break;case 16:r.next=21;break;case 18:r.prev=18,r.t1=r.catch(2),o.e(r.t1);case 21:return r.prev=21,o.f(),r.finish(21);case 24:v.a.logUserAction({totalUploaded:a.length,totalInvalid:s.length},v.a.mergeOptions(e.analyticsOptions,{workflowPhase:f.o.Start,descriptor:f.k.Bulk})),$({type:"init",payload:{users:a,invalidUsers:s}}),n(null);case 27:case"end":return r.stop()}}),r,null,[[2,18,21,24],[6,11]])})))}(),Z.lock({id:"student-upload-review",title:q("navLockTitle"),text:q("navLockBody"),onConfirmUnlock:function(){v.a.logUserAction({},v.a.mergeOptions(e.analyticsOptions,{workflowPhase:f.o.Discard,descriptor:f.k.Bulk}))}})}else o.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:y.a.UserManager.STUDENTS},{replace:!0})}),[a,ee.data]),r.a.useEffect((function(){var e;if(W&&(null===(e=W.users)||void 0===e?void 0:e.length)){var t=(C?Object.keys(W.invalidUsers).map((function(e){return W.invalidUsers[e].user})):W.users).slice(25*(M-1),25*M);V(t);var a=te();a&&M>a&&B(a)}}),[C,M,W]),r.a.useEffect((function(){W&&!G(W)&&U(!1)}),[W]),r.a.useEffect((function(){var e;W&&!(null===(e=W.users)||void 0===e?void 0:e.length)&&(Z.unlock("student-upload-review"),o.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:y.a.UserManager.STUDENTS}))}),[W]),W?r.a.createElement(d.a.Provider,{value:"userManager.studentUploadReview"},r.a.createElement(O.a.Provider,{value:{state:W,dispatch:$}},r.a.createElement("div",{className:"px-3"},r.a.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.a.createElement("h1",null,r.a.createElement(d.b,{phrase:"heading"})),r.a.createElement("button",{className:"btn btn-dark ".concat(G(W)?"disabled":""),onClick:function(){G(W)||b.a.render(r.a.createElement("p",null,r.a.createElement(d.b,{namespace:"userManager.studentUploadReview",phrase:"saveConfirmationBody",options:{smartCount:W.users.length}})),{title:q("saveConfirmationHeading"),buttons:[b.a.getCancelDefault(),{variant:"dark",success:!0,onClick:function(){return function(){if(G(W))return;i.a.fetch(Q,w.a.bulkCreateStudents(W.users,(function(){X.success(q("success")),v.a.logUserAction({count:W.users.length},v.a.mergeOptions(e.analyticsOptions,{workflowPhase:f.o.Complete,descriptor:f.k.Bulk}))}),(function(){X.error(q("error"))}),(function(){Z.unlock("student-upload-review"),o.a.AppLinkHelper.trigger({application:h.a.USER_MANAGER,action:y.a.UserManager.STUDENTS})})))}()},buttonText:q("save")}]})}},r.a.createElement(d.b,{phrase:"save"}))),!!G(W)&&r.a.createElement("p",{className:"mb-1"},r.a.createElement(d.b,{phrase:"reviewCount",options:{smartCount:G(W)}})),r.a.createElement("div",{className:"d-flex align-items-center flex-wrap"},r.a.createElement("p",{className:"pr-3 mb-0"},r.a.createElement(d.b,{phrase:"switchLabel"})),r.a.createElement(g.a,{onClick:function(){U(!C),B(1),v.a.logUserAction({hideValidListings:!C},v.a.mergeOptions(e.analyticsOptions,{actionType:f.n.Click,descriptor:f.b.ToggleHideValidListings}))},on:C,disabled:!G(W)})),r.a.createElement("main",{className:"pt-2 pb-3"},r.a.createElement(j,{students:F,onClickEdit:function(e){P(e)},onClickDelete:function(e){L(e)}}),r.a.createElement(p.a,{className:"py-2 float-right",onClickNext:function(){return B(M+1)},onClickBack:function(){return B(M-1)},currentPage:M,totalPages:te()})),!!N&&r.a.createElement(x.a,{user:N,closePopup:function(){P(null),e.closePopup()},title:q("editStudent"),userType:K.a.Student,analyticsOptions:v.a.mergeOptions(e.analyticsOptions,{actionType:f.n.Edit})}),!!R&&r.a.createElement(D,{student:R,closePopup:function(){e.closePopup(),L(null)},analyticsOptions:e.analyticsOptions})))):r.a.createElement(r.a.Fragment,null)}},829:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(14),r=a(79),s=a(21),o=a(840),i=a(833),c=a(834),l=a(835),u={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.filter,a=void 0===t?"":t,s=e.q,c=void 0===s?"":s,l=e.query,u=void 0===l?"":l,d=e.cursor,m=void 0===d?"1":d;return{url:r.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(c,":").concat(u,":").concat(a,":").concat(m),successResponse:function(){var e=o.a.revertFilterString(a),t=n.a.Simulator.getAll("school:students",i).filter((function(t){var n,r;return!(c&&!t.name.toLowerCase().includes(c.toLowerCase()))&&(!a||(!e.yearLevel||e.yearLevel===t.yearLevel.id)&&!((null===(n=e.classroom)||void 0===n?void 0:n.length)&&!e.classroom.includes(null===(r=t.classroom)||void 0===r?void 0:r.id)))})),r=o.a.convertWithStatementToObject(u),s=r.sortValue||"name",l=t.sort((function(e,t){return e[s].toLowerCase()<t[s].toLowerCase()?-1:e[s].toLowerCase()>t[s].toLowerCase()?1:0}));r.sortKey&&"orderbydesc"===r.sortKey&&(l=l.reverse());var d=l.slice(25*(+m-1),25*+m),p=l.slice(25*+m).length?+m+1:void 0,v="1"===m?void 0:+m-1;return d.length||(d=l.slice(0,25),p=l.slice(25).length?2:void 0,v=void 0),{data:d,pagination:{cursors:{next:p,previous:v}},count:l.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return n.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,t){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.delete("school:students",e),{}},always:t}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return n.a.Simulator.get("school:students",e)}}},createStudent:function(e,t,a){return{url:"/api/domain/v1/users",key:"create:student",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.create("school:students",e)},success:t,error:a}},bulkCreateStudents:function(e,t,a,r){return{url:"/api/domain/v1/users",key:"create:students",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:students",e)})),e},success:t,error:a,always:r}},updateStudent:function(e,t,a){return{url:"/api/domain/v1/users",key:"edit:student",type:s.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.update("school:students",e)},success:t,error:a}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.filter,a=void 0===t?"":t,s=e.q,o=void 0===s?"":s,i=e.query,l=void 0===i?"":i,u=e.cursor,d=void 0===u?"":u;return{url:r.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(o,":").concat(l,":").concat(a,":").concat(d),successResponse:function(){var e=n.a.Simulator.getAll("school:teachers",c);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,t){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.delete("school:teachers",e),{}},always:t}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return n.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,t,a){return{url:"/api/domain/v1/users",key:"create:teacher",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.create("school:teachers",e)},success:t,error:a}},bulkCreateTeachers:function(e,t,a,r){return{url:"/api/domain/v1/users",key:"create:teachers",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:teachers",e)})),e},success:t,error:a,always:r}},updateTeacher:function(e,t,a){return{url:"/api/domain/v1/users",key:"edit:teacher",type:s.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.update("school:teachers",e)},success:t,error:a}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return n.a.Simulator.getAll("user:roles",l)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return n.a.Simulator.getAll("groups").filter((function(t){return!!t.students.find((function(t){return t.id===e}))}))}}}}},833:function(e){e.exports=JSON.parse('[{"username":"Joosh","name":"Joshua","surname":"Taylor","email":"joshua.taylor@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-c","name":"Classroom 2-C"}},{"username":"Shale","name":"Shale","surname":"Kuzmanovski","email":"shale.kuzmanovski@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Mike","name":"Michael","surname":"O\'McDonald","email":"michael.mcdonnell@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Met","name":"Matt","surname":"Trengrove","email":"matt@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-b","name":"Classroom 2-B"}},{"username":"Big Kev","name":"Don Kevin","surname":"Wellalagodage","email":"kevin.wellalagoladegelagodage@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 1"},"classroom":{"id":"classroom-1-a","name":"Classroom 1-A"}}]')},834:function(e){e.exports=JSON.parse('[{"username":"beb","name":"Beverly","surname":"Li","email":"beverly.li@clickview.com.au","userRole":{"id":"assistant-principal","name":"Assistant Principal"}},{"username":"Bort","name":"Cameron","surname":"Hill","email":"cameron.hill@clickview.com.au","userRole":{"id":"principal","name":"Principal"}},{"username":"jaynice","name":"Janice","surname":"Quach","email":"janice.quach@clickview.com.au","userRole":{"id":"head-of-science","name":"Head of Science"}},{"username":"bread","name":"Prad","surname":"Nepal","email":"prad.nepal@clickview.com.au","userRole":{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}}]')},835:function(e){e.exports=JSON.parse('[{"id":"teacher","name":"Teacher"},{"id":"assistant-principal","name":"Assistant Principal"},{"id":"principal","name":"Principal"},{"id":"head-of-science","name":"Head of Science"},{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}]')},871:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(14),r=a(881),s={getAll:function(){return{url:"/api/domain/v1/yearlevels",key:"yearlevels",successResponse:function(){return n.a.Simulator.getAll("year:levels",r)}}}}},881:function(e){e.exports=JSON.parse('[{"id":"kindergarten","name":"Kindergarten"},{"id":"year-1","name":"Year 1"},{"id":"year-2","name":"Year 2"},{"id":"year-3","name":"Year 3"},{"id":"year-4","name":"Year 4"},{"id":"year-5","name":"Year 5"},{"id":"year-6","name":"Year 6"}]')},882:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return s}));var n=a(0),r=Object(n.createContext)(null);function s(e,t){switch(t.type){case"init":return t.payload;case"save":var a=t.payload;return{users:e.users.map((function(e){return e.lookupId!==a.lookupId?e:a})),invalidUsers:Object.keys(e.invalidUsers).reduce((function(t,n){return n!==a.lookupId&&(t[n]=e.invalidUsers[n]),t}),{})};case"delete":var n=t.payload;return{users:e.users.filter((function(e){return e.lookupId!==n.lookupId})),invalidUsers:Object.keys(e.invalidUsers).reduce((function(t,a){return a!==n.lookupId&&(t[a]=e.invalidUsers[a]),t}),{})};default:return e}}}}]);
@@ -226,9 +226,9 @@ var getVideoAppLink = function getVideoAppLink(video) {
226
226
 
227
227
  var getSeriesAppLink = function getSeriesAppLink(series) {
228
228
  return {
229
- application: null,
230
- action: null,
231
- args: [series.id]
229
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_8__["AppChannels"].DEFAULT,
230
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_9__["Actions"].Default.SERIES,
231
+ args: [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_4__["TextHelper"].slugify(series.name)]
232
232
  };
233
233
  };
234
234
 
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss?6264","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/components/watch-history-video-list/WatchHistoryVideoList.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/views/watch-history/WatchHistoryView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/views/watch-history/partial-loading/PartialWatchHistory.tsx","webpack://@clickview/lite/./src/apps/watch-history/views/watch-history/partial-loading/partial-watch-history.scss?0a08","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/34.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './partial-video-list.scss';\r\n\r\ninterface PartialVideoListProps {\r\n withReordering?: boolean;\r\n numVideos?: number;\r\n}\r\n\r\nPartialVideoList.defaultProps = {\r\n numVideos: 15\r\n};\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n const withDragHandle = props.withReordering && !isMobile;\r\n\r\n return (\r\n <>\r\n {Array(props.numVideos).fill(null).map((_, i) => (\r\n <Row key={i} className='py-2'>\r\n <Col xs={isMobile ? 12 : isIPad ? 4 : 3} className='flex-column align-items-flex-start mb-1'>\r\n <Row>\r\n {!!withDragHandle && (\r\n <div className='d-flex align-items-center justify-content-center col-2'>\r\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\r\n </div>\r\n )}\r\n <Col xs={withDragHandle ? 10 : 12}>\r\n <div className={`partial-loading-background rounded-lg ${styles.partialThumbnail}`} />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isIPad ? 8 : 9}>\r\n <div className={`partial-loading-background ${styles.partialSeriesLink}`} />\r\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\r\n <div className={`partial-loading-background ${styles.partialDescription}`} />\r\n <div className={`partial-loading-background ${styles.partialBadges}`} />\r\n <div className={`partial-loading-background ${styles.partialActions}`} />\r\n </Col>\r\n </Row>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialName\":\"cv--partialName--7KNC2\",\"partialDescription\":\"cv--partialDescription--Vk_wR\",\"partialThumbnail\":\"cv--partialThumbnail--3peRZ\",\"partialDragHandle\":\"cv--partialDragHandle--1F7_f\"};","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoHistoryCollection, Video, Series } from 'libs/shared/interfaces';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'watchHistory.watchHistoryVideoList';\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\nfunction formatDate(date: string): string {\r\n const today = moment();\r\n const diff = today.diff(date, 'days');\r\n\r\n if (diff === 0)\r\n return LanguageService.getPhrase(namespace, 'today');\r\n\r\n if (diff === 1)\r\n return LanguageService.getPhrase(namespace, 'yesterday');\r\n\r\n return moment(date).format('Do MMMM');\r\n}\r\n\r\ninterface WatchHistoryVideoListProps {\r\n videoHistory: VideoHistoryCollection;\r\n videos: Video[];\r\n setFavourite: (video: Video, shouldFavourite: boolean, onError?: () => void) => void;\r\n}\r\n\r\nexport function WatchHistoryVideoList(props: WatchHistoryVideoListProps): JSX.Element {\r\n const historyGroups = ArrayHelper.groupBy(props.videoHistory.data, 'lastDateWatched');\r\n\r\n const videoGroups: { [index: string]: Video[] } = {};\r\n\r\n const sortedDates = Object.keys(historyGroups).sort().reverse();\r\n\r\n // Map video history to video objects and mixin lastProgressPoint\r\n sortedDates.forEach(date => {\r\n videoGroups[date] = historyGroups[date].map(history => {\r\n const video = props.videos.find(v => v.id.toString() === history.videoId.toString());\r\n\r\n if (!video)\r\n return null;\r\n\r\n return {\r\n ...video,\r\n lastProgressPoint: history.lastProgressPoint\r\n };\r\n }).filter(Boolean);\r\n });\r\n\r\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\r\n\r\n return (\r\n <>\r\n {sortedDates.map(date => (\r\n <div key={date} className='pb-3'>\r\n <h2 className='h4'>{formatDate(date)}</h2>\r\n <VideoList\r\n videos={videoGroups[date]}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n setFavourite={props.setFavourite}\r\n />\r\n </div>\r\n ))}\r\n {props.videoHistory.pagination.cursors &&\r\n <Pagination appLink={currentAppLink} cursors={props.videoHistory.pagination.cursors} />\r\n }\r\n </>\r\n );\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\nimport { VideoHistoryCollection, CurrentUser, Video } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, ToggleDescriptor, LocationContext, WorkflowPhase } from 'libs/analytics/interfaces';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\nimport { WatchHistoryVideoList } from 'apps/watch-history/components/watch-history-video-list/WatchHistoryVideoList';\r\n\r\nimport { PartialWatchHistory } from './partial-loading/PartialWatchHistory';\r\n\r\nconst namespace = 'watchHistory.watchHistory';\r\n\r\nexport function getVideoActionAppLink(): (video: Video, action: VideoAction) => Core.AppLink {\r\n return (video: Video, action: VideoAction) => {\r\n switch (action) {\r\n case VideoAction.AddToPlaylist:\r\n return { application: AppChannels.PLAYLISTS, action: Actions.Playlists.ADD_TO_PLAYLIST, args: [video.id]};\r\n\r\n case VideoAction.Share:\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SHARE,\r\n args: [video.id],\r\n params: { entityType: 'video' }\r\n };\r\n }\r\n };\r\n}\r\n\r\ninterface WatchHistoryViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function WatchHistoryView(props: WatchHistoryViewProps): JSX.Element {\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'pageTitle'));\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoHistory = Flight.useBasicFetch<VideoHistoryCollection>(!!currentUser.data\r\n && VideoHistoryRequests.userVideoHistory(currentUser.data.customerId, currentUser.data.id, props.cursor));\r\n\r\n const videoIds = videoHistory.data?.data?.map(v => v.videoId);\r\n\r\n const videos = Flight.useBasicFetch<Video[]>(videoIds?.length && VideoRequests.hydratedVideos(videoIds));\r\n\r\n /**\r\n * We don't need to load in watch history as we started with the user's \r\n * watch history to begin with\r\n */\r\n useVideoMixin(videos.data, { watchHistory: false });\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 <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='px-3'>\r\n <h1><Text phrase='heading' /></h1>\r\n {(() => {\r\n if (!videoHistory.data)\r\n return <PartialWatchHistory />;\r\n\r\n // TODO: Add empty state.\r\n if (!videoHistory.data.data?.length)\r\n return <Text phrase='emptyState' />;\r\n\r\n if (!videos.data)\r\n return <PartialWatchHistory />;\r\n\r\n return (\r\n <VideoActionsContext.Provider\r\n value={{\r\n videoActions: [ VideoAction.AddToPlaylist, VideoAction.Share ],\r\n getActionAppLink: getVideoActionAppLink(),\r\n hideLabel: true\r\n }}\r\n >\r\n <WatchHistoryVideoList\r\n videoHistory={videoHistory.data}\r\n videos={videos.data}\r\n setFavourite={setFavourite}\r\n />\r\n </VideoActionsContext.Provider>\r\n );\r\n })()}\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n\r\n}","import React from 'react';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\n\r\nimport styles from './partial-watch-history.scss';\r\n\r\nexport function PartialWatchHistory(): JSX.Element {\r\n return (\r\n <div className='px-3'>\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={2} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={3} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={2} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={5} />\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialDate\":\"cv--partialDate--2wbjP\"};","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss?6264","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/components/watch-history-video-list/WatchHistoryVideoList.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/views/watch-history/WatchHistoryView.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/views/watch-history/partial-loading/PartialWatchHistory.tsx","webpack://@clickview/lite/./src/apps/watch-history/views/watch-history/partial-loading/partial-watch-history.scss?0a08","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"names":[],"mappings":"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","file":"scripts/34.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './partial-video-list.scss';\r\n\r\ninterface PartialVideoListProps {\r\n withReordering?: boolean;\r\n numVideos?: number;\r\n}\r\n\r\nPartialVideoList.defaultProps = {\r\n numVideos: 15\r\n};\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n const mediaQuery = useGetMediaQueryString();\r\n const isMobile = mediaQuery === MediaQueryStrings.XS;\r\n const isIPad = mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.MD;\r\n\r\n const withDragHandle = props.withReordering && !isMobile;\r\n\r\n return (\r\n <>\r\n {Array(props.numVideos).fill(null).map((_, i) => (\r\n <Row key={i} className='py-2'>\r\n <Col xs={isMobile ? 12 : isIPad ? 4 : 3} className='flex-column align-items-flex-start mb-1'>\r\n <Row>\r\n {!!withDragHandle && (\r\n <div className='d-flex align-items-center justify-content-center col-2'>\r\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\r\n </div>\r\n )}\r\n <Col xs={withDragHandle ? 10 : 12}>\r\n <div className={`partial-loading-background rounded-lg ${styles.partialThumbnail}`} />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs={isMobile ? 12 : isIPad ? 8 : 9}>\r\n <div className={`partial-loading-background ${styles.partialSeriesLink}`} />\r\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\r\n <div className={`partial-loading-background ${styles.partialDescription}`} />\r\n <div className={`partial-loading-background ${styles.partialBadges}`} />\r\n <div className={`partial-loading-background ${styles.partialActions}`} />\r\n </Col>\r\n </Row>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialName\":\"cv--partialName--7KNC2\",\"partialDescription\":\"cv--partialDescription--Vk_wR\",\"partialThumbnail\":\"cv--partialThumbnail--3peRZ\",\"partialDragHandle\":\"cv--partialDragHandle--1F7_f\"};","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoHistoryCollection, Video, Series } from 'libs/shared/interfaces';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nconst namespace = 'watchHistory.watchHistoryVideoList';\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\nfunction formatDate(date: string): string {\r\n const today = moment();\r\n const diff = today.diff(date, 'days');\r\n\r\n if (diff === 0)\r\n return LanguageService.getPhrase(namespace, 'today');\r\n\r\n if (diff === 1)\r\n return LanguageService.getPhrase(namespace, 'yesterday');\r\n\r\n return moment(date).format('Do MMMM');\r\n}\r\n\r\ninterface WatchHistoryVideoListProps {\r\n videoHistory: VideoHistoryCollection;\r\n videos: Video[];\r\n setFavourite: (video: Video, shouldFavourite: boolean, onError?: () => void) => void;\r\n}\r\n\r\nexport function WatchHistoryVideoList(props: WatchHistoryVideoListProps): JSX.Element {\r\n const historyGroups = ArrayHelper.groupBy(props.videoHistory.data, 'lastDateWatched');\r\n\r\n const videoGroups: { [index: string]: Video[] } = {};\r\n\r\n const sortedDates = Object.keys(historyGroups).sort().reverse();\r\n\r\n // Map video history to video objects and mixin lastProgressPoint\r\n sortedDates.forEach(date => {\r\n videoGroups[date] = historyGroups[date].map(history => {\r\n const video = props.videos.find(v => v.id.toString() === history.videoId.toString());\r\n\r\n if (!video)\r\n return null;\r\n\r\n return {\r\n ...video,\r\n lastProgressPoint: history.lastProgressPoint\r\n };\r\n }).filter(Boolean);\r\n });\r\n\r\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\r\n\r\n return (\r\n <>\r\n {sortedDates.map(date => (\r\n <div key={date} className='pb-3'>\r\n <h2 className='h4'>{formatDate(date)}</h2>\r\n <VideoList\r\n videos={videoGroups[date]}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n setFavourite={props.setFavourite}\r\n />\r\n </div>\r\n ))}\r\n {props.videoHistory.pagination.cursors &&\r\n <Pagination appLink={currentAppLink} cursors={props.videoHistory.pagination.cursors} />\r\n }\r\n </>\r\n );\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\r\nimport { VideoAction } from 'libs/shared/utils/video-actions/VideoActionsHelper';\r\nimport { VideoHistoryCollection, CurrentUser, Video } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\n\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, ToggleDescriptor, LocationContext, WorkflowPhase } from 'libs/analytics/interfaces';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\nimport { WatchHistoryVideoList } from 'apps/watch-history/components/watch-history-video-list/WatchHistoryVideoList';\r\n\r\nimport { PartialWatchHistory } from './partial-loading/PartialWatchHistory';\r\n\r\nconst namespace = 'watchHistory.watchHistory';\r\n\r\nexport function getVideoActionAppLink(): (video: Video, action: VideoAction) => Core.AppLink {\r\n return (video: Video, action: VideoAction) => {\r\n switch (action) {\r\n case VideoAction.AddToPlaylist:\r\n return { application: AppChannels.PLAYLISTS, action: Actions.Playlists.ADD_TO_PLAYLIST, args: [video.id]};\r\n\r\n case VideoAction.Share:\r\n return {\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SHARE,\r\n args: [video.id],\r\n params: { entityType: 'video' }\r\n };\r\n }\r\n };\r\n}\r\n\r\ninterface WatchHistoryViewProps {\r\n cursor?: string;\r\n}\r\n\r\nexport function WatchHistoryView(props: WatchHistoryViewProps): JSX.Element {\r\n useSetPageTitle(LanguageService.getPhrase(namespace, 'pageTitle'));\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoHistory = Flight.useBasicFetch<VideoHistoryCollection>(!!currentUser.data\r\n && VideoHistoryRequests.userVideoHistory(currentUser.data.customerId, currentUser.data.id, props.cursor));\r\n\r\n const videoIds = videoHistory.data?.data?.map(v => v.videoId);\r\n\r\n const videos = Flight.useBasicFetch<Video[]>(videoIds?.length && VideoRequests.hydratedVideos(videoIds));\r\n\r\n /**\r\n * We don't need to load in watch history as we started with the user's \r\n * watch history to begin with\r\n */\r\n useVideoMixin(videos.data, { watchHistory: false });\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 <LanguageNamespaceContext.Provider value={namespace}>\r\n <div className='px-3'>\r\n <h1><Text phrase='heading' /></h1>\r\n {(() => {\r\n if (!videoHistory.data)\r\n return <PartialWatchHistory />;\r\n\r\n // TODO: Add empty state.\r\n if (!videoHistory.data.data?.length)\r\n return <Text phrase='emptyState' />;\r\n\r\n if (!videos.data)\r\n return <PartialWatchHistory />;\r\n\r\n return (\r\n <VideoActionsContext.Provider\r\n value={{\r\n videoActions: [ VideoAction.AddToPlaylist, VideoAction.Share ],\r\n getActionAppLink: getVideoActionAppLink(),\r\n hideLabel: true\r\n }}\r\n >\r\n <WatchHistoryVideoList\r\n videoHistory={videoHistory.data}\r\n videos={videos.data}\r\n setFavourite={setFavourite}\r\n />\r\n </VideoActionsContext.Provider>\r\n );\r\n })()}\r\n </div>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n\r\n}","import React from 'react';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\r\n\r\nimport styles from './partial-watch-history.scss';\r\n\r\nexport function PartialWatchHistory(): JSX.Element {\r\n return (\r\n <div className='px-3'>\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={2} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={3} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={2} />\r\n </div>\r\n\r\n <div className='mb-3'>\r\n <div className={`${styles.partialDate} mb-2 partial-loading-background`} />\r\n <PartialVideoList numVideos={5} />\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialDate\":\"cv--partialDate--2wbjP\"};","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[35],{1017:function(e,t,n){"use strict";var a,r=n(159);!function(e){e.Learner="learner",e.Staff="staff"}(a||(a={})),n.d(t,"a",(function(){return i}));var i={getUserGroup:function(e){return e===r.a.Student?a.Learner:a.Staff}}},1018:function(e,t,n){"use strict";var a=n(79),r=n(878),i=n(57);function o(e){var t=e.page,n=e.totalPages,a=r.a.isNumber(t)&&t>0&&t<n&&t+1,o=r.a.isNumber(t)&&t>1&&t-1,c={};if(a&&a<=n&&(c.next=a.toString()),o&&(c.previous=o.toString()),!i.a.isEmpty(c))return c}var c=function(e){if(e)return{data:e.data,pagination:{cursors:o(e.pagination),limit:e.pagination.pageSize}}};n.d(t,"a",(function(){return l}));var u=function(e,t,n,r){return a.a.urlBuilder("/api/domain/v2/dashboards/widgets",{libraryType:e,customerType:t,userRole:n,countryCode:r})},s=function(e,t,n,r,i){var o="/api/domain/v2/dashboards/playlists/".concat(e,"/videos");return a.a.urlBuilder(o,{maxRatingValue:t,userGroup:n,page:r,limit:i})},l={widgets:function(e,t,n,a){return{url:u(e,t,n,a),key:"widgets:".concat(e,":").concat(t,":").concat(a),expiryTime:1/0}},widgetPlaylist:function(e,t,n,a,r){return{url:s(e,t,n,a,r),key:"widget:".concat(e,":").concat(t,":").concat(n,":").concat(a),formatData:function(e){var t={data:e.videos.data,pagination:e.videos.pagination};return Object.assign(Object.assign({},e),{videos:c(t)})},expiryTime:1/0}}}},1232:function(e,t,n){e.exports={slidingSubject:"_16BT9",heading:"_1ZUkE",thumbnailContainer:"_1uhoK",partialLoadingHeading:"_1-m4K",partialLoading:"_3fvkd",labelContainer:"_3T7RZ"}},1233:function(e,t,n){e.exports={searchBarContainer:"W4B6T"}},1306:function(e,t,n){"use strict";n.r(t);var a=n(1),r=n(0),i=n(819),o=n(14),c=n(148),u=n(66),s=n(89),l=n(7),d=n(158),p=n(1017),f=n(356),m=n(918),v=n(154),g=n(353),y=n(12),b=n(910),h=n(990),S=n(249),E=n(147);var w=r.memo((function(e){var t=e.user,n=l.a.encloseNamespace("shared.greeting");return r.createElement("h1",{className:"h2 mb-0"},r.createElement("strong",null,function(e){switch(E.a.currentTimeOfDay()){case"morning":return e("morning");case"afternoon":return e("afternoon");case"evening":return e("evening");default:return e("fallback")}}(n),r.createElement("span",{className:"text-info"},t?" ".concat(t.givenName):""),","),r.createElement("br",null),r.createElement("strong",null,n("prompt")))}),(function(e,t){var n,a;return(null===(n=e.user)||void 0===n?void 0:n.id)===(null===(a=t.user)||void 0===a?void 0:a.id)})),A=n(47),k=n(839),O=n(874),L=n(853),j=n(1232),I=n.n(j);function C(e){var t=e.data,n=e.appLink,a=(e.context,e.preloadImage),i=Object.assign(Object.assign({},n),{args:[t.id,A.a.slugify(t.name)]});return r.createElement("div",{className:"".concat(I.a.slidingSubject," ").concat(I.a.thumbnailContainer)},r.createElement(O.b,{data:t.tallPoster,appLink:i,aspectRatio:O.a.NineBySixteen,preload:a,size:k.a.Large},r.createElement(L.a,{type:L.b.TallSubject}),r.createElement("h3",{className:"h4 ".concat(I.a.heading)},t.name)))}var N=n(115),T=n(155),x=n(51);function B(e){var t=e.heading,n=e.banner,a=e.imageCdnUrl,i=e.appLink,o=T.a.createBannerUrl(n,{fallbackBaseUrl:a,fallbackCategoryName:t,type:N.b.Banners});return r.createElement(x.a,{appLink:i},r.createElement("div",{className:"banner",style:{backgroundImage:"url('".concat(o,"')")}}))}var D=n(159),_=n(411),U=n(366),R=n(237),z=n(10),F=n(5),H=n(92),P=n(1018),W=n(1233),V=n.n(W);function J(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],a=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(a=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{a||null==c.return||c.return()}finally{if(r)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,"DashboardView",(function(){return Y}));var G=l.a.encloseNamespace("dashboard.dashboard"),K={video:{application:F.a.DEFAULT,action:z.a.Default.PLAY_VIDEO},collection:{application:F.a.DASHBOARD,action:z.a.Dashboard.DASHBOARD},series:{application:F.a.DEFAULT,action:z.a.Default.SERIES},classification:{application:F.a.SUBJECT,action:z.a.Subjects.CLASSIFICATION}};function X(e){return o.a.useBasicFetch(e&&S.a.classifications(),{optimize:!0})}function Z(e){var t,n,a=Object(g.a)(y.b.AppOptions).onlineCustomerType,r=D.a.Staff,i=(null===(t=e)||void 0===t?void 0:t.countryCode)&&P.a.widgets(f.a.HostedLibrary,a,r,null===(n=e)||void 0===n?void 0:n.countryCode);return o.a.useBasicFetch(i,{optimize:!0}).data}function $(e,t,n){return o.a.useBasicFetch(n?P.a.widgetPlaylist(e,null,p.a.getUserGroup(D.a.Staff),1,25):null,{optimize:!0})}function q(e){var t=e.presentationId,n=J(Object(s.a)(H.a.SEARCH_BAR_LOCATION,!1),2),a=n[0],o=n[1],l=J(i.useInView({rootMargin:"-126px 0px"}),2),d=l[0],p=l[1];return p===a&&o(!p),r.useEffect((function(){return function(){return o(!0)}}),[]),r.createElement("div",{ref:d,className:"py-5"},r.createElement(c.a,{className:"container ".concat(V.a.searchBarContainer),view:_.a,options:{model:u.a.get("search",{ctor:U.a}),disableMask:!0,presentationId:t}}))}function Y(){var e,t=o.a.useBasicFetch(v.a.currentUser(),{optimize:!0}),n=Z(t.data),i=o.a.useBasicFetch(S.a.presentation(),{optimize:!0});return Object(R.a)(G("pageTitle")),r.createElement("div",{className:"bg-white px-3"},r.createElement("div",{className:"py-3 pl-5"},r.createElement(w,{user:t.data})),r.createElement(q,{presentationId:null===(e=i.data)||void 0===e?void 0:e.id}),r.createElement(b.a,{name:G("subjectsWidget"),type:d.c.Row,contents:m.a.Subjects,fetch:X,setData:function(e){return e},childComponent:C,childAppLink:K.classification}),r.createElement("div",{className:"pb-3 px-1"},r.createElement(B,{appLink:K.series,banner:{id:"Xg84gv",url:"http://image.api.stg.cvnet.io/v2/banners/Xg84gv"},imageCdnUrl:""})),n&&n.map((function(e,n){return r.createElement(b.a,{key:n,type:e.type,contents:m.a.Videos,fetch:a.partial($,e.collectionId.toString(),t.data),setData:function(e){return e.videos.data},lazyLoad:!0,childComponent:function(e){return r.createElement(h.a,Object.assign({},e,{appLink:K.video,seriesAppLink:K.series}))},appLink:K.collection,childAppLink:K.video})})))}},878:function(e,t,n){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"a",(function(){return r}));var r={isNumber:function(e){return r.isType(e,"number")},isString:function(e){return r.isType(e,"string")},isType:function(e,t){return a(e)===t}}},990:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),r=n(47),i=n(158),o=n(854),c=n(860),u=n(919),s=n(991),l=n.n(s);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],a=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(a=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){r=!0,i=e}finally{try{a||null==c.return||c.return()}finally{if(r)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var f=a.memo((function(e){var t=e.data,n=e.appLink,s=e.seriesAppLink,p=e.context,f=e.thumbnailSize,m=e.preloadImage,v=d(Object(u.b)(l.a.hovering),2),g=v[0],y=v[1];a.useEffect((function(){e.onHover(y)}),[y]);var b=Object.assign(Object.assign({},n),{args:[t.id,r.a.slugify(t.name)]}),h=l.a.rowWidth;return p.type!==i.c.LargeRow&&3!==p.collectionSize||(h=l.a.largeRowWidth),a.createElement("div",{ref:g,className:"p-1 flex-shrink-0 position-relative ".concat(h," ").concat(l.a.transition)},a.createElement(c.a,{video:t,type:"expandable",appLink:b,seriesAppLink:s,textPosition:o.a.Overlay,size:f,preload:m,hovering:y,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}))}),(function(e,t){var n,a,r,i,o,c;return e.preloadImage===t.preloadImage&&(null===(n=e.data)||void 0===n?void 0:n.name)===(null===(a=t.data)||void 0===a?void 0:a.name)&&(null===(i=null===(r=e.data)||void 0===r?void 0:r.series)||void 0===i?void 0:i.id)===(null===(c=null===(o=t.data)||void 0===o?void 0:o.series)||void 0===c?void 0:c.id)&&e.onHover===t.onHover}))},991:function(e,t,n){e.exports={rowWidth:"_8IgrO",largeRowWidth:"q46rm",hovering:"IeeJA",transition:"_1s6UK"}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[36],{1e3:function(e,n,t){"use strict";var r;t.d(n,"a",(function(){return r})),function(e){e.Subject="subject",e.Curriculum="curriculum"}(r||(r={}))},1001:function(e,n,t){"use strict";var r;t.d(n,"a",(function(){return r})),function(e){e[e.None=0]="None",e[e.AllSubjects=1]="AllSubjects",e[e.AllLevels=2]="AllLevels",e[e.AllSubjectsAndAllLevels=3]="AllSubjectsAndAllLevels"}(r||(r={}))},1258:function(e,n,t){e.exports={progress:"iKcwJ",progressItem:"_1SBXD"}},1259:function(e,n,t){e.exports={preferencesContainer:"_1sGnn",backgroundImage:"F6J5v"}},1321:function(e,n,t){"use strict";t.r(n);var r=t(0),a=t.n(r),i=t(2),u=t(14),c=t(160),l=t(237),s=t(7),o=t(880),p=t(879),f=t(154),d=t(957),m=t(248),v=t(10),b=t(5),y=t(898),g=a.a.lazy((function(){return t.e(55).then(t.bind(null,1298)).then((function(e){return{default:e.PreferencesWelcomeView}}))})),j=a.a.lazy((function(){return t.e(26).then(t.bind(null,1299)).then((function(e){return{default:e.SubjectPresentationSelectorView}}))})),A=a.a.lazy((function(){return t.e(25).then(t.bind(null,1300)).then((function(e){return{default:e.CurriculumPresentationSelectorView}}))})),k=a.a.lazy((function(){return t.e(18).then(t.bind(null,1324)).then((function(e){return{default:e.LevelPreferencesView}}))})),L=a.a.lazy((function(){return t.e(23).then(t.bind(null,1301)).then((function(e){return{default:e.SubjectPreferencesView}}))})),h=a.a.lazy((function(){return t.e(17).then(t.bind(null,1325)).then((function(e){return{default:e.PreferencesSummaryView}}))})),S=function(){return a.a.createElement(a.a.Fragment,null)};S.welcome=function(e){return a.a.createElement(g,Object.assign({},e))},S["school-level"]=function(e){return a.a.createElement(j,Object.assign({},e))},S.curriculum=function(e){return a.a.createElement(A,Object.assign({},e))},S.levels=function(e){return a.a.createElement(k,Object.assign({},e))},S.subjects=function(e){return a.a.createElement(L,Object.assign({},e))},S.summary=function(e){return a.a.createElement(h,Object.assign({},e))};var w=t(1259),E=t.n(w);t.d(n,"BasePreferencesView",(function(){return F}));var P=function(e){var n;return!e.statusCode||e.statusCode===c.a.Ok&&!!(null===(n=e.data)||void 0===n?void 0:n.length)};function F(e){var n,t,r,c,g,j,A,k,L=e.step,h=e.redirectUrl,w=void 0===h?"":h,F=u.a.useBasicFetch(p.a.currentPresentations()),O=u.a.useBasicFetch(p.a.availablePresentations()),C=u.a.useBasicFetch(p.a.myLevelPreferences()),B=u.a.useBasicFetch(p.a.mySubjectPreferences()),T=u.a.useBasicFetch(f.a.currentUser()),I=u.a.useBasicFetch(T.statusCode?d.a.setting(T.data.id,m.a.HasCompletedOnboarding):null),x=u.a.useBasicFetch(T.statusCode?d.a.setting(T.data.id,m.a.BulkOnboardingPreferencesState):null);if(Object(l.a)(s.a.getPhrase("subjects.preferences",(null===(n=I.data)||void 0===n?void 0:n.value)?"pageTitlePreferences":"pageTitleOnboarding")),T.statusCode&&"Admin"!==T.data.role&&"SuperAdmin"!==T.data.role)return w?i.a.LocationUtils.Redirect(w,!0):i.a.AppLinkHelper.trigger({application:b.a.DASHBOARD,action:v.a.Dashboard.HOME},{replace:!0}),a.a.createElement(a.a.Fragment,null);if(!I.statusCode)return a.a.createElement(a.a.Fragment,null);if(!L||!y.a.stepIsValid(L)){var H=(null===(t=I.data)||void 0===t?void 0:t.value)?"levels":"welcome";return i.a.AppLinkHelper.trigger(y.a.buildAppLink(H,w),{replace:!0}),a.a.createElement(a.a.Fragment,null)}var z=y.a.getIsStep(L),V=y.a.getBulkPreferencesState(null===(r=x.data)||void 0===r?void 0:r.value),D=V.levels,M=V.subjects,U=y.a.hasManyPresentationTypes(O.data),K=U.hasManySubjectPresentations,N=U.hasManyCurriculumPresentations,_=O.isFetching||O.shouldFetch,J=(null===(c=I.data)||void 0===c?void 0:c.value)||!_&&!K||P(F)&&(null===(g=I.data)||void 0===g?void 0:g.value),R=(null===(j=I.data)||void 0===j?void 0:j.value)||!_&&!N||P(F)&&(null===(A=I.data)||void 0===A?void 0:A.value),q=!P(F),G=q||!P(C)&&!D,W=G||!P(B)&&!M;if(z("welcome")&&(null===(k=I.data)||void 0===k?void 0:k.value))return i.a.AppLinkHelper.trigger(y.a.buildAppLink("levels",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);if(z("school-level")&&J)return i.a.AppLinkHelper.trigger(y.a.buildAppLink(R?"levels":"curriculum",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);if(z("curriculum")&&R)return i.a.AppLinkHelper.trigger(y.a.buildAppLink("levels",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);if(z(["levels","subjects","summary"])&&q)return i.a.AppLinkHelper.trigger(y.a.buildAppLink("welcome",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);if(z(["subjects","summary"])&&G)return i.a.AppLinkHelper.trigger(y.a.buildAppLink("levels",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);if(z("summary")&&W)return i.a.AppLinkHelper.trigger(y.a.buildAppLink("subjects",w),{replace:!0}),a.a.createElement(a.a.Fragment,null);var X,$=S[L];return a.a.createElement("div",{className:"position-relative px-3 ".concat(E.a.preferencesContainer)},"welcome"!==L&&a.a.createElement(o.a,{steps:(X=[{active:z("levels"),appLink:y.a.buildAppLink("levels",w),disabled:q},{active:z("subjects"),appLink:y.a.buildAppLink("subjects",w),disabled:G},{active:z("summary"),appLink:y.a.buildAppLink("summary",w),disabled:W}],R||X.unshift({active:z("curriculum"),appLink:y.a.buildAppLink("curriculum",w)}),J||X.unshift({active:z("school-level"),appLink:y.a.buildAppLink("school-level",w)}),X)}),a.a.createElement("main",null,a.a.createElement(a.a.Suspense,{fallback:a.a.createElement(a.a.Fragment,null)},a.a.createElement($,{redirectUrl:w}))))}},879:function(e,n,t){"use strict";t.d(n,"a",(function(){return j}));var r=t(79),a=t(21);function i(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,n){if(!e)return;if("string"==typeof e)return u(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 u(e,n)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(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 c=t(46).a.CLASSIFICATION,l=function(){return"/api/domain/v1/subjects/preferences?query=".concat(c,"&type=subject")},s=function(){return"/api/domain/v1/subjects/classifications/following?query=".concat(c)},o=function(){return"/api/domain/v1/subjects/classifications/following"},p=function(e){return r.a.urlBuilder("/api/domain/v1/subjects/classifications/following",{id:e})},f=function(){return"/api/domain/v1/subjects/audiences?type=subject"},d=function(){return"/api/domain/v1/subjects/audiences/following"},m=function(){return"/api/domain/v1/subjects/audiences/following"},v=function(e){return r.a.urlBuilder("/api/domain/v1/subjects/audiences/following",{id:e})},b=function(e){return"/api/domain/v1/subjects/presentations".concat(e?"?type=".concat(e):"")},y=function(e){return"/api/domain/v1/subjects/presentations/available".concat(e?"?type=".concat(e):"")},g=function(e){return"/api/domain/v1/subjects/presentations/".concat(e)},j={currentPresentations:function(e){return{url:b(e),key:"current:presentations".concat(e?":".concat(e):""),expiryTime:1/0}},availablePresentations:function(e){return{url:y(e),key:"available:presentations:".concat(e),expiryTime:1/0}},setPresentation:function(e,n,t){return{url:g(e.id),key:"set:".concat(n,":presentation"),type:a.a.POST,data:{},invalidationKeys:["current:presentations:".concat(n),"current:presentations","subject:preference:options","my:subject:preferences","level:preference:options","my:level:preferences"],success:t}},allSubjectPreferences:function(){return{url:l(),key:"subject:preference:options",expiryTime:1/0}},mySubjectPreferences:function(e){return{url:s(),key:"my:subject:preferences",normalize:!1,expiryTime:1/0,success:e,formatData:function(e){return e.filter((function(e){return e.canBePreferred}))}}},followSubjects:function(e,n,t,r){return{url:o(),key:"follow:subjects",data:e,type:a.a.POST,success:n,error:t,always:r,invalidationKeys:[].concat(i(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences"])}},unfollowSubjects:function(e,n,t,r){return{url:p(e),key:"unfollow:subjects",type:a.a.DELETE,success:n,error:t,always:r,invalidationKeys:[].concat(i(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences"])}},allLevelPreferences:function(){return{url:f(),key:"level:preference:options",normalize:!1,expiryTime:1/0}},myLevelPreferences:function(e){return{url:d(),key:"my:level:preferences",normalize:!1,expiryTime:1/0,success:e}},followLevels:function(e,n,t,r){return{url:m(),key:"follow:levels",data:e,type:a.a.POST,success:n,error:t,always:r,invalidationKeys:["my:level:preferences"]}},unfollowLevels:function(e,n,t,r){return{url:v(e),key:"unfollow:levels",type:a.a.DELETE,success:n,error:t,always:r,invalidationKeys:["my:level:preferences"]}}}},880:function(e,n,t){"use strict";t.d(n,"a",(function(){return c}));var r=t(0),a=t(51),i=t(1258),u=t.n(i);function c(e){return r.createElement("nav",{className:"d-flex justify-content-center pt-3 position-relative ".concat(u.a.progress)},e.steps.map((function(e,n){return r.createElement(a.a,{key:n,appLink:e.disabled||e.active?null:e.appLink,className:(t=e.active,i=e.disabled,c="rounded-circle mx-2 "+u.a.progressItem,l=t?"bg-info":"bg-light",s=i||t?"":"cursor-pointer","".concat(c," ").concat(l," ").concat(s))});var t,i,c,l,s})))}},898:function(e,n,t){"use strict";var r=t(1e3),a=t(1001),i={getIsStep:function(e){return function(n){return Array.isArray(n)?n.includes(e):e===n}},hasManyPresentationTypes:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=0,t=0;return e.forEach((function(e){e.type.toLowerCase()===r.a.Subject?n++:e.type.toLowerCase()===r.a.Curriculum&&t++})),{hasManySubjectPresentations:n>1,hasManyCurriculumPresentations:t>1}},getBulkPreferencesState:function(e){return e===a.a.AllSubjectsAndAllLevels?{levels:!0,subjects:!0}:{levels:e===a.a.AllLevels,subjects:e===a.a.AllSubjects}},stepIsValid:function(e){return-1!==["welcome","subjects","levels","summary","school-level","curriculum"].indexOf(e)},hasBulkSelectedLevels:function(e){return e===a.a.AllLevels||e===a.a.AllSubjectsAndAllLevels},hasBulkSelectedSubjects:function(e){return e===a.a.AllSubjects||e===a.a.AllSubjectsAndAllLevels}},u=t(10),c=t(5);t.d(n,"a",(function(){return l}));var l=Object.assign(Object.assign({},i),{buildAppLink:function(e,n){var t={application:c.a.SUBJECT,action:u.a.Subjects.PREFERENCES,params:{step:e}};return n&&(t.params.redirectUrl=n),t}})},957:function(e,n,t){"use strict";t.d(n,"a",(function(){return i}));var r=t(127),a=t(21),i={setting:function(e,n){return{key:"settings:".concat(e,":").concat(n),url:"/api/domain/v3/settings/".concat(e,"?type=").concat(n),normalize:!1,formatData:function(e){return r.a.first(e)}}},updateSetting:function(e,n,t,r,i,u){return{key:"update:setting",url:"/api/domain/v3/settings/".concat(e),data:{name:n,value:t,kind:r},type:a.a.PUT,invalidationKeys:["settings:".concat(e,":").concat(n)],success:i,error:u}}}}}]);