@clickview/lite 0.0.24-rc.4 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/css/11.chunk.css.map +1 -1
  2. package/dist/css/12.chunk.css.map +1 -1
  3. package/dist/css/13.chunk.css.map +1 -1
  4. package/dist/css/14.chunk.css.map +1 -1
  5. package/dist/css/15.chunk.css.map +1 -1
  6. package/dist/css/16.chunk.css.map +1 -1
  7. package/dist/css/17.chunk.css.map +1 -1
  8. package/dist/css/18.chunk.css.map +1 -1
  9. package/dist/css/20.chunk.css.map +1 -1
  10. package/dist/css/29.chunk.css.map +1 -1
  11. package/dist/css/3.chunk.css.map +1 -1
  12. package/dist/css/30.chunk.css.map +1 -1
  13. package/dist/css/31.chunk.css.map +1 -1
  14. package/dist/css/33.chunk.css.map +1 -1
  15. package/dist/css/38.chunk.css +11 -34
  16. package/dist/css/38.chunk.css.map +1 -1
  17. package/dist/css/4.chunk.css +3 -3
  18. package/dist/css/44.chunk.css +11 -3
  19. package/dist/css/44.chunk.css.map +1 -1
  20. package/dist/css/45.chunk.css +38 -0
  21. package/dist/css/45.chunk.css.map +1 -0
  22. package/dist/css/5.chunk.css.map +1 -1
  23. package/dist/css/52.chunk.css +52 -0
  24. package/dist/css/52.chunk.css.map +1 -0
  25. package/dist/css/59.chunk.css +14 -0
  26. package/dist/css/59.chunk.css.map +1 -0
  27. package/dist/css/6.chunk.css.map +1 -1
  28. package/dist/css/60.chunk.css +43 -0
  29. package/dist/css/60.chunk.css.map +1 -0
  30. package/dist/en.json +1 -1
  31. package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
  32. package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
  33. package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
  34. package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
  35. package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
  36. package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
  37. package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
  38. package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
  39. package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
  40. package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
  41. package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
  42. package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
  43. package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
  44. package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
  45. package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
  46. package/dist/projects/lite/src/app.d.ts +1 -0
  47. package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
  48. package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
  49. package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
  50. package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
  51. package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
  52. package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
  53. package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
  54. package/dist/scripts/1.chunk.js.map +1 -1
  55. package/dist/scripts/10.chunk.js +484 -1203
  56. package/dist/scripts/10.chunk.js.map +1 -1
  57. package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
  58. package/dist/scripts/11.chunk.js +289 -1388
  59. package/dist/scripts/11.chunk.js.map +1 -1
  60. package/dist/scripts/12-72a5373486.chunk.js +1 -0
  61. package/dist/scripts/12.chunk.js +1371 -283
  62. package/dist/scripts/12.chunk.js.map +1 -1
  63. package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
  64. package/dist/scripts/13.chunk.js +361 -394
  65. package/dist/scripts/13.chunk.js.map +1 -1
  66. package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
  67. package/dist/scripts/14.chunk.js +793 -332
  68. package/dist/scripts/14.chunk.js.map +1 -1
  69. package/dist/scripts/15-90226fb996.chunk.js +1 -0
  70. package/dist/scripts/15.chunk.js +295 -214
  71. package/dist/scripts/15.chunk.js.map +1 -1
  72. package/dist/scripts/16-913b2535ea.chunk.js +1 -0
  73. package/dist/scripts/16.chunk.js +530 -434
  74. package/dist/scripts/16.chunk.js.map +1 -1
  75. package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
  76. package/dist/scripts/17.chunk.js +296 -170
  77. package/dist/scripts/17.chunk.js.map +1 -1
  78. package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
  79. package/dist/scripts/18.chunk.js +265 -199
  80. package/dist/scripts/18.chunk.js.map +1 -1
  81. package/dist/scripts/19-2380200cfb.chunk.js +1 -0
  82. package/dist/scripts/19.chunk.js +7 -3
  83. package/dist/scripts/19.chunk.js.map +1 -1
  84. package/dist/scripts/2-53e37c2047.chunk.js +1 -0
  85. package/dist/scripts/2.chunk.js +18673 -622
  86. package/dist/scripts/2.chunk.js.map +1 -1
  87. package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
  88. package/dist/scripts/20.chunk.js +1824 -221
  89. package/dist/scripts/20.chunk.js.map +1 -1
  90. package/dist/scripts/21-ef4a226771.chunk.js +1 -0
  91. package/dist/scripts/22-99c04e164f.chunk.js +1 -0
  92. package/dist/scripts/23-028eb81a43.chunk.js +1 -0
  93. package/dist/scripts/23.chunk.js +1 -1
  94. package/dist/scripts/23.chunk.js.map +1 -1
  95. package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
  96. package/dist/scripts/24.chunk.js.map +1 -1
  97. package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
  98. package/dist/scripts/25.chunk.js.map +1 -1
  99. package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
  100. package/dist/scripts/26.chunk.js +1 -1
  101. package/dist/scripts/26.chunk.js.map +1 -1
  102. package/dist/scripts/27-e844268f38.chunk.js +1 -0
  103. package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
  104. package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
  105. package/dist/scripts/29.chunk.js +435 -500
  106. package/dist/scripts/29.chunk.js.map +1 -1
  107. package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
  108. package/dist/scripts/3.chunk.js +625 -18676
  109. package/dist/scripts/3.chunk.js.map +1 -1
  110. package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
  111. package/dist/scripts/30.chunk.js +634 -429
  112. package/dist/scripts/30.chunk.js.map +1 -1
  113. package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
  114. package/dist/scripts/31.chunk.js +371 -670
  115. package/dist/scripts/31.chunk.js.map +1 -1
  116. package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
  117. package/dist/scripts/32.chunk.js +27 -54
  118. package/dist/scripts/32.chunk.js.map +1 -1
  119. package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
  120. package/dist/scripts/33.chunk.js +700 -312
  121. package/dist/scripts/33.chunk.js.map +1 -1
  122. package/dist/scripts/34-2de007b628.chunk.js +1 -0
  123. package/dist/scripts/34.chunk.js +3 -3
  124. package/dist/scripts/34.chunk.js.map +1 -1
  125. package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
  126. package/dist/scripts/36-bc85df33de.chunk.js +1 -0
  127. package/dist/scripts/36.chunk.js.map +1 -1
  128. package/dist/scripts/37-e26652840b.chunk.js +1 -0
  129. package/dist/scripts/37.chunk.js +288 -464
  130. package/dist/scripts/37.chunk.js.map +1 -1
  131. package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
  132. package/dist/scripts/39-6549f483c6.chunk.js +1 -0
  133. package/dist/scripts/39.chunk.js +1 -1
  134. package/dist/scripts/39.chunk.js.map +1 -1
  135. package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
  136. package/dist/scripts/4.chunk.js +259 -1021
  137. package/dist/scripts/4.chunk.js.map +1 -1
  138. package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
  139. package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
  140. package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
  141. package/dist/scripts/42.chunk.js.map +1 -1
  142. package/dist/scripts/43-1141245420.chunk.js +1 -0
  143. package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
  144. package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
  145. package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
  146. package/dist/scripts/47-ab30686138.chunk.js +1 -0
  147. package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
  148. package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
  149. package/dist/scripts/5-974660e17b.chunk.js +1 -0
  150. package/dist/scripts/5.chunk.js +1017 -259
  151. package/dist/scripts/5.chunk.js.map +1 -1
  152. package/dist/scripts/50-af699c531e.chunk.js +1 -0
  153. package/dist/scripts/51-aa7b835007.chunk.js +1 -0
  154. package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
  155. package/dist/scripts/53-d75ca53045.chunk.js +1 -0
  156. package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
  157. package/dist/scripts/55-ed637c4847.chunk.js +1 -0
  158. package/dist/scripts/55.chunk.js.map +1 -1
  159. package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
  160. package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
  161. package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
  162. package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
  163. package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
  164. package/dist/scripts/6.chunk.js +291 -1250
  165. package/dist/scripts/6.chunk.js.map +1 -1
  166. package/dist/scripts/60-5713de53e2.chunk.js +1 -0
  167. package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
  168. package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
  169. package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
  170. package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
  171. package/dist/scripts/65-2322082836.chunk.js +1 -0
  172. package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
  173. package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
  174. package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
  175. package/dist/scripts/7.chunk.js +1 -1
  176. package/dist/scripts/76.chunk.js +3 -3
  177. package/dist/scripts/76.chunk.js.map +1 -1
  178. package/dist/scripts/79.chunk.js +931 -347
  179. package/dist/scripts/79.chunk.js.map +1 -1
  180. package/dist/scripts/8-95563e3d36.chunk.js +1 -0
  181. package/dist/scripts/8.chunk.js +14 -920
  182. package/dist/scripts/8.chunk.js.map +1 -1
  183. package/dist/scripts/80.chunk.js +22 -313
  184. package/dist/scripts/80.chunk.js.map +1 -1
  185. package/dist/scripts/9.chunk.js +320 -17
  186. package/dist/scripts/9.chunk.js.map +1 -1
  187. package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
  188. package/dist/scripts/bundle.js +147 -121
  189. package/dist/scripts/bundle.js.map +1 -1
  190. package/dist/scripts/bundles.json +2 -2
  191. package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
  192. package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
  193. package/dist/scripts/polyfills-2723daf478.min.js +1 -0
  194. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/nav/PreferencesNav.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/nav/preferences-nav.scss?0f02","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/utils/OnboardingHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/BulkOnboardingPreferencesState.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/PresentationType.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/PreferenceRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/SettingRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/subjects/utils/OnboardingHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/subjects/views/preferences/LazyStepViews.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/subjects/views/preferences/LiteBasePreferencesView.tsx","webpack://@clickview/lite/./src/apps/subjects/views/preferences/preferences.scss?5d3c"],"names":[],"mappings":"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","file":"scripts/31.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\n\r\nimport styles from './preferences-nav.scss';\r\n\r\nexport interface PreferencesNavItemHash {\r\n appLink: Core.AppLink;\r\n active: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nfunction getClass(active: boolean, disabled: boolean): string {\r\n const baseClasses = 'rounded-circle mx-2 ' + styles.progressItem;\r\n const colourClass = active ? 'bg-info' : 'bg-light';\r\n const disabledClass = (disabled || active) ? '' : 'cursor-pointer';\r\n\r\n return `${baseClasses} ${colourClass} ${disabledClass}`;\r\n}\r\n\r\ninterface PreferencesNavProps {\r\n steps: PreferencesNavItemHash[];\r\n}\r\n\r\nexport function PreferencesNav(props: PreferencesNavProps): JSX.Element {\r\n return (\r\n <nav className={`d-flex justify-content-center pt-3 position-relative ${styles.progress}`}>\r\n {props.steps.map((step, i) => {\r\n return (\r\n <AppLink\r\n key={i}\r\n appLink={(step.disabled || step.active) ? null : step.appLink}\r\n className={getClass(step.active, step.disabled)}\r\n />\r\n );\r\n })}\r\n </nav>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"progress\":\"cv--progress--iKcwJ\",\"progressItem\":\"cv--progressItem--1SBXD\"};","import { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { Presentation } from 'libs/shared/interfaces';\r\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\r\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\n\r\nexport type PreferenceStep = 'welcome' | 'subjects' | 'levels' | 'summary' | 'school-level' | 'curriculum';\r\n\r\nexport const OnboardingHelper = {\r\n getIsStep(currentStep: PreferenceStep): (steps?: PreferenceStep | PreferenceStep[]) => boolean {\r\n return (steps?: PreferenceStep | PreferenceStep[]): boolean => {\r\n return Array.isArray(steps) ? steps.includes(currentStep) : currentStep === steps;\r\n };\r\n },\r\n\r\n hasManyPresentationTypes(presentations: Presentation[] = []): HashObject {\r\n let totalAvailableSubjectPresentations = 0;\r\n let totalAvailableCurriculumPresentations = 0;\r\n\r\n presentations.forEach(p => {\r\n if (p.type.toLowerCase() === PresentationType.Subject)\r\n totalAvailableSubjectPresentations++;\r\n\r\n else if (p.type.toLowerCase() === PresentationType.Curriculum)\r\n totalAvailableCurriculumPresentations++;\r\n });\r\n\r\n /**\r\n * The checks for \"> 1\" are done because we _only_ want to display presentation selectors\r\n * if the user has more than 1 presentation to select from. If they only have 1 available,\r\n * then that will always be used by default and they don't have to make any decisions.\r\n */\r\n return {\r\n hasManySubjectPresentations: totalAvailableSubjectPresentations > 1,\r\n hasManyCurriculumPresentations: totalAvailableCurriculumPresentations > 1\r\n };\r\n },\r\n\r\n getBulkPreferencesState(state: BulkOnboardingPreferencesState): { [key in 'levels' | 'subjects']: boolean } {\r\n if (state === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels)\r\n return {\r\n levels: true,\r\n subjects: true\r\n };\r\n\r\n return {\r\n levels: state === BulkOnboardingPreferencesState.AllLevels,\r\n subjects: state === BulkOnboardingPreferencesState.AllSubjects\r\n };\r\n },\r\n\r\n stepIsValid(step: string): step is PreferenceStep {\r\n return [ 'welcome', 'subjects', 'levels', 'summary', 'school-level', 'curriculum' ].indexOf(step) !== -1;\r\n },\r\n\r\n hasBulkSelectedLevels(bulkState: BulkOnboardingPreferencesState): boolean {\r\n return (\r\n bulkState === BulkOnboardingPreferencesState.AllLevels ||\r\n bulkState === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels\r\n );\r\n },\r\n\r\n hasBulkSelectedSubjects(bulkState: BulkOnboardingPreferencesState): boolean {\r\n return (\r\n bulkState === BulkOnboardingPreferencesState.AllSubjects ||\r\n bulkState === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels\r\n );\r\n }\r\n};\r\n","export enum BulkOnboardingPreferencesState {\r\n None = 0,\r\n AllSubjects = 1,\r\n AllLevels = 2,\r\n AllSubjectsAndAllLevels = 3\r\n}","export enum PresentationType {\r\n Subject = 'subject',\r\n Curriculum = 'curriculum'\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\r\nimport { Presentation, Classification } from 'libs/shared/interfaces';\r\n\r\nconst classificationQuery = SharedWithStatements.CLASSIFICATION;\r\n\r\nconst endpoints = {\r\n // Subjects\r\n allSubjectPreferences: () => `/api/domain/v1/subjects/preferences?query=${classificationQuery}&type=subject`,\r\n mySubjectPreferences: () => `/api/domain/v1/subjects/classifications/following?query=${classificationQuery}`,\r\n followSubjects: () => '/api/domain/v1/subjects/classifications/following',\r\n unfollowSubjects: (ids: string[]) => UrlHelper.urlBuilder('/api/domain/v1/subjects/classifications/following', { id: ids }),\r\n\r\n // Levels\r\n allLevelPreferences: () => `/api/domain/v1/subjects/audiences?type=subject`,\r\n myLevelPreferences: () => `/api/domain/v1/subjects/audiences/following`,\r\n followLevels: () => `/api/domain/v1/subjects/audiences/following`,\r\n unfollowLevels: (ids: string[]) => UrlHelper.urlBuilder('/api/domain/v1/subjects/audiences/following', { id: ids }),\r\n\r\n // School Level\r\n getSchoolLevels: () => `/api/domain/v1/subjects/school-level`,\r\n getSelectedSchoolLevel: (userId: string) => `/api/domain/v1/subjects/school-level/${userId}`,\r\n setSchoolLevel: () => '/api/domain/v1/subjects/school-level',\r\n\r\n // Curriculum\r\n getCurriculums: () => `/api/domain/v1/subjects/curriculum`,\r\n getSelectedCurriculum: (userId: string) => `/api/domain/v1/subjects/school-level/${userId}`,\r\n setCurriculum: () => '/api/domain/v1/subjects/curriculum',\r\n\r\n getCurrentPresentations: (type?: PresentationType) =>\r\n `/api/domain/v1/subjects/presentations${type ? `?type=${type}` : ''}`,\r\n getAvailablePresentations: (type?: PresentationType) =>\r\n `/api/domain/v1/subjects/presentations/available${type ? `?type=${type}` : ''}`,\r\n setPresentation: (id: string) => `/api/domain/v1/subjects/presentations/${id}`\r\n};\r\n\r\nexport const PreferenceRequests = {\r\n /**\r\n * Presentations\r\n */\r\n\r\n currentPresentations(type?: PresentationType): Flight.Request {\r\n return {\r\n url: endpoints.getCurrentPresentations(type),\r\n key: `current:presentations${type ? `:${type}` : ''}`,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n availablePresentations(type?: PresentationType): Flight.Request {\r\n return {\r\n url: endpoints.getAvailablePresentations(type),\r\n key: `available:presentations:${type}`,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n setPresentation(\r\n presentation: Presentation, type: PresentationType, success?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.setPresentation(presentation.id),\r\n key: `set:${type}:presentation`,\r\n type: HttpVerbs.POST,\r\n data: {},\r\n invalidationKeys: [\r\n `current:presentations:${type}`,\r\n 'current:presentations',\r\n 'subject:preference:options',\r\n 'my:subject:preferences',\r\n 'level:preference:options',\r\n 'my:level:preferences'\r\n ],\r\n success\r\n };\r\n },\r\n\r\n /**\r\n * Subjects\r\n */\r\n allSubjectPreferences(): Flight.Request {\r\n return {\r\n url: endpoints.allSubjectPreferences(),\r\n key: `subject:preference:options`,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n mySubjectPreferences(success?: (data: any) => void): Flight.Request {\r\n return {\r\n url: endpoints.mySubjectPreferences(),\r\n key: `my:subject:preferences`,\r\n normalize: false,\r\n expiryTime: Infinity,\r\n success,\r\n formatData: preferences => preferences.filter((p: Classification) => p.canBePreferred)\r\n };\r\n },\r\n\r\n followSubjects(\r\n subjectIds: string[],\r\n success: () => void,\r\n error?: () => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.followSubjects(),\r\n key: `follow:subjects`,\r\n data: subjectIds,\r\n type: HttpVerbs.POST,\r\n success,\r\n error,\r\n always,\r\n invalidationKeys: [ ...subjectIds.map(id => `classification:${id}`), 'my:subject:preferences' ]\r\n };\r\n },\r\n\r\n unfollowSubjects(\r\n subjectIds: string[],\r\n success: () => void,\r\n error?: () => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.unfollowSubjects(subjectIds),\r\n key: `unfollow:subjects`,\r\n type: HttpVerbs.DELETE,\r\n success,\r\n error,\r\n always,\r\n invalidationKeys: [ ...subjectIds.map(id => `classification:${id}`), 'my:subject:preferences' ]\r\n };\r\n },\r\n\r\n /**\r\n * Levels\r\n */\r\n allLevelPreferences(): Flight.Request {\r\n return {\r\n url: endpoints.allLevelPreferences(),\r\n key: `level:preference:options`,\r\n normalize: false,\r\n expiryTime: Infinity\r\n };\r\n },\r\n\r\n myLevelPreferences(success?: (data: any) => void): Flight.Request {\r\n return {\r\n url: endpoints.myLevelPreferences(),\r\n key: `my:level:preferences`,\r\n normalize: false,\r\n expiryTime: Infinity,\r\n success\r\n };\r\n },\r\n\r\n followLevels(\r\n levelIds: string[],\r\n success: () => void,\r\n error?: () => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.followLevels(),\r\n key: `follow:levels`,\r\n data: levelIds,\r\n type: HttpVerbs.POST,\r\n success,\r\n error,\r\n always,\r\n invalidationKeys: ['my:level:preferences']\r\n };\r\n },\r\n\r\n unfollowLevels(\r\n levelIds: string[],\r\n success: () => void,\r\n error?: () => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: endpoints.unfollowLevels(levelIds),\r\n key: `unfollow:levels`,\r\n type: HttpVerbs.DELETE,\r\n success,\r\n error,\r\n always,\r\n invalidationKeys: ['my:level:preferences']\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\n\r\nimport { EntitySetting } from 'libs/shared/interfaces';\r\nimport { SettingName } from 'libs/shared/enums/SettingName';\r\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\r\n\r\nexport const SettingRequests = {\r\n setting(entityId: string, name: SettingName): Flight.Request {\r\n return {\r\n key: `settings:${entityId}:${name}`,\r\n url: `/api/domain/v3/settings/${entityId}?type=${name}`,\r\n normalize: false,\r\n formatData: (data: EntitySetting[]) => {\r\n return ArrayHelper.first(data);\r\n }\r\n };\r\n },\r\n\r\n updateSetting(\r\n entityId: string,\r\n name: SettingName,\r\n value: any,\r\n kind: SettingKind,\r\n success?: () => void,\r\n error?: () => void\r\n ): Flight.Request {\r\n return {\r\n key: 'update:setting',\r\n url: `/api/domain/v3/settings/${entityId}`,\r\n data: {\r\n name,\r\n value,\r\n kind\r\n },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [`settings:${entityId}:${name}`],\r\n success,\r\n error\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { OnboardingHelper as SharedOnboardingHelper, PreferenceStep } from 'libs/shared/apps/subjects/utils/OnboardingHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nexport const OnboardingHelper = {\r\n ...SharedOnboardingHelper,\r\n\r\n buildAppLink(step: PreferenceStep, redirectUrl?: string): Core.AppLink {\r\n const appLink = {\r\n application: AppChannels.SUBJECT,\r\n action: Actions.Subjects.PREFERENCES,\r\n params: { step }\r\n };\r\n\r\n if (redirectUrl)\r\n (appLink.params as any).redirectUrl = redirectUrl;\r\n\r\n return appLink;\r\n }\r\n};\r\n","import React from 'react';\r\n\r\nconst AsyncPreferencesWelcomeView = React.lazy(() => import('apps/subjects/views/preferences/welcome/LitePreferencesWelcomeView')\r\n .then(({ PreferencesWelcomeView }) => ({ default: PreferencesWelcomeView })));\r\n\r\nconst AsyncSubjectPresentationSelectorView = React.lazy(() => import('apps/subjects/views/preferences/subject-presentation/LiteSubjectPresentationSelectorView')\r\n .then(({ SubjectPresentationSelectorView }) => ({ default: SubjectPresentationSelectorView })));\r\n\r\nconst AsyncCurriculumPresentationSelectorView = React.lazy(() => import('apps/subjects/views/preferences/curriculum-presentation/LiteCurriculumPresentationSelectorView')\r\n .then(({ CurriculumPresentationSelectorView }) => ({ default: CurriculumPresentationSelectorView })));\r\n\r\nconst AsyncLevelPreferencesView = React.lazy(() => import('apps/subjects/views/preferences/level-preferences/LiteLevelPreferencesView')\r\n .then(({ LevelPreferencesView }) => ({ default: LevelPreferencesView })));\r\n\r\nconst AsyncSubjectPreferencesView = React.lazy(() => import('apps/subjects/views/preferences/subject-preferences/LiteSubjectPreferencesView')\r\n .then(({ SubjectPreferencesView }) => ({ default: SubjectPreferencesView })));\r\n\r\nconst AsyncPreferencesSummaryView = React.lazy(() => import('apps/subjects/views/preferences/summary/LitePreferencesSummaryView')\r\n .then(({ PreferencesSummaryView }) => ({ default: PreferencesSummaryView })));\r\n\r\nexport const LazyStepViews = (): JSX.Element => <></>;\r\n\r\nLazyStepViews['welcome'] = (props: any) => <AsyncPreferencesWelcomeView {...props} />;\r\nLazyStepViews['school-level'] = (props: any) => <AsyncSubjectPresentationSelectorView {...props} />;\r\nLazyStepViews['curriculum'] = (props: any) => <AsyncCurriculumPresentationSelectorView {...props} />;\r\nLazyStepViews['levels'] = (props: any) => <AsyncLevelPreferencesView {...props} />;\r\nLazyStepViews['subjects'] = (props: any) => <AsyncSubjectPreferencesView {...props} />;\r\nLazyStepViews['summary'] = (props: any) => <AsyncPreferencesSummaryView {...props} />;","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { PreferencesNavItemHash, PreferencesNav } from 'libs/shared/apps/subjects/components/preferences/nav/PreferencesNav';\r\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\r\nimport { PresentationAudience, Classification, Presentation, CurrentUser, EntitySetting } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { SettingRequests } from 'libs/shared/flight-requests/SettingRequests';\r\nimport { SettingName } from 'libs/shared/enums/SettingName';\r\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\r\nimport { PreferenceStep } from 'libs/shared/apps/subjects/utils/OnboardingHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport { OnboardingHelper } from 'apps/subjects/utils/OnboardingHelper';\r\n\r\nimport { LazyStepViews } from './LazyStepViews';\r\n\r\nimport styles from './preferences.scss';\r\n\r\nconst namespace = 'subjects.preferences';\r\n\r\nconst has = (response: Flight.Response<any>): boolean => {\r\n /**\r\n * We're returning `true` here because we don't want to redirect users off of a page while we're still\r\n * fetching data for it. Once this if-statement is passed, we can make actual decisions on\r\n * if the data is present or not, and redirect the user away if they do not have the correct data.\r\n */\r\n if (!response.statusCode) // The presence of `statusCode` helps us recognise if the fetch call has completed.\r\n return true;\r\n\r\n return response.statusCode === HttpStatus.Ok && !!response.data?.length;\r\n};\r\n\r\ninterface BasePreferencesViewProps {\r\n step: PreferenceStep;\r\n redirectUrl: string;\r\n}\r\n\r\nexport function BasePreferencesView({ step: currentStep, redirectUrl = '' }: BasePreferencesViewProps): JSX.Element {\r\n /**\r\n * Data fetching\r\n */\r\n const presentations = Flight.useBasicFetch<Presentation[]>(PreferenceRequests.currentPresentations());\r\n const availablePresentations = Flight.useBasicFetch<Presentation[]>(PreferenceRequests.availablePresentations());\r\n const levelPreferences = Flight.useBasicFetch<PresentationAudience[]>(PreferenceRequests.myLevelPreferences());\r\n const subjectPreferences = Flight.useBasicFetch<Classification[]>(PreferenceRequests.mySubjectPreferences());\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const hasCompletedOnboarding = Flight.useBasicFetch<EntitySetting<boolean>>(\r\n currentUser.statusCode ? SettingRequests.setting(currentUser.data.id, SettingName.HasCompletedOnboarding) : null);\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 useSetPageTitle(LanguageService.getPhrase(\r\n namespace, hasCompletedOnboarding.data?.value ? 'pageTitlePreferences' : 'pageTitleOnboarding'));\r\n\r\n // Only admin's and staff are allowed to complete onboarding\r\n if (currentUser.statusCode) {\r\n if (currentUser.data.role !== 'Admin' && currentUser.data.role !== 'SuperAdmin') {\r\n if (redirectUrl) {\r\n Core.LocationUtils.Redirect(redirectUrl, true);\r\n } else {\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.DASHBOARD,\r\n action: Actions.Dashboard.HOME\r\n }, { replace: true });\r\n }\r\n\r\n return <></>;\r\n }\r\n }\r\n\r\n if (!hasCompletedOnboarding.statusCode)\r\n return <></>;\r\n\r\n if (!currentStep || !OnboardingHelper.stepIsValid(currentStep)) {\r\n const step: PreferenceStep = !hasCompletedOnboarding.data?.value ? 'welcome' : 'levels';\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink(step, redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n const isStep = OnboardingHelper.getIsStep(currentStep);\r\n\r\n const { levels: bulkLevelsSelected, subjects: bulkSubjectsSelected } = OnboardingHelper.getBulkPreferencesState(\r\n bulkOnboardingPreferencesState.data?.value);\r\n\r\n const {\r\n hasManySubjectPresentations,\r\n hasManyCurriculumPresentations\r\n } = OnboardingHelper.hasManyPresentationTypes(availablePresentations.data);\r\n\r\n /**\r\n * Disable flags for each step\r\n */\r\n const loadingPresentations = availablePresentations.isFetching || availablePresentations.shouldFetch;\r\n\r\n // If there is only 1 available presentation for a presentation type, we do not need to display a selector.\r\n const disableSchoolLevel = (\r\n hasCompletedOnboarding.data?.value\r\n || (!loadingPresentations && !hasManySubjectPresentations)\r\n || (has(presentations) && hasCompletedOnboarding.data?.value)\r\n );\r\n\r\n const disableCurriculum = (\r\n hasCompletedOnboarding.data?.value\r\n || (!loadingPresentations && !hasManyCurriculumPresentations)\r\n || (has(presentations) && hasCompletedOnboarding.data?.value)\r\n );\r\n\r\n const disableLevelPage = !has(presentations);\r\n const disableSubjectPage = disableLevelPage || (!has(levelPreferences) && !bulkLevelsSelected);\r\n const disableSummaryPage = disableSubjectPage || (!has(subjectPreferences) && !bulkSubjectsSelected);\r\n\r\n /**\r\n * Redirect checks\r\n */\r\n if (isStep('welcome') && hasCompletedOnboarding.data?.value) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('levels', redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n if (isStep('school-level') && disableSchoolLevel) {\r\n Core.AppLinkHelper.trigger(\r\n OnboardingHelper.buildAppLink(disableCurriculum ? 'levels' : 'curriculum', redirectUrl),\r\n { replace: true }\r\n );\r\n return <></>;\r\n }\r\n\r\n if (isStep('curriculum') && disableCurriculum) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('levels', redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n if (isStep([ 'levels', 'subjects', 'summary' ]) && disableLevelPage) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('welcome', redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n if (isStep([ 'subjects', 'summary' ]) && disableSubjectPage) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('levels', redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n if (isStep('summary') && disableSummaryPage) {\r\n Core.AppLinkHelper.trigger(OnboardingHelper.buildAppLink('subjects', redirectUrl), { replace: true });\r\n return <></>;\r\n }\r\n\r\n function getSteps(): PreferencesNavItemHash[] {\r\n let steps: PreferencesNavItemHash[] = [\r\n {\r\n active: isStep('levels'),\r\n appLink: OnboardingHelper.buildAppLink('levels', redirectUrl),\r\n disabled: disableLevelPage\r\n },\r\n {\r\n active: isStep('subjects'),\r\n appLink: OnboardingHelper.buildAppLink('subjects', redirectUrl),\r\n disabled: disableSubjectPage\r\n },\r\n {\r\n active: isStep('summary'),\r\n appLink: OnboardingHelper.buildAppLink('summary', redirectUrl),\r\n disabled: disableSummaryPage\r\n }\r\n ];\r\n\r\n if (!disableCurriculum)\r\n steps.unshift({\r\n active: isStep('curriculum'),\r\n appLink: OnboardingHelper.buildAppLink('curriculum', redirectUrl)\r\n });\r\n\r\n if (!disableSchoolLevel)\r\n steps.unshift({\r\n active: isStep('school-level'),\r\n appLink: OnboardingHelper.buildAppLink('school-level', redirectUrl)\r\n });\r\n\r\n return steps;\r\n }\r\n\r\n const LazyStepView = LazyStepViews[currentStep];\r\n\r\n return (\r\n <div className={`position-relative px-3 ${styles.preferencesContainer}`}>\r\n {currentStep !== 'welcome' && (\r\n <PreferencesNav steps={getSteps()} />\r\n )}\r\n\r\n <main>\r\n <React.Suspense fallback={<></>}>\r\n <LazyStepView redirectUrl={redirectUrl} />\r\n </React.Suspense>\r\n </main>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preferencesContainer\":\"cv--preferencesContainer--1sGnn\",\"backgroundImage\":\"cv--backgroundImage--F6J5v\"};"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/classroom-group-details-form/classroom-group-details-form.scss?365a","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/colour-picker/ColourPicker.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/colour-picker/colour-picker.scss?adf9","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/enums/GroupColour.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/utils/GroupHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/validation/ClassroomGroupValidationSchema.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.tsx"],"names":[],"mappings":"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","file":"scripts/31.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};","import React from 'react';\r\nimport { Form } from 'formik';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\r\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ColourPicker } from 'apps/classrooms/components/colour-picker/ColourPicker';\r\n\r\nimport styles from './classroom-group-details-form.scss';\r\n\r\nconst namespace = 'classrooms.classroomGroupDetailsForm';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface ClassroomGroupDetailsFormProps {\r\n isNew: boolean;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function ClassroomGroupDetailsForm(props: ClassroomGroupDetailsFormProps): JSX.Element {\r\n const formikProps = useFormikContextWrapper<MockClassroomGroup>();\r\n\r\n return (\r\n <>\r\n <div>\r\n <h2 className='w-50 d-inline-block h6'><Text namespace={namespace} phrase='nameLabel' /></h2>\r\n <h2 className='d-inline-block h6'><Text namespace={namespace} phrase='colourLabel' /></h2>\r\n </div>\r\n\r\n <Form>\r\n <div className='pb-3 d-flex'>\r\n <div className='w-50'>\r\n <FormField\r\n type='text'\r\n name='name'\r\n id='name'\r\n className={`${styles.groupNameInput}`}\r\n placeholder={getPhrase('groupNamePlaceholder')}\r\n autoFocus\r\n value={formikProps.values.name}\r\n />\r\n </div>\r\n <div className='form-group'>\r\n <ColourPicker\r\n onSelect={c => formikProps.setFieldValue('colour', c)}\r\n selection={formikProps.values.colour}\r\n id={`${props.isNew ? 'create' : 'edit'}-classroom-group`}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className='btn-container d-flex justify-content-end'>\r\n <button type='button' className='btn btn-link mr-2' onClick={props.onClickCancel}>\r\n <Text namespace={namespace} phrase='cancel' />\r\n </button>\r\n <FormButtons isNew={props.isNew} />\r\n </div>\r\n </Form>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"groupNameInput\":\"cv--groupNameInput--3hGvq\"};","import React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\nimport { mapColourToClassName } from 'apps/classrooms/utils/GroupHelper';\r\n\r\nimport styles from './colour-picker.scss';\r\n\r\ninterface ColourPickerProps {\r\n id: string;\r\n onSelect?: (colour: string) => void;\r\n selection?: GroupColour;\r\n disabled?: boolean;\r\n}\r\n\r\nColourPicker.defaultProps = {\r\n selection: GroupColour.White,\r\n onSelect: () => {}\r\n};\r\n\r\nexport function ColourPicker(props: ColourPickerProps): JSX.Element {\r\n function getToggleButtonClass(): string {\r\n const baseClass = `${styles.dropdownToggle} outline-none p-0 d-flex align-items-center text-decoration-none`;\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n\r\n return `${baseClass} ${disabledClass}`;\r\n }\r\n\r\n function getOptionClass(colour: GroupColour): string {\r\n const baseClass = `${styles.colourOption} position-relative`;\r\n const borderClass = colour === GroupColour.White ? 'border border-dark' : '';\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n const colorClass = mapColourToClassName(colour);\r\n\r\n return `${baseClass} ${borderClass} ${disabledClass} ${colorClass}`;\r\n }\r\n\r\n const dropdownProps: HashObject = {};\r\n if (props.disabled)\r\n dropdownProps.show = false;\r\n\r\n return (\r\n <Dropdown {...dropdownProps}>\r\n <Dropdown.Toggle id={props.id} variant='link' className={getToggleButtonClass()}>\r\n <div className={`border border-secondary rounded bg-white ${styles.colourButton}`}>\r\n <div className={`px-0 py-1 rounded ${mapColourToClassName(props.selection)}`}>\r\n &nbsp;\r\n </div>\r\n </div>\r\n\r\n {!props.disabled &&\r\n <SvgContainer svgName={cvSvgLibrary.Caret} />\r\n }\r\n </Dropdown.Toggle>\r\n\r\n <Dropdown.Menu>\r\n <ul className={`${styles.colourList} list-unstyled d-flex flex-wrap px-2 m-0`}>\r\n {Object.keys(GroupColour).map(colourKey => {\r\n const colour = (GroupColour as any)[colourKey];\r\n\r\n return (\r\n <li key={`${props.id}:${colour}`} className='m-1'>\r\n <DivButton\r\n onClick={() => props.onSelect(colour)}\r\n className={getOptionClass(colour)}\r\n >\r\n {colour === GroupColour.White\r\n ? <div className={styles.lineThrough} />\r\n : <>&nbsp;</>\r\n }\r\n </DivButton>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownToggle\":\"cv--dropdownToggle--347DY\",\"colourButton\":\"cv--colourButton--1rKvE\",\"colourList\":\"cv--colourList--328-w\",\"colourOption\":\"cv--colourOption--1Tw7u\",\"lineThrough\":\"cv--lineThrough--18oZq\"};","import React from 'react';\r\n\r\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\nimport { ClassroomGroupValidationSchema } from 'apps/classrooms/validation/ClassroomGroupValidationSchema';\r\nimport { ClassroomGroupDetailsForm } from 'apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm';\r\n\r\ninterface EditClassroomGroupDetailsProps {\r\n group?: MockClassroomGroup;\r\n saveGroup: (group: MockClassroomGroup) => void;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function EditClassroomGroupDetails(props: EditClassroomGroupDetailsProps): React.ReactElement {\r\n const { group, saveGroup, onClickCancel } = props;\r\n\r\n const initialValues: MockClassroomGroup = {\r\n id: group?.id,\r\n name: group?.name,\r\n colour: group?.colour,\r\n students: []\r\n };\r\n\r\n return (\r\n <FormWrapper<MockClassroomGroup>\r\n initialValues={initialValues}\r\n validationSchema={ClassroomGroupValidationSchema}\r\n onSubmit={saveGroup}\r\n >\r\n <ClassroomGroupDetailsForm isNew={!group} onClickCancel={onClickCancel} />\r\n </FormWrapper>\r\n );\r\n}","export enum GroupColour {\r\n White = 'white',\r\n Pink = 'pink',\r\n YellowOrange = 'yellow-orange',\r\n Emerald = 'emerald',\r\n PuertoRico = 'puerto-rico',\r\n PictonBlue = 'picton-blue',\r\n EastSide = 'east-side',\r\n Portage = 'portage'\r\n}","import { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\n\r\nexport function mapColourToClassName(groupName: GroupColour): string {\r\n return `bg-${groupName}`;\r\n}","import { object, string } from 'yup';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { GroupColour } from '../enums/GroupColour';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('classrooms.classroomValidation');\r\n\r\nexport const ClassroomGroupValidationSchema = object().shape({\r\n name: string()\r\n .max(255, () => getPhrase('nameExceeds'))\r\n .required(() => getPhrase('nameRequired'))\r\n .default(''),\r\n colour: string()\r\n .required(() => getPhrase('colourRequired'))\r\n .default(GroupColour.White)\r\n});","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PopupViewProps, PropsWithAnalyticsOptions, PropsWithPopupViewProps } from 'libs/shared/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\r\nimport { MockClassroom } from 'apps/user-manager/interfaces';\r\nimport { EditClassroomGroupDetails } from 'apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { UserAction, AssocDescriptor } from 'libs/analytics/interfaces';\r\n\r\nconst namespace = 'classrooms.createClassroomGroup';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype CreateClassroomGroupViewProps = PropsWithAnalyticsOptions<PropsWithPopupViewProps<{\r\n classroomId: string;\r\n studentIds: string[];\r\n}>>;\r\n\r\nexport function CreateClassroomGroupView(props: CreateClassroomGroupViewProps): JSX.Element {\r\n const classroom = Flight.useBasicFetch<MockClassroom>(ClassroomRequests.getClassroom(props.classroomId));\r\n\r\n const alerts = useAlerts();\r\n const dispatch = useDispatch();\r\n\r\n const successCallback = (group: MockClassroomGroup) => {\r\n alerts.success(getPhrase('success', {\r\n groupName: group.name,\r\n classroomName: classroom.data.name\r\n }));\r\n\r\n props.closePopup();\r\n };\r\n\r\n const addStudentsToGroup = (group: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.addStudentsToGroup(props.studentIds, group.id, () => {\r\n AnalyticsHelper.logUserAction({\r\n id: group.id,\r\n studentCount: props.studentIds.length\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Associate,\r\n descriptor: AssocDescriptor.User\r\n }));\r\n\r\n successCallback(group);\r\n }));\r\n };\r\n\r\n const saveGroupToClassroom = (group: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.addGroupToClassroom(\r\n group,\r\n props.classroomId,\r\n (newGroup: MockClassroomGroup) => {\r\n AnalyticsHelper.logUserAction({\r\n id: newGroup.id,\r\n classroomId: props.classroomId\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Create\r\n }));\r\n\r\n if (props.studentIds?.length) {\r\n addStudentsToGroup(newGroup);\r\n return;\r\n }\r\n\r\n successCallback(newGroup);\r\n }, () => {\r\n // TODO: Handle possible errors once we have a server side\r\n alerts.error(getPhrase('error'));\r\n }\r\n ));\r\n };\r\n\r\n return (\r\n <Popup title={getPhrase('title')} closePopup={props.closePopup} showLoadingSpinner={!classroom.data}>\r\n <EditClassroomGroupDetails\r\n saveGroup={saveGroupToClassroom}\r\n onClickCancel={props.closePopup}\r\n />\r\n </Popup>\r\n );\r\n}"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[32],{1022:function(e,a,t){e.exports={classroomList:"_26s7s",caretUp:"_2o9ER"}},1077:function(e,a,t){e.exports={toggleAction:"_2dgc9",actionsContainer:"_23R73"}},1078:function(e,a,t){e.exports={pinnedHeading:"_2RJcZ",othersHeading:"_11c0p",classroom:"OpuFd"}},1308:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),o=t(61),s=t(14),c=t(7),l=t(73),i=t(13),m=t(55),u=t(824),f=t(825),p=t(235),d=t(241),g=t(51),y=t(5),E=t(10),b=t(959),v=t(960),h=t(1077),C=t.n(h),S=t(40),N=t(3);function k(e,a){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,r=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(t.push(s.value),!a||t.length!==a);n=!0);}catch(e){r=!0,o=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw o}}return t}(e,a)||function(e,a){if(!e)return;if("string"==typeof e)return w(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return w(e,a)}(e,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}var O=c.a.encloseNamespace("classrooms.classroomItem"),A=function(e){return{application:y.a.CLASSROOMS,action:E.a.Classrooms.CLASSROOM,args:[e]}},x=function(e){return{application:y.a.CLASSROOMS,action:E.a.Classrooms.DELETE_CLASSROOM,args:[e]}};function L(e){var a,t=k(r.a.useState(!1),2),n=t[0],o=t[1],s=[{text:O("rename"),appLink:(a=e.classroom.id,{application:y.a.CLASSROOMS,action:E.a.Classrooms.EDIT_CLASSROOM,args:[a]}),onClick:function(){S.a.logUserAction({id:e.classroom.id},{entity:N.d.Classroom,actionType:N.n.Edit,location:N.j.ClassroomsListItem,workflowPhase:N.o.Start})}},{text:O("delete"),appLink:x(e.classroom.id),onClick:function(){S.a.logUserAction({id:e.classroom.id},{entity:N.d.Classroom,actionType:N.n.Delete,location:N.j.ClassroomsListItem,workflowPhase:N.o.Start})}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"border border-dark position-relative p-2"},r.a.createElement("div",{className:"d-flex justify-content-between pb-5"},r.a.createElement(b.a,{isActive:e.classroom.isFavourited,onToggle:e.onToggleStar,invisible:n}),r.a.createElement(f.a,{onClick:function(){return o(!0)}},r.a.createElement(m.a,{svgName:i.b.Edit}))),r.a.createElement(g.a,{appLink:A(e.classroom.id)},r.a.createElement("h3",{className:"h6 mb-0"},n?r.a.createElement(r.a.Fragment,null," "):e.classroom.name)),n&&r.a.createElement("div",{className:"".concat(C.a.actionsContainer," ml-n2 w-100")},r.a.createElement(v.a,{actions:s}))))}var j=t(2);function T(){return r.a.createElement("div",{className:"text-center pt-5"},r.a.createElement("img",{style:{width:"200px",height:"200px"},className:"pb-3",src:"/images/empty-states/classrooms-empty.png",role:"presentation",alt:""}),r.a.createElement("h2",{className:"h6"},r.a.createElement(l.b,{phrase:"emptyStateHeading"})),r.a.createElement("p",{className:"mb-3"},r.a.createElement(l.b,{phrase:"emptyStateInfo"})),r.a.createElement(p.a,{className:"btn btn-dark",onClick:function(){j.a.AppLinkHelper.trigger({application:y.a.CLASSROOMS,action:E.a.Classrooms.NEW_CLASSROOM})},svgName:i.b.Plus},r.a.createElement(l.b,{phrase:"createNew"})))}var _=t(1022),I=t.n(_),R=t(1078),M=t.n(R);function F(e){var a=e.showOtherClassrooms,t=Object.assign(Object.assign({},I.a),M.a);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"partial-loading-background mb-2 ".concat(t.pinnedHeading)}),r.a.createElement("ul",{className:"list-unstyled d-flex flex-wrap mx-n2 ".concat(t.classroomList)},Array(2).fill(null).map((function(e,a){return r.a.createElement("li",{key:a,className:"partial-loading-background ".concat(t.classroom)})}))),r.a.createElement("div",{className:"partial-loading-background mb-2 ".concat(t.othersHeading)}),a&&r.a.createElement("ul",{className:"list-unstyled d-flex flex-wrap mx-n2 ".concat(t.classroomList)},Array(13).fill(null).map((function(e,a){return r.a.createElement("li",{key:a,className:"partial-loading-background ".concat(t.classroom)})}))))}var U=t(237);function P(e,a){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,r=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(t.push(s.value),!a||t.length!==a);n=!0);}catch(e){r=!0,o=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw o}}return t}(e,a)||function(e,a){if(!e)return;if("string"==typeof e)return H(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return H(e,a)}(e,a)||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 H(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}t.d(a,"ClassroomsView",(function(){return J}));var D=c.a.encloseNamespace("classrooms.classrooms"),W={application:y.a.CLASSROOMS,action:E.a.Classrooms.NEW_CLASSROOM};function J(){var e=P(r.a.useState(!1),2),a=e[0],t=e[1],n=P(r.a.useState([]),2),c=n[0],g=n[1],y=P(r.a.useState([]),2),E=y[0],b=y[1];Object(U.a)(D("pageTitle"));var v=Object(o.useDispatch)(),h=Object(u.a)(),C=s.a.useBasicFetch(d.a.getAll());function k(e){e.isFavourited?s.a.fetch(v,d.a.unstarClassroom(e,(function(){S.a.logUserAction({id:e.id},{location:N.j.ClassroomsListItem,actionType:N.n.Favourite,descriptor:N.m.Off,entity:N.d.Classroom,workflowPhase:N.o.Complete}),h.success(D("unstarSuccess",{classroomName:e.name}))}),(function(){h.error(D("unstarError",{classroomName:e.name}))}))):s.a.fetch(v,d.a.starClassroom(e,(function(){S.a.logUserAction({id:e.id},{location:N.j.ClassroomsListItem,actionType:N.n.Favourite,descriptor:N.m.On,entity:N.d.Classroom,workflowPhase:N.o.Complete}),h.success(D("starSuccess",{classroomName:e.name}))}),(function(){h.error(D("starError",{classroomName:e.name}))})))}return r.a.useEffect((function(){var e;if(null===(e=C.data)||void 0===e?void 0:e.length){var a=[],n=[];C.data.forEach((function(e){e.isFavourited?a.push(e):n.push(e)})),a.length||t(!0),g(a),b(n)}}),[C.data]),r.a.createElement(l.a.Provider,{value:"classrooms.classrooms"},r.a.createElement("div",{className:"d-flex align-items-center p-3 pt-0"},r.a.createElement("h1",{className:"flex-fill"},r.a.createElement(l.b,{phrase:"heading"})),r.a.createElement(p.a,{className:"btn btn-outline-dark",svgName:i.b.Plus,onClick:function(){S.a.logUserAction({},{actionType:N.n.Create,entity:N.d.Classroom,workflowPhase:N.o.Start,location:N.j.ClassroomsList})},appLink:W},r.a.createElement(l.b,{phrase:"newClassroom"}))),C.data?C.data.length?r.a.createElement(r.a.Fragment,null,r.a.createElement("h2",{className:"h6"},r.a.createElement(l.b,{phrase:"myClassrooms"})),r.a.createElement("ul",{className:"list-unstyled d-flex flex-wrap mx-n2 ".concat(I.a.classroomList)},c.map((function(e){return r.a.createElement("li",{key:e.id},r.a.createElement(L,{onToggleStar:function(){return k(e)},classroom:e}))}))),E&&r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{className:"cursor-pointer d-inline-block",onClick:function(){return t(!a)}},r.a.createElement("h2",{className:"h6 d-flex align-items-center"},r.a.createElement(l.b,{phrase:"otherClassrooms"}),r.a.createElement(m.a,{className:"d-inline-block svg-container ".concat(a?I.a.caretUp:""),svgName:i.b.Caret}))),a&&r.a.createElement("ul",{className:"list-unstyled d-flex flex-wrap mx-n2 ".concat(I.a.classroomList)},E.map((function(e){return r.a.createElement("li",{key:e.id},r.a.createElement(L,{onToggleStar:function(){return k(e)},classroom:e}))}))))):r.a.createElement(T,null):r.a.createElement(F,{showOtherClassrooms:a}))}},824:function(e,a,t){"use strict";t.d(a,"a",(function(){return s}));var n=t(153),r=t(48),o=t(52),s=function(){var e=Object(n.a)(o.a.ALERT);return{success:function(a){e.success(a)()},error:function(a){e.error(a)()},warning:function(a){e.createAlert({type:r.a.Warning,heading:r.c.Warning,message:a})}}}},825:function(e,a,t){"use strict";t.d(a,"a",(function(){return r}));var n=t(0);function r(e){return n.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(a){return"Enter"===a.key&&e.onClick(a)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},959:function(e,a,t){"use strict";t.d(a,"a",(function(){return l}));var n=t(0),r=t.n(n),o=t(825),s=t(55),c=t(13);function l(e){var a=e.isActive,t=e.onToggle,n=e.invisible,l="".concat(a?"text-yellow":""," ").concat(n?"invisible":"");return r.a.createElement(o.a,{onClick:t,className:l},r.a.createElement(s.a,{svgName:a?c.b.Star:c.b.StarOutline,size:s.b.Large}))}},960:function(e,a,t){"use strict";t.d(a,"a",(function(){return l}));var n=t(0),r=t.n(n),o=t(51),s=t(961),c=t.n(s);function l(e){return r.a.createElement("div",{className:"w-100 d-flex flex-column"},e.actions.map((function(e){return r.a.createElement(o.a,{key:e.text,className:"".concat(c.a.option," py-1"),appLink:e.appLink,onClick:e.onClick||function(){}},r.a.createElement("span",{className:"pl-2"},e.text))})))}},961:function(e,a,t){e.exports={option:"_2LGMe"}}}]);
@@ -369,29 +369,27 @@ var ClassroomGroupValidationSchema = Object(yup__WEBPACK_IMPORTED_MODULE_0__["ob
369
369
 
370
370
  /***/ }),
371
371
 
372
- /***/ "./src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.tsx":
373
- /*!***************************************************************************************!*\
374
- !*** ./src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.tsx ***!
375
- \***************************************************************************************/
376
- /*! exports provided: CreateClassroomGroupView */
372
+ /***/ "./src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.tsx":
373
+ /*!***********************************************************************************!*\
374
+ !*** ./src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.tsx ***!
375
+ \***********************************************************************************/
376
+ /*! exports provided: EditClassroomGroupView */
377
377
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
378
378
 
379
379
  "use strict";
380
380
  __webpack_require__.r(__webpack_exports__);
381
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateClassroomGroupView", function() { return CreateClassroomGroupView; });
381
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditClassroomGroupView", function() { return EditClassroomGroupView; });
382
382
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
383
383
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
384
384
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
385
385
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
386
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
387
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
386
+ /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
387
+ /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
388
388
  /* harmony import */ var _libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/popup/Popup */ "../../libs/shared/src/components/popup/Popup.tsx");
389
389
  /* harmony import */ var _libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseAlerts */ "../../libs/shared/src/hooks/UseAlerts.ts");
390
390
  /* harmony import */ var apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! apps/classrooms/flight-requests/ClassroomRequests */ "./src/apps/classrooms/flight-requests/ClassroomRequests.ts");
391
391
  /* harmony import */ var apps_classrooms_components_edit_classroom_group_details_EditClassroomGroupDetails__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails */ "./src/apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails.tsx");
392
392
  /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
393
- /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
394
-
395
393
 
396
394
 
397
395
 
@@ -401,63 +399,38 @@ __webpack_require__.r(__webpack_exports__);
401
399
 
402
400
 
403
401
 
404
- var namespace = 'classrooms.createClassroomGroup';
405
- var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(namespace);
406
- function CreateClassroomGroupView(props) {
407
- var classroom = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__["Flight"].useBasicFetch(apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__["ClassroomRequests"].getClassroom(props.classroomId));
402
+ var namespace = 'classrooms.editClassroomGroup';
403
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].encloseNamespace(namespace);
404
+ function EditClassroomGroupView(props) {
405
+ var classroom = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__["ClassroomRequests"].getClassroom(props.classroomId));
408
406
  var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_5__["useAlerts"])();
409
407
  var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
410
408
 
411
- var successCallback = function successCallback(group) {
412
- alerts.success(getPhrase('success', {
413
- groupName: group.name,
414
- classroomName: classroom.data.name
415
- }));
416
- props.closePopup();
417
- };
418
-
419
- var addStudentsToGroup = function addStudentsToGroup(group) {
420
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__["Flight"].fetch(dispatch, apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__["ClassroomRequests"].addStudentsToGroup(props.studentIds, group.id, function () {
421
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].logUserAction({
422
- id: group.id,
423
- studentCount: props.studentIds.length
424
- }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
425
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["UserAction"].Associate,
426
- descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["AssocDescriptor"].User
427
- }));
428
- successCallback(group);
429
- }));
430
- };
431
-
432
- var saveGroupToClassroom = function saveGroupToClassroom(group) {
433
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__["Flight"].fetch(dispatch, apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__["ClassroomRequests"].addGroupToClassroom(group, props.classroomId, function (newGroup) {
434
- var _a;
435
-
436
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].logUserAction({
437
- id: newGroup.id,
438
- classroomId: props.classroomId
439
- }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
440
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["UserAction"].Create
409
+ var saveGroup = function saveGroup(editedGroup) {
410
+ _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, apps_classrooms_flight_requests_ClassroomRequests__WEBPACK_IMPORTED_MODULE_6__["ClassroomRequests"].editGroup(editedGroup, classroom.data, function () {
411
+ alerts.success(getPhrase('success', {
412
+ groupName: editedGroup.name
441
413
  }));
442
-
443
- if ((_a = props.studentIds) === null || _a === void 0 ? void 0 : _a.length) {
444
- addStudentsToGroup(newGroup);
445
- return;
446
- }
447
-
448
- successCallback(newGroup);
414
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].logUserAction(editedGroup, props.analyticsOptions);
415
+ props.closePopup();
449
416
  }, function () {
450
417
  // TODO: Handle possible errors once we have a server side
451
- alerts.error(getPhrase('error'));
418
+ alerts.error(getPhrase('error', {
419
+ groupName: group.name
420
+ }));
452
421
  }));
453
422
  };
454
423
 
424
+ var group = classroom.data ? classroom.data.groups.find(function (g) {
425
+ return g.id === props.groupId;
426
+ }) : null;
455
427
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_4__["Popup"], {
456
428
  title: getPhrase('title'),
457
429
  closePopup: props.closePopup,
458
- showLoadingSpinner: !classroom.data
430
+ showLoadingSpinner: !group
459
431
  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_classrooms_components_edit_classroom_group_details_EditClassroomGroupDetails__WEBPACK_IMPORTED_MODULE_7__["EditClassroomGroupDetails"], {
460
- saveGroup: saveGroupToClassroom,
432
+ saveGroup: saveGroup,
433
+ group: group,
461
434
  onClickCancel: props.closePopup
462
435
  }));
463
436
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/classroom-group-details-form/classroom-group-details-form.scss?365a","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/colour-picker/ColourPicker.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/colour-picker/colour-picker.scss?adf9","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/enums/GroupColour.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/utils/GroupHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/validation/ClassroomGroupValidationSchema.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.tsx"],"names":[],"mappings":"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","file":"scripts/32.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};","import React from 'react';\r\nimport { Form } from 'formik';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\r\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ColourPicker } from 'apps/classrooms/components/colour-picker/ColourPicker';\r\n\r\nimport styles from './classroom-group-details-form.scss';\r\n\r\nconst namespace = 'classrooms.classroomGroupDetailsForm';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface ClassroomGroupDetailsFormProps {\r\n isNew: boolean;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function ClassroomGroupDetailsForm(props: ClassroomGroupDetailsFormProps): JSX.Element {\r\n const formikProps = useFormikContextWrapper<MockClassroomGroup>();\r\n\r\n return (\r\n <>\r\n <div>\r\n <h2 className='w-50 d-inline-block h6'><Text namespace={namespace} phrase='nameLabel' /></h2>\r\n <h2 className='d-inline-block h6'><Text namespace={namespace} phrase='colourLabel' /></h2>\r\n </div>\r\n\r\n <Form>\r\n <div className='pb-3 d-flex'>\r\n <div className='w-50'>\r\n <FormField\r\n type='text'\r\n name='name'\r\n id='name'\r\n className={`${styles.groupNameInput}`}\r\n placeholder={getPhrase('groupNamePlaceholder')}\r\n autoFocus\r\n value={formikProps.values.name}\r\n />\r\n </div>\r\n <div className='form-group'>\r\n <ColourPicker\r\n onSelect={c => formikProps.setFieldValue('colour', c)}\r\n selection={formikProps.values.colour}\r\n id={`${props.isNew ? 'create' : 'edit'}-classroom-group`}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className='btn-container d-flex justify-content-end'>\r\n <button type='button' className='btn btn-link mr-2' onClick={props.onClickCancel}>\r\n <Text namespace={namespace} phrase='cancel' />\r\n </button>\r\n <FormButtons isNew={props.isNew} />\r\n </div>\r\n </Form>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"groupNameInput\":\"cv--groupNameInput--3hGvq\"};","import React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\nimport { mapColourToClassName } from 'apps/classrooms/utils/GroupHelper';\r\n\r\nimport styles from './colour-picker.scss';\r\n\r\ninterface ColourPickerProps {\r\n id: string;\r\n onSelect?: (colour: string) => void;\r\n selection?: GroupColour;\r\n disabled?: boolean;\r\n}\r\n\r\nColourPicker.defaultProps = {\r\n selection: GroupColour.White,\r\n onSelect: () => {}\r\n};\r\n\r\nexport function ColourPicker(props: ColourPickerProps): JSX.Element {\r\n function getToggleButtonClass(): string {\r\n const baseClass = `${styles.dropdownToggle} outline-none p-0 d-flex align-items-center text-decoration-none`;\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n\r\n return `${baseClass} ${disabledClass}`;\r\n }\r\n\r\n function getOptionClass(colour: GroupColour): string {\r\n const baseClass = `${styles.colourOption} position-relative`;\r\n const borderClass = colour === GroupColour.White ? 'border border-dark' : '';\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n const colorClass = mapColourToClassName(colour);\r\n\r\n return `${baseClass} ${borderClass} ${disabledClass} ${colorClass}`;\r\n }\r\n\r\n const dropdownProps: HashObject = {};\r\n if (props.disabled)\r\n dropdownProps.show = false;\r\n\r\n return (\r\n <Dropdown {...dropdownProps}>\r\n <Dropdown.Toggle id={props.id} variant='link' className={getToggleButtonClass()}>\r\n <div className={`border border-secondary rounded bg-white ${styles.colourButton}`}>\r\n <div className={`px-0 py-1 rounded ${mapColourToClassName(props.selection)}`}>\r\n &nbsp;\r\n </div>\r\n </div>\r\n\r\n {!props.disabled &&\r\n <SvgContainer svgName={cvSvgLibrary.Caret} />\r\n }\r\n </Dropdown.Toggle>\r\n\r\n <Dropdown.Menu>\r\n <ul className={`${styles.colourList} list-unstyled d-flex flex-wrap px-2 m-0`}>\r\n {Object.keys(GroupColour).map(colourKey => {\r\n const colour = (GroupColour as any)[colourKey];\r\n\r\n return (\r\n <li key={`${props.id}:${colour}`} className='m-1'>\r\n <DivButton\r\n onClick={() => props.onSelect(colour)}\r\n className={getOptionClass(colour)}\r\n >\r\n {colour === GroupColour.White\r\n ? <div className={styles.lineThrough} />\r\n : <>&nbsp;</>\r\n }\r\n </DivButton>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownToggle\":\"cv--dropdownToggle--347DY\",\"colourButton\":\"cv--colourButton--1rKvE\",\"colourList\":\"cv--colourList--328-w\",\"colourOption\":\"cv--colourOption--1Tw7u\",\"lineThrough\":\"cv--lineThrough--18oZq\"};","import React from 'react';\r\n\r\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\nimport { ClassroomGroupValidationSchema } from 'apps/classrooms/validation/ClassroomGroupValidationSchema';\r\nimport { ClassroomGroupDetailsForm } from 'apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm';\r\n\r\ninterface EditClassroomGroupDetailsProps {\r\n group?: MockClassroomGroup;\r\n saveGroup: (group: MockClassroomGroup) => void;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function EditClassroomGroupDetails(props: EditClassroomGroupDetailsProps): React.ReactElement {\r\n const { group, saveGroup, onClickCancel } = props;\r\n\r\n const initialValues: MockClassroomGroup = {\r\n id: group?.id,\r\n name: group?.name,\r\n colour: group?.colour,\r\n students: []\r\n };\r\n\r\n return (\r\n <FormWrapper<MockClassroomGroup>\r\n initialValues={initialValues}\r\n validationSchema={ClassroomGroupValidationSchema}\r\n onSubmit={saveGroup}\r\n >\r\n <ClassroomGroupDetailsForm isNew={!group} onClickCancel={onClickCancel} />\r\n </FormWrapper>\r\n );\r\n}","export enum GroupColour {\r\n White = 'white',\r\n Pink = 'pink',\r\n YellowOrange = 'yellow-orange',\r\n Emerald = 'emerald',\r\n PuertoRico = 'puerto-rico',\r\n PictonBlue = 'picton-blue',\r\n EastSide = 'east-side',\r\n Portage = 'portage'\r\n}","import { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\n\r\nexport function mapColourToClassName(groupName: GroupColour): string {\r\n return `bg-${groupName}`;\r\n}","import { object, string } from 'yup';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { GroupColour } from '../enums/GroupColour';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('classrooms.classroomValidation');\r\n\r\nexport const ClassroomGroupValidationSchema = object().shape({\r\n name: string()\r\n .max(255, () => getPhrase('nameExceeds'))\r\n .required(() => getPhrase('nameRequired'))\r\n .default(''),\r\n colour: string()\r\n .required(() => getPhrase('colourRequired'))\r\n .default(GroupColour.White)\r\n});","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PopupViewProps, PropsWithAnalyticsOptions, PropsWithPopupViewProps } from 'libs/shared/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\r\nimport { MockClassroom } from 'apps/user-manager/interfaces';\r\nimport { EditClassroomGroupDetails } from 'apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { UserAction, AssocDescriptor } from 'libs/analytics/interfaces';\r\n\r\nconst namespace = 'classrooms.createClassroomGroup';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype CreateClassroomGroupViewProps = PropsWithAnalyticsOptions<PropsWithPopupViewProps<{\r\n classroomId: string;\r\n studentIds: string[];\r\n}>>;\r\n\r\nexport function CreateClassroomGroupView(props: CreateClassroomGroupViewProps): JSX.Element {\r\n const classroom = Flight.useBasicFetch<MockClassroom>(ClassroomRequests.getClassroom(props.classroomId));\r\n\r\n const alerts = useAlerts();\r\n const dispatch = useDispatch();\r\n\r\n const successCallback = (group: MockClassroomGroup) => {\r\n alerts.success(getPhrase('success', {\r\n groupName: group.name,\r\n classroomName: classroom.data.name\r\n }));\r\n\r\n props.closePopup();\r\n };\r\n\r\n const addStudentsToGroup = (group: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.addStudentsToGroup(props.studentIds, group.id, () => {\r\n AnalyticsHelper.logUserAction({\r\n id: group.id,\r\n studentCount: props.studentIds.length\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Associate,\r\n descriptor: AssocDescriptor.User\r\n }));\r\n\r\n successCallback(group);\r\n }));\r\n };\r\n\r\n const saveGroupToClassroom = (group: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.addGroupToClassroom(\r\n group,\r\n props.classroomId,\r\n (newGroup: MockClassroomGroup) => {\r\n AnalyticsHelper.logUserAction({\r\n id: newGroup.id,\r\n classroomId: props.classroomId\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Create\r\n }));\r\n\r\n if (props.studentIds?.length) {\r\n addStudentsToGroup(newGroup);\r\n return;\r\n }\r\n\r\n successCallback(newGroup);\r\n }, () => {\r\n // TODO: Handle possible errors once we have a server side\r\n alerts.error(getPhrase('error'));\r\n }\r\n ));\r\n };\r\n\r\n return (\r\n <Popup title={getPhrase('title')} closePopup={props.closePopup} showLoadingSpinner={!classroom.data}>\r\n <EditClassroomGroupDetails\r\n saveGroup={saveGroupToClassroom}\r\n onClickCancel={props.closePopup}\r\n />\r\n </Popup>\r\n );\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/div-button/DivButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/classroom-group-details-form/classroom-group-details-form.scss?365a","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/colour-picker/ColourPicker.tsx","webpack://@clickview/lite/./src/apps/classrooms/components/colour-picker/colour-picker.scss?adf9","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/enums/GroupColour.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/utils/GroupHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/validation/ClassroomGroupValidationSchema.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.tsx"],"names":[],"mappings":"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","file":"scripts/32.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\ninterface DivButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n onClick: (...args: any) => any;\r\n}\r\n\r\n/**\r\n * This element lets us use `div` elements as buttons without losing the accessibility of\r\n * a regular HTML button element\r\n */\r\nexport function DivButton(props: React.PropsWithChildren<DivButtonProps>): JSX.Element {\r\n return (\r\n <div\r\n role='button'\r\n tabIndex={0}\r\n className={`${props.className ? props.className : ''} cursor-pointer`}\r\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && props.onClick(e)}\r\n onClick={props.onClick}\r\n style={props.style ? props.style : {}}\r\n >\r\n {props.children}\r\n </div>\r\n );\r\n}","import { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};","import React from 'react';\r\nimport { Form } from 'formik';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\r\nimport { useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { ColourPicker } from 'apps/classrooms/components/colour-picker/ColourPicker';\r\n\r\nimport styles from './classroom-group-details-form.scss';\r\n\r\nconst namespace = 'classrooms.classroomGroupDetailsForm';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface ClassroomGroupDetailsFormProps {\r\n isNew: boolean;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function ClassroomGroupDetailsForm(props: ClassroomGroupDetailsFormProps): JSX.Element {\r\n const formikProps = useFormikContextWrapper<MockClassroomGroup>();\r\n\r\n return (\r\n <>\r\n <div>\r\n <h2 className='w-50 d-inline-block h6'><Text namespace={namespace} phrase='nameLabel' /></h2>\r\n <h2 className='d-inline-block h6'><Text namespace={namespace} phrase='colourLabel' /></h2>\r\n </div>\r\n\r\n <Form>\r\n <div className='pb-3 d-flex'>\r\n <div className='w-50'>\r\n <FormField\r\n type='text'\r\n name='name'\r\n id='name'\r\n className={`${styles.groupNameInput}`}\r\n placeholder={getPhrase('groupNamePlaceholder')}\r\n autoFocus\r\n value={formikProps.values.name}\r\n />\r\n </div>\r\n <div className='form-group'>\r\n <ColourPicker\r\n onSelect={c => formikProps.setFieldValue('colour', c)}\r\n selection={formikProps.values.colour}\r\n id={`${props.isNew ? 'create' : 'edit'}-classroom-group`}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className='btn-container d-flex justify-content-end'>\r\n <button type='button' className='btn btn-link mr-2' onClick={props.onClickCancel}>\r\n <Text namespace={namespace} phrase='cancel' />\r\n </button>\r\n <FormButtons isNew={props.isNew} />\r\n </div>\r\n </Form>\r\n </>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"groupNameInput\":\"cv--groupNameInput--3hGvq\"};","import React from 'react';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\nimport { mapColourToClassName } from 'apps/classrooms/utils/GroupHelper';\r\n\r\nimport styles from './colour-picker.scss';\r\n\r\ninterface ColourPickerProps {\r\n id: string;\r\n onSelect?: (colour: string) => void;\r\n selection?: GroupColour;\r\n disabled?: boolean;\r\n}\r\n\r\nColourPicker.defaultProps = {\r\n selection: GroupColour.White,\r\n onSelect: () => {}\r\n};\r\n\r\nexport function ColourPicker(props: ColourPickerProps): JSX.Element {\r\n function getToggleButtonClass(): string {\r\n const baseClass = `${styles.dropdownToggle} outline-none p-0 d-flex align-items-center text-decoration-none`;\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n\r\n return `${baseClass} ${disabledClass}`;\r\n }\r\n\r\n function getOptionClass(colour: GroupColour): string {\r\n const baseClass = `${styles.colourOption} position-relative`;\r\n const borderClass = colour === GroupColour.White ? 'border border-dark' : '';\r\n const disabledClass = props.disabled ? 'cursor-default' : '';\r\n const colorClass = mapColourToClassName(colour);\r\n\r\n return `${baseClass} ${borderClass} ${disabledClass} ${colorClass}`;\r\n }\r\n\r\n const dropdownProps: HashObject = {};\r\n if (props.disabled)\r\n dropdownProps.show = false;\r\n\r\n return (\r\n <Dropdown {...dropdownProps}>\r\n <Dropdown.Toggle id={props.id} variant='link' className={getToggleButtonClass()}>\r\n <div className={`border border-secondary rounded bg-white ${styles.colourButton}`}>\r\n <div className={`px-0 py-1 rounded ${mapColourToClassName(props.selection)}`}>\r\n &nbsp;\r\n </div>\r\n </div>\r\n\r\n {!props.disabled &&\r\n <SvgContainer svgName={cvSvgLibrary.Caret} />\r\n }\r\n </Dropdown.Toggle>\r\n\r\n <Dropdown.Menu>\r\n <ul className={`${styles.colourList} list-unstyled d-flex flex-wrap px-2 m-0`}>\r\n {Object.keys(GroupColour).map(colourKey => {\r\n const colour = (GroupColour as any)[colourKey];\r\n\r\n return (\r\n <li key={`${props.id}:${colour}`} className='m-1'>\r\n <DivButton\r\n onClick={() => props.onSelect(colour)}\r\n className={getOptionClass(colour)}\r\n >\r\n {colour === GroupColour.White\r\n ? <div className={styles.lineThrough} />\r\n : <>&nbsp;</>\r\n }\r\n </DivButton>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownToggle\":\"cv--dropdownToggle--347DY\",\"colourButton\":\"cv--colourButton--1rKvE\",\"colourList\":\"cv--colourList--328-w\",\"colourOption\":\"cv--colourOption--1Tw7u\",\"lineThrough\":\"cv--lineThrough--18oZq\"};","import React from 'react';\r\n\r\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\nimport { ClassroomGroupValidationSchema } from 'apps/classrooms/validation/ClassroomGroupValidationSchema';\r\nimport { ClassroomGroupDetailsForm } from 'apps/classrooms/components/classroom-group-details-form/ClassroomGroupDetailsForm';\r\n\r\ninterface EditClassroomGroupDetailsProps {\r\n group?: MockClassroomGroup;\r\n saveGroup: (group: MockClassroomGroup) => void;\r\n onClickCancel: () => void;\r\n}\r\n\r\nexport function EditClassroomGroupDetails(props: EditClassroomGroupDetailsProps): React.ReactElement {\r\n const { group, saveGroup, onClickCancel } = props;\r\n\r\n const initialValues: MockClassroomGroup = {\r\n id: group?.id,\r\n name: group?.name,\r\n colour: group?.colour,\r\n students: []\r\n };\r\n\r\n return (\r\n <FormWrapper<MockClassroomGroup>\r\n initialValues={initialValues}\r\n validationSchema={ClassroomGroupValidationSchema}\r\n onSubmit={saveGroup}\r\n >\r\n <ClassroomGroupDetailsForm isNew={!group} onClickCancel={onClickCancel} />\r\n </FormWrapper>\r\n );\r\n}","export enum GroupColour {\r\n White = 'white',\r\n Pink = 'pink',\r\n YellowOrange = 'yellow-orange',\r\n Emerald = 'emerald',\r\n PuertoRico = 'puerto-rico',\r\n PictonBlue = 'picton-blue',\r\n EastSide = 'east-side',\r\n Portage = 'portage'\r\n}","import { GroupColour } from 'apps/classrooms/enums/GroupColour';\r\n\r\nexport function mapColourToClassName(groupName: GroupColour): string {\r\n return `bg-${groupName}`;\r\n}","import { object, string } from 'yup';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { GroupColour } from '../enums/GroupColour';\r\n\r\nconst getPhrase = LanguageService.encloseNamespace('classrooms.classroomValidation');\r\n\r\nexport const ClassroomGroupValidationSchema = object().shape({\r\n name: string()\r\n .max(255, () => getPhrase('nameExceeds'))\r\n .required(() => getPhrase('nameRequired'))\r\n .default(''),\r\n colour: string()\r\n .required(() => getPhrase('colourRequired'))\r\n .default(GroupColour.White)\r\n});","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PopupViewProps, PropsWithPopupViewProps, PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockClassroomGroup } from 'shared/interfaces/mocks';\r\n\r\nimport { MockClassroom } from 'apps/user-manager/interfaces';\r\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\r\nimport { EditClassroomGroupDetails } from 'apps/classrooms/components/edit-classroom-group-details/EditClassroomGroupDetails';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nconst namespace = 'classrooms.editClassroomGroup';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype EditClassroomGroupViewProps = PropsWithPopupViewProps<PropsWithAnalyticsOptions<{\r\n classroomId: string;\r\n groupId: string;\r\n}>>;\r\n\r\nexport function EditClassroomGroupView(props: EditClassroomGroupViewProps): JSX.Element {\r\n const classroom = Flight.useBasicFetch<MockClassroom>(ClassroomRequests.getClassroom(props.classroomId));\r\n\r\n const alerts = useAlerts();\r\n const dispatch = useDispatch();\r\n\r\n const saveGroup = (editedGroup: MockClassroomGroup) => {\r\n Flight.fetch(dispatch, ClassroomRequests.editGroup(editedGroup, classroom.data, () => {\r\n alerts.success(getPhrase('success', { groupName: editedGroup.name }));\r\n\r\n AnalyticsHelper.logUserAction(editedGroup, props.analyticsOptions);\r\n\r\n props.closePopup();\r\n }, () => {\r\n // TODO: Handle possible errors once we have a server side\r\n alerts.error(getPhrase('error', { groupName: group.name }));\r\n }));\r\n };\r\n\r\n const group = classroom.data\r\n ? classroom.data.groups.find(g => g.id === props.groupId)\r\n : null;\r\n\r\n return (\r\n <Popup title={getPhrase('title')} closePopup={props.closePopup} showLoadingSpinner={!group}>\r\n <EditClassroomGroupDetails\r\n saveGroup={saveGroup}\r\n group={group}\r\n onClickCancel={props.closePopup}\r\n />\r\n </Popup>\r\n );\r\n}"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[33],{1002:function(e,a,t){e.exports={level:"Atgxo"}},1003:function(e,a,t){"use strict";t.d(a,"a",(function(){return c}));var n=t(0),r=t.n(n);function s(){return r.a.createElement("li",{className:"w-100 d-flex align-items-center py-2"},r.a.createElement("div",{className:"mx-4 partial-loading-background",style:{width:"21px",height:"21px"}}),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("div",{className:"partial-loading-background mr-1 align-middle d-inline-block",style:{width:"180px",height:"28px"}})),r.a.createElement("div",{className:"d-flex"},r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background align-middle d-inline-block",style:{width:"250px",height:"21px"}})),r.a.createElement("div",{className:"d-flex w-50 pl-1"},r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"100px",height:"21px"}})),r.a.createElement("div",{className:"w-50"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"100px",height:"21px"}}))))))}function c(){return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"d-flex justify-content-between align-items-center mb-3"},r.a.createElement("div",{className:"mx-4 partial-loading-background",style:{width:"21px",height:"21px"}}),r.a.createElement("div",{className:"d-flex align-items-center"},r.a.createElement("div",{className:"partial-loading-background",style:{width:"140px",height:"35px"}}),r.a.createElement("div",{className:"partial-loading-background ml-2",style:{width:"150px",height:"35px"}}))),r.a.createElement("ul",{className:"m-0 list-unstyled striped-list"},Array(20).fill(null).map((function(e,a){return r.a.createElement(s,{key:a})}))))}},1004:function(e,a,t){"use strict";t.d(a,"a",(function(){return v}));var n=t(0),r=t.n(n),s=t(35),c=t(57),l=t(2),o=t(91),i=t(55),u=t(13),m=t(1005),d=t.n(m);function p(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function h(e,a){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,r=!1,s=void 0;try{for(var c,l=e[Symbol.iterator]();!(n=(c=l.next()).done)&&(t.push(c.value),!a||t.length!==a);n=!0);}catch(e){r=!0,s=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw s}}return t}(e,a)||function(e,a){if(!e)return;if("string"==typeof e)return g(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return g(e,a)}(e,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}function v(e){var a=h(r.a.useState(""),2),t=a[0],n=a[1];r.a.useEffect((function(){var a=o.a.getCurrentRoute().appLink.params;a&&"string"!=typeof a&&a[e.queryParamName]&&n(a[e.queryParamName])}),[]);var m=r.a.useCallback(s.a.debounce((function(a){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=o.a.getCurrentRoute().appLink,n=c.a.omit(t.params,[e.queryParamName]),r=Object.assign(p({},e.queryParamName,a),n);r[e.queryParamName]||delete r[e.queryParamName];l.a.AppLinkHelper.trigger(Object.assign(Object.assign({},t),{params:r}))}(a)}),e.debounceTime),[]);return r.a.createElement("div",{className:"position-relative w-100"},r.a.createElement("input",{name:e.name,type:"text",className:"form-control p-1 w-100 ".concat(e.className||""),id:e.id,autoComplete:"off",placeholder:e.placeholder,"aria-label":"Search",onChange:function(e){n(e.currentTarget.value),m(e.currentTarget.value)},value:t}),r.a.createElement(i.a,{svgName:u.b.Search,className:"".concat(d.a.searchSvg," svg-container cursor-pointer text-secondary")}))}v.defaultProps={debounceTime:300,queryParamName:"query"}},1005:function(e,a,t){e.exports={searchSvg:"Pt-8R"}},1015:function(e,a,t){"use strict";var n=t(0),r=t.n(n),s=t(2),c=t(40),l=t(3),o=t(862),i=t(55),u=t(13),m=t(73),d=t(235),p=t(825),h=t(914),g=t(5),v=t(10),f=t(867),y=t(7),E=t(828),N=t(1002),b=t.n(N),k="userManager.manageStudents";function S(e){var a=e.user,t=e.isChecked,n=e.onToggleCheckbox,i=[{label:y.a.getPhrase(k,"edit"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Edit,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.StudentManagerListItem}),s.a.AppLinkHelper.trigger({application:g.a.USER_MANAGER,action:v.a.UserManager.EDIT_STUDENT,args:[a.id]})}},{label:y.a.getPhrase(k,"enable"),onClick:function(){}},{label:y.a.getPhrase(k,"remove"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.StudentManagerListItem}),s.a.AppLinkHelper.trigger({application:g.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:[a.id],userType:"student"}})},className:"text-danger"}];return r.a.createElement("li",{className:"d-flex align-items-center py-2"},r.a.createElement("div",{className:"px-4"},r.a.createElement(o.a,{id:a.id,name:a.id,checked:t,onChange:n})),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("h2",{className:"h5 m-0 mr-1 d-inline-block align-middle"},a.name," ",a.surname||""),a.username&&r.a.createElement("p",{className:"m-0 d-inline-block align-middle"},"(",a.username,")")),r.a.createElement("div",{className:"d-flex"},r.a.createElement("p",{className:"m-0 w-50 text-truncate"},a.email),r.a.createElement("div",{className:"d-flex w-50 pl-1"},r.a.createElement("div",{className:"w-50"},r.a.createElement(m.b,{namespace:k,phrase:"level"}),r.a.createElement("span",{className:"rounded-pill px-2 ".concat(b.a.level)},a.yearLevel.name)),a.classroom&&r.a.createElement("p",{className:"mb-0 w-50"},a.classroom.name)))),r.a.createElement(E.a,{actions:i,className:"pr-4",actionsDropdownClassName:"btn"}))}function w(e){var a=e.user,t=e.isChecked,n=e.onToggleCheckbox,i=[{label:y.a.getPhrase("userManager.manageTeachers","edit"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Edit,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.TeacherManagerListItem}),s.a.AppLinkHelper.trigger({application:g.a.USER_MANAGER,action:v.a.UserManager.EDIT_TEACHER,args:[a.id]})}},{label:y.a.getPhrase("userManager.manageTeachers","enable"),onClick:function(){}},{label:y.a.getPhrase("userManager.manageTeachers","remove"),onClick:function(){c.a.logUserAction({id:a.id},{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,location:l.j.TeacherManagerListItem}),s.a.AppLinkHelper.trigger({application:g.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:[a.id],userType:"teacher"}})},className:"text-danger"}];return r.a.createElement("li",{className:"d-flex align-items-center py-2"},r.a.createElement("div",{className:"px-4"},r.a.createElement(o.a,{id:a.id,name:a.id,checked:t,onChange:n})),r.a.createElement("div",{className:"d-flex flex-column justify-content-center w-100"},r.a.createElement("div",{className:"pb-1"},r.a.createElement("h2",{className:"h5 m-0 mr-1 d-inline-block align-middle"},a.name," ",a.surname||""),a.username&&r.a.createElement("p",{className:"m-0 d-inline-block align-middle"},"(",a.username,")")),r.a.createElement("div",{className:"d-flex"},r.a.createElement("p",{className:"m-0 w-50 text-truncate"},a.email),r.a.createElement("p",{className:"mb-0 w-50 pl-1 text-center"},a.userRole.name))),r.a.createElement(E.a,{actions:i,className:"pr-4",actionsDropdownClassName:"btn"}))}var T=t(950);t.d(a,"a",(function(){return A}));var x={application:g.a.USER_MANAGER,action:v.a.UserManager.NEW_STUDENT},R={application:g.a.USER_MANAGER,action:v.a.UserManager.NEW_TEACHER};function A(e){var a=Object(h.a)(e.users),t=a.onToggleBulk,r=a.onToggleItem,y=a.getSelected,E=a.isChecked,N=a.bulkChecked;var b=e.userType===f.a.Student,k=b?S:w,A=b?x:R,C=b?"userManager.manageStudents":"userManager.manageTeachers",M=b?v.a.UserManager.STUDENT_UPLOAD_REVIEW:v.a.UserManager.TEACHER_UPLOAD_REVIEW;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex align-items-center pb-3"},n.createElement("div",{className:"px-4"},n.createElement(o.a,{id:"user-manager",name:"user-manager",checked:N,onChange:t})),n.createElement("div",{className:"mr-auto"},!!y().length&&n.createElement(p.a,{onClick:function(){var a,t=y();(null===(a=t)||void 0===a?void 0:a.length)&&(c.a.logUserAction({count:t.length},c.a.mergeOptions(e.analyticsOptions,{actionType:l.n.Delete,entity:l.d.User,workflowPhase:l.o.Start,descriptor:1===t.length?l.k.Single:l.k.Bulk})),s.a.AppLinkHelper.trigger({application:g.a.USER_MANAGER,action:v.a.UserManager.REMOVE_USERS,params:{userIds:t,userType:e.userType}}))},className:"cursor-pointer"},n.createElement(i.a,{svgName:u.b.Delete}))),n.createElement(T.a,{action:M,userType:e.userType,yearLevels:e.yearLevels,userRoles:e.userRoles}),n.createElement(d.a,{className:"btn btn-outline-dark ml-2",svgName:u.b.Plus,onClick:function(){c.a.logUserAction({},c.a.mergeOptions(e.analyticsOptions,{workflowPhase:l.o.Start,actionType:l.n.Create,entity:l.d.User})),s.a.AppLinkHelper.trigger(A)}},n.createElement(m.b,{namespace:C,phrase:"addNew"}))),n.createElement("ul",{className:"m-0 list-unstyled striped-list"},e.users.map((function(e){return n.createElement(k,{key:e.id,user:e,onToggleCheckbox:function(){return r(e.id)},isChecked:E(e.id)})}))))}},1323:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),s=t(14),c=t(7),l=t(237),o=t(837),i=t(91),u=t(73),m=t(3),d=t(829),p=t(1015),h=t(1003),g=t(840),v=t(896),f=t(1004),y=t(867),E=t(13),N=t(235),b=t(927);function k(){return r.a.createElement(u.a.Provider,{value:"userManager.schoolTeacherManagerEmptyState"},r.a.createElement("div",{className:"text-center py-5"},r.a.createElement("p",null,"TODO: add an actual empty state image once bev has one"),r.a.createElement("img",{src:"/favicon.ico",className:"pb-3"}),r.a.createElement("h2",{className:"h6"},r.a.createElement(u.b,{phrase:"heading"})),r.a.createElement("p",{className:"w-33 mx-auto"},r.a.createElement(u.b,{phrase:"info"})),r.a.createElement(b.a,null,r.a.createElement(u.b,{phrase:"videoLink"})),r.a.createElement(N.a,{className:"btn btn-dark d-block mx-auto",svgName:E.b.Plus},r.a.createElement(u.b,{phrase:"addNew"}))))}t.d(a,"SchoolTeacherManagerView",(function(){return w}));var S=c.a.encloseNamespace("userManager.schoolTeacherManager");function w(e){var a,t;Object(l.a)(S("pageTitle"));var r=s.a.useBasicFetch(d.a.getUserRoles()),c=s.a.useBasicFetch(d.a.getSchoolTeachers(g.a.getBackendQueryParams(e.queryParams)));return n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"pl-4"},n.createElement(u.b,{namespace:"userManager.schoolTeacherManager",phrase:"heading"})),n.createElement("div",{className:"pl-4 py-2 row"},n.createElement("div",{className:"col-9 p-0"},n.createElement(v.e,{queryParams:e.queryParams,mainFilters:[g.b.SortByName(g.a.getNameSortOptions())],analyticsOptions:{entity:m.d.User,location:m.j.TeacherManager},hideHeading:!0})),n.createElement("div",{className:"col-3"},n.createElement(f.a,{id:"school-teacher-search",name:"school-teacher-search",placeholder:S("searchBarPlaceholder")}))),n.createElement("p",{className:"pl-4 mb-0 font-weight-bold"},n.createElement(u.b,{namespace:"userManager.schoolTeacherManager",phrase:"entries",options:{smartCount:(null===(t=null===(a=c.data)||void 0===a?void 0:a.data)||void 0===t?void 0:t.length)||0}})),n.createElement("main",{className:"py-3"},function(){var e;return(null===(e=c.data)||void 0===e?void 0:e.data)&&r.data?c.data.data.length?n.createElement(n.Fragment,null,n.createElement(p.a,{users:c.data.data,userType:y.a.Teacher,userRoles:r.data,analyticsOptions:{location:m.j.StudentManager}}),n.createElement(o.b,{appLink:i.a.getCurrentRoute().appLink,cursors:{next:c.data.pagination.cursors.next,previous:c.data.pagination.cursors.previous},className:"pt-3 d-flex justify-content-end"})):n.createElement(k,null):n.createElement(h.a,null)}()))}},829:function(e,a,t){"use strict";t.d(a,"a",(function(){return u}));var n=t(14),r=t(79),s=t(21),c=t(840),l=t(833),o=t(834),i=t(835),u={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,t=void 0===a?"":a,s=e.q,o=void 0===s?"":s,i=e.query,u=void 0===i?"":i,m=e.cursor,d=void 0===m?"1":m;return{url:r.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(o,":").concat(u,":").concat(t,":").concat(d),successResponse:function(){var e=c.a.revertFilterString(t),a=n.a.Simulator.getAll("school:students",l).filter((function(a){var n,r;return!(o&&!a.name.toLowerCase().includes(o.toLowerCase()))&&(!t||(!e.yearLevel||e.yearLevel===a.yearLevel.id)&&!((null===(n=e.classroom)||void 0===n?void 0:n.length)&&!e.classroom.includes(null===(r=a.classroom)||void 0===r?void 0:r.id)))})),r=c.a.convertWithStatementToObject(u),s=r.sortValue||"name",i=a.sort((function(e,a){return e[s].toLowerCase()<a[s].toLowerCase()?-1:e[s].toLowerCase()>a[s].toLowerCase()?1:0}));r.sortKey&&"orderbydesc"===r.sortKey&&(i=i.reverse());var m=i.slice(25*(+d-1),25*+d),p=i.slice(25*+d).length?+d+1:void 0,h="1"===d?void 0:+d-1;return m.length||(m=i.slice(0,25),p=i.slice(25).length?2:void 0,h=void 0),{data:m,pagination:{cursors:{next:p,previous:h}},count:i.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return n.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,a){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return n.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 n.a.Simulator.get("school:students",e)}}},createStudent:function(e,a,t){return{url:"/api/domain/v1/users",key:"create:student",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.create("school:students",e)},success:a,error:t}},bulkCreateStudents:function(e,a,t,r){return{url:"/api/domain/v1/users",key:"create:students",type:s.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:students",e)})),e},success:a,error:t,always:r}},updateStudent:function(e,a,t){return{url:"/api/domain/v1/users",key:"edit:student",type:s.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return n.a.Simulator.update("school:students",e)},success:a,error:t}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.filter,t=void 0===a?"":a,s=e.q,c=void 0===s?"":s,l=e.query,i=void 0===l?"":l,u=e.cursor,m=void 0===u?"":u;return{url:r.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(c,":").concat(i,":").concat(t,":").concat(m),successResponse:function(){var e=n.a.Simulator.getAll("school:teachers",o);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 n.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 n.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,a,t){return{url:"/api/domain/v1/users",key:"create:teacher",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.create("school:teachers",e)},success:a,error:t}},bulkCreateTeachers:function(e,a,t,r){return{url:"/api/domain/v1/users",key:"create:teachers",type:s.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return n.a.Simulator.create("school:teachers",e)})),e},success:a,error:t,always:r}},updateTeacher:function(e,a,t){return{url:"/api/domain/v1/users",key:"edit:teacher",type:s.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return n.a.Simulator.update("school:teachers",e)},success:a,error:t}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return n.a.Simulator.getAll("user:roles",i)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return n.a.Simulator.getAll("groups").filter((function(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"}]')},927:function(e,a,t){"use strict";t.d(a,"a",(function(){return l}));var n=t(0),r=t.n(n),s=t(235),c=t(13);function l(e){return r.a.createElement(s.a,{className:"btn btn-outline-info d-block mx-auto mb-3",svgName:c.b.Video},e.children)}}}]);