@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/widgets/fixed-widget/FixedWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetReducer.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetUtils.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/PartialFixedWidget.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/fixed-widget.scss?5b34","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss?ef43","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/CssMeasurement.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/WidgetContents.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/WidgetInteraction.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseHover.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/DragHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/WidgetHelper.ts"],"names":[],"mappings":"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","file":"scripts/4.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\r\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\r\nimport { SlidingListContainer } from 'libs/shared/components/widgets/sliding-list/SlidingListContainer';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\nimport { useHover } from 'libs/shared/hooks/UseHover';\r\nimport { WidgetType, WidgetContext } from 'libs/shared/interfaces';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\r\n\r\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PartialFixedWidget } from './PartialFixedWidget';\r\nimport { useFetchData, formatData, getCollectionAppLink, getShouldPreload, getOnTouchStart, getOnTouchEnd } from './FixedWidgetUtils';\r\nimport { FixedWidgetReducer, initialWidgetState, lazyWidgetInit } from './FixedWidgetReducer';\r\n\r\nimport styles from './fixed-widget.scss';\r\n\r\nconst namespace = 'shared.fixedWidget';\r\n\r\nexport interface FixedWidgetProps {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n\r\n type: WidgetType;\r\n contents: WidgetContents;\r\n thumbnailSize?: ThumbnailSize;\r\n paddingSize?: '3' | '4';\r\n\r\n collection?: any;\r\n lazyLoad?: boolean;\r\n fetch?: (...args: any) => Flight.Response<any>;\r\n prefetched?: boolean;\r\n setData?: (data: any) => any;\r\n minimumItemCount?: number;\r\n\r\n childComponent: React.ElementType;\r\n childAppLink?: Core.AppLink;\r\n appLink?: Core.AppLink;\r\n settingsAppLink?: Core.AppLink;\r\n\r\n analyticsData?: HashObject;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nFixedWidget.defaultProps = {\r\n type: WidgetType.Row,\r\n minimumItemCount: 0,\r\n paddingSize: '3'\r\n};\r\n\r\nfunction FixedWidget(props: FixedWidgetProps): JSX.Element {\r\n let { type: widgetType, analyticsData = {} } = props;\r\n\r\n // Map deprecated resources tile widget type to row type\r\n if (widgetType === WidgetType.ResourcesTile)\r\n widgetType = WidgetType.Row;\r\n\r\n const [ initialTouchX, setInitialTouchX ] = React.useState(null);\r\n const [ containerWidth, setContainerWidth ] = React.useState(null);\r\n const [ percentageDragged, setPercentageDragged ] = React.useState(0);\r\n\r\n const [ state, dispatch ] = React.useReducer(FixedWidgetReducer, initialWidgetState, lazyWidgetInit);\r\n\r\n const containerRef = React.useRef(null);\r\n const [ buttonsRef, isHovering ] = useHover<HTMLDivElement>();\r\n\r\n const [ isHoveringOnFarLeft, setIsHoveringOnFarLeft ] = React.useState(false);\r\n const [ isHoveringOnFarRight, setIsHoveringOnFarRight ] = React.useState(false);\r\n\r\n const { ref, inView: shouldFetch } = useLazyLoad(!props.lazyLoad);\r\n const mediaQuery = useGetMediaQueryString();\r\n\r\n React.useEffect(() => {\r\n dispatch({\r\n type: WidgetInteraction.Resize,\r\n payload: {\r\n mediaQuery,\r\n type: widgetType,\r\n contents: props.contents,\r\n collection: state.collection\r\n }\r\n });\r\n }, [mediaQuery]);\r\n\r\n React.useEffect(() => {\r\n if (!props.prefetched)\r\n return;\r\n\r\n // If the collection changes, re-initialize the widget state.\r\n dispatch({\r\n type: WidgetInteraction.Init,\r\n payload: {\r\n mediaQuery,\r\n type: widgetType,\r\n contents: props.contents,\r\n collection: props.collection\r\n }\r\n });\r\n }, [ props.collection, props.prefetched ]);\r\n\r\n const response = useFetchData(props, dispatch, mediaQuery, shouldFetch);\r\n\r\n function onSetIsHovering(hovering: boolean, index: number): void {\r\n if (state.collection.length === state.viewableItems) {\r\n setIsHoveringOnFarLeft(hovering);\r\n setIsHoveringOnFarRight(hovering);\r\n return;\r\n }\r\n\r\n // This callback will hide the far left button if the user is hovering on the far left widget item.\r\n // Same goes for the far right button & widget item.\r\n if (index + 1 === state.collection.length) {\r\n setIsHoveringOnFarRight(hovering);\r\n return;\r\n }\r\n\r\n if (index === 0) {\r\n setIsHoveringOnFarLeft(hovering);\r\n return;\r\n }\r\n\r\n if ((index + 1 - (state.offset % state.viewableItems)) % state.viewableItems === 0) {\r\n setIsHoveringOnFarRight(hovering);\r\n return;\r\n }\r\n\r\n if ((index - (state.offset % state.viewableItems)) % state.viewableItems === 0) {\r\n setIsHoveringOnFarLeft(hovering);\r\n return;\r\n }\r\n }\r\n\r\n const widgetContext: WidgetContext = {\r\n type: state.type,\r\n size: state.currentSize,\r\n collectionSize: state.collection.length,\r\n contents: props.contents\r\n };\r\n\r\n const data = formatData(props, response?.data || props.collection);\r\n\r\n if (response?.hasError)\r\n return <></>;\r\n\r\n if (!props.prefetched && !response?.statusCode) {\r\n return (\r\n <div ref={ref}>\r\n <PartialFixedWidget type={widgetType} />\r\n </div>\r\n );\r\n }\r\n\r\n if (!state.collection.length || state.collection.length < props.minimumItemCount)\r\n return <></>;\r\n\r\n const WidgetItemComponent = props.childComponent;\r\n\r\n const getSliderAnalyticsData = (type: WidgetInteraction) => ({\r\n id: data?.id,\r\n name: data?.name,\r\n direction: type === WidgetInteraction.Next ? 'right' : 'left',\r\n ...props.analyticsData\r\n });\r\n\r\n\r\n return (\r\n <div className={`pb-3 px-${props.paddingSize} mx-n${props.paddingSize} overflow-hidden-x`}>\r\n <div className='mb-1'>\r\n <AppLink\r\n appLink={getCollectionAppLink(props.appLink, data)}\r\n analyticsData={{ id: data?.id, name: data?.name, ...props.analyticsData }}\r\n analyticsOptions={WidgetHelper.getSliderHeadingAnalyticsOptions()}>\r\n <h2 className={`${styles.heading} ${ props.appLink ? styles.link : ''} h4 mb-0 d-inline-block align-top pl-1`}>\r\n {data.name}\r\n {!!props.appLink && (\r\n <SvgContainer svgName={cvSvgLibrary.ChevronRight} size={SvgContainerSize.Small} />\r\n )}\r\n </h2>\r\n {props.settingsAppLink &&\r\n <AppLink appLink={props.settingsAppLink}>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Cog}\r\n className='d-inline-block svg-container cursor-pointer'\r\n title={LanguageService.getPhrase(namespace, 'preferencesTooltip')}\r\n tooltipPlacement='right'\r\n />\r\n </AppLink>\r\n }\r\n </AppLink>\r\n\r\n {data.description &&\r\n <p className='text-truncate pl-1 mb-0 description'>{data.description}</p>\r\n }\r\n </div>\r\n\r\n <div ref={buttonsRef} className='position-relative'>\r\n {!isHoveringOnFarLeft && <div className={styles.leftOverflowGradient} />}\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Left}\r\n onClick={() => {\r\n dispatch({ type: WidgetInteraction.Previous });\r\n AnalyticsHelper.logUserAction(\r\n getSliderAnalyticsData(WidgetInteraction.Previous),\r\n WidgetHelper.getSliderAnalyticsOptions());\r\n }}\r\n hide={isHoveringOnFarLeft || (\r\n state.offset <= state.collection.length && !(isHovering && state.offset !== state.viewableItems)\r\n )}\r\n contents={props.contents}\r\n />\r\n\r\n <SlidingListContainer\r\n position={state.position}\r\n positionType={CssMeasurement.Percentage}\r\n onTouchMove={getOnTouchStart(\r\n state,\r\n containerRef,\r\n containerWidth,\r\n setContainerWidth,\r\n initialTouchX,\r\n setInitialTouchX,\r\n setPercentageDragged\r\n )}\r\n onTouchEnd={getOnTouchEnd(\r\n containerRef,\r\n setInitialTouchX,\r\n percentageDragged,\r\n setPercentageDragged,\r\n dispatch\r\n )}\r\n ref={containerRef}\r\n percentageDragged={percentageDragged}\r\n >\r\n {state.collection.map((widgetItem, index) => {\r\n return (\r\n <WidgetItemComponent\r\n key={widgetItem.id}\r\n data={widgetItem}\r\n appLink={props.childAppLink}\r\n context={widgetContext}\r\n preloadImage={getShouldPreload(state)(widgetItem)}\r\n thumbnailSize={props.thumbnailSize || ThumbnailSize.Medium}\r\n analyticsData={{\r\n widgetId: data.id,\r\n widgetName: data.name,\r\n itemIndex: index,\r\n ...analyticsData\r\n }}\r\n analyticsOptions={{ ...props?.analyticsOptions, ...WidgetHelper.getSliderItemAnalyticsOptions() }}\r\n onHover={(hovering: boolean) => {\r\n /**\r\n * For some reason this needs to be called after a set timeout, otherwise\r\n * the `useHover` listener on the `buttonsRef` element will not detect it's hover\r\n * event. A delay of 200ms is used for when `hovering` is false so that the effects of\r\n * setting `isHoveringOnFarX` aren't applied until the CSS transform transition has\r\n * completed.\r\n */\r\n window.setTimeout(() => {\r\n onSetIsHovering(hovering, index);\r\n }, hovering ? 0 : 200);\r\n }}\r\n />\r\n );\r\n })}\r\n </SlidingListContainer>\r\n\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Right}\r\n onClick={() => {\r\n dispatch({ type: WidgetInteraction.Next });\r\n AnalyticsHelper.logUserAction(\r\n getSliderAnalyticsData(WidgetInteraction.Next),\r\n WidgetHelper.getSliderAnalyticsOptions());\r\n }}\r\n hide={\r\n isHoveringOnFarRight || (\r\n (state.offset > state.viewableItems || state.offset === state.collection.length) &&\r\n !(isHovering && state.offset < state.collection.length)\r\n )\r\n }\r\n contents={props.contents}\r\n />\r\n {!isHoveringOnFarRight && <div className={styles.rightOverflowGradient} />}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst Memoized = React.memo(FixedWidget);\r\n\r\nexport { Memoized as FixedWidget };","import { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetType } from 'libs/shared/interfaces';\r\n\r\nimport { getComputeFunction } from './FixedWidgetUtils';\r\n\r\nexport interface FixedWidgetPayload {\r\n mediaQuery?: MediaQueryStrings;\r\n contents?: WidgetContents;\r\n type?: WidgetType;\r\n collection?: any[];\r\n}\r\n\r\nexport interface FixedWidgetState {\r\n // Current position within the widget collection\r\n offset: number;\r\n // Number of items viewable in slider for the current breakpoint/viewport size\r\n viewableItems: number;\r\n // Relative position of slider in the window. Used for an inline translate3d().\r\n position: number;\r\n // Collection of widget items\r\n collection: any[];\r\n // String representation of the current media query\r\n currentSize: MediaQueryStrings;\r\n // Type of widget being managed. May change on `Resize`.\r\n type: WidgetType;\r\n}\r\n\r\nexport const initialWidgetState: FixedWidgetState = {\r\n offset: 0,\r\n viewableItems: 4,\r\n position: 0,\r\n collection: [],\r\n currentSize: MediaQueryStrings.LG,\r\n type: WidgetType.Row\r\n};\r\n\r\nconst computeNextPosition = (prevState: FixedWidgetState): object => {\r\n const { collection, viewableItems, offset, position } = prevState;\r\n\r\n const remainingCount = collection.length - offset;\r\n\r\n /**\r\n * If the remaining items are evening divisible by the items in view, or,\r\n * we have more items that can be displayed in the view, move the slider a full 100%.\r\n */\r\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\r\n return {\r\n position: position - 100,\r\n offset: offset + viewableItems\r\n };\r\n\r\n /**\r\n * Where there are less items than we can show in a full slide, \r\n * calculate the % movement required to only show those items.\r\n */\r\n if (remainingCount < viewableItems)\r\n return {\r\n position: position - (remainingCount / viewableItems * 100),\r\n offset: offset + remainingCount\r\n };\r\n\r\n /**\r\n * Default back to the current state as a fallback\r\n */\r\n return {\r\n position: position,\r\n offset: offset\r\n };\r\n};\r\n\r\nconst computePreviousPosition = (prevState: FixedWidgetState): object => {\r\n const { viewableItems, offset, position } = prevState;\r\n\r\n const remainingCount = offset - viewableItems;\r\n\r\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\r\n return {\r\n position: position + 100,\r\n offset: offset - viewableItems\r\n };\r\n\r\n if (remainingCount < viewableItems)\r\n return {\r\n position: position + (remainingCount / viewableItems * 100),\r\n offset: offset - remainingCount\r\n };\r\n\r\n return {\r\n position: position,\r\n offset: offset\r\n };\r\n};\r\n\r\nexport function FixedWidgetReducer(\r\n prevState: FixedWidgetState,\r\n action: ReducerActions<WidgetInteraction, FixedWidgetPayload>\r\n): FixedWidgetState {\r\n const { type, payload = {} } = action;\r\n\r\n switch (type) {\r\n case WidgetInteraction.Next: {\r\n return {\r\n ...prevState,\r\n ...computeNextPosition(prevState)\r\n };\r\n }\r\n\r\n case WidgetInteraction.Previous: {\r\n return {\r\n ...prevState,\r\n ...computePreviousPosition(prevState)\r\n };\r\n }\r\n\r\n case WidgetInteraction.Resize: {\r\n const computeViewableItems = getComputeFunction(payload.contents);\r\n const initialSeen = computeViewableItems(payload.mediaQuery, payload.type, payload.collection?.length);\r\n\r\n return {\r\n ...prevState,\r\n currentSize: payload.mediaQuery,\r\n position: 0,\r\n offset: initialSeen,\r\n viewableItems: initialSeen,\r\n type: payload.type\r\n };\r\n }\r\n\r\n case WidgetInteraction.Init: {\r\n const computeViewableItems = getComputeFunction(payload.contents);\r\n const initialSeen = computeViewableItems(payload.mediaQuery, payload.type, payload.collection?.length);\r\n\r\n return lazyWidgetInit({\r\n ...prevState,\r\n collection: payload.collection,\r\n currentSize: payload.mediaQuery,\r\n offset: initialSeen,\r\n viewableItems: initialSeen,\r\n type: payload.type\r\n });\r\n }\r\n\r\n default:\r\n return prevState;\r\n }\r\n}\r\n\r\nexport function lazyWidgetInit(newState: FixedWidgetState): FixedWidgetState {\r\n return { ...initialWidgetState, ...newState };\r\n}","import * as React from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Core } from 'libs/common/core';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { BaseObject, WidgetType } from 'libs/shared/interfaces';\r\n\r\nimport { FixedWidgetProps } from './FixedWidget';\r\nimport { FixedWidgetState, FixedWidgetPayload } from './FixedWidgetReducer';\r\n\r\nexport interface WidgetData {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n}\r\n\r\nexport function useFetchData(\r\n props: FixedWidgetProps,\r\n dispatch: Function,\r\n mediaQueryType: MediaQueryStrings,\r\n shouldFetch: boolean\r\n): Flight.Response<any> {\r\n const { fetch, setData, type, collection: items, prefetched, contents } = props;\r\n\r\n let data = items;\r\n let res: Flight.Response<any>;\r\n\r\n if (!data || ObjectHelper.isEmpty(data) && !prefetched) {\r\n res = fetch(shouldFetch);\r\n data = res.data;\r\n }\r\n\r\n /**\r\n * Once we have the widget data, lazily update our state with the new collection\r\n */\r\n React.useEffect(() => {\r\n if (!data || ObjectHelper.isEmpty(data))\r\n return;\r\n\r\n dispatch({\r\n type: WidgetInteraction.Init,\r\n payload: {\r\n collection: FunctionHelper.isFunction(setData) ? setData(data) : data,\r\n mediaQuery: mediaQueryType,\r\n type,\r\n contents\r\n }\r\n });\r\n\r\n }, [data]);\r\n\r\n return res;\r\n}\r\n\r\n/**\r\n * This function wrapper determines which widget item images should be pre-fetched by the LazyImage component.\r\n * It does this by looking at which images are going to be shown after the users clicks on the \"Next\"\r\n * widget button.\r\n */\r\nexport function getShouldPreload(state: FixedWidgetState): (widgetItem: any) => boolean {\r\n const { offset, viewableItems, collection } = state;\r\n\r\n // The index of the latest item that has been fetched\r\n const maxLoadedIndex = offset;\r\n\r\n /**\r\n * The indicesToPreload is an array of indices of widget items that should be prefetched by the\r\n * LazyImage component\r\n */\r\n const indicesToPreload: number[] = [];\r\n for (let i = 0; i < maxLoadedIndex + viewableItems; i++) {\r\n indicesToPreload.push(i);\r\n }\r\n\r\n /**\r\n * A widget item calls this function to determine whether or not its image can be pre-fetched.\r\n * This is determined by whether or not its index has been deemed valid to be pre-fetched\r\n * by the scope above\r\n */\r\n return function shouldPreload(widgetItem: any): boolean {\r\n const index = collection.indexOf(widgetItem);\r\n\r\n return indicesToPreload.includes(index);\r\n };\r\n}\r\n\r\nexport function getCollectionAppLink(appLink: Core.AppLink, data: WidgetData): Core.AppLink {\r\n if (!appLink)\r\n return;\r\n\r\n return {\r\n ...appLink,\r\n args: appLink.args || [ data.id, TextHelper.slugify(data.name) ]\r\n };\r\n}\r\n\r\n/**\r\n * Allow explicit name and description props to override the fetched\r\n * data properties.\r\n * \r\n * @param props \r\n * @param data \r\n */\r\nexport function formatData(props: FixedWidgetProps, data: BaseObject): WidgetData {\r\n const { name, description } = props;\r\n\r\n const overrideProps: WidgetData = {};\r\n\r\n if (Array.isArray(data))\r\n return { name, description };\r\n\r\n if (props.name) overrideProps.name = name;\r\n if (props.description) overrideProps.description = description;\r\n\r\n return { ...data, ...overrideProps };\r\n}\r\n\r\n/**\r\n * The functions below are used by the reducer to compute the number of widget items\r\n * displayed on the screen based on the media query, widget type, and total number of items.\r\n */\r\ntype ComputeFunction = (mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number) => number;\r\n\r\nexport function getComputeFunction(contents: WidgetContents): ComputeFunction {\r\n switch (contents) {\r\n case WidgetContents.Playlists:\r\n return computeViewablePlaylists;\r\n\r\n case WidgetContents.Videos:\r\n return computeViewableVideos;\r\n\r\n case WidgetContents.Subjects:\r\n return computeViewableSubjects;\r\n\r\n case WidgetContents.UserChannels:\r\n return computeViewableUserChannels;\r\n\r\n case WidgetContents.Interactives:\r\n return computeViewableInteractives;\r\n\r\n case WidgetContents.Clips:\r\n return computeViewableClips;\r\n\r\n case WidgetContents.Series:\r\n default:\r\n return computeViewableSeries;\r\n }\r\n}\r\n\r\nfunction computeViewablePlaylists(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 5;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableVideos(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 4;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (\r\n mediaQuery === MediaQueryStrings.LG\r\n || mediaQuery === MediaQueryStrings.XL\r\n || mediaQuery === MediaQueryStrings.XXL\r\n ) {\r\n if (type === WidgetType.LargeRow)\r\n maxItems = 3;\r\n\r\n else if (itemCount < 4)\r\n maxItems = 3;\r\n\r\n else\r\n maxItems = 4;\r\n }\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableSubjects(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 6;\r\n\r\n if (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (mediaQuery === MediaQueryStrings.LG)\r\n maxItems = 5;\r\n else if (mediaQuery === MediaQueryStrings.XL || mediaQuery === MediaQueryStrings.XXL)\r\n maxItems = 6;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableUserChannels(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 6;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (mediaQuery === MediaQueryStrings.LG)\r\n maxItems = 5;\r\n else if (mediaQuery === MediaQueryStrings.XL || mediaQuery === MediaQueryStrings.XXL)\r\n maxItems = 6;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableInteractives(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 3;\r\n\r\n if (mediaQuery === MediaQueryStrings.MD || mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 2;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 1;\r\n\r\n if (itemCount < Math.ceil(maxItems))\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableClips(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 3;\r\n\r\n if (mediaQuery === MediaQueryStrings.MD || mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 2;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 1;\r\n\r\n if (itemCount < Math.ceil(maxItems))\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableSeries(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 4;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\n/**\r\n * Touch event handlers\r\n */\r\nexport function getOnTouchStart(\r\n widgetState: FixedWidgetState,\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n containerWidth: number,\r\n setContainerWidth: React.Dispatch<number>,\r\n initialTouchX: number,\r\n setInitialTouchX: React.Dispatch<number>,\r\n setPercentageDragged: React.Dispatch<number>\r\n): (event: React.TouchEvent<HTMLDivElement>) => void {\r\n return function(event: React.TouchEvent<HTMLDivElement>): void {\r\n const firstTouch = event.touches.item(0);\r\n const touchX = firstTouch.clientX;\r\n\r\n /**\r\n * Runs only on the very first touch event.\r\n * \r\n * Sets the initial x-coordinate as a reference point to calculate how far the user has dragged before\r\n * they release their finder\r\n */\r\n if (!initialTouchX) {\r\n containerRef.current.style.transition = '';\r\n\r\n setContainerWidth(containerRef.current.getBoundingClientRect().width);\r\n setInitialTouchX(touchX);\r\n }\r\n\r\n const pixelsDragged = initialTouchX - touchX;\r\n\r\n // Calculate how far the user has moved their finger as a percentage of the widget's container element\r\n let currentPercentageDragged = ((pixelsDragged / containerWidth) * 100);\r\n\r\n /**\r\n * These 2 if statements prevent the user from dragging the widget beyond its limits.\r\n * One if statement handles if they have dragged to the left, and the other is for dragging to the right.\r\n * \r\n * The same logic is used to hide the widget buttons (see the `hide` prop passed to `<WidgetButton />`)\r\n */\r\n if (currentPercentageDragged < 0 && (widgetState.offset === widgetState.viewableItems))\r\n currentPercentageDragged = 0;\r\n\r\n else if (currentPercentageDragged > 0 && (widgetState.offset === widgetState.collection.length))\r\n currentPercentageDragged = 0;\r\n\r\n setPercentageDragged(currentPercentageDragged);\r\n };\r\n}\r\n\r\nconst DRAG_TOLERANCE = 7.5; // % of container width using to trigger a transition.\r\n\r\nexport function getOnTouchEnd(\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n setInitialTouchX: React.Dispatch<number>,\r\n percentageDragged: number,\r\n setPercentageDragged: React.Dispatch<number>,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction, FixedWidgetPayload>>\r\n): () => void {\r\n return function(): void {\r\n containerRef.current.style.transition = 'transform .4s ease-in-out';\r\n setInitialTouchX(null);\r\n\r\n /**\r\n * Only trigger a Next/Previous widget event if the user has dragged beyond DRAG_TOLERANCE% either way of the\r\n * container's width. This means if the user only drags left/right a tiny little bit, the widget\r\n * will simply slide back into its original place.\r\n */\r\n if (Math.abs(percentageDragged) >= DRAG_TOLERANCE) {\r\n const reducerAction = percentageDragged > 0 ? WidgetInteraction.Next : WidgetInteraction.Previous;\r\n\r\n dispatch({\r\n type: reducerAction\r\n });\r\n }\r\n\r\n setPercentageDragged(0);\r\n };\r\n}","import * as React from 'react';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetType } from 'libs/shared/interfaces';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './fixed-widget.scss';\r\n\r\nfunction useMediaQueryListeners(): HashObject {\r\n const mediaQuery = useGetMediaQueryString();\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n return {\r\n itemCount: 1,\r\n colSize: 12\r\n };\r\n\r\n if (mediaQuery === MediaQueryStrings.SM)\r\n return {\r\n itemCount: 2,\r\n colSize: 6\r\n };\r\n\r\n if (mediaQuery === MediaQueryStrings.MD)\r\n return {\r\n itemCount: 3,\r\n colSize: 4\r\n };\r\n\r\n return {\r\n itemCount: 4,\r\n colSize: 3\r\n };\r\n}\r\n\r\nconst PartialLoadingItem = ({ colSize }: HashObject) => (\r\n <div className={`col-${colSize}`}>\r\n <div className={`${styles.partialItem} mx-1 partial-loading-background`} />\r\n </div>\r\n);\r\n\r\ninterface PartialFixedWidgetProps {\r\n type: WidgetType;\r\n}\r\n\r\nexport function PartialFixedWidget(props: PartialFixedWidgetProps): JSX.Element {\r\n const { itemCount, colSize } = useMediaQueryListeners();\r\n\r\n let items = [];\r\n for (let i = 0; i < itemCount; i++) {\r\n items.push(<PartialLoadingItem key={i} colSize={colSize} />);\r\n }\r\n\r\n return (\r\n <div className='widget pb-3'>\r\n <div className={`${styles.partialHeading} mx-1 mb-1 partial-loading-background`}></div>\r\n <div className={`${styles.partialDescription} mx-1 my-1 partial-loading-background`}></div>\r\n <div className={`${styles.slidingContainer} row`}>\r\n {items}\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"leftOverflowGradient\":\"cv--leftOverflowGradient--u_MPi\",\"rightOverflowGradient\":\"cv--rightOverflowGradient--38ooL\",\"partialHeading\":\"cv--partialHeading--OVsdA\",\"partialDescription\":\"cv--partialDescription--1HtA2\",\"partialItem\":\"cv--partialItem--3G2hG\",\"largePartialItem\":\"cv--largePartialItem--NnK8O\",\"heading\":\"cv--heading--BQnCC\",\"link\":\"cv--link--ph0Qy\"};","import * as React from 'react';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\r\n\r\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\r\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\r\n\r\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\r\n\r\nfunction getPositionStyling(xPosition: number, measurement: CssMeasurement, dragPercentage?: number): object {\r\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\r\n if (measurement === CssMeasurement.Percentage && dragPercentage)\r\n xPosition = xPosition - dragPercentage;\r\n\r\n return {\r\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\r\n transition: 'transform .4s ease-in-out'\r\n };\r\n}\r\n\r\ninterface SlidingListContainerProps extends React.PropsWithChildren<{}> {\r\n position: number;\r\n positionType: CssMeasurement;\r\n\r\n onDrag?: (event: React.DragEvent<HTMLDivElement>) => void;\r\n onDragEnd?: () => void;\r\n\r\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\r\n onTouchEnd?: () => void;\r\n\r\n percentageDragged?: number;\r\n}\r\n\r\nexport const SlidingListContainer = React.forwardRef((\r\n props: SlidingListContainerProps,\r\n ref: React.MutableRefObject<HTMLDivElement>\r\n): JSX.Element => {\r\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\r\n\r\n function getEventListeners(): HashObject {\r\n const listenerProps: HashObject = {};\r\n\r\n if (onDrag && onDragEnd) {\r\n listenerProps.draggable = true;\r\n listenerProps.onDrag = onDrag;\r\n listenerProps.onDragEnd = onDragEnd;\r\n listenerProps.onDragStart = DragHelper.hideDragImage;\r\n listenerProps.onDragOver = (e: React.DragEvent<HTMLDivElement>) => e.preventDefault();\r\n }\r\n\r\n if (onTouchMove && onTouchEnd && isTouchScreen) {\r\n listenerProps.onTouchMoveCapture = onTouchMove;\r\n listenerProps.onTouchEndCapture = onTouchEnd;\r\n }\r\n\r\n return listenerProps;\r\n }\r\n\r\n return (\r\n <div\r\n className='d-flex flex-nowrap position-relative w-100'\r\n style={getPositionStyling(position, positionType, percentageDragged)}\r\n ref={ref}\r\n {...getEventListeners()}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});","import * as React from 'react';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\n\r\nimport styles from './widget-button.scss';\r\n\r\nexport enum WidgetButtonDirection {\r\n Left,\r\n Right\r\n}\r\n\r\nfunction getPositionClass(contents: WidgetContents, isLeftDirection: boolean): string {\r\n let className = styles.topPos;\r\n\r\n // Left / Right\r\n if (isLeftDirection)\r\n className += ' ' + styles.left;\r\n else\r\n className += ' ' + styles.right;\r\n\r\n return className;\r\n}\r\n\r\ninterface WidgetButtonProps {\r\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\r\n direction: WidgetButtonDirection;\r\n hide: boolean;\r\n contents?: WidgetContents;\r\n useGradientBackdrop?: boolean;\r\n}\r\n\r\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\r\n const isLeft = props.direction === WidgetButtonDirection.Left;\r\n\r\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\r\n\r\n const positionClass = getPositionClass(props.contents, isLeft);\r\n\r\n if (props.hide)\r\n return <></>;\r\n\r\n return (\r\n <>\r\n <div role='button' className={`${positionClass} ${styles.button}`} onClick={props.onClick}>\r\n <SvgContainer\r\n svgName={arrowSvg}\r\n size={SvgContainerSize.Medium}\r\n className={`svg-container d-inline-block ${styles.chevron}`}\r\n />\r\n </div>\r\n\r\n {props.useGradientBackdrop && <div className={isLeft ? styles.gradientLeft : styles.gradientRight} />}\r\n <div role='button' onClick={props.onClick} className={\r\n isLeft ? styles.extendedClickableAreaLeft : styles.extendedClickableAreaRight\r\n } />\r\n </>\r\n );\r\n}, (prevProps, nextProps) => prevProps.hide === nextProps.hide);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"left\":\"cv--left--789pr\",\"right\":\"cv--right--1P8qt\",\"button\":\"cv--button--24q_F\",\"chevron\":\"cv--chevron--3M27X\",\"gradientLeft\":\"cv--gradientLeft--3fkiw\",\"gradientRight\":\"cv--gradientRight--2RDDy\",\"extendedClickableAreaRight\":\"cv--extendedClickableAreaRight--13dgy\",\"extendedClickableAreaLeft\":\"cv--extendedClickableAreaLeft--37LtK\",\"videoTopPos\":\"cv--videoTopPos--1XTRO\",\"topPos\":\"cv--topPos--3_p_J\"};","export enum CssMeasurement {\r\n Percentage = '%',\r\n Pixels = 'px'\r\n}","export enum WidgetContents {\r\n Videos = 'videos',\r\n Series = 'series',\r\n Subjects = 'subjects',\r\n Playlists = 'playlists',\r\n UserChannels = 'user channels',\r\n Interactives = 'interactives',\r\n Clips = 'clips'\r\n}","export enum WidgetInteraction {\r\n Init = 'init',\r\n Next = 'next',\r\n Previous = 'previous',\r\n Resize = 'resize',\r\n Drag = 'drag'\r\n}","import * as React from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\ninterface HoverOptions {\r\n /**\r\n * Classes to be applied to the target element on hover. Useful if you want to style the element on hover\r\n * after a delay (controlled by the `timeout` option below)\r\n */\r\n className?: string;\r\n\r\n /**\r\n * A delay between when the user actually hovers on the element, and when the hook returns `true` for `isHovering`.\r\n * This can be used to determine whether a user has actually intended for a hover event on an element to be\r\n * triggered or not. Defaults to 0.\r\n */\r\n delay?: number;\r\n}\r\n\r\nconst defaultOptions: HoverOptions = {\r\n className: '',\r\n delay: 0\r\n};\r\n\r\n/**\r\n * This hook detects hover events on an element.\r\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\r\n */\r\nexport function useHover<T extends HTMLElement>(\r\n options: HoverOptions = defaultOptions\r\n): [ React.MutableRefObject<T>, boolean ] {\r\n const [ isHovering, setHovering ] = React.useState(false);\r\n\r\n const ref = React.useRef<T>(null);\r\n\r\n const triggerHover = FunctionHelper.throttle(() => {\r\n if (options.className)\r\n ref.current?.classList?.add(options.className);\r\n\r\n setHovering(true);\r\n }, options.delay, { leading: false });\r\n\r\n const handleMouseOut = () => {\r\n if (FunctionHelper.isFunction(triggerHover.cancel))\r\n triggerHover.cancel();\r\n\r\n if (options.className)\r\n ref.current?.classList?.remove(options.className);\r\n\r\n setHovering(false);\r\n };\r\n\r\n React.useLayoutEffect(() => {\r\n const node = ref.current;\r\n\r\n if (node) {\r\n node.addEventListener('mouseenter', triggerHover);\r\n node.addEventListener('mouseleave', handleMouseOut);\r\n\r\n return () => {\r\n node.removeEventListener('mouseenter', triggerHover);\r\n node.removeEventListener('mouseleave', handleMouseOut);\r\n };\r\n }\r\n }, [ ref.current, triggerHover, handleMouseOut ]);\r\n\r\n return [ ref, isHovering ];\r\n}\r\n\r\nexport function useHoverIntent<T extends HTMLElement>(className: string): [ React.MutableRefObject<T>, boolean ] {\r\n return useHover({\r\n className,\r\n delay: 275\r\n });\r\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst blankImage = new Image();\r\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\r\n\r\nexport const DragHelper = {\r\n // This removes the image that appears when you drag a draggable HTML element\r\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\r\n if (!event.dataTransfer.setDragImage || FunctionHelper.isFunction(event.dataTransfer.setDragImage))\r\n return;\r\n\r\n event.dataTransfer.setDragImage(blankImage, 0, 0);\r\n }\r\n};","import { AnalyticsOptions, ClickDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\r\nimport { Video } from 'libs/shared/interfaces';\r\n\r\nexport const WidgetHelper = {\r\n /**\r\n * Used by both the FixedWidget and DynamicWidget\r\n */\r\n getSliderAnalyticsOptions: (): AnalyticsOptions => ({\r\n actionType: UserAction.Click,\r\n location: LocationContext.SlidingList,\r\n entity: EntityType.Widget,\r\n descriptor: ClickDescriptor.Slide\r\n }),\r\n\r\n /**\r\n * Used by both the FixedWidget and DynamicWidget\r\n */\r\n getSliderItemAnalyticsOptions: (): AnalyticsOptions => ({\r\n location: LocationContext.SlidingListItem\r\n }),\r\n\r\n getSliderHeadingAnalyticsOptions: (): AnalyticsOptions => ({\r\n actionType: UserAction.Click,\r\n location: LocationContext.SlidingList,\r\n entity: EntityType.Widget,\r\n descriptor: ClickDescriptor.Title\r\n })\r\n};"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/FormField.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseCanSubmitForm.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/FormHelper.ts"],"names":[],"mappings":"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","file":"scripts/4.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { useFormikContext } from 'formik';\r\nimport { ButtonProps } from 'react-bootstrap';\r\n\r\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\r\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nconst namespace = 'shared.formButtons';\r\n\r\nconst ENTER_KEY_CODE = 13;\r\n\r\ninterface FormButtonsProps {\r\n isNew: boolean;\r\n hasNext?: boolean;\r\n submitText?: string;\r\n variant?: ButtonProps['variant'];\r\n}\r\n\r\nexport function FormButtons<Values extends object>(props: FormButtonsProps): JSX.Element {\r\n const formikProps = useFormikContext<Values>();\r\n\r\n const canSubmit = useCanSubmitForm(formikProps);\r\n\r\n /**\r\n * This hook listens to \"Enter\" keypress events, and submits the form if there\r\n * are no errors. This prevents any edge cases where submitting doesn't work on\r\n * Enter normally, such as when a custom component is in focus.\r\n */\r\n React.useEffect(() => {\r\n function onKeyPress(e: KeyboardEvent): void {\r\n if (e.keyCode !== ENTER_KEY_CODE || !canSubmit)\r\n return;\r\n\r\n formikProps.validateForm().then(errors => {\r\n if (!Object.keys(errors).length)\r\n formikProps.submitForm();\r\n });\r\n }\r\n\r\n window.addEventListener('keypress', onKeyPress);\r\n return () => window.removeEventListener('keypress', onKeyPress);\r\n }, [canSubmit]);\r\n\r\n let phraseKey = 'save';\r\n if (props.isNew)\r\n phraseKey = 'create';\r\n if (props.hasNext)\r\n phraseKey = 'next';\r\n\r\n return (\r\n <SpinnerButton\r\n variant={props.variant || 'primary'}\r\n showSpinner={formikProps.isSubmitting}\r\n type='submit'\r\n disabled={!canSubmit}\r\n >\r\n {props.submitText\r\n ? <>{props.submitText}</>\r\n : <Text namespace={namespace} phrase={phraseKey} />\r\n }\r\n </SpinnerButton>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { FieldAttributes } from 'formik';\r\nimport { Form } from 'react-bootstrap';\r\nimport { FieldWrapper, FormFieldProps } from '../form-field/FormField';\r\n\r\n/**\r\n * Use this checkbox within Formik contexts\r\n */\r\nexport function FormCheckbox<Values extends object>(props: FieldAttributes<FormFieldProps<Values>>): JSX.Element {\r\n const { label, ...fieldProps } = props;\r\n\r\n return (\r\n <Form.Group>\r\n <div className='custom-control custom-checkbox'>\r\n <FieldWrapper<Values> className='custom-control-input' {...fieldProps} />\r\n <Form.Label className='custom-control-label' htmlFor={fieldProps.id}>{label}</Form.Label>\r\n </div>\r\n </Form.Group>\r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { useFormikContext } from 'formik';\r\n\r\ninterface CharacterCounterProps<Values extends object> {\r\n fieldName: keyof Values;\r\n limit: number;\r\n}\r\n\r\nexport function CharacterCounter<Values extends object>(props: CharacterCounterProps<Values>): JSX.Element {\r\n const { values } = useFormikContext<Values>();\r\n\r\n const field = values[props.fieldName];\r\n\r\n if (typeof field !== 'string')\r\n return <></>;\r\n\r\n return (\r\n <div className='float-right text-muted'>\r\n {field.length}/{props.limit}\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Field, FieldAttributes, useFormikContext, ErrorMessage, FieldProps } from 'formik';\r\nimport { Form } from 'react-bootstrap';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { FormHelper } from 'libs/shared/utils/FormHelper';\r\n\r\nimport { CharacterCounter } from './CharacterCounter';\r\nimport { FormCheckbox } from '../form-checkbox/FormCheckbox';\r\n\r\nexport interface FormFieldProps<Values extends object> {\r\n /**\r\n * The name prop MUST be the same as the attribute\r\n * name of the value that the field is bound to.\r\n */\r\n name: string;\r\n label?: string;\r\n children?: ((props: FieldProps) => React.ReactNode) | React.ReactNode;\r\n showCharacterCounter?: boolean;\r\n}\r\n\r\nexport function FieldWrapper<Values extends object>(\r\n props: FieldAttributes<FormFieldProps<Values>> & { className: string }\r\n): React.ReactElement {\r\n const { children, ...fieldProps } = props;\r\n\r\n return (\r\n <Field {...fieldProps}>\r\n {FunctionHelper.isFunction(children)\r\n ? (f: FieldProps) => children(f)\r\n : React.Children.count(children) ? children : null\r\n }\r\n </Field>\r\n );\r\n}\r\n\r\nexport function FormField<Values extends object>(props: FieldAttributes<FormFieldProps<Values>>): React.ReactElement {\r\n const { label, className, showCharacterCounter, ...fieldProps } = props;\r\n\r\n const { errors, touched } = useFormikContext<Values>();\r\n\r\n if (fieldProps.type === 'checkbox')\r\n return <FormCheckbox<Values> {...props} />;\r\n\r\n return (\r\n <Form.Group>\r\n {!!label && <Form.Label htmlFor={fieldProps.id}>{label}</Form.Label>}\r\n <FieldWrapper<Values>\r\n className={FormHelper.getCustomFormControlClassName(errors, touched, fieldProps.name, className)}\r\n {...fieldProps}\r\n />\r\n {!!showCharacterCounter && !!(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength &&\r\n <CharacterCounter\r\n fieldName={(fieldProps.name as keyof Values)}\r\n limit={(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength}\r\n />\r\n }\r\n <ErrorMessage name={fieldProps.name}>\r\n {(errorMessage: string) => <Form.Control.Feedback type='invalid'>{errorMessage}</Form.Control.Feedback>}\r\n </ErrorMessage>\r\n </Form.Group>\r\n );\r\n}","import * as React from 'react';\r\nimport { Formik, FormikValues, FormikConfig, FormikProps, FormikHelpers, useFormikContext, FormikContextType } from 'formik';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\n\r\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\r\n const values = ObjectHelper.deepClone(initialValues);\r\n\r\n Object.keys(values).forEach((key: keyof Values) => {\r\n if (!values.hasOwnProperty(key))\r\n return;\r\n\r\n if (ObjectHelper.isObject(values[key]))\r\n values[key] = omitNullInitialValues(values[key]);\r\n else if (values[key] === null)\r\n delete values[key];\r\n });\r\n\r\n return values;\r\n}\r\n\r\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\r\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\r\n\r\ninterface InitialStatus {\r\n allowInitialSubmit: boolean;\r\n}\r\n\r\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\r\n initialValues: FormValues | ApiValues;\r\n onSubmit: (data: FormValues, onDone: () => void) => void;\r\n castInitialValues?: boolean; // cast to validationSchema\r\n castValuesOnSubmit?: boolean; // cast to validationSchema\r\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\r\n resetOnSubmit?: boolean;\r\n}\r\n\r\nFormWrapper.defaultProps = {\r\n castInitialValues: true,\r\n castValuesOnSubmit: true\r\n};\r\n\r\nexport function FormWrapper<\r\n FormValues extends FormikValues = FormikValues,\r\n ApiValues extends FormikValues = FormikValues,\r\n ExtraProps = {}\r\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\r\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, resetOnSubmit, ...formikProps } = props;\r\n\r\n /**\r\n * If castInitialValues is true, cast initialValues to the validationSchema.\r\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\r\n */\r\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\r\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\r\n : initialValues;\r\n\r\n const onSubmitHandler = (\r\n values: FormValues,\r\n { setSubmitting, resetForm }: FormikHelpers<FormValues>\r\n ) => {\r\n /**\r\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\r\n * This is useful for trimming inputs:\r\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\r\n */\r\n const formattedData = castValuesOnSubmit && props.validationSchema\r\n ? props.validationSchema.cast(values)\r\n : values;\r\n\r\n onSubmit(formattedData, () => {\r\n resetOnSubmit && resetForm();\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n const initialStatus: InitialStatus = {\r\n allowInitialSubmit: props.allowInitialSubmit\r\n };\r\n\r\n return (\r\n <Formik<FormValues, ExtraProps>\r\n enableReinitialize\r\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\r\n initialValues={formattedInitialValues}\r\n onSubmit={onSubmitHandler}\r\n initialStatus={initialStatus}\r\n >\r\n {FunctionHelper.isFunction(props.children)\r\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\r\n : React.Children.count(props.children) ? props.children : null\r\n }\r\n </Formik>\r\n );\r\n}\r\n\r\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\r\n return useFormikContext<T>();\r\n}","import * as React from 'react';\r\nimport { FormikValues, FormikProps } from 'formik';\r\n\r\n/**\r\n * useCanSubmitForm determines if a form can be submitted.\r\n * \r\n * It will return true if a form is valid and has been changed from it's initial state.\r\n * \r\n * A common use case for this is determining whether or not to enable\r\n * a submit button in a form.\r\n */\r\nexport function useCanSubmitForm<Values extends FormikValues>(formikProps: FormikProps<Values>): boolean {\r\n const [ canSubmit, setCanSubmit ] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (!formikProps.isValid) {\r\n setCanSubmit(false);\r\n return;\r\n }\r\n\r\n // If the form values have changed of if allowInitialSubmit is true, set canSubmit to true.\r\n if (formikProps.dirty || formikProps.initialStatus?.allowInitialSubmit)\r\n setCanSubmit(true);\r\n else\r\n setCanSubmit(false);\r\n\r\n }, [ formikProps.isValid, formikProps.initialStatus?.allowInitialSubmit, formikProps.dirty, formikProps.values ]);\r\n\r\n React.useEffect(() => {\r\n if (formikProps.isSubmitting)\r\n setCanSubmit(false);\r\n }, [formikProps.isSubmitting]);\r\n\r\n return canSubmit;\r\n}\r\n","import { FormikErrors, FormikTouched, getIn } from 'formik';\r\n\r\nexport const FormHelper = {\r\n getCustomFormControlClassName<T>(\r\n errors: FormikErrors<T>,\r\n touched: FormikTouched<T>,\r\n attribute: string,\r\n additionalClassName?: string\r\n ): string {\r\n let className = 'form-control';\r\n\r\n // Using getIn as it supports dot notation\r\n if (getIn(touched, attribute) && getIn(errors, attribute))\r\n className += ' is-invalid';\r\n\r\n if (additionalClassName)\r\n className += ` ${additionalClassName}`;\r\n\r\n return className;\r\n }\r\n};"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[40],{1013:function(e,t,n){"use strict";var r=n(0),a=n.n(r),i=n(832),o=n(886),c=n(7),l=c.a.encloseNamespace("classrooms.classroomValidation"),u=Object(o.object)().shape({name:Object(o.string)().max(255,(function(){return l("nameExceeds")})).required((function(){return l("nameRequired")})).default("")}),s=n(826),m=n(851),f=n(852),b=n(73),d="classrooms.classroomDetailsForm",p=c.a.encloseNamespace(d);function v(e){var t=Object(i.b)();return a.a.createElement(s.c,null,a.a.createElement(m.b,{label:p("nameLabel"),type:"text",name:"name",id:"name",placeholder:p("namePlaceholder"),autoFocus:!0,value:t.values.name}),a.a.createElement("div",{className:"btn-container d-flex justify-content-end"},a.a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},a.a.createElement(b.b,{namespace:d,phrase:"cancel"})),a.a.createElement(f.a,{isNew:e.isNew})))}function y(e){var t,n,r=e.classroom,o=e.saveClassroom,c=e.onClickCancel,l={id:null===(t=r)||void 0===t?void 0:t.id,name:null===(n=r)||void 0===n?void 0:n.name};return a.a.createElement(i.a,{initialValues:l,validationSchema:u,onSubmit:o},a.a.createElement(v,{isNew:!r,onClickCancel:c}))}n.d(t,"a",(function(){return y}))},1270:function(e,t,n){"use strict";n.r(t),n.d(t,"CreateClassroomView",(function(){return d}));var r=n(0),a=n.n(r),i=n(61),o=n(7),c=n(14),l=n(238),u=n(824),s=n(241),m=n(1013),f=n(40),b=o.a.encloseNamespace("classrooms.createClassroom");function d(e){var t=Object(u.a)(),n=Object(i.useDispatch)();return a.a.createElement(l.a,{title:b("title"),closePopup:e.closePopup},a.a.createElement(m.a,{saveClassroom:function(r){c.a.fetch(n,s.a.createClassroom(r,(function(n){f.a.logUserAction(n,e.analyticsOptions),t.success(b("success",{name:r.name})),e.closePopup()}),(function(){t.error(b("error"))})))},onClickCancel:e.closePopup}))}},824:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(153),a=n(48),i=n(52),o=function(){var e=Object(r.a)(i.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:a.a.Warning,heading:a.c.Warning,message:t})}}}},832:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var r=n(0),a=n(826),i=n(35),o=n(57),c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function l(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,l=e.initialValues,u=e.onSubmit,s=e.resetOnSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),f=t&&e.validationSchema?e.validationSchema.cast(function e(t){var n=o.a.deepClone(t);return Object.keys(n).forEach((function(t){n.hasOwnProperty(t)&&(o.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])})),n}(l)):l,b={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(a.d,Object.assign({enableReinitialize:!0},m,{initialValues:f,onSubmit:function(t,r){var a=r.setSubmitting,i=r.resetForm,o=n&&e.validationSchema?e.validationSchema.cast(t):t;u(o,(function(){s&&i(),a(!1)}))},initialStatus:b}),i.a.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function u(){return Object(a.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(826),a={getCustomFormControlClassName:function(e,t,n,a){var i="form-control";return Object(r.e)(t,n)&&Object(r.e)(e,n)&&(i+=" is-invalid"),a&&(i+=" ".concat(a)),i}}},851:function(e,t,n){"use strict";var r=n(0),a=n(826),i=n(33),o=n(35),c=n(842);function l(e){var t=Object(a.f)().values[e.fieldName];return"string"!=typeof t?r.createElement(r.Fragment,null):r.createElement("div",{className:"float-right text-muted"},t.length,"/",e.limit)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function s(e){var t=e.label,n=u(e,["label"]);return r.createElement(i.Form.Group,null,r.createElement("div",{className:"custom-control custom-checkbox"},r.createElement(f,Object.assign({className:"custom-control-input"},n)),r.createElement(i.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function f(e){var t=e.children,n=m(e,["children"]);return r.createElement(a.b,Object.assign({},n),o.a.isFunction(t)?function(e){return t(e)}:r.Children.count(t)?t:null)}function b(e){var t=e.label,n=e.className,o=e.showCharacterCounter,u=m(e,["label","className","showCharacterCounter"]),b=Object(a.f)(),d=b.errors,p=b.touched;return"checkbox"===u.type?r.createElement(s,Object.assign({},e)):r.createElement(i.Form.Group,null,!!t&&r.createElement(i.Form.Label,{htmlFor:u.id},t),r.createElement(f,Object.assign({className:c.a.getCustomFormControlClassName(d,p,u.name,n)},u)),!!o&&!!u.maxLength&&r.createElement(l,{fieldName:u.name,limit:u.maxLength}),r.createElement(a.a,{name:u.name},(function(e){return r.createElement(i.Form.Control.Feedback,{type:"invalid"},e)})))}},852:function(e,t,n){"use strict";var r=n(0),a=n(826);function i(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=[],r=!0,a=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return o(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 o(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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var c=n(246),l=n(73);n.d(t,"a",(function(){return u}));function u(e){var t=Object(a.f)(),n=function(e){var t,n=i(r.useState(!1),2),a=n[0],o=n[1];return r.useEffect((function(){var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?o(!0):o(!1)}),[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),r.useEffect((function(){e.isSubmitting&&o(!1)}),[e.isSubmitting]),a}(t);r.useEffect((function(){function e(e){13===e.keyCode&&n&&t.validateForm().then((function(e){Object.keys(e).length||t.submitForm()}))}return window.addEventListener("keypress",e),function(){return window.removeEventListener("keypress",e)}}),[n]);var o="save";return e.isNew&&(o="create"),e.hasNext&&(o="next"),r.createElement(c.a,{variant:e.variant||"primary",showSpinner:t.isSubmitting,type:"submit",disabled:!n},e.submitText?r.createElement(r.Fragment,null,e.submitText):r.createElement(l.b,{namespace:"shared.formButtons",phrase:o}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[41],{1013:function(e,t,n){"use strict";var a=n(0),r=n.n(a),i=n(832),o=n(886),c=n(7),l=c.a.encloseNamespace("classrooms.classroomValidation"),u=Object(o.object)().shape({name:Object(o.string)().max(255,(function(){return l("nameExceeds")})).required((function(){return l("nameRequired")})).default("")}),s=n(826),m=n(851),f=n(852),b=n(73),d="classrooms.classroomDetailsForm",p=c.a.encloseNamespace(d);function v(e){var t=Object(i.b)();return r.a.createElement(s.c,null,r.a.createElement(m.b,{label:p("nameLabel"),type:"text",name:"name",id:"name",placeholder:p("namePlaceholder"),autoFocus:!0,value:t.values.name}),r.a.createElement("div",{className:"btn-container d-flex justify-content-end"},r.a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},r.a.createElement(b.b,{namespace:d,phrase:"cancel"})),r.a.createElement(f.a,{isNew:e.isNew})))}function y(e){var t,n,a=e.classroom,o=e.saveClassroom,c=e.onClickCancel,l={id:null===(t=a)||void 0===t?void 0:t.id,name:null===(n=a)||void 0===n?void 0:n.name};return r.a.createElement(i.a,{initialValues:l,validationSchema:u,onSubmit:o},r.a.createElement(v,{isNew:!a,onClickCancel:c}))}n.d(t,"a",(function(){return y}))},1271:function(e,t,n){"use strict";n.r(t),n.d(t,"EditClassroomView",(function(){return d}));var a=n(0),r=n.n(a),i=n(61),o=n(7),c=n(14),l=n(238),u=n(824),s=n(241),m=n(1013),f=n(40),b=o.a.encloseNamespace("classrooms.editClassroom");function d(e){var t,n=Object(u.a)(),a=Object(i.useDispatch)(),o=c.a.useBasicFetch(s.a.getClassroom(e.id));return r.a.createElement(l.a,{title:b("title",{name:null===(t=o.data)||void 0===t?void 0:t.name}),closePopup:e.closePopup,showLoadingSpinner:!o.data},o.data&&r.a.createElement(m.a,{classroom:o.data,saveClassroom:function(t){c.a.fetch(a,s.a.editClassroom(t,(function(){f.a.logUserAction(t,e.analyticsOptions),n.success(b("success",{name:t.name})),e.closePopup()}),(function(){n.error(b("error",{name:o.data.name}))})))},onClickCancel:e.closePopup}))}},824:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(153),r=n(48),i=n(52),o=function(){var e=Object(a.a)(i.a.ALERT);return{success:function(t){e.success(t)()},error:function(t){e.error(t)()},warning:function(t){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:t})}}}},832:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(826),i=n(35),o=n(57),c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function l(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,l=e.initialValues,u=e.onSubmit,s=e.resetOnSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),f=t&&e.validationSchema?e.validationSchema.cast(function e(t){var n=o.a.deepClone(t);return Object.keys(n).forEach((function(t){n.hasOwnProperty(t)&&(o.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])})),n}(l)):l,b={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.d,Object.assign({enableReinitialize:!0},m,{initialValues:f,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=n&&e.validationSchema?e.validationSchema.cast(t):t;u(o,(function(){s&&i(),r(!1)}))},initialStatus:b}),i.a.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function u(){return Object(r.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(826),r={getCustomFormControlClassName:function(e,t,n,r){var i="form-control";return Object(a.e)(t,n)&&Object(a.e)(e,n)&&(i+=" is-invalid"),r&&(i+=" ".concat(r)),i}}},851:function(e,t,n){"use strict";var a=n(0),r=n(826),i=n(33),o=n(35),c=n(842);function l(e){var t=Object(r.f)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-right text-muted"},t.length,"/",e.limit)}var u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.label,n=u(e,["label"]);return a.createElement(i.Form.Group,null,a.createElement("div",{className:"custom-control custom-checkbox"},a.createElement(f,Object.assign({className:"custom-control-input"},n)),a.createElement(i.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function f(e){var t=e.children,n=m(e,["children"]);return a.createElement(r.b,Object.assign({},n),o.a.isFunction(t)?function(e){return t(e)}:a.Children.count(t)?t:null)}function b(e){var t=e.label,n=e.className,o=e.showCharacterCounter,u=m(e,["label","className","showCharacterCounter"]),b=Object(r.f)(),d=b.errors,p=b.touched;return"checkbox"===u.type?a.createElement(s,Object.assign({},e)):a.createElement(i.Form.Group,null,!!t&&a.createElement(i.Form.Label,{htmlFor:u.id},t),a.createElement(f,Object.assign({className:c.a.getCustomFormControlClassName(d,p,u.name,n)},u)),!!o&&!!u.maxLength&&a.createElement(l,{fieldName:u.name,limit:u.maxLength}),a.createElement(r.a,{name:u.name},(function(e){return a.createElement(i.Form.Control.Feedback,{type:"invalid"},e)})))}},852:function(e,t,n){"use strict";var a=n(0),r=n(826);function i(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 o(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 o(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 o(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 c=n(246),l=n(73);n.d(t,"a",(function(){return u}));function u(e){var t=Object(r.f)(),n=function(e){var t,n=i(a.useState(!1),2),r=n[0],o=n[1];return a.useEffect((function(){var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?o(!0):o(!1)}),[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),a.useEffect((function(){e.isSubmitting&&o(!1)}),[e.isSubmitting]),r}(t);a.useEffect((function(){function e(e){13===e.keyCode&&n&&t.validateForm().then((function(e){Object.keys(e).length||t.submitForm()}))}return window.addEventListener("keypress",e),function(){return window.removeEventListener("keypress",e)}}),[n]);var o="save";return e.isNew&&(o="create"),e.hasNext&&(o="next"),a.createElement(c.a,{variant:e.variant||"primary",showSpinner:t.isSubmitting,type:"submit",disabled:!n},e.submitText?a.createElement(a.Fragment,null,e.submitText):a.createElement(l.b,{namespace:"shared.formButtons",phrase:o}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[42],{1293:function(e,a,s){"use strict";s.r(a),s.d(a,"CreateStudentView",(function(){return h}));var r=s(0),n=s(61),o=s(14),t=s(7),c=s(238),i=s(824),u=s(829),l=s(939),d=s(871),m=s(40),p=t.a.encloseNamespace("userManager.createStudent");function h(e){var a=Object(i.a)(),s=Object(n.useDispatch)(),t=o.a.useBasicFetch(d.a.getAll()),h=!!t.data;return r.createElement(c.a,{closePopup:e.closePopup,title:p("popupTitle"),showLoadingSpinner:!h},h&&r.createElement(l.a,{saveUser:function(r){o.a.fetch(s,u.a.createStudent(r,(function(s){m.a.logUserAction(s,e.analyticsOptions),a.success(p("success")),e.closePopup()}),(function(){a.error(p("error"))})))},onClickCancel:e.closePopup,yearLevels:t.data}))}},829:function(e,a,s){"use strict";s.d(a,"a",(function(){return l}));var r=s(14),n=s(79),o=s(21),t=s(840),c=s(833),i=s(834),u=s(835),l={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,o=e.q,i=void 0===o?"":o,u=e.query,l=void 0===u?"":u,d=e.cursor,m=void 0===d?"1":d;return{url:n.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(l,":").concat(s,":").concat(m),successResponse:function(){var e=t.a.revertFilterString(s),a=r.a.Simulator.getAll("school:students",c).filter((function(a){var r,n;return!(i&&!a.name.toLowerCase().includes(i.toLowerCase()))&&(!s||(!e.yearLevel||e.yearLevel===a.yearLevel.id)&&!((null===(r=e.classroom)||void 0===r?void 0:r.length)&&!e.classroom.includes(null===(n=a.classroom)||void 0===n?void 0:n.id)))})),n=t.a.convertWithStatementToObject(l),o=n.sortValue||"name",u=a.sort((function(e,a){return e[o].toLowerCase()<a[o].toLowerCase()?-1:e[o].toLowerCase()>a[o].toLowerCase()?1:0}));n.sortKey&&"orderbydesc"===n.sortKey&&(u=u.reverse());var d=u.slice(25*(+m-1),25*+m),p=u.slice(25*+m).length?+m+1:void 0,h="1"===m?void 0:+m-1;return d.length||(d=u.slice(0,25),p=u.slice(25).length?2:void 0,h=void 0),{data:d,pagination:{cursors:{next:p,previous:h}},count:u.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return r.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,a){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.delete("school:students",e),{}},always:a}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return r.a.Simulator.get("school:students",e)}}},createStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:student",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.create("school:students",e)},success:a,error:s}},bulkCreateStudents:function(e,a,s,n){return{url:"/api/domain/v1/users",key:"create:students",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:students",e)})),e},success:a,error:s,always:n}},updateStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:student",type:o.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.update("school:students",e)},success:a,error:s}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,o=e.q,t=void 0===o?"":o,c=e.query,u=void 0===c?"":c,l=e.cursor,d=void 0===l?"":l;return{url:n.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(t,":").concat(u,":").concat(s,":").concat(d),successResponse:function(){var e=r.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,a){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.delete("school:teachers",e),{}},always:a}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return r.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:teacher",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.create("school:teachers",e)},success:a,error:s}},bulkCreateTeachers:function(e,a,s,n){return{url:"/api/domain/v1/users",key:"create:teachers",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:teachers",e)})),e},success:a,error:s,always:n}},updateTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:teacher",type:o.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.update("school:teachers",e)},success:a,error:s}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return r.a.Simulator.getAll("user:roles",u)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return r.a.Simulator.getAll("groups").filter((function(a){return!!a.students.find((function(a){return a.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,a,s){"use strict";s.d(a,"a",(function(){return o}));var r=s(14),n=s(881),o={getAll:function(){return{url:"/api/domain/v1/yearlevels",key:"yearlevels",successResponse:function(){return r.a.Simulator.getAll("year:levels",n)}}}}},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"}]')}}]);
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/partial-loading/PartialSubjectPreferences.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/partial-loading/partial-subject-preferences.scss","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/toggle-switch/ToggleSwitch.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/subjects/views/preferences/subject-preferences/LiteSubjectPreferencesView.tsx"],"names":[],"mappings":"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","file":"scripts/42.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport gridStyles from '../../subject-preference-grid/subject-preference-grid.scss';\r\nimport styles from './partial-subject-preferences.scss';\r\n\r\ninterface PartialSubjectPreferencesProps {\r\n count: number;\r\n style: 'grid' | 'list';\r\n}\r\n\r\nexport function PartialSubjectPreferences(props: PartialSubjectPreferencesProps): JSX.Element {\r\n const className = props.style === 'grid' ? gridStyles.grid : styles.partialSubjectList;\r\n\r\n return (\r\n <ul className={className}>\r\n {Array(props.count).fill(null).map((item, i) => (\r\n <li key={i} className={`${styles.partialSubject} partial-loading-background`} />\r\n ))}\r\n </ul>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialSubject\":\"cv--partialSubject--1rrH2\",\"partialSubjectList\":\"cv--partialSubjectList--15Qdz\"};","import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import React from 'react';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\n\r\ninterface ToggleSwitchProps {\r\n onClick: (...args: any) => any;\r\n on: boolean;\r\n disabled?: boolean;\r\n\r\n // Using this goes against proper a11y practices, but it's been added for situations where it looks better\r\n hideOutline?: boolean;\r\n}\r\n\r\nexport function ToggleSwitch(props: ToggleSwitchProps): JSX.Element {\r\n function onClick(...args: any): void {\r\n if (props.disabled)\r\n return;\r\n\r\n props.onClick(...args);\r\n }\r\n\r\n const bootstrapClasses = 'd-inline-block float-right align-top custom-toggle toggle-option';\r\n const onClass = (props.on && !props.disabled) ? 'on' : '';\r\n const disabledClass = props.disabled ? 'disabled' : '';\r\n const outlineClass = props.hideOutline ? 'outline-none' : '';\r\n\r\n return (\r\n <DivButton\r\n onClick={onClick}\r\n className={`${bootstrapClasses} ${onClass} ${disabledClass} ${outlineClass}`}\r\n >\r\n <span className='handle' />\r\n </DivButton>\r\n );\r\n}","import * as React from 'react';\r\nimport { Button, Spinner } from 'react-bootstrap';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Core } from 'libs/common/core';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { Classification, EntitySetting, CurrentUser } from 'libs/shared/interfaces';\r\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\r\nimport { SubjectPreferencesContext } from 'libs/shared/apps/subjects/contexts/SubjectPreferencesContext';\r\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\r\nimport { SubjectPreferenceGrid } from 'libs/shared/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid';\r\nimport { PartialSubjectPreferences } from 'libs/shared/apps/subjects/components/preferences/subject-preference-item/partial-loading/PartialSubjectPreferences';\r\nimport { PreferenceFooter } from 'libs/shared/apps/subjects/components/preferences/footer/PreferenceFooter';\r\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { SettingRequests } from 'libs/shared/flight-requests/SettingRequests';\r\nimport { SettingName } from 'libs/shared/enums/SettingName';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\r\n\r\nimport { OnboardingHelper } from 'apps/subjects/utils/OnboardingHelper';\r\n\r\nconst namespace = 'subjects.subjectPreferencesView';\r\n\r\nfunction structurePreferencesGrid(rawPreferenceOptions: ClassificationPreference[]): ClassificationPreference[] {\r\n if (!rawPreferenceOptions?.length)\r\n return [];\r\n\r\n const preferenceOptions: ClassificationPreference[] = [];\r\n\r\n rawPreferenceOptions.forEach(option => {\r\n if (!option.children || !option.children.length) {\r\n preferenceOptions.push({ ...option });\r\n return;\r\n }\r\n\r\n preferenceOptions.push({\r\n ...option,\r\n isExpandableOption: true,\r\n children: [{ ...option }, ...option.children ]\r\n });\r\n });\r\n\r\n return preferenceOptions;\r\n}\r\n\r\ninterface SubjectPreferencesViewProps {\r\n redirectUrl: string;\r\n}\r\n\r\nexport function SubjectPreferencesView({ redirectUrl }: SubjectPreferencesViewProps): JSX.Element {\r\n const [ , setAsyncSaveCounter ] = React.useState(0);\r\n const [ selectedSubjects, setSelectedSubjects ] = React.useState<string[]>([]);\r\n const [ expandedSubject, setExpandedSubject ] = React.useState<ClassificationPreference>(null);\r\n const [ bulkPreferencesState, setBulkPreferencesState ] = React.useState<BulkOnboardingPreferencesState>(null);\r\n const [ disableNext, setDisableNext ] = React.useState<boolean>(!selectedSubjects.length);\r\n const [ showSpinner, setShowSpinner ] = React.useState<boolean>(false);\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const rawPreferenceOptions =\r\n Flight.useBasicFetch<ClassificationPreference[]>(PreferenceRequests.allSubjectPreferences());\r\n const preselections = Flight.useBasicFetch<Classification[]>(PreferenceRequests.mySubjectPreferences());\r\n const bulkOnboardingPreferencesState = Flight.useBasicFetch<EntitySetting<BulkOnboardingPreferencesState>>(\r\n currentUser.statusCode\r\n ? SettingRequests.setting(currentUser.data.id, SettingName.BulkOnboardingPreferencesState)\r\n : null\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const hasBulkSelectedSubjects = OnboardingHelper.hasBulkSelectedSubjects(bulkPreferencesState);\r\n\r\n /**\r\n * Set initial selections\r\n */\r\n React.useEffect(() => {\r\n if (!preselections.data?.length) {\r\n setSelectedSubjects([]);\r\n return;\r\n }\r\n\r\n setSelectedSubjects(ArrayHelper.uniq([ ...selectedSubjects, ...preselections.data.map(p => p.id) ]));\r\n }, [preselections.data]);\r\n\r\n React.useEffect(() => {\r\n if (!bulkOnboardingPreferencesState.data || bulkPreferencesState)\r\n return;\r\n\r\n setBulkPreferencesState(bulkOnboardingPreferencesState.data.value);\r\n }, [bulkOnboardingPreferencesState.data?.value]);\r\n\r\n React.useEffect(() => {\r\n setDisableNext(!selectedSubjects.length && !hasBulkSelectedSubjects);\r\n }, [ selectedSubjects, hasBulkSelectedSubjects ]);\r\n\r\n /**\r\n * Event handlers\r\n */\r\n function onSelect(subject: ClassificationPreference): void {\r\n setSelectedSubjects(ArrayHelper.addOrRemoveImmutable(selectedSubjects, subject.id));\r\n }\r\n\r\n function onExpand(subject: ClassificationPreference): void {\r\n setExpandedSubject(expandedSubject && expandedSubject.id === subject.id ? null : subject);\r\n }\r\n\r\n function onCollapse(): void {\r\n setExpandedSubject(null);\r\n }\r\n\r\n function hasChanged(): boolean {\r\n if (!preselections.data)\r\n return false;\r\n\r\n const preselectedIds = preselections.data.filter(p => p.canBePreferred).map(p => p.id);\r\n return preselectedIds.sort().toString() !== selectedSubjects.sort().toString();\r\n }\r\n\r\n function onSave(): void {\r\n if (disableNext)\r\n return;\r\n\r\n if (!selectedSubjects.length && !hasBulkSelectedSubjects)\r\n return;\r\n\r\n // If they have selected the bulk option, we do not want to clear their preferences or save any changes.\r\n if (!hasChanged() || hasBulkSelectedSubjects) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('summary', redirectUrl));\r\n return;\r\n }\r\n\r\n setAsyncSaveCounter(0);\r\n setShowSpinner(true);\r\n setDisableNext(true);\r\n\r\n const addedSubjects = selectedSubjects.filter(id => !preselections.data?.find(p => p.id === id));\r\n const removedSubjects = preselections.data?.filter(p => !selectedSubjects.includes(p.id));\r\n\r\n if (addedSubjects?.length) {\r\n setAsyncSaveCounter(currentVal => currentVal + 1);\r\n Flight.fetch(dispatch, PreferenceRequests.followSubjects(addedSubjects, onSaveSuccess, onSaveError));\r\n }\r\n\r\n if (removedSubjects?.length) {\r\n setAsyncSaveCounter(currentVal => currentVal + 1);\r\n Flight.fetch(\r\n dispatch,\r\n PreferenceRequests.unfollowSubjects(removedSubjects.map(s => s.id), onSaveSuccess, onSaveError)\r\n );\r\n }\r\n }\r\n\r\n function onSaveSuccess(): void {\r\n setAsyncSaveCounter(currentValue => {\r\n if (currentValue === 1) {\r\n setShowSpinner(false);\r\n\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('summary', redirectUrl));\r\n }\r\n\r\n return currentValue - 1;\r\n });\r\n }\r\n\r\n function onSaveError(): void {\r\n setAsyncSaveCounter(0);\r\n setShowSpinner(false);\r\n setDisableNext(false);\r\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\r\n }\r\n\r\n function onToggleSelectAll(): void {\r\n let newBulkState: BulkOnboardingPreferencesState = null;\r\n\r\n switch (bulkPreferencesState) {\r\n case BulkOnboardingPreferencesState.None:\r\n default:\r\n newBulkState = BulkOnboardingPreferencesState.AllSubjects;\r\n break;\r\n case BulkOnboardingPreferencesState.AllSubjects:\r\n newBulkState = BulkOnboardingPreferencesState.None;\r\n break;\r\n case BulkOnboardingPreferencesState.AllLevels:\r\n newBulkState = BulkOnboardingPreferencesState.AllSubjectsAndAllLevels;\r\n break;\r\n case BulkOnboardingPreferencesState.AllSubjectsAndAllLevels:\r\n newBulkState = BulkOnboardingPreferencesState.AllLevels;\r\n break;\r\n }\r\n\r\n setBulkPreferencesState(newBulkState);\r\n setExpandedSubject(null);\r\n\r\n Flight.fetch(dispatch, SettingRequests.updateSetting(\r\n currentUser.data.id,\r\n SettingName.BulkOnboardingPreferencesState,\r\n newBulkState,\r\n SettingKind.Permanent\r\n ));\r\n }\r\n\r\n const preferenceOptions = structurePreferencesGrid(rawPreferenceOptions.data);\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <SubjectPreferencesContext.Provider value={{ selectedSubjects, expandedSubject }}>\r\n <form className='p-3 pb-5'>\r\n <div className='position-relative'>\r\n <div className='text-center mb-4'>\r\n <h1 className='mb-3'><Text phrase='heading' /></h1>\r\n <p className='m-0 h6'><Text phrase='infoRow1' /></p>\r\n <p className='h6'><Text phrase='infoRow2' /></p>\r\n </div>\r\n\r\n {rawPreferenceOptions.data && preselections.data\r\n ? <SubjectPreferenceGrid\r\n subjects={preferenceOptions}\r\n onSelect={onSelect}\r\n onExpand={onExpand}\r\n onCollapse={onCollapse}\r\n hasSelectedBulk={hasBulkSelectedSubjects}\r\n />\r\n : <PartialSubjectPreferences style='grid' count={7} />\r\n }\r\n </div>\r\n\r\n <PreferenceFooter>\r\n {/* Footer LHS */}\r\n <div>\r\n <AppLink appLink={OnboardingHelper.buildAppLink('levels', redirectUrl)} className='btn btn-light'>\r\n <Text phrase='back' />\r\n </AppLink>\r\n </div>\r\n\r\n {/* Footer RHS */}\r\n <div className='d-flex align-items-center justify-content-right'>\r\n <div className='d-flex mr-3'>\r\n <p onClick={onToggleSelectAll} className='mr-2 mb-0 font-weight-bold'>\r\n <Text phrase='allSubjects' />\r\n </p>\r\n <ToggleSwitch\r\n onClick={onToggleSelectAll}\r\n on={hasBulkSelectedSubjects}\r\n hideOutline\r\n />\r\n </div>\r\n\r\n <Button variant='dark' disabled={disableNext} onClick={onSave} >\r\n {showSpinner\r\n ? <Spinner as='span' animation='border' role='status' size='sm' />\r\n : <Text\r\n phrase='next'\r\n options={{ smartCount: selectedSubjects.length }}\r\n />\r\n }\r\n </Button>\r\n </div>\r\n </PreferenceFooter>\r\n </form>\r\n </SubjectPreferencesContext.Provider>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/partial-loading/PartialSubjectPreferences.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/partial-loading/partial-subject-preferences.scss?5403","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/toggle-switch/ToggleSwitch.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/subjects/views/preferences/subject-preferences/LiteSubjectPreferencesView.tsx"],"names":[],"mappings":"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","file":"scripts/42.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport gridStyles from '../../subject-preference-grid/subject-preference-grid.scss';\r\nimport styles from './partial-subject-preferences.scss';\r\n\r\ninterface PartialSubjectPreferencesProps {\r\n count: number;\r\n style: 'grid' | 'list';\r\n}\r\n\r\nexport function PartialSubjectPreferences(props: PartialSubjectPreferencesProps): JSX.Element {\r\n const className = props.style === 'grid' ? gridStyles.grid : styles.partialSubjectList;\r\n\r\n return (\r\n <ul className={className}>\r\n {Array(props.count).fill(null).map((item, i) => (\r\n <li key={i} className={`${styles.partialSubject} partial-loading-background`} />\r\n ))}\r\n </ul>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"partialSubject\":\"cv--partialSubject--1rrH2\",\"partialSubjectList\":\"cv--partialSubjectList--15Qdz\"};","import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import React from 'react';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\n\r\ninterface ToggleSwitchProps {\r\n onClick: (...args: any) => any;\r\n on: boolean;\r\n disabled?: boolean;\r\n\r\n // Using this goes against proper a11y practices, but it's been added for situations where it looks better\r\n hideOutline?: boolean;\r\n}\r\n\r\nexport function ToggleSwitch(props: ToggleSwitchProps): JSX.Element {\r\n function onClick(...args: any): void {\r\n if (props.disabled)\r\n return;\r\n\r\n props.onClick(...args);\r\n }\r\n\r\n const bootstrapClasses = 'd-inline-block float-right align-top custom-toggle toggle-option';\r\n const onClass = (props.on && !props.disabled) ? 'on' : '';\r\n const disabledClass = props.disabled ? 'disabled' : '';\r\n const outlineClass = props.hideOutline ? 'outline-none' : '';\r\n\r\n return (\r\n <DivButton\r\n onClick={onClick}\r\n className={`${bootstrapClasses} ${onClass} ${disabledClass} ${outlineClass}`}\r\n >\r\n <span className='handle' />\r\n </DivButton>\r\n );\r\n}","import * as React from 'react';\r\nimport { Button, Spinner } from 'react-bootstrap';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Core } from 'libs/common/core';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { Classification, EntitySetting, CurrentUser } from 'libs/shared/interfaces';\r\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\r\nimport { SubjectPreferencesContext } from 'libs/shared/apps/subjects/contexts/SubjectPreferencesContext';\r\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\r\nimport { SubjectPreferenceGrid } from 'libs/shared/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid';\r\nimport { PartialSubjectPreferences } from 'libs/shared/apps/subjects/components/preferences/subject-preference-item/partial-loading/PartialSubjectPreferences';\r\nimport { PreferenceFooter } from 'libs/shared/apps/subjects/components/preferences/footer/PreferenceFooter';\r\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { SettingRequests } from 'libs/shared/flight-requests/SettingRequests';\r\nimport { SettingName } from 'libs/shared/enums/SettingName';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\r\n\r\nimport { OnboardingHelper } from 'apps/subjects/utils/OnboardingHelper';\r\n\r\nconst namespace = 'subjects.subjectPreferencesView';\r\n\r\nfunction structurePreferencesGrid(rawPreferenceOptions: ClassificationPreference[]): ClassificationPreference[] {\r\n if (!rawPreferenceOptions?.length)\r\n return [];\r\n\r\n const preferenceOptions: ClassificationPreference[] = [];\r\n\r\n rawPreferenceOptions.forEach(option => {\r\n if (!option.children || !option.children.length) {\r\n preferenceOptions.push({ ...option });\r\n return;\r\n }\r\n\r\n preferenceOptions.push({\r\n ...option,\r\n isExpandableOption: true,\r\n children: [{ ...option }, ...option.children ]\r\n });\r\n });\r\n\r\n return preferenceOptions;\r\n}\r\n\r\ninterface SubjectPreferencesViewProps {\r\n redirectUrl: string;\r\n}\r\n\r\nexport function SubjectPreferencesView({ redirectUrl }: SubjectPreferencesViewProps): JSX.Element {\r\n const [ , setAsyncSaveCounter ] = React.useState(0);\r\n const [ selectedSubjects, setSelectedSubjects ] = React.useState<string[]>([]);\r\n const [ expandedSubject, setExpandedSubject ] = React.useState<ClassificationPreference>(null);\r\n const [ bulkPreferencesState, setBulkPreferencesState ] = React.useState<BulkOnboardingPreferencesState>(null);\r\n const [ disableNext, setDisableNext ] = React.useState<boolean>(!selectedSubjects.length);\r\n const [ showSpinner, setShowSpinner ] = React.useState<boolean>(false);\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const rawPreferenceOptions =\r\n Flight.useBasicFetch<ClassificationPreference[]>(PreferenceRequests.allSubjectPreferences());\r\n const preselections = Flight.useBasicFetch<Classification[]>(PreferenceRequests.mySubjectPreferences());\r\n const bulkOnboardingPreferencesState = Flight.useBasicFetch<EntitySetting<BulkOnboardingPreferencesState>>(\r\n currentUser.statusCode\r\n ? SettingRequests.setting(currentUser.data.id, SettingName.BulkOnboardingPreferencesState)\r\n : null\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const hasBulkSelectedSubjects = OnboardingHelper.hasBulkSelectedSubjects(bulkPreferencesState);\r\n\r\n /**\r\n * Set initial selections\r\n */\r\n React.useEffect(() => {\r\n if (!preselections.data?.length) {\r\n setSelectedSubjects([]);\r\n return;\r\n }\r\n\r\n setSelectedSubjects(ArrayHelper.uniq([ ...selectedSubjects, ...preselections.data.map(p => p.id) ]));\r\n }, [preselections.data]);\r\n\r\n React.useEffect(() => {\r\n if (!bulkOnboardingPreferencesState.data || bulkPreferencesState)\r\n return;\r\n\r\n setBulkPreferencesState(bulkOnboardingPreferencesState.data.value);\r\n }, [bulkOnboardingPreferencesState.data?.value]);\r\n\r\n React.useEffect(() => {\r\n setDisableNext(!selectedSubjects.length && !hasBulkSelectedSubjects);\r\n }, [ selectedSubjects, hasBulkSelectedSubjects ]);\r\n\r\n /**\r\n * Event handlers\r\n */\r\n function onSelect(subject: ClassificationPreference): void {\r\n setSelectedSubjects(ArrayHelper.addOrRemoveImmutable(selectedSubjects, subject.id));\r\n }\r\n\r\n function onExpand(subject: ClassificationPreference): void {\r\n setExpandedSubject(expandedSubject && expandedSubject.id === subject.id ? null : subject);\r\n }\r\n\r\n function onCollapse(): void {\r\n setExpandedSubject(null);\r\n }\r\n\r\n function hasChanged(): boolean {\r\n if (!preselections.data)\r\n return false;\r\n\r\n const preselectedIds = preselections.data.filter(p => p.canBePreferred).map(p => p.id);\r\n return preselectedIds.sort().toString() !== selectedSubjects.sort().toString();\r\n }\r\n\r\n function onSave(): void {\r\n if (disableNext)\r\n return;\r\n\r\n if (!selectedSubjects.length && !hasBulkSelectedSubjects)\r\n return;\r\n\r\n // If they have selected the bulk option, we do not want to clear their preferences or save any changes.\r\n if (!hasChanged() || hasBulkSelectedSubjects) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('summary', redirectUrl));\r\n return;\r\n }\r\n\r\n setAsyncSaveCounter(0);\r\n setShowSpinner(true);\r\n setDisableNext(true);\r\n\r\n const addedSubjects = selectedSubjects.filter(id => !preselections.data?.find(p => p.id === id));\r\n const removedSubjects = preselections.data?.filter(p => !selectedSubjects.includes(p.id));\r\n\r\n if (addedSubjects?.length) {\r\n setAsyncSaveCounter(currentVal => currentVal + 1);\r\n Flight.fetch(dispatch, PreferenceRequests.followSubjects(addedSubjects, onSaveSuccess, onSaveError));\r\n }\r\n\r\n if (removedSubjects?.length) {\r\n setAsyncSaveCounter(currentVal => currentVal + 1);\r\n Flight.fetch(\r\n dispatch,\r\n PreferenceRequests.unfollowSubjects(removedSubjects.map(s => s.id), onSaveSuccess, onSaveError)\r\n );\r\n }\r\n }\r\n\r\n function onSaveSuccess(): void {\r\n setAsyncSaveCounter(currentValue => {\r\n if (currentValue === 1) {\r\n setShowSpinner(false);\r\n\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('summary', redirectUrl));\r\n }\r\n\r\n return currentValue - 1;\r\n });\r\n }\r\n\r\n function onSaveError(): void {\r\n setAsyncSaveCounter(0);\r\n setShowSpinner(false);\r\n setDisableNext(false);\r\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\r\n }\r\n\r\n function onToggleSelectAll(): void {\r\n let newBulkState: BulkOnboardingPreferencesState = null;\r\n\r\n switch (bulkPreferencesState) {\r\n case BulkOnboardingPreferencesState.None:\r\n default:\r\n newBulkState = BulkOnboardingPreferencesState.AllSubjects;\r\n break;\r\n case BulkOnboardingPreferencesState.AllSubjects:\r\n newBulkState = BulkOnboardingPreferencesState.None;\r\n break;\r\n case BulkOnboardingPreferencesState.AllLevels:\r\n newBulkState = BulkOnboardingPreferencesState.AllSubjectsAndAllLevels;\r\n break;\r\n case BulkOnboardingPreferencesState.AllSubjectsAndAllLevels:\r\n newBulkState = BulkOnboardingPreferencesState.AllLevels;\r\n break;\r\n }\r\n\r\n setBulkPreferencesState(newBulkState);\r\n setExpandedSubject(null);\r\n\r\n Flight.fetch(dispatch, SettingRequests.updateSetting(\r\n currentUser.data.id,\r\n SettingName.BulkOnboardingPreferencesState,\r\n newBulkState,\r\n SettingKind.Permanent\r\n ));\r\n }\r\n\r\n const preferenceOptions = structurePreferencesGrid(rawPreferenceOptions.data);\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <SubjectPreferencesContext.Provider value={{ selectedSubjects, expandedSubject }}>\r\n <form className='p-3 pb-5'>\r\n <div className='position-relative'>\r\n <div className='text-center mb-4'>\r\n <h1 className='mb-3'><Text phrase='heading' /></h1>\r\n <p className='m-0 h6'><Text phrase='infoRow1' /></p>\r\n <p className='h6'><Text phrase='infoRow2' /></p>\r\n </div>\r\n\r\n {rawPreferenceOptions.data && preselections.data\r\n ? <SubjectPreferenceGrid\r\n subjects={preferenceOptions}\r\n onSelect={onSelect}\r\n onExpand={onExpand}\r\n onCollapse={onCollapse}\r\n hasSelectedBulk={hasBulkSelectedSubjects}\r\n />\r\n : <PartialSubjectPreferences style='grid' count={7} />\r\n }\r\n </div>\r\n\r\n <PreferenceFooter>\r\n {/* Footer LHS */}\r\n <div>\r\n <AppLink appLink={OnboardingHelper.buildAppLink('levels', redirectUrl)} className='btn btn-light'>\r\n <Text phrase='back' />\r\n </AppLink>\r\n </div>\r\n\r\n {/* Footer RHS */}\r\n <div className='d-flex align-items-center justify-content-right'>\r\n <div className='d-flex mr-3'>\r\n <p onClick={onToggleSelectAll} className='mr-2 mb-0 font-weight-bold'>\r\n <Text phrase='allSubjects' />\r\n </p>\r\n <ToggleSwitch\r\n onClick={onToggleSelectAll}\r\n on={hasBulkSelectedSubjects}\r\n hideOutline\r\n />\r\n </div>\r\n\r\n <Button variant='dark' disabled={disableNext} onClick={onSave} >\r\n {showSpinner\r\n ? <Spinner as='span' animation='border' role='status' size='sm' />\r\n : <Text\r\n phrase='next'\r\n options={{ smartCount: selectedSubjects.length }}\r\n />\r\n }\r\n </Button>\r\n </div>\r\n </PreferenceFooter>\r\n </form>\r\n </SubjectPreferencesContext.Provider>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[43],{1294:function(e,a,s){"use strict";s.r(a),s.d(a,"EditStudentView",(function(){return v}));var r=s(0),n=s.n(r),o=s(61),t=s(238),c=s(824),i=s(7),u=s(14),l=s(829),d=s(939),m=s(871),p=s(40),h=i.a.encloseNamespace("userManager.editStudent");function v(e){var a=Object(c.a)(),s=Object(o.useDispatch)(),r=u.a.useBasicFetch(m.a.getAll()),i=u.a.useBasicFetch(l.a.getStudent(e.id)),v=!!r.data&&!!i.data;return n.a.createElement(t.a,{closePopup:e.closePopup,title:h("popupTitle"),showLoadingSpinner:!v},v&&n.a.createElement(d.a,{user:i.data,saveUser:function(r){u.a.fetch(s,l.a.updateStudent(r,(function(){p.a.logUserAction(r,e.analyticsOptions),a.success(h("success")),e.closePopup()}),(function(){a.error(h("error"))})))},onClickCancel:e.closePopup,yearLevels:r.data}))}},829:function(e,a,s){"use strict";s.d(a,"a",(function(){return l}));var r=s(14),n=s(79),o=s(21),t=s(840),c=s(833),i=s(834),u=s(835),l={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,o=e.q,i=void 0===o?"":o,u=e.query,l=void 0===u?"":u,d=e.cursor,m=void 0===d?"1":d;return{url:n.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(l,":").concat(s,":").concat(m),successResponse:function(){var e=t.a.revertFilterString(s),a=r.a.Simulator.getAll("school:students",c).filter((function(a){var r,n;return!(i&&!a.name.toLowerCase().includes(i.toLowerCase()))&&(!s||(!e.yearLevel||e.yearLevel===a.yearLevel.id)&&!((null===(r=e.classroom)||void 0===r?void 0:r.length)&&!e.classroom.includes(null===(n=a.classroom)||void 0===n?void 0:n.id)))})),n=t.a.convertWithStatementToObject(l),o=n.sortValue||"name",u=a.sort((function(e,a){return e[o].toLowerCase()<a[o].toLowerCase()?-1:e[o].toLowerCase()>a[o].toLowerCase()?1:0}));n.sortKey&&"orderbydesc"===n.sortKey&&(u=u.reverse());var d=u.slice(25*(+m-1),25*+m),p=u.slice(25*+m).length?+m+1:void 0,h="1"===m?void 0:+m-1;return d.length||(d=u.slice(0,25),p=u.slice(25).length?2:void 0,h=void 0),{data:d,pagination:{cursors:{next:p,previous:h}},count:u.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return r.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,a){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.delete("school:students",e),{}},always:a}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return r.a.Simulator.get("school:students",e)}}},createStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:student",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.create("school:students",e)},success:a,error:s}},bulkCreateStudents:function(e,a,s,n){return{url:"/api/domain/v1/users",key:"create:students",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:students",e)})),e},success:a,error:s,always:n}},updateStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:student",type:o.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.update("school:students",e)},success:a,error:s}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,o=e.q,t=void 0===o?"":o,c=e.query,u=void 0===c?"":c,l=e.cursor,d=void 0===l?"":l;return{url:n.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(t,":").concat(u,":").concat(s,":").concat(d),successResponse:function(){var e=r.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,a){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.delete("school:teachers",e),{}},always:a}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return r.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:teacher",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.create("school:teachers",e)},success:a,error:s}},bulkCreateTeachers:function(e,a,s,n){return{url:"/api/domain/v1/users",key:"create:teachers",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:teachers",e)})),e},success:a,error:s,always:n}},updateTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:teacher",type:o.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.update("school:teachers",e)},success:a,error:s}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return r.a.Simulator.getAll("user:roles",u)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return r.a.Simulator.getAll("groups").filter((function(a){return!!a.students.find((function(a){return a.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,a,s){"use strict";s.d(a,"a",(function(){return o}));var r=s(14),n=s(881),o={getAll:function(){return{url:"/api/domain/v1/yearlevels",key:"yearlevels",successResponse:function(){return r.a.Simulator.getAll("year:levels",n)}}}}},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"}]')}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[44],{1289:function(t,e,n){"use strict";n.r(e),n.d(e,"DeletePlaylistView",(function(){return g}));var r=n(0),o=n(61),a=n(2),i=n(14),c=n(7),l=n(3),s=n(40),u=n(73),y=n(243),f=n(238),p=n(237),d=n(861),v=n(824);function m(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,c=t[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){o=!0,a=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw a}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return b(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var h=c.a.encloseNamespace("playlists.deletePlaylist");function g(t){var e=Object(o.useDispatch)(),n=Object(v.a)(),c=m(r.useState(!1),2),b=c[0],g=c[1],P=i.a.useBasicFetch(d.a.getPlaylist(t.playlistId));Object(p.a)(P.data&&"".concat(h("title",{name:P.data.name})),[P.data]);var w=[{variant:"link",onClick:t.closePopup,buttonText:h("keep")},{variant:"danger",onClick:function(){g(!0);i.a.fetch(e,d.a.deletePlaylist(t.playlistId,(function(){n.success(h("success",{name:P.data.name})),s.a.logUserAction({id:t.playlistId},s.a.mergeOptions(t.analyticsOptions,{actionType:l.n.Delete,entity:l.d.Playlist,workflowPhase:l.o.Complete})),t.closePopup(),t.routeToOnDelete&&a.a.AppLinkHelper.trigger(t.routeToOnDelete)}),(function(){n.error(h("error",{name:P.data.name})),t.closePopup()})))},buttonText:h("confirm"),isSpinnerButton:!0,showSpinner:b}];return r.createElement(u.a.Provider,{value:"playlists.deletePlaylist"},r.createElement(f.a,{title:h("check"),closePopup:t.closePopup,showLoadingSpinner:!P.data},!!P.data&&r.createElement("div",{className:"delete-playlist-container"},r.createElement("div",{className:"delete-playlist-body"},r.createElement("p",null,r.createElement(u.b,{phrase:"warning",options:{name:P.data.name}})),r.createElement("p",null,r.createElement(u.b,{phrase:"videoNote"}))),r.createElement(y.a,{buttons:w}))))}},824:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(153),o=n(48),a=n(52),i=function(){var t=Object(r.a)(a.a.ALERT);return{success:function(e){t.success(e)()},error:function(e){t.error(e)()},warning:function(e){t.createAlert({type:o.a.Warning,heading:o.c.Warning,message:e})}}}},838:function(t,e,n){"use strict";n.d(e,"a",(function(){return p}));var r=n(244),o=n(85),a=n(865);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=f(t);if(e){var o=f(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(y,t);var e,n,r,i=u(y);function y(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.a.Newest,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.a.OwnedByMe;return c(this,y),(t=i.call(this,{collectionPrefix:"user:playlists",cursor:n,sort:e})).type=r,t}return e=y,(n=[{key:"toString",value:function(){return[this.collectionPrefix,this.sort,this.cursor,this.type].filter(Boolean).join(":")}}])&&l(e.prototype,n),r&&l(e,r),y}(r.a)},861:function(t,e,n){"use strict";var r=n(21),o=n(46),a=n(864);n(838);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function s(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=y(t);if(e){var o=y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return u(this,n)}}function u(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function y(t){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f,p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(n,t);var e=s(n);function n(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return c(this,n),e.call(this,{collectionPrefix:"playlist:videos",id:t,cursor:r})}return n}(n(244).a);!function(t){t[t.Queued=1]="Queued",t[t.Processing=2]="Processing",t[t.Processed=3]="Processed",t[t.Errored=4]="Errored"}(f||(f={}));var d=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)&&(r[t]=Object.assign(Object.assign({},r[t]),e)),r}},v=function(t){return function(e){var n=Object.assign({},e);return n.hasOwnProperty(t)&&delete n[t],n}},m=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)?(r[t].videos||(r[t].videos={}),r[t].videos.count=r[t].videos.count?r[t].videos.count+e:e,r):n}};n.d(e,"a",(function(){return P}));var b=function(t){return t?"&cursor=".concat(t):""},h=function(t){return Number.isInteger(t)?"&maxRatingValue=".concat(t):""},g=function(t,e){return"".concat(t).concat(e?":".concat(e):"")},P={getPlaylist:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"?query=").concat(o.a.PLAYLIST),key:"playlist:".concat(t),success:e,error:n}},getSharedPlaylist:function(t,e,n,r){var a="/api/domain/v2/share/".concat(t);return{url:"".concat(a,"?query=").concat(o.a.PLAYLIST).concat(h(e)),key:"shared:playlist:".concat(t),success:n,error:r}},getUserPlaylists:function(t){var e=t.sort,n=t.type;return{url:"/api/domain/v2/me/playlists/".concat(n,"?sort=").concat(e,"&query={limit:100}")+"".concat(o.a.PLAYLIST_COLLECTION).concat(b(t.cursor)),key:t.toString()}},getPlaylistVideos:function(t,e,n){var r="orderBy:orderindex,limit:100";return Number.isInteger(e)&&(r+=",rating.value:0...".concat(e)),{url:"/api/domain/v2/objects/".concat(t,"/videos?query={").concat(r,"}")+"".concat(o.a.VIDEO_COLLECTION).concat(b(n)),key:g("playlist:".concat(t,":videos"),n)}},getSharedPlaylistVideos:function(t,e,n){return{url:"/api/domain/v2/share/".concat(t,"/videos?query={orderBy:orderindex,limit:100}")+"".concat(o.a.SHARED_PLAYLIST_VIDEO_COLLECTION)+"".concat(b(n)).concat(h(e)),key:g("shared:playlist:".concat(t,":videos"),n)}},getVideoPlaylists:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"/playlists?query={limit:100,owner.id:[").concat(e,"]}"),key:g("video:playlists:".concat(t),n)}},createPlaylist:function(t,e,n,o){return{key:"create:playlist",url:"/api/domain/v2/objects/".concat(t,"/playlists"),data:e,type:r.a.POST,success:n,error:o,invalidationKeys:"user:playlists"}},updatePlaylist:function(t,e,n,o){return{key:"update:playlist",url:"/api/domain/v2/objects/".concat(t),data:e,type:r.a.PUT,success:n,error:o,updateState:{keys:"playlist:".concat(t),updateData:d("playlist:".concat(t),e)}}},deletePlaylist:function(t,e,n){return{key:"delete:playlist",url:"/api/domain/v2/objects/".concat(t),type:r.a.DELETE,success:e,error:n,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t),updateData:v("playlist:".concat(t))}}},addToPlaylist:function(t,e,n,o){var a=["user:playlists",new p(t).toString()];return e.forEach((function(t){a.push("video:playlists:".concat(t))})),{key:"add:to:playlist",url:"/api/domain/v2/objects/".concat(t,"/associate"),data:e,type:r.a.POST,success:n,error:o,invalidationKeys:a,updateState:{keys:"playlist:".concat(t),updateData:m("playlist:".concat(t),e.length)}}},reorderVideos:function(t,e,n,o){return{key:"reorder:playlist",url:"/api/domain/v2/objects/".concat(t,"/videos/reorder"),data:e,type:r.a.PUT,success:n,error:o,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t,":videos"),updateData:function(n){return a.a.updateState("playlist:".concat(t,":videos"),e,n)}}}},removePlaylistVideo:function(t,e,n,o){return{key:"remove:playlist:video",url:"/api/domain/v2/objects/".concat(t,"/dissociate?memberId=").concat(e),type:r.a.DELETE,success:n,error:o,invalidationKeys:["user:playlists","playlist:".concat(t,":videos")]}},getIsFollowingPlaylist:function(t,e){return{url:"/api/domain/v2/objects/".concat(e,"/followedPlaylists?query={id:").concat(t,"}"),key:"playlist:".concat(t,":following:").concat(e),formatData:function(e){var n,r;return{objectId:t,isFollowing:!!(null===(r=null===(n=e)||void 0===n?void 0:n.data)||void 0===r?void 0:r.length)}},normalize:!1}},followPlaylist:function(t,e,n,o,a){return{url:"/api/domain/v2/objects/".concat(e),key:"follow:playlist:".concat(t),data:{followedPlaylists:t},type:r.a.PUT,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:o,always:a}},unfollowPlaylist:function(t,e,n,o,a){return{url:"/api/domain/v2/objects/".concat(e,"/followedplaylists/").concat(t),key:"unfollow:playlist:".concat(t),type:r.a.DELETE,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:o,always:a}},getPlaylistPrivacy:function(t){return{key:"playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),formatData:function(e){return{id:t,privacy:e}}}},updatePlaylistPrivacy:function(t,e,n,o,a){return{key:"update:playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),type:r.a.PUT,data:{privacy:e},formatData:function(){return{id:t,privacy:e}},success:n,error:o,always:a}},getMigrationTask:function(t,e){return{url:"/api/playlist-app/migration-task",key:"migration:task",formatData:function(t){return t||{status:f.Processed}},success:t,error:e}}}},864:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(127),o=n(57);function a(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var c={reorder:function(t,e,n){if(e===n)return{reorderedItems:t,reorderRequest:null};var o=r.a.moveItem(t,e,n),a=n<t.length-1?o[n+1].id:null;return{reorderedItems:o,reorderRequest:{sourceMemberId:o[n].id,destinationMemberId:a}}},updateState:function(t,e,n){for(var i=[],c=o.a.deepClone(n),l=[t],s=n[t],u=!!s&&!!s.data&&s.data.length;s&&Array.isArray(s.data);){i.push.apply(i,a(s.data));var y=s.pagination&&s.pagination.cursors&&s.pagination.cursors.next,f=!!y&&"".concat(t,":").concat(y);(s=y&&n[f])&&l.push(f)}if(!i.length)return n;var p=r.a.findIndex(i,(function(t){return t.id===e.sourceMemberId})),d=[].concat(i),v=d.splice(p,1),m=e.destinationMemberId?r.a.findIndex(d,(function(t){return t.id===e.destinationMemberId})):d.length;return d.splice(m,0,v[0]),l.forEach((function(t){var e=d.splice(0,u);c[t].data=e})),c}}},865:function(t,e,n){"use strict";var r;n.d(e,"a",(function(){return r})),function(t){t.OwnedByMe="owned_by_me",t.Followed="followed",t.All="all"}(r||(r={}))}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[45],{1290:function(t,e,n){"use strict";n.r(e),n.d(e,"RemoveVideoFromPlaylistView",(function(){return w}));var r=n(0),o=n(61),a=n(14),i=n(7),c=n(3),s=n(40),u=n(238),l=n(243),y=n(73),f=n(237),p=n(861),d=n(824),v=n(239);function m(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,o=!1,a=void 0;try{for(var i,c=t[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){o=!0,a=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw a}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return b(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var h="playlists.removeVideoFromPlaylist",g=i.a.encloseNamespace(h);function w(t){var e=Object(o.useDispatch)(),n=Object(d.a)(),i=m(r.useState(!1),2),b=i[0],w=i[1],P=a.a.useBasicFetch(p.a.getPlaylist(t.playlistId)),O=a.a.useBasicFetch(v.a.video(t.videoId));Object(f.a)(!!O.data&&g("title",{name:O.data.name}),[O.data]);var S=[{variant:"link",onClick:t.closePopup,buttonText:g("keep")},{variant:"danger",onClick:function(){w(!0);a.a.fetch(e,p.a.removePlaylistVideo(t.playlistId,t.videoId,(function(){n.success(g("success",{video:O.data.name,playlist:P.data.name})),s.a.logUserAction({id:t.videoId,playlistId:t.playlistId},s.a.mergeOptions(t.analyticsOptions,{actionType:c.n.Dissociate,entity:c.d.Video,workflowPhase:c.o.Complete})),t.closePopup()}),(function(){n.error(g("error",{video:O.data.name,playlist:P.data.name})),t.closePopup()})))},buttonText:g("confirm"),isSpinnerButton:!0,showSpinner:b}],j=!!P.data&&!!O.data;return r.createElement(u.a,{title:g("check"),closePopup:t.closePopup,showLoadingSpinner:!j},j&&r.createElement("div",{className:"remove-video-container"},r.createElement("div",{className:"remove-video-body"},r.createElement("p",null,r.createElement(y.b,{namespace:h,phrase:"warning",options:{video:O.data.name,playlist:P.data.name}}))),r.createElement(l.a,{buttons:S})))}},824:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(153),o=n(48),a=n(52),i=function(){var t=Object(r.a)(a.a.ALERT);return{success:function(e){t.success(e)()},error:function(e){t.error(e)()},warning:function(e){t.createAlert({type:o.a.Warning,heading:o.c.Warning,message:e})}}}},838:function(t,e,n){"use strict";n.d(e,"a",(function(){return p}));var r=n(244),o=n(85),a=n(865);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=f(t);if(e){var o=f(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(y,t);var e,n,r,i=l(y);function y(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.a.Newest,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.a.OwnedByMe;return c(this,y),(t=i.call(this,{collectionPrefix:"user:playlists",cursor:n,sort:e})).type=r,t}return e=y,(n=[{key:"toString",value:function(){return[this.collectionPrefix,this.sort,this.cursor,this.type].filter(Boolean).join(":")}}])&&s(e.prototype,n),r&&s(e,r),y}(r.a)},861:function(t,e,n){"use strict";var r=n(21),o=n(46),a=n(864);n(838);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=y(t);if(e){var o=y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return l(this,n)}}function l(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function y(t){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var f,p=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(n,t);var e=u(n);function n(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return c(this,n),e.call(this,{collectionPrefix:"playlist:videos",id:t,cursor:r})}return n}(n(244).a);!function(t){t[t.Queued=1]="Queued",t[t.Processing=2]="Processing",t[t.Processed=3]="Processed",t[t.Errored=4]="Errored"}(f||(f={}));var d=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)&&(r[t]=Object.assign(Object.assign({},r[t]),e)),r}},v=function(t){return function(e){var n=Object.assign({},e);return n.hasOwnProperty(t)&&delete n[t],n}},m=function(t,e){return function(n){var r=Object.assign({},n);return r.hasOwnProperty(t)?(r[t].videos||(r[t].videos={}),r[t].videos.count=r[t].videos.count?r[t].videos.count+e:e,r):n}};n.d(e,"a",(function(){return w}));var b=function(t){return t?"&cursor=".concat(t):""},h=function(t){return Number.isInteger(t)?"&maxRatingValue=".concat(t):""},g=function(t,e){return"".concat(t).concat(e?":".concat(e):"")},w={getPlaylist:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"?query=").concat(o.a.PLAYLIST),key:"playlist:".concat(t),success:e,error:n}},getSharedPlaylist:function(t,e,n,r){var a="/api/domain/v2/share/".concat(t);return{url:"".concat(a,"?query=").concat(o.a.PLAYLIST).concat(h(e)),key:"shared:playlist:".concat(t),success:n,error:r}},getUserPlaylists:function(t){var e=t.sort,n=t.type;return{url:"/api/domain/v2/me/playlists/".concat(n,"?sort=").concat(e,"&query={limit:100}")+"".concat(o.a.PLAYLIST_COLLECTION).concat(b(t.cursor)),key:t.toString()}},getPlaylistVideos:function(t,e,n){var r="orderBy:orderindex,limit:100";return Number.isInteger(e)&&(r+=",rating.value:0...".concat(e)),{url:"/api/domain/v2/objects/".concat(t,"/videos?query={").concat(r,"}")+"".concat(o.a.VIDEO_COLLECTION).concat(b(n)),key:g("playlist:".concat(t,":videos"),n)}},getSharedPlaylistVideos:function(t,e,n){return{url:"/api/domain/v2/share/".concat(t,"/videos?query={orderBy:orderindex,limit:100}")+"".concat(o.a.SHARED_PLAYLIST_VIDEO_COLLECTION)+"".concat(b(n)).concat(h(e)),key:g("shared:playlist:".concat(t,":videos"),n)}},getVideoPlaylists:function(t,e,n){return{url:"/api/domain/v2/objects/".concat(t,"/playlists?query={limit:100,owner.id:[").concat(e,"]}"),key:g("video:playlists:".concat(t),n)}},createPlaylist:function(t,e,n,o){return{key:"create:playlist",url:"/api/domain/v2/objects/".concat(t,"/playlists"),data:e,type:r.a.POST,success:n,error:o,invalidationKeys:"user:playlists"}},updatePlaylist:function(t,e,n,o){return{key:"update:playlist",url:"/api/domain/v2/objects/".concat(t),data:e,type:r.a.PUT,success:n,error:o,updateState:{keys:"playlist:".concat(t),updateData:d("playlist:".concat(t),e)}}},deletePlaylist:function(t,e,n){return{key:"delete:playlist",url:"/api/domain/v2/objects/".concat(t),type:r.a.DELETE,success:e,error:n,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t),updateData:v("playlist:".concat(t))}}},addToPlaylist:function(t,e,n,o){var a=["user:playlists",new p(t).toString()];return e.forEach((function(t){a.push("video:playlists:".concat(t))})),{key:"add:to:playlist",url:"/api/domain/v2/objects/".concat(t,"/associate"),data:e,type:r.a.POST,success:n,error:o,invalidationKeys:a,updateState:{keys:"playlist:".concat(t),updateData:m("playlist:".concat(t),e.length)}}},reorderVideos:function(t,e,n,o){return{key:"reorder:playlist",url:"/api/domain/v2/objects/".concat(t,"/videos/reorder"),data:e,type:r.a.PUT,success:n,error:o,invalidationKeys:"user:playlists",updateState:{keys:"playlist:".concat(t,":videos"),updateData:function(n){return a.a.updateState("playlist:".concat(t,":videos"),e,n)}}}},removePlaylistVideo:function(t,e,n,o){return{key:"remove:playlist:video",url:"/api/domain/v2/objects/".concat(t,"/dissociate?memberId=").concat(e),type:r.a.DELETE,success:n,error:o,invalidationKeys:["user:playlists","playlist:".concat(t,":videos")]}},getIsFollowingPlaylist:function(t,e){return{url:"/api/domain/v2/objects/".concat(e,"/followedPlaylists?query={id:").concat(t,"}"),key:"playlist:".concat(t,":following:").concat(e),formatData:function(e){var n,r;return{objectId:t,isFollowing:!!(null===(r=null===(n=e)||void 0===n?void 0:n.data)||void 0===r?void 0:r.length)}},normalize:!1}},followPlaylist:function(t,e,n,o,a){return{url:"/api/domain/v2/objects/".concat(e),key:"follow:playlist:".concat(t),data:{followedPlaylists:t},type:r.a.PUT,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:o,always:a}},unfollowPlaylist:function(t,e,n,o,a){return{url:"/api/domain/v2/objects/".concat(e,"/followedplaylists/").concat(t),key:"unfollow:playlist:".concat(t),type:r.a.DELETE,invalidationKeys:["user:playlists","playlist:".concat(t,":following:").concat(e)],success:n,error:o,always:a}},getPlaylistPrivacy:function(t){return{key:"playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),formatData:function(e){return{id:t,privacy:e}}}},updatePlaylistPrivacy:function(t,e,n,o,a){return{key:"update:playlist:privacy:".concat(t),url:"/api/domain/v1/playlists/".concat(t,"/privacy"),type:r.a.PUT,data:{privacy:e},formatData:function(){return{id:t,privacy:e}},success:n,error:o,always:a}},getMigrationTask:function(t,e){return{url:"/api/playlist-app/migration-task",key:"migration:task",formatData:function(t){return t||{status:f.Processed}},success:t,error:e}}}},864:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(127),o=n(57);function a(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var c={reorder:function(t,e,n){if(e===n)return{reorderedItems:t,reorderRequest:null};var o=r.a.moveItem(t,e,n),a=n<t.length-1?o[n+1].id:null;return{reorderedItems:o,reorderRequest:{sourceMemberId:o[n].id,destinationMemberId:a}}},updateState:function(t,e,n){for(var i=[],c=o.a.deepClone(n),s=[t],u=n[t],l=!!u&&!!u.data&&u.data.length;u&&Array.isArray(u.data);){i.push.apply(i,a(u.data));var y=u.pagination&&u.pagination.cursors&&u.pagination.cursors.next,f=!!y&&"".concat(t,":").concat(y);(u=y&&n[f])&&s.push(f)}if(!i.length)return n;var p=r.a.findIndex(i,(function(t){return t.id===e.sourceMemberId})),d=[].concat(i),v=d.splice(p,1),m=e.destinationMemberId?r.a.findIndex(d,(function(t){return t.id===e.destinationMemberId})):d.length;return d.splice(m,0,v[0]),s.forEach((function(t){var e=d.splice(0,l);c[t].data=e})),c}}},865:function(t,e,n){"use strict";var r;n.d(e,"a",(function(){return r})),function(t){t.OwnedByMe="owned_by_me",t.Followed="followed",t.All="all"}(r||(r={}))}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[46],{1280:function(e,t,n){"use strict";n.r(t),n.d(t,"EditVideoView",(function(){return d}));var a=n(0),r=n(61),i=n(14),o=n(153),c=n(238),l=n(996),u=n(40),s=n(3),m=n(239);function d(e){var t=e.id,n=e.closePopup,d=Object(o.a)("combine:uploads:service"),f=i.a.useBasicFetch(m.a.video(t)),b=Object(r.useDispatch)();return f.data?a.createElement(c.a,{closePopup:n,title:"Edit video details"},a.createElement(l.a,{video:f.data,saveVideo:function(e){e.id=f.data.id;var t=m.a.updateVideo(e,(function(){d.updateUploadMetadata(e.id,e.name),u.a.logUserAction(e,{location:s.j.Popup,actionType:s.n.Edit,workflowPhase:s.o.Complete,entity:s.d.Video}),n()}));i.a.fetch(b,t)},onClickCancel:n})):a.createElement(a.Fragment,null)}},832:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var a=n(0),r=n(826),i=n(35),o=n(57),c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function l(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,l=e.initialValues,u=e.onSubmit,s=e.resetOnSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function e(t){var n=o.a.deepClone(t);return Object.keys(n).forEach((function(t){n.hasOwnProperty(t)&&(o.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])})),n}(l)):l,f={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.d,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=n&&e.validationSchema?e.validationSchema.cast(t):t;u(o,(function(){s&&i(),r(!1)}))},initialStatus:f}),i.a.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function u(){return Object(r.f)()}l.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},842:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(826),r={getCustomFormControlClassName:function(e,t,n,r){var i="form-control";return Object(a.e)(t,n)&&Object(a.e)(e,n)&&(i+=" is-invalid"),r&&(i+=" ".concat(r)),i}}},851:function(e,t,n){"use strict";var a=n(0),r=n(826),i=n(33),o=n(35),c=n(842);function l(e){var t=Object(r.f)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-right text-muted"},t.length,"/",e.limit)}var u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.label,n=u(e,["label"]);return a.createElement(i.Form.Group,null,a.createElement("div",{className:"custom-control custom-checkbox"},a.createElement(d,Object.assign({className:"custom-control-input"},n)),a.createElement(i.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function d(e){var t=e.children,n=m(e,["children"]);return a.createElement(r.b,Object.assign({},n),o.a.isFunction(t)?function(e){return t(e)}:a.Children.count(t)?t:null)}function f(e){var t=e.label,n=e.className,o=e.showCharacterCounter,u=m(e,["label","className","showCharacterCounter"]),f=Object(r.f)(),b=f.errors,p=f.touched;return"checkbox"===u.type?a.createElement(s,Object.assign({},e)):a.createElement(i.Form.Group,null,!!t&&a.createElement(i.Form.Label,{htmlFor:u.id},t),a.createElement(d,Object.assign({className:c.a.getCustomFormControlClassName(b,p,u.name,n)},u)),!!o&&!!u.maxLength&&a.createElement(l,{fieldName:u.name,limit:u.maxLength}),a.createElement(r.a,{name:u.name},(function(e){return a.createElement(i.Form.Control.Feedback,{type:"invalid"},e)})))}},852:function(e,t,n){"use strict";var a=n(0),r=n(826);function i(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 o(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 o(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 o(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 c=n(246),l=n(73);n.d(t,"a",(function(){return u}));function u(e){var t=Object(r.f)(),n=function(e){var t,n=i(a.useState(!1),2),r=n[0],o=n[1];return a.useEffect((function(){var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?o(!0):o(!1)}),[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),a.useEffect((function(){e.isSubmitting&&o(!1)}),[e.isSubmitting]),r}(t);a.useEffect((function(){function e(e){13===e.keyCode&&n&&t.validateForm().then((function(e){Object.keys(e).length||t.submitForm()}))}return window.addEventListener("keypress",e),function(){return window.removeEventListener("keypress",e)}}),[n]);var o="save";return e.isNew&&(o="create"),e.hasNext&&(o="next"),a.createElement(c.a,{variant:e.variant||"primary",showSpinner:t.isSubmitting,type:"submit",disabled:!n},e.submitText?a.createElement(a.Fragment,null,e.submitText):a.createElement(l.b,{namespace:"shared.formButtons",phrase:o}))}},996:function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var a=n(0),r=n(886),i=n(826),o=n(7),c=n(851),l=n(832),u=n(852),s=n(73),m="shared.editVideoDetails",d=r.object().shape({name:r.string().max(255,(function(){return o.a.getPhrase(m,"nameExceeds")})).required((function(){return o.a.getPhrase(m,"nameRequired")})),description:r.string().max(65535,(function(){return o.a.getPhrase(m,"descriptionExceeds")}))});function f(e){var t=Object(i.f)();return a.createElement(i.c,null,a.createElement(c.b,{label:o.a.getPhrase(m,"nameLabel"),type:"text",name:"name",id:"name",placeholder:o.a.getPhrase(m,"namePlaceholder"),autoFocus:!0,value:t.values.name}),a.createElement(c.b,{label:o.a.getPhrase(m,"descriptionLabel"),as:"textarea",name:"description",id:"description",placeholder:o.a.getPhrase(m,"descriptionPlaceholder"),autoFocus:!0,value:t.values.description}),a.createElement("div",{className:"btn-container d-flex justify-content-end"},a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},a.createElement(s.b,{namespace:m,phrase:"cancel"})),a.createElement(u.a,{isNew:!1})))}function b(e){var t=e.video,n=t.name,r=t.description,i=e.saveVideo,o=e.onClickCancel;return a.createElement(l.a,{initialValues:{name:n,description:r},validationSchema:d,onSubmit:i},a.createElement(f,{onClickCancel:o}))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[47],{1261:function(e,a,n){e.exports={group:"IT422",tempSvg:"_2CLu3"}},1262:function(e,a,n){e.exports={settingsContainer:"_3VOac",groupContainer:"mlors"}},1316:function(e,a,n){"use strict";n.r(a);var t=n(0),i=n.n(t),c=n(237),l=n(7),s=n(73),p=n(51),r=n(55),o=n(1261),m=n.n(o);function u(e){var a,n=!!(null===(a=e.modules)||void 0===a?void 0:a.length);return i.a.createElement(p.a,{appLink:e.appLink},i.a.createElement("div",{className:"row p-3 border border-dark m-0 w-100 ".concat(m.a.group)},i.a.createElement("div",{className:"col-3 px-3"},i.a.createElement("div",{className:"d-flex justify-content-center align-items-center h-100"},i.a.createElement(r.a,{svgName:e.svg,className:m.a.tempSvg}))),i.a.createElement("div",{className:"col-9 ".concat(n?"":"d-flex align-items-center")},i.a.createElement("h2",{className:"h3"},e.name),n&&i.a.createElement("ul",{className:"list-unstyled mb-0"},e.modules.map((function(e){return i.a.createElement("li",{key:e.name,className:"mb-1"},i.a.createElement(p.a,{appLink:e.appLink},e.name))}))))))}var g=n(13),S=n(5),d=n(10);var E=n(1262),v=n.n(E);n.d(a,"SettingsView",(function(){return k}));function k(){Object(c.a)(l.a.getPhrase("settings.settings","pageTitle"));var e=[{svg:g.b.HeartOutline,name:"My Account",modules:[{name:"Profile Details",appLink:{application:S.a.SETTINGS,action:"profile:details"}},{name:"Email & Password",appLink:{application:S.a.SETTINGS,action:"email:password"}},{name:"Year Level & Subject Preferences",appLink:{application:S.a.SUBJECT,action:d.a.Subjects.PREFERENCES}}]},{svg:g.b.HeartOutline,name:"School Management",modules:[{name:"Student Manager",appLink:{application:S.a.USER_MANAGER,action:d.a.UserManager.STUDENTS}},{name:"Teacher Manager",appLink:{application:S.a.USER_MANAGER,action:d.a.UserManager.TEACHERS}}]},{svg:g.b.HeartOutline,name:"Device Management",modules:[{name:"Devices",appLink:{application:S.a.SETTINGS,action:"devices"}},{name:"Local Cache",appLink:{application:S.a.SETTINGS,action:"local:cache"}}]},{svg:g.b.HeartOutline,name:"Integration",modules:[{name:"Single Sign On (SSO)",appLink:{application:S.a.SETTINGS,action:"single:sign:on"}},{name:"Reduced Single Sign On (RSO)",appLink:{application:S.a.SETTINGS,action:"reduced:single:sign:on"}}]},{svg:g.b.HeartOutline,name:"ClickView Analytics",appLink:{application:S.a.SETTINGS,action:"analytics"}},{svg:g.b.HeartOutline,name:"ClickView Support",modules:[{name:"Send Feedback",appLink:{application:S.a.SETTINGS,action:"send:feedback"}},{name:"Help Centre",appLink:{application:S.a.SETTINGS,action:"help:centre"}}]}];return i.a.createElement("div",{className:"px-3"},i.a.createElement("h1",null,i.a.createElement(s.b,{namespace:"settings.settings",phrase:"heading"})),i.a.createElement("main",{className:"row"},e.map((function(e){return i.a.createElement("div",{key:e.name,className:"col-md-6 p-0"},i.a.createElement("div",{className:v.a.groupContainer},i.a.createElement(u,Object.assign({},e))))}))))}}}]);
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[48],{1295:function(e,a,s){"use strict";s.r(a),s.d(a,"CreateTeacherView",(function(){return h}));var r=s(0),o=s(61),n=s(14),t=s(7),c=s(238),i=s(824),u=s(829),l=s(908),m=s(40),d=t.a.encloseNamespace("userManager.createTeacher");function h(e){var a=Object(i.a)(),s=Object(o.useDispatch)(),t=n.a.useBasicFetch(u.a.getUserRoles()),h=!!t.data;return r.createElement(c.a,{closePopup:e.closePopup,title:d("popupTitle"),showLoadingSpinner:!h},h&&r.createElement(l.a,{saveUser:function(r){n.a.fetch(s,u.a.createTeacher(r,(function(s){m.a.logUserAction(s,e.analyticsOptions),a.success(d("success")),e.closePopup()}),(function(){a.error(d("error"))})))},onClickCancel:e.closePopup,userRoles:t.data}))}},829:function(e,a,s){"use strict";s.d(a,"a",(function(){return l}));var r=s(14),o=s(79),n=s(21),t=s(840),c=s(833),i=s(834),u=s(835),l={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,n=e.q,i=void 0===n?"":n,u=e.query,l=void 0===u?"":u,m=e.cursor,d=void 0===m?"1":m;return{url:o.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(l,":").concat(s,":").concat(d),successResponse:function(){var e=t.a.revertFilterString(s),a=r.a.Simulator.getAll("school:students",c).filter((function(a){var r,o;return!(i&&!a.name.toLowerCase().includes(i.toLowerCase()))&&(!s||(!e.yearLevel||e.yearLevel===a.yearLevel.id)&&!((null===(r=e.classroom)||void 0===r?void 0:r.length)&&!e.classroom.includes(null===(o=a.classroom)||void 0===o?void 0:o.id)))})),o=t.a.convertWithStatementToObject(l),n=o.sortValue||"name",u=a.sort((function(e,a){return e[n].toLowerCase()<a[n].toLowerCase()?-1:e[n].toLowerCase()>a[n].toLowerCase()?1:0}));o.sortKey&&"orderbydesc"===o.sortKey&&(u=u.reverse());var m=u.slice(25*(+d-1),25*+d),h=u.slice(25*+d).length?+d+1:void 0,p="1"===d?void 0:+d-1;return m.length||(m=u.slice(0,25),h=u.slice(25).length?2:void 0,p=void 0),{data:m,pagination:{cursors:{next:h,previous:p}},count:u.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return r.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,a){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.delete("school:students",e),{}},always:a}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return r.a.Simulator.get("school:students",e)}}},createStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:student",type:n.a.POST,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.create("school:students",e)},success:a,error:s}},bulkCreateStudents:function(e,a,s,o){return{url:"/api/domain/v1/users",key:"create:students",type:n.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:students",e)})),e},success:a,error:s,always:o}},updateStudent:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:student",type:n.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return r.a.Simulator.update("school:students",e)},success:a,error:s}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,s=void 0===a?"":a,n=e.q,t=void 0===n?"":n,c=e.query,u=void 0===c?"":c,l=e.cursor,m=void 0===l?"":l;return{url:o.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(t,":").concat(u,":").concat(s,":").concat(m),successResponse:function(){var e=r.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,a){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.delete("school:teachers",e),{}},always:a}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return r.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"create:teacher",type:n.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.create("school:teachers",e)},success:a,error:s}},bulkCreateTeachers:function(e,a,s,o){return{url:"/api/domain/v1/users",key:"create:teachers",type:n.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return r.a.Simulator.create("school:teachers",e)})),e},success:a,error:s,always:o}},updateTeacher:function(e,a,s){return{url:"/api/domain/v1/users",key:"edit:teacher",type:n.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return r.a.Simulator.update("school:teachers",e)},success:a,error:s}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return r.a.Simulator.getAll("user:roles",u)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return r.a.Simulator.getAll("groups").filter((function(a){return!!a.students.find((function(a){return a.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"}]')}}]);