@clickview/lite 0.0.18-dev.2 → 0.0.18-rc.1

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 (418) hide show
  1. package/dist/css/0.chunk.css.map +1 -0
  2. package/dist/css/1.chunk.css +144 -2
  3. package/dist/css/1.chunk.css.map +1 -0
  4. package/dist/css/10.chunk.css +10 -12
  5. package/dist/css/10.chunk.css.map +1 -0
  6. package/dist/css/11.chunk.css +5 -9
  7. package/dist/css/11.chunk.css.map +1 -0
  8. package/dist/css/12.chunk.css.map +1 -0
  9. package/dist/css/13.chunk.css.map +1 -0
  10. package/dist/css/14.chunk.css.map +1 -0
  11. package/dist/css/16.chunk.css.map +1 -0
  12. package/dist/css/18.chunk.css.map +1 -0
  13. package/dist/css/19.chunk.css +6 -2
  14. package/dist/css/19.chunk.css.map +1 -0
  15. package/dist/css/2.chunk.css +14 -0
  16. package/dist/css/20.chunk.css +2 -6
  17. package/dist/css/21.chunk.css +1 -3
  18. package/dist/css/21.chunk.css.map +1 -0
  19. package/dist/css/22.chunk.css +2 -2
  20. package/dist/css/22.chunk.css.map +1 -0
  21. package/dist/css/23.chunk.css +3 -1
  22. package/dist/css/23.chunk.css.map +1 -0
  23. package/dist/css/24.chunk.css +1 -3
  24. package/dist/css/24.chunk.css.map +1 -0
  25. package/dist/css/25.chunk.css +2 -2
  26. package/dist/css/25.chunk.css.map +1 -0
  27. package/dist/css/26.chunk.css +3 -1
  28. package/dist/css/26.chunk.css.map +1 -0
  29. package/dist/css/27.chunk.css +66 -2
  30. package/dist/css/27.chunk.css.map +1 -0
  31. package/dist/css/28.chunk.css +48 -2
  32. package/dist/css/28.chunk.css.map +1 -0
  33. package/dist/css/29.chunk.css +43 -4
  34. package/dist/css/29.chunk.css.map +1 -0
  35. package/dist/css/3.chunk.css +13 -7
  36. package/dist/css/3.chunk.css.map +1 -0
  37. package/dist/css/30.chunk.css +1 -3
  38. package/dist/css/30.chunk.css.map +1 -0
  39. package/dist/css/31.chunk.css +5 -2
  40. package/dist/css/31.chunk.css.map +1 -0
  41. package/dist/css/32.chunk.css +4 -1
  42. package/dist/css/32.chunk.css.map +1 -0
  43. package/dist/css/34.chunk.css +4 -2
  44. package/dist/css/34.chunk.css.map +1 -0
  45. package/dist/css/35.chunk.css +7 -0
  46. package/dist/css/35.chunk.css.map +1 -0
  47. package/dist/css/36.chunk.css +4 -0
  48. package/dist/css/36.chunk.css.map +1 -0
  49. package/dist/css/37.chunk.css +3 -1
  50. package/dist/css/37.chunk.css.map +1 -0
  51. package/dist/css/38.chunk.css +36 -2
  52. package/dist/css/38.chunk.css.map +1 -0
  53. package/dist/css/4.chunk.css +5 -13
  54. package/dist/css/4.chunk.css.map +1 -0
  55. package/dist/css/44.chunk.css +1 -1
  56. package/dist/css/45.chunk.css +9 -0
  57. package/dist/css/45.chunk.css.map +1 -0
  58. package/dist/css/5.chunk.css +2 -8
  59. package/dist/css/5.chunk.css.map +1 -0
  60. package/dist/css/9.chunk.css +15 -7
  61. package/dist/css/lite-app.css.map +1 -0
  62. package/dist/libs/analytics/src/AnalyticsService.d.ts +52 -0
  63. package/dist/libs/analytics/src/clients/BaseAnalyticsClient.d.ts +24 -0
  64. package/dist/libs/analytics/src/clients/CollectionApiClient.d.ts +48 -0
  65. package/dist/libs/analytics/src/clients/DebuggerClient.d.ts +7 -0
  66. package/dist/libs/analytics/src/constants/ApplicationOptionsKey.d.ts +1 -0
  67. package/dist/libs/analytics/src/constants/CountryRegionMapping.d.ts +7 -0
  68. package/dist/libs/analytics/src/constants/Regions.d.ts +6 -0
  69. package/dist/libs/analytics/src/enrichers/BaseAnalyticsEnricher.d.ts +19 -0
  70. package/dist/libs/analytics/src/enrichers/CoreContextEnricher.d.ts +22 -0
  71. package/dist/libs/analytics/src/enrichers/UserDataEnricher.d.ts +10 -0
  72. package/dist/libs/analytics/src/enums/CountryCode.d.ts +5 -0
  73. package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +49 -5
  74. package/dist/libs/analytics/src/interfaces/VersionData.d.ts +4 -0
  75. package/dist/libs/analytics/src/models/CollectionEvent.d.ts +55 -0
  76. package/dist/libs/analytics/src/transport/EventTransport.d.ts +39 -0
  77. package/dist/libs/analytics/src/utils/CollectionApiClientHelper.d.ts +6 -0
  78. package/dist/libs/analytics/src/utils/DataFormatHelper.d.ts +14 -0
  79. package/dist/libs/analytics/src/utils/EventWhitelistHelper.d.ts +19 -0
  80. package/dist/libs/analytics/src/utils/TypeHelper.d.ts +4 -0
  81. package/dist/libs/analytics/src/utils/UploadDataFormatHelper.d.ts +10 -0
  82. package/dist/libs/analytics/src/utils/UserAgentHelper.d.ts +10 -0
  83. package/dist/libs/analytics/src/utils/VideoDataFormatHelper.d.ts +42 -0
  84. package/dist/libs/common/src/backbone/core/BaseAppRouter.d.ts +5 -1
  85. package/dist/libs/common/src/react/constants/ViewModelActions.d.ts +3 -0
  86. package/dist/libs/common/src/react/hooks/useViewModel.d.ts +4 -0
  87. package/dist/libs/common/src/react/interfaces/ApplicationState.d.ts +3 -1
  88. package/dist/libs/common/src/react/interfaces/ViewModelAction.d.ts +5 -0
  89. package/dist/libs/common/src/react/interfaces/ViewModelPayload.d.ts +5 -0
  90. package/dist/libs/common/src/react/reducers/ViewModelReducer.d.ts +3 -0
  91. package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -1
  92. package/dist/libs/shared/src/apps/content-updates/interfaces/VideoClassificationMapping.d.ts +2 -1
  93. package/dist/libs/shared/src/apps/upload/services/UploadService.d.ts +3 -2
  94. package/dist/libs/shared/src/components/lazy-image/LazyImage.d.ts +1 -1
  95. package/dist/libs/shared/src/components/search-bar/SearchBar.d.ts +5 -0
  96. package/dist/libs/shared/src/components/widgets/fixed-widget/FixedWidget.d.ts +4 -2
  97. package/dist/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.d.ts +4 -3
  98. package/dist/libs/shared/src/constants/BootstrapKeys.d.ts +1 -0
  99. package/dist/libs/shared/src/constants/WithStatements.d.ts +1 -1
  100. package/dist/libs/shared/src/enums/CountryCode.d.ts +5 -0
  101. package/dist/libs/shared/src/enums/SubtitleExtractionOptions.d.ts +4 -0
  102. package/dist/libs/shared/src/enums/WidgetContents.d.ts +2 -1
  103. package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
  104. package/dist/libs/shared/src/flight-requests/PreferenceRequests.d.ts +4 -4
  105. package/dist/libs/shared/src/hooks/UseReorderedItems.d.ts +9 -0
  106. package/dist/libs/shared/src/interfaces/models/Config.d.ts +3 -1
  107. package/dist/libs/shared/src/interfaces/models/Group.d.ts +3 -0
  108. package/dist/libs/shared/src/interfaces/models/User.d.ts +2 -1
  109. package/dist/libs/shared/src/interfaces/models/UserChannel.d.ts +7 -0
  110. package/dist/libs/shared/src/interfaces/models/index.d.ts +2 -0
  111. package/dist/libs/shared/src/services/ConfigDataService.d.ts +1 -0
  112. package/dist/libs/shared/src/utils/AudienceHelper.d.ts +5 -1
  113. package/dist/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.d.ts +3 -2
  114. package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +1 -0
  115. package/dist/projects/lite/src/apps/classrooms/flight-requests/ClassroomRequests.d.ts +1 -1
  116. package/dist/projects/lite/src/apps/classrooms/views/add-students-to-classroom/AddStudentsToClassroomView.d.ts +3 -3
  117. package/dist/projects/lite/src/apps/classrooms/views/create-classroom/CreateClassroomView.d.ts +3 -4
  118. package/dist/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.d.ts +3 -3
  119. package/dist/projects/lite/src/apps/classrooms/views/delete-classroom/DeleteClassroomView.d.ts +4 -4
  120. package/dist/projects/lite/src/apps/classrooms/views/delete-classroom-group/DeleteClassroomGroupView.d.ts +3 -3
  121. package/dist/projects/lite/src/apps/classrooms/views/edit-classroom/EditClassroomView.d.ts +3 -3
  122. package/dist/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.d.ts +3 -3
  123. package/dist/projects/lite/src/apps/classrooms/views/remove-students-from-classroom/RemoveStudentsFromClassroomView.d.ts +3 -3
  124. package/dist/projects/lite/src/apps/content-updates/LiteContentUpdatesApplication.d.ts +1 -1
  125. package/dist/projects/lite/src/apps/default/LiteDefaultApplication.d.ts +2 -2
  126. package/dist/projects/lite/src/apps/playlists/LitePlaylistsApplication.d.ts +2 -1
  127. package/dist/projects/lite/src/apps/playlists/views/delete-playlist/DeletePlaylistView.d.ts +2 -2
  128. package/dist/projects/lite/src/apps/playlists/views/edit-playlist/EditPlaylistView.d.ts +2 -2
  129. package/dist/projects/lite/src/apps/playlists/views/new-playlist/NewPlaylistView.d.ts +2 -2
  130. package/dist/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.d.ts +0 -8
  131. package/dist/projects/lite/src/apps/playlists/views/remove-video-from-playlist/RemoveVideoFromPlaylistView.d.ts +2 -2
  132. package/dist/projects/lite/src/apps/search/components/filter-actions/FilterActions.d.ts +3 -2
  133. package/dist/projects/lite/src/apps/search/components/filter-button/FilterButton.d.ts +3 -2
  134. package/dist/projects/lite/src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.d.ts +3 -2
  135. package/dist/projects/lite/src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.d.ts +3 -2
  136. package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/RadioFilter.d.ts +3 -2
  137. package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +3 -2
  138. package/dist/projects/lite/src/apps/search/components/reset-button/ResetButton.d.ts +3 -2
  139. package/dist/projects/lite/src/apps/search/components/search-filters/SearchFilters.d.ts +3 -2
  140. package/dist/projects/lite/src/apps/search/interfaces/FilterProps.d.ts +3 -2
  141. package/dist/projects/lite/src/apps/search/utils/FilterHelper.d.ts +4 -2
  142. package/dist/projects/lite/src/apps/subjects/LiteSubjectApplication.d.ts +2 -2
  143. package/dist/projects/lite/src/apps/upload/services/FlightVideoUploadDataService.d.ts +5 -0
  144. package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup.d.ts +4 -4
  145. package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-teacher-popup/DeleteUploadedTeacherPopup.d.ts +4 -4
  146. package/dist/projects/lite/src/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup.d.ts +4 -4
  147. package/dist/projects/lite/src/apps/user-manager/components/manage-users-list/ManageUsersList.d.ts +3 -2
  148. package/dist/projects/lite/src/apps/user-manager/flight-requests/SchoolUserRequests.d.ts +3 -3
  149. package/dist/projects/lite/src/apps/user-manager/views/create-student/CreateStudentView.d.ts +3 -4
  150. package/dist/projects/lite/src/apps/user-manager/views/create-teacher/CreateTeacherView.d.ts +3 -4
  151. package/dist/projects/lite/src/apps/user-manager/views/edit-student/EditStudentView.d.ts +4 -4
  152. package/dist/projects/lite/src/apps/user-manager/views/edit-teacher/EditTeacherView.d.ts +4 -4
  153. package/dist/projects/lite/src/apps/user-manager/views/remove-user/RemoveUserView.d.ts +4 -4
  154. package/dist/projects/lite/src/apps/user-manager/views/student-upload-review/StudentUploadReviewView.d.ts +4 -2
  155. package/dist/projects/lite/src/apps/user-manager/views/teacher-upload-review/TeacherUploadReviewView.d.ts +4 -2
  156. package/dist/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.d.ts +7 -2
  157. package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +4 -2
  158. package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +6 -0
  159. package/dist/projects/lite/src/shared/{contexts/player/PlayerContext.d.ts → hooks/useInitPlayerContext.d.ts} +4 -10
  160. package/dist/projects/lite/src/shared/hooks/useNavLock.d.ts +1 -0
  161. package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +3 -3
  162. package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +4 -3
  163. package/dist/projects/lite/src/startup/RegisterAnalytics.d.ts +3 -0
  164. package/dist/projects/lite/src/startup/index.d.ts +1 -0
  165. package/dist/scripts/0-525bd75473.chunk.js +1 -0
  166. package/dist/scripts/0.chunk.js +478 -1
  167. package/dist/scripts/0.chunk.js.map +1 -0
  168. package/dist/scripts/1-f6fa17226d.chunk.js +17 -0
  169. package/dist/scripts/1.chunk.js +621 -17
  170. package/dist/scripts/1.chunk.js.map +1 -0
  171. package/dist/scripts/10-f3b34b2d35.chunk.js +1 -0
  172. package/dist/scripts/10.chunk.js +400 -7
  173. package/dist/scripts/10.chunk.js.map +1 -0
  174. package/dist/scripts/11-a698af3f1c.chunk.js +1 -0
  175. package/dist/scripts/11.chunk.js +1289 -7
  176. package/dist/scripts/11.chunk.js.map +1 -0
  177. package/dist/scripts/12-9ace90fcbc.chunk.js +1 -0
  178. package/dist/scripts/12.chunk.js +1059 -7
  179. package/dist/scripts/12.chunk.js.map +1 -0
  180. package/dist/scripts/13-3a4f103546.chunk.js +1 -0
  181. package/dist/scripts/13.chunk.js +751 -7
  182. package/dist/scripts/13.chunk.js.map +1 -0
  183. package/dist/scripts/14-11868e2868.chunk.js +1 -0
  184. package/dist/scripts/14.chunk.js +425 -7
  185. package/dist/scripts/14.chunk.js.map +1 -0
  186. package/dist/scripts/15-78ff5e8be2.chunk.js +1 -0
  187. package/dist/scripts/15.chunk.js +609 -7
  188. package/dist/scripts/15.chunk.js.map +1 -0
  189. package/dist/scripts/16-22f6224811.chunk.js +1 -0
  190. package/dist/scripts/16.chunk.js +648 -7
  191. package/dist/scripts/16.chunk.js.map +1 -0
  192. package/dist/scripts/17-afe6281dd5.chunk.js +1 -0
  193. package/dist/scripts/17.chunk.js +541 -7
  194. package/dist/scripts/17.chunk.js.map +1 -0
  195. package/dist/scripts/18-47be31c0b6.chunk.js +1 -0
  196. package/dist/scripts/18.chunk.js +766 -7
  197. package/dist/scripts/18.chunk.js.map +1 -0
  198. package/dist/scripts/19-89c0b2c20e.chunk.js +1 -0
  199. package/dist/scripts/19.chunk.js +647 -7
  200. package/dist/scripts/19.chunk.js.map +1 -0
  201. package/dist/scripts/2-3b37480a80.chunk.js +7 -0
  202. package/dist/scripts/2.chunk.js +8259 -1
  203. package/dist/scripts/2.chunk.js.map +1 -0
  204. package/dist/scripts/20-32ac3fe0b9.chunk.js +1 -0
  205. package/dist/scripts/20.chunk.js +122 -7
  206. package/dist/scripts/20.chunk.js.map +1 -0
  207. package/dist/scripts/21-891207049a.chunk.js +1 -0
  208. package/dist/scripts/21.chunk.js +1571 -1
  209. package/dist/scripts/21.chunk.js.map +1 -0
  210. package/dist/scripts/22-24236e6723.chunk.js +1 -0
  211. package/dist/scripts/22.chunk.js +1387 -1
  212. package/dist/scripts/22.chunk.js.map +1 -0
  213. package/dist/scripts/23-7b425169bc.chunk.js +1 -0
  214. package/dist/scripts/23.chunk.js +1121 -1
  215. package/dist/scripts/23.chunk.js.map +1 -0
  216. package/dist/scripts/24-40edd30087.chunk.js +1 -0
  217. package/dist/scripts/24.chunk.js +1348 -1
  218. package/dist/scripts/24.chunk.js.map +1 -0
  219. package/dist/scripts/25-887b9ef587.chunk.js +1 -0
  220. package/dist/scripts/25.chunk.js +1137 -1
  221. package/dist/scripts/25.chunk.js.map +1 -0
  222. package/dist/scripts/26-cbe0ff0f77.chunk.js +1 -0
  223. package/dist/scripts/26.chunk.js +906 -1
  224. package/dist/scripts/26.chunk.js.map +1 -0
  225. package/dist/scripts/27-f26afdae78.chunk.js +1 -0
  226. package/dist/scripts/27.chunk.js +1143 -1
  227. package/dist/scripts/27.chunk.js.map +1 -0
  228. package/dist/scripts/28-70414fd373.chunk.js +1 -0
  229. package/dist/scripts/28.chunk.js +656 -1
  230. package/dist/scripts/28.chunk.js.map +1 -0
  231. package/dist/scripts/29-944b5c01a7.chunk.js +1 -0
  232. package/dist/scripts/29.chunk.js +616 -1
  233. package/dist/scripts/29.chunk.js.map +1 -0
  234. package/dist/scripts/3-233f573a92.chunk.js +1 -0
  235. package/dist/scripts/3.chunk.js +585 -1
  236. package/dist/scripts/3.chunk.js.map +1 -0
  237. package/dist/scripts/30-3a229887e9.chunk.js +1 -0
  238. package/dist/scripts/30.chunk.js +557 -1
  239. package/dist/scripts/30.chunk.js.map +1 -0
  240. package/dist/scripts/31-ab038bfc0c.chunk.js +1 -0
  241. package/dist/scripts/31.chunk.js +731 -1
  242. package/dist/scripts/31.chunk.js.map +1 -0
  243. package/dist/scripts/32-8bd6703eef.chunk.js +1 -0
  244. package/dist/scripts/32.chunk.js +957 -1
  245. package/dist/scripts/32.chunk.js.map +1 -0
  246. package/dist/scripts/{35-8b4ce9fc27.chunk.js → 33-4579af9cf9.chunk.js} +1 -1
  247. package/dist/scripts/33.chunk.js +938 -1
  248. package/dist/scripts/33.chunk.js.map +1 -0
  249. package/dist/scripts/{36-cbd8837f89.chunk.js → 34-d8b96d9f9f.chunk.js} +1 -1
  250. package/dist/scripts/34.chunk.js +523 -1
  251. package/dist/scripts/34.chunk.js.map +1 -0
  252. package/dist/scripts/35-666d815525.chunk.js +1 -0
  253. package/dist/scripts/35.chunk.js +414 -1
  254. package/dist/scripts/35.chunk.js.map +1 -0
  255. package/dist/scripts/36-02ce5f3538.chunk.js +1 -0
  256. package/dist/scripts/36.chunk.js +404 -1
  257. package/dist/scripts/36.chunk.js.map +1 -0
  258. package/dist/scripts/37-afd3d321e3.chunk.js +1 -0
  259. package/dist/scripts/37.chunk.js +245 -1
  260. package/dist/scripts/37.chunk.js.map +1 -0
  261. package/dist/scripts/{39-e2aa1689e2.chunk.js → 38-6ad53aa15b.chunk.js} +1 -1
  262. package/dist/scripts/38.chunk.js +343 -1
  263. package/dist/scripts/38.chunk.js.map +1 -0
  264. package/dist/scripts/{40-53d132e3b4.chunk.js → 39-46c747b1d9.chunk.js} +1 -1
  265. package/dist/scripts/39.chunk.js +318 -1
  266. package/dist/scripts/39.chunk.js.map +1 -0
  267. package/dist/scripts/4-6942fee782.chunk.js +1 -0
  268. package/dist/scripts/4.chunk.js +1030 -1
  269. package/dist/scripts/4.chunk.js.map +1 -0
  270. package/dist/scripts/{41-023d613070.chunk.js → 40-c1b8806b1c.chunk.js} +1 -1
  271. package/dist/scripts/40.chunk.js +236 -1
  272. package/dist/scripts/40.chunk.js.map +1 -0
  273. package/dist/scripts/{42-ba3779218d.chunk.js → 41-f4c23477e3.chunk.js} +1 -1
  274. package/dist/scripts/41.chunk.js +231 -1
  275. package/dist/scripts/41.chunk.js.map +1 -0
  276. package/dist/scripts/42-7a5b92d70b.chunk.js +1 -0
  277. package/dist/scripts/42.chunk.js +350 -1
  278. package/dist/scripts/42.chunk.js.map +1 -0
  279. package/dist/scripts/43-97193a87df.chunk.js +1 -0
  280. package/dist/scripts/43.chunk.js +225 -1
  281. package/dist/scripts/43.chunk.js.map +1 -0
  282. package/dist/scripts/{46-6501968ace.chunk.js → 44-7f92272274.chunk.js} +1 -1
  283. package/dist/scripts/44.chunk.js +318 -1
  284. package/dist/scripts/44.chunk.js.map +1 -0
  285. package/dist/scripts/45-265f1a7a42.chunk.js +1 -0
  286. package/dist/scripts/45.chunk.js +64 -1
  287. package/dist/scripts/45.chunk.js.map +1 -0
  288. package/dist/scripts/46-a594ad7eba.chunk.js +1 -0
  289. package/dist/scripts/46.chunk.js +108 -1
  290. package/dist/scripts/46.chunk.js.map +1 -0
  291. package/dist/scripts/47-99777c20cf.chunk.js +1 -0
  292. package/dist/scripts/47.chunk.js +110 -1
  293. package/dist/scripts/47.chunk.js.map +1 -0
  294. package/dist/scripts/48-9880523c82.chunk.js +1 -0
  295. package/dist/scripts/48.chunk.js +148 -1
  296. package/dist/scripts/48.chunk.js.map +1 -0
  297. package/dist/scripts/{50-00ffd5d7c6.chunk.js → 49-5e718594e5.chunk.js} +1 -1
  298. package/dist/scripts/49.chunk.js +142 -1
  299. package/dist/scripts/49.chunk.js.map +1 -0
  300. package/dist/scripts/5-2f631dcd74.chunk.js +1 -0
  301. package/dist/scripts/5.chunk.js +3262 -1
  302. package/dist/scripts/5.chunk.js.map +1 -0
  303. package/dist/scripts/50-8cb0d9cd7d.chunk.js +1 -0
  304. package/dist/scripts/50.chunk.js +145 -1
  305. package/dist/scripts/50.chunk.js.map +1 -0
  306. package/dist/scripts/{52-e5dfa5a640.chunk.js → 51-211b643ca5.chunk.js} +1 -1
  307. package/dist/scripts/51.chunk.js +176 -1
  308. package/dist/scripts/51.chunk.js.map +1 -0
  309. package/dist/scripts/{53-79d5905fc6.chunk.js → 52-bfb2683b5d.chunk.js} +1 -1
  310. package/dist/scripts/52.chunk.js +160 -1
  311. package/dist/scripts/52.chunk.js.map +1 -0
  312. package/dist/scripts/{54-4950ec1d52.chunk.js → 53-3cf5cd5f69.chunk.js} +1 -1
  313. package/dist/scripts/53.chunk.js +98 -1
  314. package/dist/scripts/53.chunk.js.map +1 -0
  315. package/dist/scripts/{55-accb81090d.chunk.js → 54-26807e3e49.chunk.js} +1 -1
  316. package/dist/scripts/54.chunk.js +48 -1
  317. package/dist/scripts/54.chunk.js.map +1 -0
  318. package/dist/scripts/55-d38be4860b.chunk.js +1 -0
  319. package/dist/scripts/55.chunk.js +99 -1
  320. package/dist/scripts/55.chunk.js.map +1 -0
  321. package/dist/scripts/56-d4abc25ec3.chunk.js +1 -0
  322. package/dist/scripts/56.chunk.js +64 -1
  323. package/dist/scripts/56.chunk.js.map +1 -0
  324. package/dist/scripts/57.chunk.js +72 -0
  325. package/dist/scripts/57.chunk.js.map +1 -0
  326. package/dist/scripts/58.chunk.js +73 -0
  327. package/dist/scripts/58.chunk.js.map +1 -0
  328. package/dist/scripts/59.chunk.js +70 -0
  329. package/dist/scripts/59.chunk.js.map +1 -0
  330. package/dist/scripts/6-4d72a3c3fc.chunk.js +1 -0
  331. package/dist/scripts/6.chunk.js +24 -1
  332. package/dist/scripts/6.chunk.js.map +1 -0
  333. package/dist/scripts/60.chunk.js +32 -0
  334. package/dist/scripts/60.chunk.js.map +1 -0
  335. package/dist/scripts/61.chunk.js +29 -0
  336. package/dist/scripts/61.chunk.js.map +1 -0
  337. package/dist/scripts/62.chunk.js +27 -0
  338. package/dist/scripts/62.chunk.js.map +1 -0
  339. package/dist/scripts/63.chunk.js +67 -0
  340. package/dist/scripts/63.chunk.js.map +1 -0
  341. package/dist/scripts/64.chunk.js +80 -0
  342. package/dist/scripts/64.chunk.js.map +1 -0
  343. package/dist/scripts/65.chunk.js +65 -0
  344. package/dist/scripts/65.chunk.js.map +1 -0
  345. package/dist/scripts/66.chunk.js +67 -0
  346. package/dist/scripts/66.chunk.js.map +1 -0
  347. package/dist/scripts/67.chunk.js +104 -0
  348. package/dist/scripts/67.chunk.js.map +1 -0
  349. package/dist/scripts/68.chunk.js +69 -0
  350. package/dist/scripts/68.chunk.js.map +1 -0
  351. package/dist/scripts/69.chunk.js +89 -0
  352. package/dist/scripts/69.chunk.js.map +1 -0
  353. package/dist/scripts/7-90ad392b55.chunk.js +1 -0
  354. package/dist/scripts/7.chunk.js +327 -1
  355. package/dist/scripts/7.chunk.js.map +1 -0
  356. package/dist/scripts/70.chunk.js +36 -0
  357. package/dist/scripts/70.chunk.js.map +1 -0
  358. package/dist/scripts/8.chunk.js +470 -0
  359. package/dist/scripts/8.chunk.js.map +1 -0
  360. package/dist/scripts/9-52877087ef.chunk.js +1 -0
  361. package/dist/scripts/9.chunk.js +471 -7
  362. package/dist/scripts/9.chunk.js.map +1 -0
  363. package/dist/scripts/bundle-99976c17a2.min.js +1 -0
  364. package/dist/scripts/bundle-9f5ad50596.min.js +1 -0
  365. package/dist/scripts/bundle.js +34769 -1
  366. package/dist/scripts/bundle.js.map +1 -0
  367. package/dist/scripts/bundles.json +1 -1
  368. package/package.json +50 -49
  369. package/typings/libs/Trackers.d.ts +10 -0
  370. package/dist/css/33.chunk.css +0 -4
  371. package/dist/css/41.chunk.css +0 -4
  372. package/dist/css/46.chunk.css +0 -2
  373. package/dist/libs/shared/src/context/SearchAppContext.d.ts +0 -9
  374. package/dist/scripts/0-7ab5925809.chunk.js +0 -1
  375. package/dist/scripts/1-08c7a79a47.chunk.js +0 -1
  376. package/dist/scripts/10-20d3430ce2.chunk.js +0 -1
  377. package/dist/scripts/11-7a25650335.chunk.js +0 -1
  378. package/dist/scripts/12-6609af3add.chunk.js +0 -1
  379. package/dist/scripts/13-5adebd80b3.chunk.js +0 -1
  380. package/dist/scripts/14-dbd27fa3a5.chunk.js +0 -1
  381. package/dist/scripts/15-5a0e1ed526.chunk.js +0 -1
  382. package/dist/scripts/16-3adc733311.chunk.js +0 -1
  383. package/dist/scripts/17-a942a8ff32.chunk.js +0 -1
  384. package/dist/scripts/18-ab78fe1ad4.chunk.js +0 -1
  385. package/dist/scripts/19-04ba4906ea.chunk.js +0 -1
  386. package/dist/scripts/2-41fe2d7e77.chunk.js +0 -1
  387. package/dist/scripts/20-f0dcfc47a9.chunk.js +0 -1
  388. package/dist/scripts/21-33e50c0d6b.chunk.js +0 -1
  389. package/dist/scripts/22-d85dfba692.chunk.js +0 -1
  390. package/dist/scripts/23-90201310df.chunk.js +0 -1
  391. package/dist/scripts/24-bc8f0f5709.chunk.js +0 -1
  392. package/dist/scripts/25-317106a5da.chunk.js +0 -1
  393. package/dist/scripts/26-4a3372406a.chunk.js +0 -1
  394. package/dist/scripts/27-074f7ed617.chunk.js +0 -1
  395. package/dist/scripts/28-3f552efb1d.chunk.js +0 -1
  396. package/dist/scripts/29-3b0fed6546.chunk.js +0 -1
  397. package/dist/scripts/3-4c7cdc97d7.chunk.js +0 -7
  398. package/dist/scripts/30-efc1720b45.chunk.js +0 -1
  399. package/dist/scripts/31-fd10b2d2e3.chunk.js +0 -1
  400. package/dist/scripts/32-77df1d4c39.chunk.js +0 -1
  401. package/dist/scripts/33-7c092bbe19.chunk.js +0 -1
  402. package/dist/scripts/34-3c94a6fffe.chunk.js +0 -1
  403. package/dist/scripts/37-ecd001861c.chunk.js +0 -1
  404. package/dist/scripts/38-a42dc5fd6c.chunk.js +0 -1
  405. package/dist/scripts/4-9b843edce7.chunk.js +0 -1
  406. package/dist/scripts/43-9b84379d80.chunk.js +0 -1
  407. package/dist/scripts/44-1bedb97d4b.chunk.js +0 -1
  408. package/dist/scripts/45-b004111b2b.chunk.js +0 -1
  409. package/dist/scripts/47-cece788594.chunk.js +0 -1
  410. package/dist/scripts/48-722f37b837.chunk.js +0 -1
  411. package/dist/scripts/49-cb04b28057.chunk.js +0 -1
  412. package/dist/scripts/5-841e3d083b.chunk.js +0 -1
  413. package/dist/scripts/51-ed260ddadd.chunk.js +0 -1
  414. package/dist/scripts/56-83e51af2a6.chunk.js +0 -1
  415. package/dist/scripts/6-c429467dba.chunk.js +0 -1
  416. package/dist/scripts/7-3c52b41cbf.chunk.js +0 -1
  417. package/dist/scripts/9-fef5ef0698.chunk.js +0 -1
  418. package/dist/scripts/bundle-7782a79aa5.min.js +0 -1
@@ -1 +1,3262 @@
1
- (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[5],{438:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(15),r=a(25),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function l(e,t,a){return{url:"/api/domain/v2/objects/"+t,key:`favourite:video:${t}:${e}`,data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:"+t,"video:is:favourited:"+t],error:a}}function c(e,t,a){return{url:`/api/domain/v2/objects/${t}/favouriteVideos/${e}`,key:`favourite:video:${t}:${e}`,type:n.a.DELETE,invalidationKeys:["favourite:videos:"+t,"video:is:favourited:"+t],error:a}}const s={favouriteVideos:(e,t)=>({url:`/api/domain/v2/objects/${e}/favouriteVideos?query=${`${r.a.VIDEO_COLLECTION}${function(e){return e?"&cursor="+e:""}(t)}`}`,key:`favourite:videos:${e}${t?":"+t:""}`}),updateIsVideoFavourited:(e,t,a,n)=>(a?l:c)(e,t,n),isFavourited(e,t){const a=t.slice().sort();return{url:`/api/domain/v2/objects?query=favouritedBy{id:${e}}&${a.map(e=>"id="+e).join("&")}`,key:`video:is:favourited:${e}:by:id:${a.join(",")}`,formatData:e=>{var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map(e=>{var t,a;const{favouritedBy:n}=e,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})})}}}}},444:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(5),i=a(33),l=a(32),c=a(9);function s({backToName:e,appLink:t,color:a}){const s=e?r.a.getPhrase("shared.backButton","backTo",{backToName:e}):r.a.getPhrase("shared.backButton","back"),o="black"===a?"":"text-light";return n.createElement(l.a,{appLink:t,className:"d-inline-flex align-items-center h5 mb-0 "+o},n.createElement(i.a,{svgName:c.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},s))}s.defaultProps={color:"black"}},483:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(64),r=a(3),i=a(10);function l(e,t){switch(t){case n.a.AddToPlaylist:return{application:r.a.PLAYLISTS,action:i.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case n.a.Share:return{application:r.a.DEFAULT,action:i.a.Default.SHARE,args:[e.id],params:{entityType:"video"}}}}},550:function(e,t,a){"use strict";var n=a(0),r=a(31),i=a(44),l=a(444),c=a(436),s=a(123);function o(e){var t=e.video;return t.resources&&t.resources.data&&t.resources.data.length?n.createElement("div",{className:e.className},n.createElement("h2",{className:"h4"},"Resources"),t.resources.data.map((function(e,t){return n.createElement("div",{key:t},e.name)}))):n.createElement(n.Fragment,null)}var m=a(89),u=a.n(m),d=a(5),v=a(391),p=a(11),E=a(120),f=a(589),b=a.n(f);function g(e){var t=p.a.useBasicFetch(E.a.config),a=p.a.useBasicFetch({url:"/api/integrations/token/immersive-reader",key:"immersive:reader:token"});if(!t.data||!a.data)return n.createElement(n.Fragment,null);return e.title||(e.title=d.a.getPhrase("shared.immersiveReader","titleFallback")),n.createElement("div",{className:"".concat(b.a.button," ").concat(e.className||""),onClick:function(){var t={title:e.title,chunks:[{content:e.text}]},n=a.data,r=n.subdomain,i=n.token;v.launchAsync(i,r,t,{uiZIndex:5e3})}},n.createElement("svg",{viewBox:"0 0 40 37"},n.createElement("path",{d:"M37.4,0.9 L37.4,9.6 L35.4,9.6 L35.4,2.9 L24.4,2.9 C22.9,3.3 20,4.5 20,6 L20,17.2 L18,17.2 L18,6 C18,5 15.6,3.6 13.8,2.9 L2,2.9 L2,29 L12.4,29 L12.4,31 L0,31 L0,0.9 L14.1,0.9 L14.3,1 C15,1.2 17.5,2.2 18.9,3.7 C20.5,1.9 23.5,1.1 23.9,1 L24.1,1 L37.4,1 L37.4,0.9 Z",fill:"#000000"}),n.createElement("path",{d:"M27.4,37 L25.8,37 L18.4,29.4 L14,29.4 L14,21 L18.4,20.9 L26.1,13 L27.4,13 L27.4,37 Z M16,27.4 L19.2,27.4 L25.3,33.7 L25.3,16.6 L19.2,22.9 L15.9,22.9 L15.9,27.4 L16,27.4 Z",fill:"#0197F2"}),n.createElement("path",{d:"M31.3,32.7 L29.6,31.7 C29.6,31.7 31.7,28.3 31.7,25.2 C31.7,21.9 29.6,18.5 29.6,18.4 L31.3,17.4 C31.4,17.6 33.7,21.3 33.7,25.2 C33.7,28.8 31.4,32.6 31.3,32.7 Z",fill:"#0197F2"}),n.createElement("path",{d:"M36.4,36.2 L34.8,35 C34.8,35 38,30.8 38,25.2 C38,19.6 34.8,15.4 34.8,15.4 L36.4,14.2 C36.5,14.4 40,19 40,25.3 C40,31.5 36.5,36 36.4,36.2 Z",fill:"#0197F2"})))}var h=a(590),N=a.n(h);function y(e){var t=e.tags,a=e.className;return t&&t.data&&t.data.length?n.createElement("div",{className:a},n.createElement(i.b,{phrase:"tags"})," ",t.data.map((function(e,t){return n.createElement("span",{className:"badge mr-1 p-1 badge-light",key:t},e.name)}))):n.createElement(n.Fragment,null)}function L(e){var t=e.label,a=e.items,r=e.className;if(!(a&&a.data&&a.data.length))return n.createElement(n.Fragment,null);var i=a.data.map((function(e){return e.name})).join(", ");return n.createElement("div",{className:r},t,": ",i)}function k(e){var t=e.video,a=t.tags,r=t.rating,l=t.productionYear,c=t.productionCompanies,s=t.distributors,o=r&&r.code;return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(i.b,{phrase:"details"})),n.createElement("div",{className:"row no-gutters"},n.createElement("div",{className:"col-3"},o&&n.createElement("div",{className:"pb-2"},n.createElement(i.b,{phrase:"rating",options:{code:o}})),l&&n.createElement("div",{className:"pb-2"},n.createElement(i.b,{phrase:"productionYear",options:{year:l}}))),n.createElement("div",{className:"col-9"},n.createElement(L,{label:d.a.getPhrase("shared.videoDetails","productionCompanies"),items:c,className:"pb-2"}),n.createElement(L,{label:d.a.getPhrase("shared.videoDetails","distributors"),items:s,className:"pb-2"}),n.createElement(y,{tags:a,className:"pb-2"}))))}function w(e){var t=e.description,a=e.immersiveReaderTitle;return t?n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(i.b,{phrase:"description"}),n.createElement(g,{text:t,title:a,className:"pl-2"})),n.createElement("p",null,t)):n.createElement(n.Fragment,null)}function x(e){var t=e.video;return n.createElement(i.a.Provider,{value:"shared.videoDetails"},n.createElement("div",{className:"rounded border px-3 mb-3"},n.createElement(u.a,{autoHeight:!0,autoHeightMax:368},n.createElement("div",{className:"py-3"},n.createElement(k,{video:t}),n.createElement(w,{description:t.description,immersiveReaderTitle:t.name}),n.createElement("span",{className:"".concat(N.a.showGlance," cursor-pointer"),onClick:e.onClickShowSynopsis,role:"button",tabIndex:0},n.createElement("strong",null,n.createElement(i.b,{namespace:"shared.videoDetails",phrase:"showGlance"})))))))}var F=a(9),C=a(33),P=a(111),O=a(591),D=a.n(O);function T(e){var t=e.interactive,a=function(e){var t=e.owner;return t&&t.name&&t.surname?t.name.substring(0,1)+". "+t.surname:""}(t),r=function(e){var t,a,n,r,i;return null===(i=null===(r=null===(n=null===(a=null===(t=e.owner)||void 0===t?void 0:t.customers)||void 0===a?void 0:a.data)||void 0===n?void 0:n[0])||void 0===r?void 0:r.organisation)||void 0===i?void 0:i.name}(t);return n.createElement("div",{className:"border rounded w-33 py-3 px-1 d-flex align-items-center mr-3"},n.createElement("div",{className:"d-flex align-items-center w-100"},n.createElement(C.a,{className:"svg-container",svgName:F.b.Play,size:C.b.ExtraLarge}),n.createElement("span",{className:D.a.content},r&&n.createElement("small",null,a&&n.createElement(n.Fragment,null,a,", "),n.createElement("em",null,r)),n.createElement("h3",{className:"h6 mb-0 clamp-2 ".concat(D.a.clamped),title:t.name},t.name),n.createElement(C.a,{className:"svg-container align-middle mr-1",svgName:F.b.Preview}),n.createElement("span",{className:"text-info"},n.createElement(i.b,{namespace:"shared.interactives",phrase:"preview"}))),n.createElement(C.a,{className:"svg-container",svgName:F.b.More,size:C.b.ExtraLarge})))}function A(e){var t,a,r,l=e.video,c=null===(r=null===(a=null===(t=l)||void 0===t?void 0:t.interactives)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length;return n.createElement("div",{className:"pb-3"},n.createElement("h2",{className:"h4"},n.createElement(i.b,{namespace:"shared.interactives",phrase:"interactives"}),n.createElement(P.a,{className:"btn btn-outline-dark ml-3 align-middle",svgName:F.b.Plus},n.createElement(i.b,{namespace:"shared.interactives",phrase:"create"}))),n.createElement("div",{className:"d-flex align-items-stretch"},c?l.interactives.data.map((function(e){return n.createElement(T,{interactive:e,key:e.id})})):n.createElement("div",null,n.createElement(C.a,{className:"svg-container mr-2 align-top",svgName:F.b.Star}),n.createElement(i.b,{namespace:"shared.interactives",phrase:"empty"}))))}var S=a(27),_=a(125),j=a(426),I=a(592),R=a.n(I);function $(e){var t=e.clip,a=t.endTime-t.startTime,r=_.a.ToDisplayDuration(1e3*a),i=e.duration/1e3,l=t.startTime/i*100,c=a/i*100,s=n.createElement(S.Tooltip,{id:"tooltip-top"},r);return n.createElement("div",{className:"".concat(R.a.bar," rounded mt-2")},n.createElement(S.OverlayTrigger,{overlay:s},n.createElement("div",{className:"".concat(R.a.subBar," bg-primary rounded"),style:{width:"".concat(c,"%"),marginLeft:"".concat(l,"%")}})))}function M(e){var t=e.clip,a=t.endTime-t.startTime;return n.createElement("div",{className:"border rounded w-33 py-3 px-1 d-flex align-items-center mr-3 flex-wrap"},n.createElement("div",{className:"d-flex align-self-center w-100"},n.createElement(C.a,{className:"svg-container align-self-center",svgName:F.b.Play,size:C.b.ExtraLarge}),n.createElement("span",{className:R.a.content},n.createElement("div",{className:"d-flex"},n.createElement("h3",{className:"h6 mb-0 d-inline-block text-truncate",title:t.name},t.name),n.createElement("div",{className:"flex-shrink-0"},n.createElement(j.a,{type:j.b.Duration,data:1e3*a}))),t.description&&n.createElement("p",{className:"".concat(R.a.clampedDescription," mb-0 clamp-2"),title:t.description},t.description),n.createElement($,Object.assign({},e))),n.createElement(C.a,{className:"svg-container align-self-center",svgName:F.b.More,size:C.b.ExtraLarge})))}function V(e){var t,a,r,l=e.video,c=null===(r=null===(a=null===(t=l)||void 0===t?void 0:t.clips)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length;return n.createElement("div",{className:"pb-3"},n.createElement("h2",{className:"h4"},n.createElement(i.b,{namespace:"shared.clips",phrase:"clips"}),n.createElement(P.a,{className:"btn btn-outline-dark ml-3 align-middle",svgName:F.b.Plus},n.createElement(i.b,{namespace:"shared.clips",phrase:"create"}))),n.createElement("div",{className:"d-flex align-items-stretch"},c?l.clips.data.map((function(e){return n.createElement(M,{duration:l.duration,clip:e,key:e.id})})):n.createElement("div",null,n.createElement(C.a,{className:"svg-container mr-2 align-top",svgName:F.b.Star}),n.createElement(i.b,{namespace:"shared.clips",phrase:"empty"}))))}var B=a(65);function H(e){return function(t){var a=n.useCallback(t,[]);n.useEffect((function(){return window.addEventListener(e,a),function(){return window.removeEventListener(e,a)}}),[])}}var Y=H("scroll"),U=H("resize"),Z=a(483),K=a(10),z=a(3),G=a(121),q=a(451);function J(e){var t=e.video,a={application:z.a.DEFAULT,action:K.a.Default.SERIES,args:t.series?[t.series.id]:[]};return n.createElement("div",{className:"mb-2"},n.createElement("h1",{className:"h3 d-inline-block m-0"},!!t.series&&n.createElement(G.a,{video:t,appLink:a}),t.name),!!r.a.isFunction(e.setFavourite)&&n.createElement(q.a,{setFavourite:e.setFavourite,video:t,className:"d-inline-block ml-2 align-text-bottom"}))}function X(e){var t=e.video,a=t.rating,r=t.productionYear;return n.createElement("div",null,a&&n.createElement("span",{className:"badge badge-light p-1 mr-1"},a.code),r&&n.createElement("span",{className:"badge badge-light p-1 mr-1"},r))}var Q=a(64);function W(e){var t="btn btn-light float-right ml-2",a=n.useContext(s.a).getActionAppLink;return n.createElement(i.a.Provider,{value:"shared.playPage"},n.createElement("div",{className:"mt-3 clearfix"},n.createElement(P.a,{svgName:F.b.Plus,className:"btn btn-outline-secondary mr-2"},n.createElement(i.b,{phrase:"createInteractive"})),n.createElement(P.a,{svgName:F.b.Plus,className:"btn btn-outline-secondary mr-2"},n.createElement(i.b,{phrase:"createClip"})),n.createElement(P.a,{svgName:F.b.More,className:t},n.createElement(i.b,{phrase:"more"})),n.createElement(P.a,{svgName:F.b.Share,className:t,appLink:a(e.video,Q.a.Share)},n.createElement(i.b,{phrase:"share"})),n.createElement(P.a,{svgName:F.b.AddToPlaylists,className:t},n.createElement(i.b,{phrase:"addToPlaylist"})),n.createElement(P.a,{svgName:F.b.Plus,className:t},n.createElement(i.b,{phrase:"favourite"}))))}var ee=a(392),te=a(397),ae=a(593),ne=a.n(ae);function re(e){var t=e.video,a=e.onClickFullDescription;if(!t.glance||!t.glance.content||"text/markdown"!==t.glance.format)return a(),n.createElement(n.Fragment,null);var r=[{className:ne.a.topLeft,url:"https://i.imgur.com/3GafOwO.png"},{className:ne.a.topRight,url:"https://i.imgur.com/wcNZVth.png"},{className:ne.a.bottomLeft,url:"https://i.imgur.com/vUEo7H2.png"},{className:ne.a.bottomRight,url:"https://i.imgur.com/R3gcyGY.png"}];return n.createElement("div",{className:"rounded border px-3 position-relative d-flex align-items-center justify-content-center ".concat(ne.a.container)},n.createElement("div",{className:"".concat(ne.a.content," py-5")},n.createElement("h2",null,n.createElement(i.b,{namespace:"shared.synopsis",phrase:"videoAtAGlance"})),n.createElement("div",{dangerouslySetInnerHTML:{__html:ee(t.glance.content)}}),n.createElement(te.a,{onClick:e.onClickFullDescription,className:"cursor-pointer d-inline-block"},n.createElement("strong",null,n.createElement(i.b,{namespace:"shared.synopsis",phrase:"showFullDescription"})))),r.map((function(e,t){return n.createElement("div",{key:t,className:"".concat(e.className," ").concat(ne.a.background),style:{backgroundImage:"url('".concat(e.url,"')")}})})))}function ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var l,c=e[Symbol.iterator]();!(n=(l=c.next()).done)&&(a.push(l.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return le(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return le(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"a",(function(){return oe}));var ce=function(e){return{application:z.a.DEFAULT,action:K.a.Default.PLAY_VIDEO,args:[e.id]}},se=function(e){return{application:z.a.DEFAULT,action:K.a.Default.SERIES,args:[e.id]}};function oe(e){var t=e.video,a=e.relatedVideos,m=n.useContext(B.a),u=m.setViewportPosition,d=m.setIsOnPlayPage,v=ie(n.useState(!0),2),p=v[0],E=v[1],f=n.useRef(null),b=n.useCallback((function(e){e&&(f.current=e,g())}),[]),g=n.useMemo((function(){return r.a.throttle(function(e,t){return function(){if(e.current){var a=e.current.getBoundingClientRect(),n=window.pageXOffset||document.documentElement.scrollLeft,r=window.pageYOffset||document.documentElement.scrollTop;a.top<-a.height?t(null):t({top:r+a.top,left:n+a.left,width:a.width})}}}(f,u),100,{leading:!0,trailing:!0})}),[]);return Y(g),U(g),n.useEffect((function(){return d(!0),function(){u(null),d(!1)}}),[]),n.createElement(s.a.Provider,{value:{getActionAppLink:Z.a}},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement(l.a,{appLink:{application:z.a.DASHBOARD,action:K.a.Dashboard.HOME},backToName:"Home"}),n.createElement("button",{className:"btn btn-light"},n.createElement(i.b,{namespace:"shared.playPage",phrase:"classroomMode"}))),n.createElement("div",{className:"embed-responsive embed-responsive-16by9 my-3",ref:b}),n.createElement(J,{video:t,setFavourite:e.setFavourite}),n.createElement(X,{video:t}),n.createElement(W,{video:t}),n.createElement("hr",null),p?n.createElement(re,{video:t,onClickFullDescription:function(){return E(!1)}}):n.createElement(x,{video:t,onClickShowSynopsis:function(){return E(!0)}}),n.createElement(o,{video:t,className:"my-3"}),n.createElement(A,{video:t}),n.createElement(V,{video:t}),!!a&&n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4 mt-3"},n.createElement(i.b,{namespace:"shared.playPage",phrase:"relatedVideos"})),n.createElement(c.c,{videos:a,getSeriesAppLink:se,getVideoAppLink:ce,setFavourite:e.setFavourite})))}},589:function(e,t,a){e.exports={button:"_10_KK"}},590:function(e,t,a){e.exports={showGlance:"_2fhqC"}},591:function(e,t,a){e.exports={content:"_1D6Hx",clamped:"_2sHZC"}},592:function(e,t,a){e.exports={content:"_22tRu",clamped:"_LK8Q",clampedDescription:"_18yOL",bar:"_3-kb8",subBar:"_1ROlV"}},593:function(e,t,a){e.exports={container:"_1XOYA",content:"UcxNO",background:"_3gpaY",topLeft:"_2s7I6",bottomLeft:"_23UKL",topRight:"ec_-l",bottomRight:"_1xMKp"}}}]);
1
+ (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[5],{
2
+
3
+ /***/ "../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx":
4
+ /*!**************************************************************************************************************************!*\
5
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx ***!
6
+ \**************************************************************************************************************************/
7
+ /*! exports provided: PlaylistItem */
8
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
+
10
+ "use strict";
11
+ __webpack_require__.r(__webpack_exports__);
12
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistItem", function() { return PlaylistItem; });
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
15
+ /* harmony import */ var _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/ImageHelper */ "../../libs/shared/src/utils/ImageHelper.ts");
16
+ /* harmony import */ var _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../utils/AudienceHelper */ "../../libs/shared/src/utils/AudienceHelper.ts");
17
+ /* harmony import */ var _enums_Images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../enums/Images */ "../../libs/shared/src/enums/Images.ts");
18
+ /* harmony import */ var _components_text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
19
+ /* harmony import */ var _components_app_link_AppLink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../components/app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
20
+ /* harmony import */ var _components_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../components/thumbnails/base/BaseThumbnail */ "../../libs/shared/src/components/thumbnails/base/BaseThumbnail.tsx");
21
+ /* harmony import */ var _components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../components/thumbnails/base/ThumbnailFallback */ "../../libs/shared/src/components/thumbnails/base/ThumbnailFallback.tsx");
22
+ /* harmony import */ var _components_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../components/audience-label/AudienceLabel */ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx");
23
+ /* harmony import */ var _playlist_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./playlist.scss */ "../../libs/shared/src/apps/playlists/components/playlist-list/playlist.scss");
24
+ /* harmony import */ var _playlist_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_playlist_scss__WEBPACK_IMPORTED_MODULE_9__);
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+ function PlaylistItem(props) {
36
+ const imageUrl = _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__["ImageHelper"].createUrl(props.data.cover && props.data.cover.url, {
37
+ size: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageSize"].Medium,
38
+ resizeType: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ResizeType"].Cover
39
+ });
40
+ const audiences = props.data.subjectPresentationAudiences && props.data.subjectPresentationAudiences.data;
41
+ const filteredAudiences = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getSortedPresentationAudiences(audiences, props.presentationAudiences);
42
+ const mergedAudience = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getMergedPresentationAudienceString(filteredAudiences);
43
+ const count = !!props.showCount && !!props.data.videos && props.data.videos.count;
44
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_app_link_AppLink__WEBPACK_IMPORTED_MODULE_5__["AppLink"], {
45
+ appLink: props.appLink
46
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_6__["BaseThumbnail"], {
47
+ data: imageUrl,
48
+ className: _playlist_scss__WEBPACK_IMPORTED_MODULE_9___default.a.playlistItem
49
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__["ThumbnailFallback"], {
50
+ type: _components_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_7__["ThumbnailFallbackType"].Playlist
51
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
52
+ className: `text-white ${_playlist_scss__WEBPACK_IMPORTED_MODULE_9___default.a.playlistMetadata}`
53
+ }, Number.isInteger(count) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
54
+ namespace: 'shared.playlistItem',
55
+ phrase: 'videos',
56
+ options: {
57
+ smartCount: count
58
+ }
59
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h5", {
60
+ className: 'text-shadow mb-0'
61
+ }, props.data.name), !!audiences && !!audiences.length && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__["AudienceLabel"], {
62
+ audience: mergedAudience,
63
+ border: 'white'
64
+ }))));
65
+ }
66
+
67
+ /***/ }),
68
+
69
+ /***/ "../../libs/shared/src/apps/playlists/components/playlist-list/playlist.scss":
70
+ /*!***********************************************************************************************************************!*\
71
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss ***!
72
+ \***********************************************************************************************************************/
73
+ /*! no static exports found */
74
+ /***/ (function(module, exports, __webpack_require__) {
75
+
76
+ // extracted by mini-css-extract-plugin
77
+ module.exports = {"basePlaylistItem":"cv--basePlaylistItem--2nvrp","playlistItem":"cv--playlistItem--6o0Z2","playlistMetadata":"cv--playlistMetadata--3MCKL","partialHeading":"cv--partialHeading--13tO6"};
78
+
79
+ /***/ }),
80
+
81
+ /***/ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx":
82
+ /*!*************************************************************************************************************!*\
83
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx ***!
84
+ \*************************************************************************************************************/
85
+ /*! exports provided: AudienceLabel, AudienceLabelList */
86
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
87
+
88
+ "use strict";
89
+ __webpack_require__.r(__webpack_exports__);
90
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceLabel", function() { return AudienceLabel; });
91
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceLabelList", function() { return AudienceLabelList; });
92
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
93
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
94
+ /* harmony import */ var _audience_label_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audience-label.scss */ "../../libs/shared/src/components/audience-label/audience-label.scss");
95
+ /* harmony import */ var _audience_label_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_audience_label_scss__WEBPACK_IMPORTED_MODULE_1__);
96
+
97
+
98
+ function AudienceLabel(props) {
99
+ if (!props.audience) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
100
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
101
+ className: `border rounded-pill d-inline-block px-2 mt-1 ${'border-' + props.border}`
102
+ }, props.audience.name);
103
+ }
104
+ function AudienceLabelList(props) {
105
+ if (!props.audiences || !props.audiences.length) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
106
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, props.audiences.map((a, idx) => react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
107
+ key: idx,
108
+ className: _audience_label_scss__WEBPACK_IMPORTED_MODULE_1___default.a.audienceLabelListItem
109
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](AudienceLabel, {
110
+ audience: a,
111
+ border: props.border
112
+ }))));
113
+ }
114
+
115
+ /***/ }),
116
+
117
+ /***/ "../../libs/shared/src/components/audience-label/audience-label.scss":
118
+ /*!***************************************************************************************************************!*\
119
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/audience-label/audience-label.scss ***!
120
+ \***************************************************************************************************************/
121
+ /*! no static exports found */
122
+ /***/ (function(module, exports, __webpack_require__) {
123
+
124
+ // extracted by mini-css-extract-plugin
125
+ module.exports = {"audienceLabelListItem":"cv--audienceLabelListItem--2YGVO"};
126
+
127
+ /***/ }),
128
+
129
+ /***/ "../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx":
130
+ /*!***************************************************************************************************************!*\
131
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx ***!
132
+ \***************************************************************************************************************/
133
+ /*! exports provided: FormButtons */
134
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
135
+
136
+ "use strict";
137
+ __webpack_require__.r(__webpack_exports__);
138
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormButtons", function() { return FormButtons; });
139
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
140
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
141
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
142
+ /* harmony import */ var _hooks_UseCanSubmitForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../hooks/UseCanSubmitForm */ "../../libs/shared/src/hooks/UseCanSubmitForm.ts");
143
+ /* harmony import */ var _spinner_button_SpinnerButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../spinner-button/SpinnerButton */ "../../libs/shared/src/components/spinner-button/SpinnerButton.tsx");
144
+ /* harmony import */ var _text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../text/Text */ "../../libs/shared/src/components/text/Text.tsx");
145
+
146
+
147
+
148
+
149
+
150
+ const namespace = 'shared.formButtons';
151
+ const ENTER_KEY_CODE = 13;
152
+ function FormButtons(props) {
153
+ const formikProps = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
154
+ const canSubmit = Object(_hooks_UseCanSubmitForm__WEBPACK_IMPORTED_MODULE_2__["useCanSubmitForm"])(formikProps);
155
+ /**
156
+ * This hook listens to "Enter" keypress events, and submits the form if there
157
+ * are no errors. This prevents any edge cases where submitting doesn't work on
158
+ * Enter normally, such as when a custom component is in focus.
159
+ */
160
+
161
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
162
+ function onKeyPress(e) {
163
+ if (e.keyCode !== ENTER_KEY_CODE || !canSubmit) return;
164
+ formikProps.validateForm().then(errors => {
165
+ if (!Object.keys(errors).length) formikProps.submitForm();
166
+ });
167
+ }
168
+
169
+ window.addEventListener('keypress', onKeyPress);
170
+ return () => window.removeEventListener('keypress', onKeyPress);
171
+ }, [canSubmit]);
172
+ let phraseKey = 'save';
173
+ if (props.isNew) phraseKey = 'create';
174
+ if (props.hasNext) phraseKey = 'next';
175
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_spinner_button_SpinnerButton__WEBPACK_IMPORTED_MODULE_3__["SpinnerButton"], {
176
+ showSpinner: formikProps.isSubmitting,
177
+ type: 'submit',
178
+ disabled: !canSubmit
179
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
180
+ namespace: namespace,
181
+ phrase: phraseKey
182
+ }));
183
+ }
184
+
185
+ /***/ }),
186
+
187
+ /***/ "../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx":
188
+ /*!*************************************************************************************************************!*\
189
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-checkbox/Checkbox.tsx ***!
190
+ \*************************************************************************************************************/
191
+ /*! exports provided: Checkbox */
192
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
193
+
194
+ "use strict";
195
+ __webpack_require__.r(__webpack_exports__);
196
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return Checkbox; });
197
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
198
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
199
+
200
+ Checkbox.defaultProps = {
201
+ checked: false,
202
+ label: '',
203
+ className: ''
204
+ };
205
+ /**
206
+ * Use this checkbox outside of Formik contexts
207
+ */
208
+
209
+ function Checkbox(props) {
210
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
211
+ className: `custom-control custom-checkbox ${props.className}`
212
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", {
213
+ type: 'checkbox',
214
+ className: 'custom-control-input',
215
+ id: props.id,
216
+ name: props.name,
217
+ checked: props.checked,
218
+ onChange: props.onChange
219
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", {
220
+ className: 'custom-control-label cursor-pointer',
221
+ htmlFor: props.id
222
+ }, props.label));
223
+ }
224
+
225
+ /***/ }),
226
+
227
+ /***/ "../../libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx":
228
+ /*!*****************************************************************************************************************!*\
229
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx ***!
230
+ \*****************************************************************************************************************/
231
+ /*! exports provided: FormCheckbox */
232
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
233
+
234
+ "use strict";
235
+ __webpack_require__.r(__webpack_exports__);
236
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormCheckbox", function() { return FormCheckbox; });
237
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
238
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
239
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
240
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
241
+ /* harmony import */ var _form_field_FormField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../form-field/FormField */ "../../libs/shared/src/components/forms/form-field/FormField.tsx");
242
+ var __rest = undefined && undefined.__rest || function (s, e) {
243
+ var t = {};
244
+
245
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
246
+
247
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
248
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
249
+ }
250
+ return t;
251
+ };
252
+
253
+
254
+
255
+
256
+ /**
257
+ * Use this checkbox within Formik contexts
258
+ */
259
+
260
+ function FormCheckbox(props) {
261
+ const {
262
+ label
263
+ } = props,
264
+ fieldProps = __rest(props, ["label"]);
265
+
266
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Group, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
267
+ className: 'custom-control custom-checkbox'
268
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_form_field_FormField__WEBPACK_IMPORTED_MODULE_2__["FieldWrapper"], Object.assign({
269
+ className: 'custom-control-input'
270
+ }, fieldProps)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Label, {
271
+ className: 'custom-control-label',
272
+ htmlFor: fieldProps.id
273
+ }, label)));
274
+ }
275
+
276
+ /***/ }),
277
+
278
+ /***/ "../../libs/shared/src/components/forms/form-field/CharacterCounter.tsx":
279
+ /*!******************************************************************************************************************!*\
280
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx ***!
281
+ \******************************************************************************************************************/
282
+ /*! exports provided: CharacterCounter */
283
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
284
+
285
+ "use strict";
286
+ __webpack_require__.r(__webpack_exports__);
287
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CharacterCounter", function() { return CharacterCounter; });
288
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
289
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
290
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
291
+
292
+
293
+ function CharacterCounter(props) {
294
+ const {
295
+ values
296
+ } = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
297
+ const field = values[props.fieldName];
298
+ if (typeof field !== 'string') return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
299
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
300
+ className: 'float-right text-muted'
301
+ }, field.length, "/", props.limit);
302
+ }
303
+
304
+ /***/ }),
305
+
306
+ /***/ "../../libs/shared/src/components/forms/form-field/FormField.tsx":
307
+ /*!***********************************************************************************************************!*\
308
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-field/FormField.tsx ***!
309
+ \***********************************************************************************************************/
310
+ /*! exports provided: FieldWrapper, FormField */
311
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
312
+
313
+ "use strict";
314
+ __webpack_require__.r(__webpack_exports__);
315
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FieldWrapper", function() { return FieldWrapper; });
316
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormField", function() { return FormField; });
317
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
318
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
319
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
320
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
321
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_2__);
322
+ /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
323
+ /* harmony import */ var _utils_FormHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/FormHelper */ "../../libs/shared/src/utils/FormHelper.ts");
324
+ /* harmony import */ var _CharacterCounter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CharacterCounter */ "../../libs/shared/src/components/forms/form-field/CharacterCounter.tsx");
325
+ /* harmony import */ var _form_checkbox_FormCheckbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../form-checkbox/FormCheckbox */ "../../libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx");
326
+ var __rest = undefined && undefined.__rest || function (s, e) {
327
+ var t = {};
328
+
329
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
330
+
331
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
332
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
333
+ }
334
+ return t;
335
+ };
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+ function FieldWrapper(props) {
345
+ const {
346
+ children
347
+ } = props,
348
+ fieldProps = __rest(props, ["children"]);
349
+
350
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Field"], Object.assign({}, fieldProps), _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__["FunctionHelper"].isFunction(children) ? f => children(f) : react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(children) ? children : null);
351
+ }
352
+ function FormField(props) {
353
+ const {
354
+ label,
355
+ className,
356
+ showCharacterCounter
357
+ } = props,
358
+ fieldProps = __rest(props, ["label", "className", "showCharacterCounter"]);
359
+
360
+ const {
361
+ errors,
362
+ touched
363
+ } = Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
364
+ if (fieldProps.type === 'checkbox') return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_form_checkbox_FormCheckbox__WEBPACK_IMPORTED_MODULE_6__["FormCheckbox"], Object.assign({}, props));
365
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Group, null, !!label && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Label, {
366
+ htmlFor: fieldProps.id
367
+ }, label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](FieldWrapper, Object.assign({
368
+ className: _utils_FormHelper__WEBPACK_IMPORTED_MODULE_4__["FormHelper"].getCustomFormControlClassName(errors, touched, fieldProps.name, className)
369
+ }, fieldProps)), !!showCharacterCounter && !!fieldProps.maxLength && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CharacterCounter__WEBPACK_IMPORTED_MODULE_5__["CharacterCounter"], {
370
+ fieldName: fieldProps.name,
371
+ limit: fieldProps.maxLength
372
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["ErrorMessage"], {
373
+ name: fieldProps.name
374
+ }, errorMessage => react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_2__["Form"].Control.Feedback, {
375
+ type: 'invalid'
376
+ }, errorMessage)));
377
+ }
378
+
379
+ /***/ }),
380
+
381
+ /***/ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx":
382
+ /*!***************************************************************************************************************!*\
383
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx ***!
384
+ \***************************************************************************************************************/
385
+ /*! exports provided: FormWrapper, useFormikContextWrapper */
386
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
387
+
388
+ "use strict";
389
+ __webpack_require__.r(__webpack_exports__);
390
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormWrapper", function() { return FormWrapper; });
391
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useFormikContextWrapper", function() { return useFormikContextWrapper; });
392
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
393
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
394
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
395
+ /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
396
+ /* harmony import */ var _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
397
+ var __rest = undefined && undefined.__rest || function (s, e) {
398
+ var t = {};
399
+
400
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
401
+
402
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
403
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
404
+ }
405
+ return t;
406
+ };
407
+
408
+
409
+
410
+
411
+
412
+
413
+ function omitNullInitialValues(initialValues) {
414
+ const values = _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].deepClone(initialValues);
415
+ Object.keys(values).forEach(key => {
416
+ if (!values.hasOwnProperty(key)) return;
417
+ if (_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].isObject(values[key])) values[key] = omitNullInitialValues(values[key]);else if (values[key] === null) delete values[key];
418
+ });
419
+ return values;
420
+ }
421
+
422
+ FormWrapper.defaultProps = {
423
+ castInitialValues: true,
424
+ castValuesOnSubmit: true
425
+ };
426
+ function FormWrapper(props) {
427
+ const {
428
+ castInitialValues,
429
+ castValuesOnSubmit,
430
+ initialValues,
431
+ onSubmit,
432
+ resetOnSubmit
433
+ } = props,
434
+ formikProps = __rest(props, ["castInitialValues", "castValuesOnSubmit", "initialValues", "onSubmit", "resetOnSubmit"]);
435
+ /**
436
+ * If castInitialValues is true, cast initialValues to the validationSchema.
437
+ * This will ensure that any data fetched from the api conforms to the expected form data shape.
438
+ */
439
+
440
+
441
+ const formattedInitialValues = castInitialValues && props.validationSchema ? props.validationSchema.cast(omitNullInitialValues(initialValues)) : initialValues;
442
+
443
+ const onSubmitHandler = (values, {
444
+ setSubmitting,
445
+ resetForm
446
+ }) => {
447
+ /**
448
+ * validationSchema.cast will coerce the values to the types defined in validationSchema.
449
+ * This is useful for trimming inputs:
450
+ * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.
451
+ */
452
+ const formattedData = castValuesOnSubmit && props.validationSchema ? props.validationSchema.cast(values) : values;
453
+ onSubmit(formattedData, () => {
454
+ resetOnSubmit && resetForm();
455
+ setSubmitting(false);
456
+ });
457
+ };
458
+
459
+ const initialStatus = {
460
+ allowInitialSubmit: props.allowInitialSubmit
461
+ };
462
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Formik"], Object.assign({
463
+ enableReinitialize: true
464
+ }, formikProps, {
465
+ initialValues: formattedInitialValues,
466
+ onSubmit: onSubmitHandler,
467
+ initialStatus: initialStatus
468
+ }), _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction(props.children) ? f => props.children(f) : react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(props.children) ? props.children : null);
469
+ }
470
+ function useFormikContextWrapper() {
471
+ return Object(formik__WEBPACK_IMPORTED_MODULE_1__["useFormikContext"])();
472
+ }
473
+
474
+ /***/ }),
475
+
476
+ /***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx":
477
+ /*!**************************************************************************************************************************************!*\
478
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx ***!
479
+ \**************************************************************************************************************************************/
480
+ /*! exports provided: PlaylistWidgetItem */
481
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
482
+
483
+ "use strict";
484
+ __webpack_require__.r(__webpack_exports__);
485
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistWidgetItem", function() { return PlaylistWidgetItem; });
486
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
487
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
488
+ /* harmony import */ var _apps_playlists_components_playlist_list_PlaylistItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../apps/playlists/components/playlist-list/PlaylistItem */ "../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx");
489
+ /* harmony import */ var _playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./playlist-widget-item.scss */ "../../libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss");
490
+ /* harmony import */ var _playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2__);
491
+ var __rest = undefined && undefined.__rest || function (s, e) {
492
+ var t = {};
493
+
494
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
495
+
496
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
497
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
498
+ }
499
+ return t;
500
+ };
501
+
502
+
503
+
504
+
505
+ function PlaylistWidgetItem(props) {
506
+ const {
507
+ context
508
+ } = props,
509
+ otherProps = __rest(props, ["context"]);
510
+
511
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
512
+ className: `position-relative p-1 flex-shrink-0 ${_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.width}`
513
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_apps_playlists_components_playlist_list_PlaylistItem__WEBPACK_IMPORTED_MODULE_1__["PlaylistItem"], Object.assign({}, otherProps)));
514
+ }
515
+
516
+ /***/ }),
517
+
518
+ /***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss":
519
+ /*!*****************************************************************************************************************************************!*\
520
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss ***!
521
+ \*****************************************************************************************************************************************/
522
+ /*! no static exports found */
523
+ /***/ (function(module, exports, __webpack_require__) {
524
+
525
+ // extracted by mini-css-extract-plugin
526
+ module.exports = {"width":"cv--width--wNWEd"};
527
+
528
+ /***/ }),
529
+
530
+ /***/ "../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx":
531
+ /*!**********************************************************************************************************************************!*\
532
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx ***!
533
+ \**********************************************************************************************************************************/
534
+ /*! exports provided: SeriesWidgetItem */
535
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
536
+
537
+ "use strict";
538
+ __webpack_require__.r(__webpack_exports__);
539
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeriesWidgetItem", function() { return SeriesWidgetItem; });
540
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
541
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
542
+ /* harmony import */ var _common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../common/src/react/utils/TextHelper */ "../../libs/common/src/react/utils/TextHelper.ts");
543
+ /* harmony import */ var _hooks_UseHover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../hooks/UseHover */ "../../libs/shared/src/hooks/UseHover.ts");
544
+ /* harmony import */ var _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../utils/AudienceHelper */ "../../libs/shared/src/utils/AudienceHelper.ts");
545
+ /* harmony import */ var _app_link_AppLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
546
+ /* harmony import */ var _thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../thumbnails/base/BaseThumbnail */ "../../libs/shared/src/components/thumbnails/base/BaseThumbnail.tsx");
547
+ /* harmony import */ var _thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../thumbnails/base/ThumbnailFallback */ "../../libs/shared/src/components/thumbnails/base/ThumbnailFallback.tsx");
548
+ /* harmony import */ var _enums_ThumbnailSize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../enums/ThumbnailSize */ "../../libs/shared/src/enums/ThumbnailSize.ts");
549
+ /* harmony import */ var _audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../audience-label/AudienceLabel */ "../../libs/shared/src/components/audience-label/AudienceLabel.tsx");
550
+ /* harmony import */ var _badges_Badge__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../badges/Badge */ "../../libs/shared/src/components/badges/Badge.tsx");
551
+ /* harmony import */ var _series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./series-widget-item.scss */ "../../libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss");
552
+ /* harmony import */ var _series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10__);
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+ function SeriesWidgetItem(props) {
565
+ const {
566
+ data: series,
567
+ appLink,
568
+ preloadImage
569
+ } = props;
570
+ const seriesAppLink = Object.assign(Object.assign({}, appLink), {
571
+ args: [series.id, _common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_1__["TextHelper"].slugify(series.name)]
572
+ });
573
+ /**
574
+ * Subject audiences currently take render precedence over rating.
575
+ *
576
+ * This means that until we properly add productionCompanies to series, we
577
+ * should expect only CV series to have a subject audience. Any TV series
578
+ * from the Exchange should only have a rating.
579
+ */
580
+
581
+ let audiences = series && series.subjectPresentationAudiences && series.subjectPresentationAudiences.data || [];
582
+ const filteredAudiences = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__["AudienceHelper"].getSortedPresentationAudiences(audiences, props.audiences);
583
+ const mergedAudience = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_3__["AudienceHelper"].getMergedPresentationAudienceString(filteredAudiences);
584
+ const [hoverRef, isHovering] = Object(_hooks_UseHover__WEBPACK_IMPORTED_MODULE_2__["useHoverIntent"])(_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.hoverActive);
585
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_app_link_AppLink__WEBPACK_IMPORTED_MODULE_4__["AppLink"], {
586
+ key: series.id,
587
+ appLink: seriesAppLink,
588
+ className: `position-relative p-1 flex-shrink-0 ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.width}`
589
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
590
+ ref: hoverRef
591
+ }, isHovering && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
592
+ className: `p-3 text-white text-center ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.mask}`
593
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
594
+ className: 'h4'
595
+ }, series.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, series.description)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__["BaseThumbnail"], {
596
+ data: series.tallPoster,
597
+ aspectRatio: _thumbnails_base_BaseThumbnail__WEBPACK_IMPORTED_MODULE_5__["AspectRatio"].NineBySixteen,
598
+ preload: preloadImage,
599
+ size: _enums_ThumbnailSize__WEBPACK_IMPORTED_MODULE_7__["ThumbnailSize"].Large
600
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__["ThumbnailFallback"], {
601
+ type: _thumbnails_base_ThumbnailFallback__WEBPACK_IMPORTED_MODULE_6__["ThumbnailFallbackType"].Series
602
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
603
+ className: `position-absolute text-white ${_series_widget_item_scss__WEBPACK_IMPORTED_MODULE_10___default.a.labelContainer}`
604
+ }, !!audiences && audiences.length ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_audience_label_AudienceLabel__WEBPACK_IMPORTED_MODULE_8__["AudienceLabel"], {
605
+ audience: mergedAudience,
606
+ border: 'white'
607
+ }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_badges_Badge__WEBPACK_IMPORTED_MODULE_9__["Badge"], {
608
+ type: _badges_Badge__WEBPACK_IMPORTED_MODULE_9__["BadgeType"].Rating,
609
+ data: series.rating
610
+ })))));
611
+ }
612
+
613
+ /***/ }),
614
+
615
+ /***/ "../../libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss":
616
+ /*!*************************************************************************************************************************************!*\
617
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/series-widget-item.scss ***!
618
+ \*************************************************************************************************************************************/
619
+ /*! no static exports found */
620
+ /***/ (function(module, exports, __webpack_require__) {
621
+
622
+ // extracted by mini-css-extract-plugin
623
+ module.exports = {"partialLoadingHeading":"cv--partialLoadingHeading--1RLPq","partialLoading":"cv--partialLoading--oArG4","labelContainer":"cv--labelContainer--QLCgm","hoverActive":"cv--hoverActive--3Aleb","mask":"cv--mask--2M2Zz","width":"cv--width--TQg2K"};
624
+
625
+ /***/ }),
626
+
627
+ /***/ "../../libs/shared/src/hooks/UseCanSubmitForm.ts":
628
+ /*!*******************************************************************************************!*\
629
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseCanSubmitForm.ts ***!
630
+ \*******************************************************************************************/
631
+ /*! exports provided: useCanSubmitForm */
632
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
633
+
634
+ "use strict";
635
+ __webpack_require__.r(__webpack_exports__);
636
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useCanSubmitForm", function() { return useCanSubmitForm; });
637
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
638
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
639
+
640
+ /**
641
+ * useCanSubmitForm determines if a form can be submitted.
642
+ *
643
+ * It will return true if a form is valid and has been changed from it's initial state.
644
+ *
645
+ * A common use case for this is determining whether or not to enable
646
+ * a submit button in a form.
647
+ */
648
+
649
+ function useCanSubmitForm(formikProps) {
650
+ var _a;
651
+
652
+ const [canSubmit, setCanSubmit] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false);
653
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
654
+ var _a;
655
+
656
+ if (!formikProps.isValid) {
657
+ setCanSubmit(false);
658
+ return;
659
+ } // If the form values have changed of if allowInitialSubmit is true, set canSubmit to true.
660
+
661
+
662
+ if (formikProps.dirty || ((_a = formikProps.initialStatus) === null || _a === void 0 ? void 0 : _a.allowInitialSubmit)) setCanSubmit(true);else setCanSubmit(false);
663
+ }, [formikProps.isValid, (_a = formikProps.initialStatus) === null || _a === void 0 ? void 0 : _a.allowInitialSubmit, formikProps.dirty, formikProps.values]);
664
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
665
+ if (formikProps.isSubmitting) setCanSubmit(false);
666
+ }, [formikProps.isSubmitting]);
667
+ return canSubmit;
668
+ }
669
+
670
+ /***/ }),
671
+
672
+ /***/ "../../libs/shared/src/utils/AudienceHelper.ts":
673
+ /*!*****************************************************************************************!*\
674
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/AudienceHelper.ts ***!
675
+ \*****************************************************************************************/
676
+ /*! exports provided: AudienceHelper */
677
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
678
+
679
+ "use strict";
680
+ __webpack_require__.r(__webpack_exports__);
681
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AudienceHelper", function() { return AudienceHelper; });
682
+ /* harmony import */ var _common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
683
+
684
+ const DIGIT_REGEX = /([0-9]+)/ig;
685
+ const NAME_REGEX = /(^\w+)/ig;
686
+ const COUNT_OFFSET = 1;
687
+
688
+ function processAudienceRanges(audienceValues) {
689
+ /**
690
+ * Lookahead by increments of offset
691
+ */
692
+ let offset = COUNT_OFFSET;
693
+ let initialVal, nextVal;
694
+ let isContinguous = false;
695
+ const ranges = []; // Audience values need to be in ascending order
696
+
697
+ audienceValues = audienceValues.sort((a, b) => a - b);
698
+ let i, j;
699
+
700
+ for (i = 0; i < audienceValues.length; i++) {
701
+ j = i + 1; // Set our lower boundary to compare against
702
+
703
+ if (!isContinguous) initialVal = audienceValues[i];
704
+ nextVal = audienceValues[j];
705
+ /**
706
+ * Where the next number is also the next incremental value
707
+ * we're going to continue iterating until the next value
708
+ * is no longer contiguos.
709
+ */
710
+
711
+ if (audienceValues[i] + offset === nextVal) {
712
+ isContinguous = true;
713
+ } else if (isContinguous) {
714
+ /**
715
+ * Where we were tracking a contiguous set, format appropriately
716
+ * and store the vals
717
+ */
718
+ ranges.push(`${initialVal} - ${audienceValues[i]}`);
719
+ isContinguous = false;
720
+ } else {
721
+ /**
722
+ * Where the values arent contiguous, just store the current value
723
+ */
724
+ ranges.push(`${audienceValues[i]}`);
725
+ isContinguous = false;
726
+ }
727
+ }
728
+
729
+ return ranges;
730
+ }
731
+
732
+ const AudienceHelper = {
733
+ /**
734
+ * This is needed to sort an object's audiences, as they are not sorted by the backend.
735
+ * To do this, we take the presentation audiences (sorted) and filter them by the object's
736
+ * audiences, leaving behind a sorted array of object audiences.
737
+ */
738
+ getSortedPresentationAudiences(objectAudiences, presentationAudiences) {
739
+ const objectAudienceIds = objectAudiences.map(audience => audience.id.toString());
740
+ /**
741
+ * Remove audiences that aren't relevant for the user's current presentation
742
+ */
743
+
744
+ const filteredAudiences = presentationAudiences.filter(presAudience => {
745
+ return objectAudienceIds.includes(presAudience.masterId.toString());
746
+ });
747
+ return filteredAudiences;
748
+ },
749
+
750
+ getMergedPresentationAudienceString(presentationAudiences) {
751
+ if (presentationAudiences.length === 1) return presentationAudiences[0];
752
+ /**
753
+ * Create a string with all of the audiences
754
+ */
755
+
756
+ const valuesStr = presentationAudiences.map(a => a.name).join(',');
757
+ /**
758
+ * Extract all the numbers and matches from the string
759
+ * Where there aren't matches, just return the first Audience.
760
+ */
761
+
762
+ const valMatches = valuesStr.match(DIGIT_REGEX);
763
+ const nameMatches = valuesStr.match(NAME_REGEX);
764
+ if (!valMatches || !nameMatches) return presentationAudiences[0];
765
+ const audienceValues = valMatches.map(l => +l) || [];
766
+ /**
767
+ * Build set of logical audience ranges
768
+ */
769
+
770
+ const audienceRange = processAudienceRanges(audienceValues);
771
+ /**
772
+ * Get matches name
773
+ */
774
+
775
+ const audienceName = nameMatches[0];
776
+ return {
777
+ name: `${audienceName} ${audienceRange.join(' , ')}`
778
+ };
779
+ },
780
+
781
+ /**
782
+ * This function assumes the members array passed in is ordered by `name`.
783
+ */
784
+ sortMembersWithDuplicateNamesByAudience(members) {
785
+ // Returns the lowest level audience out of an array of audience objects by looking at the name
786
+ const getLowestAudience = audiences => {
787
+ let lowestAudience;
788
+ let lowestAudienceDigit;
789
+ audiences.forEach(audience => {
790
+ const digit = +_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__["ArrayHelper"].first(audience.name.match(DIGIT_REGEX));
791
+
792
+ if (!lowestAudience) {
793
+ lowestAudience = audience;
794
+ lowestAudienceDigit = digit;
795
+ return;
796
+ }
797
+
798
+ if (digit > lowestAudienceDigit) lowestAudience = audience;
799
+ });
800
+ return lowestAudience;
801
+ }; // This is used to track how many times a member's name appears in the collection
802
+
803
+
804
+ const nameCountMap = {};
805
+ let sorted = [];
806
+ members.forEach(member => {
807
+ if (!nameCountMap[member.name]) {
808
+ nameCountMap[member.name] = 1;
809
+ sorted.push(member);
810
+ return;
811
+ }
812
+
813
+ sorted.push(member);
814
+ nameCountMap[member.name]++; // Take the slice of duplicates that we want to sort by audience
815
+
816
+ const slice = sorted.splice(sorted.length - nameCountMap[member.name]); // Sort the slice by lowest audience
817
+
818
+ const sortedSlice = slice.sort((a, b) => {
819
+ const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);
820
+ const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);
821
+ return firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);
822
+ });
823
+ sorted = sorted.concat(sortedSlice);
824
+ });
825
+ return sorted;
826
+ }
827
+
828
+ };
829
+
830
+ /***/ }),
831
+
832
+ /***/ "../../libs/shared/src/utils/FormHelper.ts":
833
+ /*!*************************************************************************************!*\
834
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/FormHelper.ts ***!
835
+ \*************************************************************************************/
836
+ /*! exports provided: FormHelper */
837
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
838
+
839
+ "use strict";
840
+ __webpack_require__.r(__webpack_exports__);
841
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormHelper", function() { return FormHelper; });
842
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
843
+
844
+ const FormHelper = {
845
+ getCustomFormControlClassName(errors, touched, attribute, additionalClassName) {
846
+ let className = 'form-control'; // Using getIn as it supports dot notation
847
+
848
+ if (Object(formik__WEBPACK_IMPORTED_MODULE_0__["getIn"])(touched, attribute) && Object(formik__WEBPACK_IMPORTED_MODULE_0__["getIn"])(errors, attribute)) className += ' is-invalid';
849
+ if (additionalClassName) className += ` ${additionalClassName}`;
850
+ return className;
851
+ }
852
+
853
+ };
854
+
855
+ /***/ }),
856
+
857
+ /***/ "./src/apps/search/components/filter-actions/FilterActions.tsx":
858
+ /*!*********************************************************************!*\
859
+ !*** ./src/apps/search/components/filter-actions/FilterActions.tsx ***!
860
+ \*********************************************************************/
861
+ /*! exports provided: FilterActions */
862
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
863
+
864
+ "use strict";
865
+ __webpack_require__.r(__webpack_exports__);
866
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return FilterActions; });
867
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
868
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
869
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intersection-observer */ "react-intersection-observer");
870
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
871
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
872
+ /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
873
+ /* harmony import */ var _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/services/ContextService */ "../../libs/shared/src/services/ContextService.ts");
874
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
875
+ /* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
876
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
877
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
878
+ /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
879
+ /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
880
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
881
+
882
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
883
+
884
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
885
+
886
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
887
+
888
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
889
+
890
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+ var namespace = 'search.filterActions';
904
+
905
+ var triggerAppLink = function triggerAppLink(stateChange) {
906
+ var currentQueryParams = _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].LocationUtils.GetQuery();
907
+ var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_4__["ContextService"].getCurrentRoute().appLink;
908
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].AppLinkHelper.trigger({
909
+ application: currentAppLink.application,
910
+ action: currentAppLink.action,
911
+ params: apps_search_utils__WEBPACK_IMPORTED_MODULE_8__["FilterHelper"].buildQueryParams(currentQueryParams, stateChange)
912
+ });
913
+ };
914
+
915
+ FilterActions.defaultProps = {
916
+ active: false,
917
+ className: ''
918
+ };
919
+ function FilterActions(props) {
920
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__["FilterContext"]),
921
+ dispatch = _React$useContext.dispatch;
922
+
923
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false),
924
+ _React$useState2 = _slicedToArray(_React$useState, 2),
925
+ triggerOnClose = _React$useState2[0],
926
+ setTriggerOnClose = _React$useState2[1];
927
+
928
+ var _ReactIntersectionObs = react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__["useInView"](),
929
+ _ReactIntersectionObs2 = _slicedToArray(_ReactIntersectionObs, 2),
930
+ ref = _ReactIntersectionObs2[0],
931
+ inView = _ReactIntersectionObs2[1];
932
+
933
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
934
+ if (typeof window.IntersectionObserver === 'undefined') return;
935
+
936
+ if (inView) {
937
+ setTriggerOnClose(true);
938
+ return;
939
+ }
940
+
941
+ if (!inView && triggerOnClose) {
942
+ setTriggerOnClose(false);
943
+ applyFilter(false);
944
+ }
945
+ }, [inView]);
946
+
947
+ function applyFilter(applyClicked) {
948
+ var _a, _b; // The default value should not be set as a query param
949
+
950
+
951
+ var isDefaultValue = ((_a = props.selection) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_b = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_3__["ArrayHelper"].first(props.selection)) === null || _b === void 0 ? void 0 : _b["default"]);
952
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
953
+ filter: props.filter.name,
954
+ selection: props.selection && !isDefaultValue ? props.selection : [],
955
+ isActive: props.active && !isDefaultValue,
956
+ applyClicked: applyClicked
957
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
958
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
959
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter
960
+ }));
961
+ var payload = {
962
+ filter: props.filter,
963
+ active: props.active && !isDefaultValue,
964
+ selection: props.selection && !isDefaultValue ? props.selection : []
965
+ };
966
+ dispatch({
967
+ type: 'apply',
968
+ payload: payload
969
+ });
970
+ triggerAppLink(payload);
971
+ }
972
+
973
+ function onClickReset(e) {
974
+ e.preventDefault();
975
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
976
+ filter: props.filter.name
977
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
978
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
979
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter,
980
+ descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["FilterDescriptor"].Reset
981
+ }));
982
+ var payload = {
983
+ filter: props.filter,
984
+ active: false,
985
+ selection: null
986
+ };
987
+ dispatch({
988
+ type: 'reset',
989
+ payload: payload
990
+ });
991
+ triggerAppLink(payload);
992
+ }
993
+
994
+ function onClickApply(e) {
995
+ e.preventDefault();
996
+ applyFilter(true);
997
+ }
998
+
999
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1000
+ ref: ref,
1001
+ className: "d-flex justify-content-between ".concat(props.className)
1002
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
1003
+ className: 'text-muted hover-text-underline cursor-pointer',
1004
+ onClick: onClickReset
1005
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
1006
+ namespace: namespace,
1007
+ phrase: 'reset'
1008
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
1009
+ className: 'info-link',
1010
+ onClick: onClickApply
1011
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
1012
+ namespace: namespace,
1013
+ phrase: 'apply'
1014
+ })));
1015
+ }
1016
+
1017
+ /***/ }),
1018
+
1019
+ /***/ "./src/apps/search/components/filter-button/FilterButton.tsx":
1020
+ /*!*******************************************************************!*\
1021
+ !*** ./src/apps/search/components/filter-button/FilterButton.tsx ***!
1022
+ \*******************************************************************/
1023
+ /*! exports provided: FilterButton */
1024
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1025
+
1026
+ "use strict";
1027
+ __webpack_require__.r(__webpack_exports__);
1028
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return FilterButton; });
1029
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1030
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1031
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
1032
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
1033
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
1034
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1035
+ /* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter-button.scss */ "./src/apps/search/components/filter-button/filter-button.scss");
1036
+ /* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4__);
1037
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1038
+
1039
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1040
+
1041
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1042
+
1043
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1044
+
1045
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1046
+
1047
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+ function FilterButton(props) {
1055
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.filter.name),
1056
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1057
+ label = _React$useState2[0],
1058
+ setLabel = _React$useState2[1];
1059
+
1060
+ var FilterComponent = props.filter.customComponent ? props.filter.customComponent : apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].mapTypeToComponent(props.filter.type);
1061
+
1062
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
1063
+ state = _React$useContext.state;
1064
+
1065
+ var filterState = state[props.filter.id];
1066
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
1067
+ setLabel(apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].getLabel(props.filter, filterState));
1068
+ }, [props.filter, filterState.selection]);
1069
+ var baseClass = "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterButton, " mx-1 btn");
1070
+ var colorClass = filterState.active ? 'btn-info' : 'btn-light';
1071
+ var caretClass = props.filter.type !== 'dropdown' ? _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.hideCaret : '';
1072
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Toggle, {
1073
+ id: props.filter.id,
1074
+ className: "".concat(baseClass, " ").concat(colorClass, " ").concat(caretClass)
1075
+ }, label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Menu, {
1076
+ onClick: function onClick(e) {
1077
+ return e.stopPropagation();
1078
+ }
1079
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1080
+ className: "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterItem, " mx-1 ").concat(props.filter.type !== 'dropdown' ? 'px-2 py-1' : '')
1081
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](FilterComponent, {
1082
+ analyticsOptions: props.analyticsOptions,
1083
+ filter: props.filter
1084
+ }))));
1085
+ }
1086
+
1087
+ /***/ }),
1088
+
1089
+ /***/ "./src/apps/search/components/filter-button/filter-button.scss":
1090
+ /*!*********************************************************************!*\
1091
+ !*** ./src/apps/search/components/filter-button/filter-button.scss ***!
1092
+ \*********************************************************************/
1093
+ /*! no static exports found */
1094
+ /***/ (function(module, exports, __webpack_require__) {
1095
+
1096
+ // extracted by mini-css-extract-plugin
1097
+ module.exports = {"filterButton":"cv--filterButton--2LJ1G","hideCaret":"cv--hideCaret--2OStB","filterItem":"cv--filterItem--13K5j"};
1098
+
1099
+ /***/ }),
1100
+
1101
+ /***/ "./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx":
1102
+ /*!************************************************************************************!*\
1103
+ !*** ./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx ***!
1104
+ \************************************************************************************/
1105
+ /*! exports provided: CheckboxFilter */
1106
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1107
+
1108
+ "use strict";
1109
+ __webpack_require__.r(__webpack_exports__);
1110
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return CheckboxFilter; });
1111
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1112
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1113
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
1114
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
1115
+ /* harmony import */ var _libs_shared_src_components_forms_form_checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/components/forms/form-checkbox/Checkbox */ "../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx");
1116
+ /* harmony import */ var shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/hooks/useBulkCheckboxManager */ "./src/shared/hooks/useBulkCheckboxManager.tsx");
1117
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1118
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+ function CheckboxFilter(props) {
1126
+ var _a;
1127
+
1128
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"]),
1129
+ state = _React$useContext.state;
1130
+
1131
+ var filterState = state[props.filter.id];
1132
+
1133
+ var _useBulkCheckboxManag = Object(shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__["useBulkCheckboxManager"])(props.filter.options, {
1134
+ preselectedIds: ((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.map(function (s) {
1135
+ return s.id;
1136
+ })) || []
1137
+ }),
1138
+ onToggleItem = _useBulkCheckboxManag.onToggleItem,
1139
+ isChecked = _useBulkCheckboxManag.isChecked,
1140
+ getSelected = _useBulkCheckboxManag.getSelected;
1141
+
1142
+ var selections = getSelected().map(function (optionName) {
1143
+ return props.filter.options.find(function (o) {
1144
+ return o.id === optionName;
1145
+ });
1146
+ });
1147
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
1148
+ className: 'h6 mb-2'
1149
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
1150
+ className: 'mb-3'
1151
+ }, props.filter.options.map(function (option) {
1152
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_2__["Checkbox"], {
1153
+ key: option.id,
1154
+ label: option.name,
1155
+ name: option.id,
1156
+ id: option.id,
1157
+ onChange: function onChange() {
1158
+ return onToggleItem(option.id);
1159
+ },
1160
+ checked: isChecked(option.id),
1161
+ className: 'my-1'
1162
+ });
1163
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__["FilterActions"], {
1164
+ active: !!selections.length,
1165
+ filter: props.filter,
1166
+ selection: selections,
1167
+ analyticsOptions: props.analyticsOptions
1168
+ }));
1169
+ }
1170
+
1171
+ /***/ }),
1172
+
1173
+ /***/ "./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx":
1174
+ /*!************************************************************************************!*\
1175
+ !*** ./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx ***!
1176
+ \************************************************************************************/
1177
+ /*! exports provided: DropdownFilter */
1178
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1179
+
1180
+ "use strict";
1181
+ __webpack_require__.r(__webpack_exports__);
1182
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return DropdownFilter; });
1183
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1184
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1185
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
1186
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
1187
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1188
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
1189
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1190
+
1191
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1192
+
1193
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1194
+
1195
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1196
+
1197
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1198
+
1199
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+ function DropdownFilter(props) {
1206
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__["FilterContext"]),
1207
+ state = _React$useContext.state;
1208
+
1209
+ var filterState = state[props.filter.id];
1210
+
1211
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(filterState.selection),
1212
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1213
+ currentSelection = _React$useState2[0],
1214
+ setCurrentSelection = _React$useState2[1];
1215
+
1216
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.filter.options.map(function (option) {
1217
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Item, {
1218
+ key: option.id,
1219
+ onClick: function onClick() {
1220
+ return setCurrentSelection([option]);
1221
+ }
1222
+ }, option.name);
1223
+ }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"], {
1224
+ active: !!currentSelection,
1225
+ filter: props.filter,
1226
+ selection: currentSelection,
1227
+ className: 'pt-1 px-2',
1228
+ analyticsOptions: props.analyticsOptions
1229
+ }));
1230
+ }
1231
+
1232
+ /***/ }),
1233
+
1234
+ /***/ "./src/apps/search/components/filter-types/index.ts":
1235
+ /*!**********************************************************!*\
1236
+ !*** ./src/apps/search/components/filter-types/index.ts ***!
1237
+ \**********************************************************/
1238
+ /*! exports provided: CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
1239
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1240
+
1241
+ "use strict";
1242
+ __webpack_require__.r(__webpack_exports__);
1243
+ /* harmony import */ var _checkbox_filter_CheckboxFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkbox-filter/CheckboxFilter */ "./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx");
1244
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _checkbox_filter_CheckboxFilter__WEBPACK_IMPORTED_MODULE_0__["CheckboxFilter"]; });
1245
+
1246
+ /* harmony import */ var _more_filters_MoreFilters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./more-filters/MoreFilters */ "./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx");
1247
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _more_filters_MoreFilters__WEBPACK_IMPORTED_MODULE_1__["MoreFilters"]; });
1248
+
1249
+ /* harmony import */ var _switch_filter_SwitchFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./switch-filter/SwitchFilter */ "./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx");
1250
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _switch_filter_SwitchFilter__WEBPACK_IMPORTED_MODULE_2__["SwitchFilter"]; });
1251
+
1252
+ /* harmony import */ var _dropdown_filter_DropdownFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropdown-filter/DropdownFilter */ "./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx");
1253
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _dropdown_filter_DropdownFilter__WEBPACK_IMPORTED_MODULE_3__["DropdownFilter"]; });
1254
+
1255
+ /* harmony import */ var _radio_filter_RadioFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radio-filter/RadioFilter */ "./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx");
1256
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _radio_filter_RadioFilter__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"]; });
1257
+
1258
+ /* harmony import */ var _radio_filter_year_level_YearLevelRadioFilter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./radio-filter/year-level/YearLevelRadioFilter */ "./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx");
1259
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _radio_filter_year_level_YearLevelRadioFilter__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+ /***/ }),
1269
+
1270
+ /***/ "./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx":
1271
+ /*!******************************************************************************!*\
1272
+ !*** ./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx ***!
1273
+ \******************************************************************************/
1274
+ /*! exports provided: MoreFilters */
1275
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1276
+
1277
+ "use strict";
1278
+ __webpack_require__.r(__webpack_exports__);
1279
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return MoreFilters; });
1280
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1281
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1282
+
1283
+ function MoreFilters(props) {
1284
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
1285
+ }
1286
+
1287
+ /***/ }),
1288
+
1289
+ /***/ "./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx":
1290
+ /*!******************************************************************************!*\
1291
+ !*** ./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx ***!
1292
+ \******************************************************************************/
1293
+ /*! exports provided: RadioFilter */
1294
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1295
+
1296
+ "use strict";
1297
+ __webpack_require__.r(__webpack_exports__);
1298
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return RadioFilter; });
1299
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1300
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1301
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
1302
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
1303
+ /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
1304
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1305
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
1306
+ /* harmony import */ var _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./radio-filter.scss */ "./src/apps/search/components/filter-types/radio-filter/radio-filter.scss");
1307
+ /* harmony import */ var _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_radio_filter_scss__WEBPACK_IMPORTED_MODULE_5__);
1308
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1309
+
1310
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1311
+
1312
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1313
+
1314
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1315
+
1316
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1317
+
1318
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+ function RadioFilter(props) {
1327
+ var _a;
1328
+
1329
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
1330
+ state = _React$useContext.state;
1331
+
1332
+ var filterState = state[props.filter.id];
1333
+
1334
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
1335
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1336
+ currentSelection = _React$useState2[0],
1337
+ setCurrentSelection = _React$useState2[1];
1338
+
1339
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
1340
+ return setCurrentSelection(filterState.selection);
1341
+ }, [filterState.selection]);
1342
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
1343
+ className: 'h6 mb-2'
1344
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
1345
+ className: 'mb-3'
1346
+ }, props.filter.options.map(function (option) {
1347
+ var _a;
1348
+
1349
+ var isSelected = ((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length) && option.id === _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(currentSelection).id;
1350
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Check, {
1351
+ key: option.id,
1352
+ custom: true,
1353
+ type: 'radio',
1354
+ label: option.name,
1355
+ name: option.id,
1356
+ id: option.id,
1357
+ value: option.id,
1358
+ onChange: function onChange() {
1359
+ return setCurrentSelection([option]);
1360
+ },
1361
+ checked: isSelected,
1362
+ className: _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default.a.radioFilter
1363
+ });
1364
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
1365
+ active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
1366
+ filter: props.filter,
1367
+ selection: currentSelection,
1368
+ analyticsOptions: props.analyticsOptions
1369
+ }));
1370
+ }
1371
+
1372
+ /***/ }),
1373
+
1374
+ /***/ "./src/apps/search/components/filter-types/radio-filter/radio-filter.scss":
1375
+ /*!********************************************************************************!*\
1376
+ !*** ./src/apps/search/components/filter-types/radio-filter/radio-filter.scss ***!
1377
+ \********************************************************************************/
1378
+ /*! no static exports found */
1379
+ /***/ (function(module, exports, __webpack_require__) {
1380
+
1381
+ // extracted by mini-css-extract-plugin
1382
+ module.exports = {"radioFilter":"cv--radioFilter--3srm_"};
1383
+
1384
+ /***/ }),
1385
+
1386
+ /***/ "./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx":
1387
+ /*!**************************************************************************************************!*\
1388
+ !*** ./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx ***!
1389
+ \**************************************************************************************************/
1390
+ /*! exports provided: YearLevelRadioFilter */
1391
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1392
+
1393
+ "use strict";
1394
+ __webpack_require__.r(__webpack_exports__);
1395
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return YearLevelRadioFilter; });
1396
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1397
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1398
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
1399
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
1400
+ /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
1401
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1402
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
1403
+ /* harmony import */ var apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/user-manager/components */ "./src/apps/user-manager/components/index.ts");
1404
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1405
+
1406
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1407
+
1408
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1409
+
1410
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1411
+
1412
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1413
+
1414
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+ function YearLevelRadioFilter(props) {
1423
+ var _a;
1424
+
1425
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
1426
+ state = _React$useContext.state;
1427
+
1428
+ var filterState = state[props.filter.id];
1429
+
1430
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
1431
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1432
+ currentSelection = _React$useState2[0],
1433
+ setCurrentSelection = _React$useState2[1];
1434
+
1435
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
1436
+ return setCurrentSelection(filterState.selection);
1437
+ }, [filterState.selection]);
1438
+
1439
+ function onSelect(yearLevel) {
1440
+ setCurrentSelection([yearLevel]);
1441
+ }
1442
+
1443
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
1444
+ className: 'h6 mb-2'
1445
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
1446
+ className: 'mb-3'
1447
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__["YearLevelSelect"], {
1448
+ yearLevels: props.filter.options,
1449
+ onSelect: onSelect,
1450
+ selected: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(currentSelection)
1451
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
1452
+ active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
1453
+ filter: props.filter,
1454
+ selection: currentSelection,
1455
+ analyticsOptions: props.analyticsOptions
1456
+ }));
1457
+ }
1458
+
1459
+ /***/ }),
1460
+
1461
+ /***/ "./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx":
1462
+ /*!********************************************************************************!*\
1463
+ !*** ./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx ***!
1464
+ \********************************************************************************/
1465
+ /*! exports provided: SwitchFilter */
1466
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1467
+
1468
+ "use strict";
1469
+ __webpack_require__.r(__webpack_exports__);
1470
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return SwitchFilter; });
1471
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1472
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1473
+ /* harmony import */ var shared_components_toggle_switch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! shared/components/toggle-switch/ToggleSwitch */ "./src/shared/components/toggle-switch/ToggleSwitch.tsx");
1474
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
1475
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1476
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1477
+
1478
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1479
+
1480
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1481
+
1482
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1483
+
1484
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1485
+
1486
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+ function SwitchFilter(props) {
1493
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
1494
+ state = _React$useContext.state;
1495
+
1496
+ var filterState = state[props.filter.id];
1497
+
1498
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.active),
1499
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1500
+ active = _React$useState2[0],
1501
+ setActive = _React$useState2[1];
1502
+
1503
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
1504
+ className: 'h6 mb-2'
1505
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
1506
+ className: 'd-inline-block w-75 mr-auto'
1507
+ }, props.filter.description), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](shared_components_toggle_switch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_1__["ToggleSwitch"], {
1508
+ onClick: function onClick() {
1509
+ return setActive(!active);
1510
+ },
1511
+ on: active
1512
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterActions"], {
1513
+ active: active,
1514
+ filter: props.filter,
1515
+ analyticsOptions: props.analyticsOptions
1516
+ }));
1517
+ }
1518
+
1519
+ /***/ }),
1520
+
1521
+ /***/ "./src/apps/search/components/index.ts":
1522
+ /*!*********************************************!*\
1523
+ !*** ./src/apps/search/components/index.ts ***!
1524
+ \*********************************************/
1525
+ /*! exports provided: SearchFilters, PartialSearchFilters, FilterButton, FilterActions, ResetButton, CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
1526
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1527
+
1528
+ "use strict";
1529
+ __webpack_require__.r(__webpack_exports__);
1530
+ /* harmony import */ var _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./search-filters/SearchFilters */ "./src/apps/search/components/search-filters/SearchFilters.tsx");
1531
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__["SearchFilters"]; });
1532
+
1533
+ /* harmony import */ var _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters/PartialSearchFilters */ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx");
1534
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__["PartialSearchFilters"]; });
1535
+
1536
+ /* harmony import */ var _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter-button/FilterButton */ "./src/apps/search/components/filter-button/FilterButton.tsx");
1537
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__["FilterButton"]; });
1538
+
1539
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
1540
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"]; });
1541
+
1542
+ /* harmony import */ var _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reset-button/ResetButton */ "./src/apps/search/components/reset-button/ResetButton.tsx");
1543
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__["ResetButton"]; });
1544
+
1545
+ /* harmony import */ var _filter_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./filter-types */ "./src/apps/search/components/filter-types/index.ts");
1546
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["CheckboxFilter"]; });
1547
+
1548
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["MoreFilters"]; });
1549
+
1550
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["SwitchFilter"]; });
1551
+
1552
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["DropdownFilter"]; });
1553
+
1554
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["RadioFilter"]; });
1555
+
1556
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+ /***/ }),
1566
+
1567
+ /***/ "./src/apps/search/components/reset-button/ResetButton.tsx":
1568
+ /*!*****************************************************************!*\
1569
+ !*** ./src/apps/search/components/reset-button/ResetButton.tsx ***!
1570
+ \*****************************************************************/
1571
+ /*! exports provided: ResetButton */
1572
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1573
+
1574
+ "use strict";
1575
+ __webpack_require__.r(__webpack_exports__);
1576
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return ResetButton; });
1577
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1578
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1579
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
1580
+ /* harmony import */ var _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/services/ContextService */ "../../libs/shared/src/services/ContextService.ts");
1581
+ /* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
1582
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
1583
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1584
+ /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
1585
+ /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+ function ResetButton(props) {
1595
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__["FilterContext"]),
1596
+ dispatch = _React$useContext.dispatch;
1597
+
1598
+ var onClickReset = function onClickReset() {
1599
+ var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_2__["ContextService"].getCurrentRoute().appLink;
1600
+ var nextAppLink = {
1601
+ application: currentAppLink.application,
1602
+ action: currentAppLink.action
1603
+ };
1604
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].logUserAction({
1605
+ filter: 'All'
1606
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
1607
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["UserAction"].Filter,
1608
+ descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["FilterDescriptor"].Reset,
1609
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["WorkflowPhase"].Complete
1610
+ }));
1611
+ if (props.currentQueryParam) nextAppLink.params = {
1612
+ query: props.currentQueryParam
1613
+ };
1614
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__["Core"].AppLinkHelper.trigger(nextAppLink);
1615
+ dispatch({
1616
+ type: 'trigger-reset',
1617
+ payload: {}
1618
+ });
1619
+ };
1620
+
1621
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_3__["DivButton"], {
1622
+ onClick: onClickReset,
1623
+ className: 'hover-text-underline cursor-pointer d-flex align-items-center ml-2'
1624
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
1625
+ namespace: 'search.resetButton',
1626
+ phrase: 'reset'
1627
+ }));
1628
+ }
1629
+
1630
+ /***/ }),
1631
+
1632
+ /***/ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx":
1633
+ /*!****************************************************************************!*\
1634
+ !*** ./src/apps/search/components/search-filters/PartialSearchFilters.tsx ***!
1635
+ \****************************************************************************/
1636
+ /*! exports provided: PartialSearchFilters */
1637
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1638
+
1639
+ "use strict";
1640
+ __webpack_require__.r(__webpack_exports__);
1641
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return PartialSearchFilters; });
1642
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1643
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1644
+ /* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters.scss */ "./src/apps/search/components/search-filters/search-filters.scss");
1645
+ /* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1__);
1646
+
1647
+
1648
+ function PartialSearchFilters(_ref) {
1649
+ var _ref$count = _ref.count,
1650
+ count = _ref$count === void 0 ? 6 : _ref$count,
1651
+ hideHeading = _ref.hideHeading;
1652
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1653
+ className: 'd-flex'
1654
+ }, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1655
+ className: "\n ".concat(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default.a.partialFilterHeading, "\n partial-loading-background\n d-inline-block\n pr-2\n border-right\n d-flex\n align-items-center\n my-auto\n ")
1656
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1657
+ className: 'd-flex pl-1'
1658
+ }, Array(count).fill(null).map(function (item, index) {
1659
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1660
+ key: index,
1661
+ className: "".concat(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default.a.partialButton, " partial-loading-background mx-1")
1662
+ });
1663
+ })));
1664
+ }
1665
+
1666
+ /***/ }),
1667
+
1668
+ /***/ "./src/apps/search/components/search-filters/SearchFilters.tsx":
1669
+ /*!*********************************************************************!*\
1670
+ !*** ./src/apps/search/components/search-filters/SearchFilters.tsx ***!
1671
+ \*********************************************************************/
1672
+ /*! exports provided: SearchFilters */
1673
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1674
+
1675
+ "use strict";
1676
+ __webpack_require__.r(__webpack_exports__);
1677
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return SearchFilters; });
1678
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1679
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1680
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
1681
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
1682
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
1683
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1684
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1685
+
1686
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1687
+
1688
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1689
+
1690
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1691
+
1692
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1693
+
1694
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1695
+
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+ function SearchFilters(props) {
1702
+ var queryParams = props.queryParams,
1703
+ mainFilters = props.mainFilters,
1704
+ moreFilters = props.moreFilters,
1705
+ hideHeading = props.hideHeading;
1706
+ var initialState = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () {
1707
+ return apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery(queryParams, mainFilters, moreFilters);
1708
+ }, [queryParams]);
1709
+
1710
+ var _React$useReducer = react__WEBPACK_IMPORTED_MODULE_0__["useReducer"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterReducer"], initialState),
1711
+ _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
1712
+ state = _React$useReducer2[0],
1713
+ dispatch = _React$useReducer2[1];
1714
+
1715
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
1716
+ if (!state.bulkReset) return;
1717
+ dispatch({
1718
+ type: 'bulk-reset',
1719
+ payload: apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery({}, mainFilters, moreFilters)
1720
+ });
1721
+ }, [state]);
1722
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"].Provider, {
1723
+ value: {
1724
+ state: state,
1725
+ dispatch: dispatch
1726
+ }
1727
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["LanguageNamespaceContext"].Provider, {
1728
+ value: 'search.searchFilters'
1729
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("section", {
1730
+ className: 'd-flex'
1731
+ }, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h2", {
1732
+ className: 'h5 mb-0 d-inline-block pr-2 border-right d-flex align-items-center'
1733
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["Text"], {
1734
+ phrase: 'heading'
1735
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1736
+ className: 'd-flex'
1737
+ }, mainFilters.map(function (f) {
1738
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
1739
+ key: f.id,
1740
+ filter: f,
1741
+ analyticsOptions: props.analyticsOptions
1742
+ });
1743
+ }), moreFilters && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
1744
+ key: moreFilters.id,
1745
+ filter: moreFilters,
1746
+ analyticsOptions: props.analyticsOptions
1747
+ }), apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].hasActiveFilters(queryParams) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["ResetButton"], {
1748
+ currentQueryParam: queryParams.query,
1749
+ analyticsOptions: props.analyticsOptions
1750
+ })))));
1751
+ }
1752
+
1753
+ /***/ }),
1754
+
1755
+ /***/ "./src/apps/search/components/search-filters/search-filters.scss":
1756
+ /*!***********************************************************************!*\
1757
+ !*** ./src/apps/search/components/search-filters/search-filters.scss ***!
1758
+ \***********************************************************************/
1759
+ /*! no static exports found */
1760
+ /***/ (function(module, exports, __webpack_require__) {
1761
+
1762
+ // extracted by mini-css-extract-plugin
1763
+ module.exports = {"partialFilterHeading":"cv--partialFilterHeading--2zHGT","partialButton":"cv--partialButton--3Gy7Y"};
1764
+
1765
+ /***/ }),
1766
+
1767
+ /***/ "./src/apps/search/reducers/FilterReducer.tsx":
1768
+ /*!****************************************************!*\
1769
+ !*** ./src/apps/search/reducers/FilterReducer.tsx ***!
1770
+ \****************************************************/
1771
+ /*! exports provided: FilterContext, FilterReducer */
1772
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1773
+
1774
+ "use strict";
1775
+ __webpack_require__.r(__webpack_exports__);
1776
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return FilterContext; });
1777
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return FilterReducer; });
1778
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1779
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1780
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1781
+
1782
+
1783
+ var FilterContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(null);
1784
+ /**
1785
+ * Reducer - root level keys should match the filter object's corresponding "id" field
1786
+ */
1787
+
1788
+ function FilterReducer(state, action) {
1789
+ switch (action.type) {
1790
+ case 'apply':
1791
+ return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
1792
+ active: action.payload.active,
1793
+ selection: action.payload.selection
1794
+ }));
1795
+
1796
+ case 'reset':
1797
+ return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
1798
+ active: action.payload.active,
1799
+ selection: action.payload.selection
1800
+ }));
1801
+
1802
+ case 'trigger-reset':
1803
+ return Object.assign(Object.assign({}, state), {
1804
+ bulkReset: true
1805
+ });
1806
+
1807
+ case 'bulk-reset':
1808
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), {
1809
+ bulkReset: false
1810
+ });
1811
+
1812
+ default:
1813
+ return state;
1814
+ }
1815
+ }
1816
+
1817
+ /***/ }),
1818
+
1819
+ /***/ "./src/apps/search/reducers/index.ts":
1820
+ /*!*******************************************!*\
1821
+ !*** ./src/apps/search/reducers/index.ts ***!
1822
+ \*******************************************/
1823
+ /*! exports provided: FilterContext, FilterReducer */
1824
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1825
+
1826
+ "use strict";
1827
+ __webpack_require__.r(__webpack_exports__);
1828
+ /* harmony import */ var _FilterReducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterReducer */ "./src/apps/search/reducers/FilterReducer.tsx");
1829
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterContext"]; });
1830
+
1831
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterReducer"]; });
1832
+
1833
+
1834
+
1835
+ /***/ }),
1836
+
1837
+ /***/ "./src/apps/search/utils/FilterHelper.tsx":
1838
+ /*!************************************************!*\
1839
+ !*** ./src/apps/search/utils/FilterHelper.tsx ***!
1840
+ \************************************************/
1841
+ /*! exports provided: Filters, FilterHelper */
1842
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1843
+
1844
+ "use strict";
1845
+ __webpack_require__.r(__webpack_exports__);
1846
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return Filters; });
1847
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return FilterHelper; });
1848
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1849
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1850
+ /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
1851
+ /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
1852
+ /* harmony import */ var _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
1853
+ /* harmony import */ var apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components/filter-types */ "./src/apps/search/components/filter-types/index.ts");
1854
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1855
+
1856
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1857
+
1858
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1859
+
1860
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1861
+
1862
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1863
+
1864
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1865
+
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('search.utils');
1872
+ var Filters = {
1873
+ SortByName: function SortByName(options) {
1874
+ return {
1875
+ id: 'sortName',
1876
+ name: getPhrase('firstNameAToZ'),
1877
+ type: 'dropdown',
1878
+ options: options
1879
+ };
1880
+ },
1881
+ YearLevel: function YearLevel(options) {
1882
+ return {
1883
+ id: 'yearLevel',
1884
+ name: getPhrase('yearLevel'),
1885
+ type: 'radio',
1886
+ customComponent: apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["YearLevelRadioFilter"],
1887
+ options: options
1888
+ };
1889
+ },
1890
+ ObjectType: function ObjectType(options) {
1891
+ return {
1892
+ id: 'objectType',
1893
+ name: getPhrase('objectTypes'),
1894
+ type: 'radio',
1895
+ options: options
1896
+ };
1897
+ },
1898
+ Ratings: function Ratings(options) {
1899
+ return {
1900
+ id: 'ratings',
1901
+ name: getPhrase('ratings'),
1902
+ type: 'rating',
1903
+ options: options
1904
+ };
1905
+ },
1906
+ Interactives: function Interactives() {
1907
+ return {
1908
+ id: 'interactives',
1909
+ name: getPhrase('interactives'),
1910
+ type: 'switch',
1911
+ description: getPhrase('interactivesDescription')
1912
+ };
1913
+ },
1914
+ Clips: function Clips() {
1915
+ return {
1916
+ id: 'clips',
1917
+ name: getPhrase('clips'),
1918
+ type: 'switch',
1919
+ description: getPhrase('clipsDescription')
1920
+ };
1921
+ },
1922
+ Classroom: function Classroom(options) {
1923
+ return {
1924
+ id: 'classroom',
1925
+ name: getPhrase('classroom'),
1926
+ type: 'checkbox',
1927
+ options: options
1928
+ };
1929
+ }
1930
+ };
1931
+ var FilterHelper = {
1932
+ getMoreFilters: function getMoreFilters() {
1933
+ return {
1934
+ id: 'moreFilters',
1935
+ name: getPhrase('moreFilters'),
1936
+ type: 'more-filters',
1937
+ filters: []
1938
+ };
1939
+ },
1940
+ mapTypeToComponent: function mapTypeToComponent(type) {
1941
+ switch (type) {
1942
+ case 'switch':
1943
+ return function (props) {
1944
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
1945
+ key: props.id
1946
+ }, props));
1947
+ };
1948
+
1949
+ case 'checkbox':
1950
+ return function (props) {
1951
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxFilter"], Object.assign({
1952
+ key: props.id
1953
+ }, props));
1954
+ };
1955
+
1956
+ case 'radio':
1957
+ return function (props) {
1958
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"], Object.assign({
1959
+ key: props.id
1960
+ }, props));
1961
+ };
1962
+
1963
+ case 'rating':
1964
+ return function (props) {
1965
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
1966
+ key: props.id
1967
+ }, props));
1968
+ };
1969
+
1970
+ case 'dropdown':
1971
+ return function (props) {
1972
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["DropdownFilter"], Object.assign({
1973
+ key: props.id
1974
+ }, props));
1975
+ };
1976
+
1977
+ case 'more-filters':
1978
+ return function (props) {
1979
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["MoreFilters"], Object.assign({
1980
+ key: props.id
1981
+ }, props));
1982
+ };
1983
+ }
1984
+ },
1985
+ deriveInitialStateFromQuery: function deriveInitialStateFromQuery() {
1986
+ var queryParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1987
+ var mainFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1988
+ var moreFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1989
+ var initialStates = {
1990
+ sortName: {
1991
+ active: !!queryParams.sortName,
1992
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'sortName')
1993
+ },
1994
+ objectType: {
1995
+ active: !!queryParams.objectType,
1996
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'objectType')
1997
+ },
1998
+ ratings: {
1999
+ active: !!queryParams.ratings,
2000
+ selection: queryParams.ratings || null
2001
+ },
2002
+ interactives: {
2003
+ active: queryParams.interactives
2004
+ },
2005
+ clips: {
2006
+ active: queryParams.clips
2007
+ },
2008
+ yearLevel: {
2009
+ active: !!queryParams.yearLevel,
2010
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'yearLevel')
2011
+ },
2012
+ classroom: {
2013
+ active: !!queryParams.classroom,
2014
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'classroom')
2015
+ },
2016
+ moreFilters: {
2017
+ active: false // TODO: figure this shit out eventually
2018
+
2019
+ }
2020
+ };
2021
+ var derivedState = mainFilters.reduce(function (state, filter) {
2022
+ state[filter.id] = initialStates[filter.id];
2023
+ return state;
2024
+ }, {});
2025
+ if (moreFilters) derivedState.moreFilters = initialStates.moreFilters;
2026
+ return derivedState;
2027
+ },
2028
+ hasActiveFilters: function hasActiveFilters(queryParams) {
2029
+ var paramKeys = Object.keys(queryParams);
2030
+ if (!paramKeys.length) return false;
2031
+ var activeFilters = paramKeys.filter(function (q) {
2032
+ // 'query', 'cursor', and 'page' don't count as filters
2033
+ if (q === 'query' || q === 'cursor' || q === 'page') return false; // Filters that can have multiple selections (e.g. checkbox types) do not count as active if they are empty
2034
+
2035
+ if (Array.isArray(queryParams[q]) && !queryParams[q].length) return false;
2036
+ return true;
2037
+ });
2038
+ return !!activeFilters.length;
2039
+ },
2040
+ getLabel: function getLabel(filter, filterState) {
2041
+ var _a;
2042
+
2043
+ if (!((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.length)) return filter.name;
2044
+ if (filter.type === 'dropdown') return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection).name;
2045
+
2046
+ if (filter.type === 'radio') {
2047
+ var selection = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection);
2048
+ if (!selection || selection["default"]) return filter.name;
2049
+ return selection.name;
2050
+ }
2051
+
2052
+ if (filter.type === 'checkbox') return "".concat(filter.name, " - ").concat(filterState.selection.length);
2053
+ },
2054
+ buildQueryParams: function buildQueryParams(queryParams, state) {
2055
+ var _state$filter = state.filter,
2056
+ param = _state$filter.id,
2057
+ type = _state$filter.type;
2058
+ var updatedParams = Object.assign({}, queryParams);
2059
+
2060
+ switch (type) {
2061
+ case 'switch':
2062
+ updatedParams[param] = state.active ? 'true' : '';
2063
+ break;
2064
+
2065
+ case 'radio':
2066
+ case 'dropdown':
2067
+ updatedParams[param] = getRadioParamValue(state.selection);
2068
+ break;
2069
+
2070
+ case 'checkbox':
2071
+ updatedParams[param] = state.active ? state.selection.map(function (option) {
2072
+ return option.id;
2073
+ }) : [];
2074
+ }
2075
+
2076
+ if (!updatedParams[param]) // If the param is empty, delete it
2077
+ delete updatedParams[param];
2078
+ return updatedParams;
2079
+ },
2080
+
2081
+ /**
2082
+ * This returns an object of all of the query params our search requests will pass to the backend endpoint.
2083
+ * This usually consists of:
2084
+ * q = the query string e.g. 'shakespeare'
2085
+ * filter = the filter string e.g. '{interactives:true,classroom:classroom-2-a,classroom:classroom-2-b}'
2086
+ * query = the with statement e.g. '{orderbydesc:name}series,season,interactives,resources,subtitles'
2087
+ * cursor = the cursor e.g. 's-sf3r9o32f-0vd'
2088
+ */
2089
+ getBackendQueryParams: function getBackendQueryParams(queryParams) {
2090
+ var q = queryParams.query;
2091
+ var query = getWithStatement(queryParams);
2092
+ var filter = getFilterString(queryParams);
2093
+ var backendQueryParams = {};
2094
+ if (q) backendQueryParams.q = q;
2095
+ if (query) backendQueryParams.query = query;
2096
+ if (filter) backendQueryParams.filter = "{".concat(filter, "}");
2097
+ if (queryParams.cursor) backendQueryParams.cursor = queryParams.cursor;
2098
+ return backendQueryParams;
2099
+ },
2100
+
2101
+ /**
2102
+ * This functions purpose is to convert a with statement string into an object that is easy to use
2103
+ * in mock backends for sorting/filtering mock data. It doesn't need to be efficient, as it should
2104
+ * never ever be used in production
2105
+ */
2106
+ convertWithStatementToObject: function convertWithStatementToObject(withStatement) {
2107
+ if (!withStatement) return {}; // Remove any angle brackets with commas, which we use in `.split` just below
2108
+
2109
+ withStatement = withStatement.replace('{', ',').replace('}', ',');
2110
+ var withStatements = withStatement.split(',');
2111
+ var sortingStatement = '';
2112
+ var assocStatements = [];
2113
+ withStatements.forEach(function (statement) {
2114
+ if (statement.includes(':')) sortingStatement = statement;else assocStatements.push(statement);
2115
+ });
2116
+
2117
+ var _sortingStatement$spl = sortingStatement.split(':'),
2118
+ _sortingStatement$spl2 = _slicedToArray(_sortingStatement$spl, 2),
2119
+ sortKey = _sortingStatement$spl2[0],
2120
+ sortValue = _sortingStatement$spl2[1];
2121
+
2122
+ return {
2123
+ assocs: assocStatements,
2124
+ sortKey: sortKey,
2125
+ sortValue: sortValue
2126
+ };
2127
+ },
2128
+ // This is used for filtering data in mock flight requests. It shouldn't be used in production code
2129
+ revertFilterString: function revertFilterString(filterString) {
2130
+ if (!filterString) return {}; // Remove "{" and "}" from both ends
2131
+
2132
+ filterString = filterString.slice(1, -1); // Get an array of all of our filter values:
2133
+ // E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom-2-b', 'classroom-2-c' ]
2134
+
2135
+ var filterValues = filterString.split(',');
2136
+ var keyValueFilterStrings = [];
2137
+ var currentFilterKey = '';
2138
+ filterValues.forEach(function (filterStr) {
2139
+ // Here we're building an array that looks like `filterValues`, but where every value has its key attached
2140
+ // E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom:classroom-2-b', 'classroom:classroom-2-c' ]
2141
+ if (filterStr.includes(':')) {
2142
+ currentFilterKey = filterStr.split(':')[0];
2143
+ keyValueFilterStrings.push(filterStr);
2144
+ return;
2145
+ }
2146
+
2147
+ var fullFilterString = "".concat(currentFilterKey, ":").concat(filterStr);
2148
+ keyValueFilterStrings.push(fullFilterString);
2149
+ }); // Convert the array into an object.
2150
+ // E.g. { yearLevel: 'year-2', classroom: [ 'classroom-2-a', 'classroom-2-b', 'classroom-2-c' ] }
2151
+
2152
+ return keyValueFilterStrings.reduce(function (filterObj, filterStr) {
2153
+ var _filterStr$split = filterStr.split(':'),
2154
+ _filterStr$split2 = _slicedToArray(_filterStr$split, 2),
2155
+ key = _filterStr$split2[0],
2156
+ value = _filterStr$split2[1];
2157
+
2158
+ if (filterObj[key] && !Array.isArray(filterObj[key])) {
2159
+ var temp = filterObj[key];
2160
+ filterObj[key] = [temp];
2161
+ }
2162
+
2163
+ if (Array.isArray(filterObj[key])) filterObj[key].push(value);else filterObj[key] = value;
2164
+ return filterObj;
2165
+ }, {});
2166
+ },
2167
+
2168
+ /**
2169
+ * Helpers below this comment return hard coded filter options for a particular filter.
2170
+ * If you are adding a new filter with hard coded options, add a new function here.
2171
+ */
2172
+ getObjectTypeOptions: function getObjectTypeOptions() {
2173
+ return [{
2174
+ id: 'allTypes',
2175
+ name: getPhrase('allTypes'),
2176
+ "default": true
2177
+ }, {
2178
+ id: 'topics',
2179
+ name: getPhrase('topics')
2180
+ }, {
2181
+ id: 'playlists',
2182
+ name: getPhrase('playlists')
2183
+ }, {
2184
+ id: 'series',
2185
+ name: getPhrase('series')
2186
+ }, {
2187
+ id: 'videos',
2188
+ name: getPhrase('videos')
2189
+ }];
2190
+ },
2191
+ getNameSortOptions: function getNameSortOptions() {
2192
+ return [{
2193
+ id: 'first-name-atoz',
2194
+ name: getPhrase('firstNameAToZ'),
2195
+ "default": true
2196
+ }, {
2197
+ id: 'first-name-ztoa',
2198
+ name: getPhrase('firstNameZToA')
2199
+ }, {
2200
+ id: 'surname-atoz',
2201
+ name: getPhrase('surnameAToZ')
2202
+ }, {
2203
+ id: 'surname-ztoa',
2204
+ name: getPhrase('surnameZToA')
2205
+ }];
2206
+ },
2207
+ getYearLevelOptions: function getYearLevelOptions(yearLevels) {
2208
+ var _a;
2209
+
2210
+ if (!((_a = yearLevels) === null || _a === void 0 ? void 0 : _a.length)) return [];
2211
+ return yearLevels.map(function (level) {
2212
+ return {
2213
+ id: level.name.toLowerCase().replace(' ', '-'),
2214
+ name: level.name
2215
+ };
2216
+ });
2217
+ },
2218
+ getClassroomOptions: function getClassroomOptions(classrooms) {
2219
+ var _a;
2220
+
2221
+ if (!((_a = classrooms) === null || _a === void 0 ? void 0 : _a.length)) return [];
2222
+ return classrooms.map(function (classroom) {
2223
+ return {
2224
+ id: classroom.name.toLowerCase().replace(' ', '-'),
2225
+ name: classroom.name
2226
+ };
2227
+ });
2228
+ }
2229
+ }; // This allows us to determine which filters should be applied based on the query params set on first load
2230
+
2231
+ function getFilterSelectionsFromQueryParams(queryParams, filters, filterName) {
2232
+ var filter = filters.find(function (f) {
2233
+ return f.id === filterName;
2234
+ });
2235
+ if (!filter) return [];
2236
+ if (!queryParams[filterName]) return filter.options.filter(function (option) {
2237
+ return option["default"];
2238
+ });
2239
+ var selections = queryParams[filterName];
2240
+ if (!Array.isArray(selections)) selections = [selections];
2241
+ return filter.options.filter(function (option) {
2242
+ return selections.includes(option.id);
2243
+ });
2244
+ }
2245
+
2246
+ function getRadioParamValue(selection) {
2247
+ var _a;
2248
+
2249
+ if (!((_a = selection) === null || _a === void 0 ? void 0 : _a.length)) return '';
2250
+ return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(selection).id;
2251
+ }
2252
+ /**
2253
+ * This is massively under developed, and only does what it's needed for at this time.
2254
+ * Please update if you need extra functionality
2255
+ */
2256
+
2257
+
2258
+ function getWithStatement(queryParams) {
2259
+ var withStatement = '';
2260
+
2261
+ if (queryParams['sortName']) {
2262
+ switch (queryParams['sortName']) {
2263
+ case 'first-name-atoz':
2264
+ withStatement += '{orderby:name}';
2265
+ break;
2266
+
2267
+ case 'first-name-ztoa':
2268
+ withStatement += '{orderbydesc:name}';
2269
+ break;
2270
+
2271
+ case 'surname-atoz':
2272
+ withStatement += '{orderby:surname}';
2273
+ break;
2274
+
2275
+ case 'surname-ztoa':
2276
+ withStatement += '{orderbydesc:surname}';
2277
+ break;
2278
+
2279
+ default:
2280
+ break;
2281
+ }
2282
+ }
2283
+
2284
+ return withStatement;
2285
+ }
2286
+ /**
2287
+ * Private functions
2288
+ */
2289
+
2290
+
2291
+ function getFilterString(queryParams) {
2292
+ // Add any potential query params here that are not supposed to be in the filter string
2293
+ var omitKeys = ['query', 'sortName', 'cursor', 'page'];
2294
+ var filterQueryParams = _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].omit(queryParams, omitKeys);
2295
+ var filterStrings = Object.keys(filterQueryParams).map(function (filter) {
2296
+ return "".concat(filter, ":").concat(filterQueryParams[filter]);
2297
+ });
2298
+ return filterStrings.join(',');
2299
+ }
2300
+
2301
+ /***/ }),
2302
+
2303
+ /***/ "./src/apps/search/utils/SearchHelper.tsx":
2304
+ /*!************************************************!*\
2305
+ !*** ./src/apps/search/utils/SearchHelper.tsx ***!
2306
+ \************************************************/
2307
+ /*! exports provided: SearchHelper */
2308
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2309
+
2310
+ "use strict";
2311
+ __webpack_require__.r(__webpack_exports__);
2312
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return SearchHelper; });
2313
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2314
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2315
+ /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
2316
+ /* 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");
2317
+ /* harmony import */ var _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/TextHelper */ "../../libs/common/src/react/utils/TextHelper.ts");
2318
+ /* harmony import */ var _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../libs/shared/src/enums/WidgetContents */ "../../libs/shared/src/enums/WidgetContents.ts");
2319
+ /* harmony import */ var _libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/video-list/VideoList */ "../../libs/shared/src/components/video-list/VideoList.tsx");
2320
+ /* harmony import */ var _libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/fixed-widget/FixedWidget */ "../../libs/shared/src/components/widgets/fixed-widget/FixedWidget.tsx");
2321
+ /* harmony import */ var _libs_shared_src_components_widgets_items_playlist_widget_item_PlaylistWidgetItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem */ "../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx");
2322
+ /* harmony import */ var _libs_shared_src_components_widgets_items_series_widget_item_SeriesWidgetItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem */ "../../libs/shared/src/components/widgets/items/series-widget-item/SeriesWidgetItem.tsx");
2323
+ /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
2324
+ /* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
2325
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2326
+
2327
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2328
+
2329
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2330
+
2331
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
2332
+
2333
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
2334
+
2335
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+ var Capacities = {
2349
+ MainResults: {
2350
+ SUBJECTS: 10,
2351
+ PLAYLISTS: 5,
2352
+ SERIES: 4
2353
+ },
2354
+ OtherResults: {
2355
+ VIDEOS: 6,
2356
+ PLAYLISTS: 10,
2357
+ SERIES: 10
2358
+ }
2359
+ };
2360
+ var SearchHelper = {
2361
+ /**
2362
+ * These are the results that appear at the very top of the page
2363
+ */
2364
+ filterMainResults: function filterMainResults(results) {
2365
+ var MainResults = Capacities.MainResults;
2366
+ var subjects = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.subjects, MainResults.SUBJECTS);
2367
+ var firstVideo = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].first(results.videos);
2368
+ var playlists = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.playlists, MainResults.PLAYLISTS);
2369
+ var series = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.series, MainResults.SERIES);
2370
+ return {
2371
+ subjects: subjects,
2372
+ firstVideo: firstVideo,
2373
+ playlists: playlists,
2374
+ series: series,
2375
+ otherResults: {
2376
+ videos: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.videos, results.videos.length - 1),
2377
+ playlists: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.playlists, results.playlists.length - MainResults.PLAYLISTS),
2378
+ series: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.series, results.series.length - MainResults.SERIES)
2379
+ }
2380
+ };
2381
+ },
2382
+ structureOtherResults: function structureOtherResults(results) {
2383
+ var OtherResults = Capacities.OtherResults;
2384
+ var videoSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.videos, OtherResults.VIDEOS);
2385
+ var playlistSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.playlists, OtherResults.PLAYLISTS);
2386
+ var seriesSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.series, OtherResults.SERIES);
2387
+ return SearchHelper.buildResultStructure(videoSets, playlistSets, seriesSets);
2388
+ },
2389
+ // For every 6 videos, there should be either a row of playlists or a row of series (alternating)
2390
+ buildResultStructure: function buildResultStructure(videoSets, playlistSets, seriesSets) {
2391
+ var structure = []; // Clone each set as we need to use a mutable structure, but don't want to mutate the inputs directly
2392
+
2393
+ var videosClone = _toConsumableArray(videoSets);
2394
+
2395
+ var playlistsClone = _toConsumableArray(playlistSets);
2396
+
2397
+ var seriesClone = _toConsumableArray(seriesSets); // We set the iterations here instead of in the for-loop args because `videoSets` gets mutated
2398
+
2399
+
2400
+ var iterations = videoSets.length;
2401
+
2402
+ for (var index = 0; index < iterations; index++) {
2403
+ var nextVideoSet = videosClone.shift(); // After every video set will come a set of playlists or series
2404
+
2405
+ var seriesOrPlaylistSet = SearchHelper.getSeriesOrPlaylistSet(playlistsClone, seriesClone, index);
2406
+ nextVideoSet && structure.push({
2407
+ type: 'video',
2408
+ data: nextVideoSet
2409
+ });
2410
+ seriesOrPlaylistSet && structure.push(seriesOrPlaylistSet);
2411
+ } // In edge cases where there may be more playlists or series result sets than video sets, add them to the end
2412
+
2413
+
2414
+ if (playlistsClone.length) {
2415
+ playlistsClone.forEach(function (data) {
2416
+ return structure.push({
2417
+ type: 'playlist',
2418
+ data: data
2419
+ });
2420
+ });
2421
+ }
2422
+
2423
+ if (seriesClone.length) {
2424
+ seriesClone.forEach(function (data) {
2425
+ return structure.push({
2426
+ type: 'series',
2427
+ data: data
2428
+ });
2429
+ });
2430
+ } // Remove any empty sets
2431
+
2432
+
2433
+ return structure.filter(function (set) {
2434
+ return set.data && !!set.data.length;
2435
+ });
2436
+ },
2437
+
2438
+ /**
2439
+ * Determines whether or not a playlist or series set should be added to the results structure next.
2440
+ */
2441
+ getSeriesOrPlaylistSet: function getSeriesOrPlaylistSet(playlists, series, videoSetIndex) {
2442
+ var isOdd = videoSetIndex % 2 === 0; // If odd, add a series set. If even, add a playlist set.
2443
+
2444
+ if (isOdd && series.length || !playlists.length) return {
2445
+ type: 'series',
2446
+ data: series.shift()
2447
+ };
2448
+ if (!isOdd && playlists.length || !series.length) return {
2449
+ type: 'playlist',
2450
+ data: playlists.shift()
2451
+ }; // We will only reach this point once we have run out of series and playlist results
2452
+
2453
+ return null;
2454
+ },
2455
+ getResultSetComponent: function getResultSetComponent(set, audiences, setFavourite) {
2456
+ switch (set.type) {
2457
+ case 'video':
2458
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2459
+ className: 'pb-3'
2460
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_5__["VideoList"], {
2461
+ videos: set.data,
2462
+ getVideoAppLink: SearchHelper.getVideoAppLink,
2463
+ getSeriesAppLink: SearchHelper.getSeriesAppLink,
2464
+ setFavourite: setFavourite
2465
+ }));
2466
+
2467
+ case 'playlist':
2468
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2469
+ className: 'mx-n1'
2470
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
2471
+ name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedPlaylists'),
2472
+ collection: set.data,
2473
+ childAppLink: SearchHelper.getPlaylistAppLink(),
2474
+ childComponent: function childComponent(childProps) {
2475
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_items_playlist_widget_item_PlaylistWidgetItem__WEBPACK_IMPORTED_MODULE_7__["PlaylistWidgetItem"], Object.assign({}, childProps, {
2476
+ presentationAudiences: audiences
2477
+ }));
2478
+ },
2479
+ contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Playlists
2480
+ }));
2481
+
2482
+ case 'series':
2483
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2484
+ className: 'mx-n1'
2485
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
2486
+ name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedSeries'),
2487
+ collection: set.data,
2488
+ childAppLink: SearchHelper.getSeriesAppLink(),
2489
+ childComponent: function childComponent(childProps) {
2490
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_items_series_widget_item_SeriesWidgetItem__WEBPACK_IMPORTED_MODULE_8__["SeriesWidgetItem"], Object.assign({}, childProps, {
2491
+ audiences: audiences
2492
+ }));
2493
+ },
2494
+ contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Series
2495
+ }));
2496
+ }
2497
+ },
2498
+ getVideoAppLink: function getVideoAppLink(video) {
2499
+ return {
2500
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
2501
+ action: 'play:video',
2502
+ args: [video.id]
2503
+ };
2504
+ },
2505
+ getSeriesAppLink: function getSeriesAppLink(series) {
2506
+ return {
2507
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
2508
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Default.SERIES,
2509
+ args: series ? [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(series.name)] : []
2510
+ };
2511
+ },
2512
+ getPlaylistAppLink: function getPlaylistAppLink(playlist) {
2513
+ return {
2514
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].PLAYLISTS,
2515
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Playlists.PLAYLIST,
2516
+ args: playlist ? [playlist.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(playlist.name)] : []
2517
+ };
2518
+ }
2519
+ };
2520
+
2521
+ /***/ }),
2522
+
2523
+ /***/ "./src/apps/search/utils/index.ts":
2524
+ /*!****************************************!*\
2525
+ !*** ./src/apps/search/utils/index.ts ***!
2526
+ \****************************************/
2527
+ /*! exports provided: Filters, FilterHelper, SearchHelper */
2528
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2529
+
2530
+ "use strict";
2531
+ __webpack_require__.r(__webpack_exports__);
2532
+ /* harmony import */ var _FilterHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterHelper */ "./src/apps/search/utils/FilterHelper.tsx");
2533
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["Filters"]; });
2534
+
2535
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["FilterHelper"]; });
2536
+
2537
+ /* harmony import */ var _SearchHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SearchHelper */ "./src/apps/search/utils/SearchHelper.tsx");
2538
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return _SearchHelper__WEBPACK_IMPORTED_MODULE_1__["SearchHelper"]; });
2539
+
2540
+
2541
+
2542
+
2543
+ /***/ }),
2544
+
2545
+ /***/ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx":
2546
+ /*!*******************************************************************************************!*\
2547
+ !*** ./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx ***!
2548
+ \*******************************************************************************************/
2549
+ /*! exports provided: BulkUploadFileSelect */
2550
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2551
+
2552
+ "use strict";
2553
+ __webpack_require__.r(__webpack_exports__);
2554
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return BulkUploadFileSelect; });
2555
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2556
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2557
+ /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! papaparse */ "../../../node_modules/papaparse/papaparse.min.js");
2558
+ /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(papaparse__WEBPACK_IMPORTED_MODULE_1__);
2559
+ /* harmony import */ var _libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/hooks/useViewModel */ "../../libs/common/src/react/hooks/useViewModel.ts");
2560
+ /* harmony import */ var _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
2561
+ /* harmony import */ var _libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/icon-button/IconButton */ "../../libs/shared/src/components/icon-button/IconButton.tsx");
2562
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
2563
+ /* harmony import */ var _libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseAlerts */ "../../libs/shared/src/hooks/UseAlerts.ts");
2564
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
2565
+ /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
2566
+ /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
2567
+ /* harmony import */ var shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteViewModels */ "./src/shared/constants/LiteViewModels.ts");
2568
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2569
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2570
+
2571
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2572
+
2573
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2574
+
2575
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2576
+
2577
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2578
+
2579
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+ var namespace = 'userManager.bulkUploadFileSelect';
2594
+ function BulkUploadFileSelect(props) {
2595
+ var ref = react__WEBPACK_IMPORTED_MODULE_0___default.a.useRef(null);
2596
+ var useRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.useCallback(function (node) {
2597
+ if (!node) return;
2598
+ ref.current = node;
2599
+ }, []);
2600
+ var viewModelKey = props.userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__["MockUserType"].Student ? shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__["ViewModelKeys"].BULK_STUDENT_UPLOAD : shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__["ViewModelKeys"].BULK_TEACHER_UPLOAD;
2601
+
2602
+ var _useViewModel = Object(_libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_2__["useViewModel"])(viewModelKey),
2603
+ _useViewModel2 = _slicedToArray(_useViewModel, 2),
2604
+ setUsers = _useViewModel2[1];
2605
+
2606
+ var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_6__["useAlerts"])();
2607
+
2608
+ var buildStudent = function buildStudent(r, index) {
2609
+ var yearLevel = props.yearLevels.find(function (y) {
2610
+ return y.name === r[2];
2611
+ });
2612
+ return {
2613
+ lookupId: index.toString(),
2614
+ name: r[0],
2615
+ surname: r[1],
2616
+ yearLevel: yearLevel,
2617
+ email: r[3]
2618
+ };
2619
+ };
2620
+
2621
+ var buildTeacher = function buildTeacher(r, index) {
2622
+ var userRole = props.userRoles.find(function (y) {
2623
+ return y.name === r[2];
2624
+ }); // TODO: Change to actually work
2625
+
2626
+ return {
2627
+ lookupId: index.toString(),
2628
+ name: r[0],
2629
+ surname: r[1],
2630
+ userRole: userRole,
2631
+ email: r[3]
2632
+ };
2633
+ };
2634
+
2635
+ var onClick = function onClick(e) {
2636
+ ref.current.value = null;
2637
+ ref.current.click(null);
2638
+ };
2639
+
2640
+ var _onChange = function onChange(file) {
2641
+ Object(papaparse__WEBPACK_IMPORTED_MODULE_1__["parse"])(file, {
2642
+ complete: function complete(result) {
2643
+ var data = result.data;
2644
+
2645
+ if (!data.length || data.length === 1) {
2646
+ alerts.warning(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__["LanguageService"].getPhrase(namespace, 'emptyCsvWarning'));
2647
+ return;
2648
+ }
2649
+
2650
+ data.shift();
2651
+ setUsers(data.map(props.userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__["MockUserType"].Student ? buildStudent : buildTeacher));
2652
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__["Core"].AppLinkHelper.trigger({
2653
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].USER_MANAGER,
2654
+ action: props.action
2655
+ });
2656
+ }
2657
+ });
2658
+ };
2659
+
2660
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_4__["IconButton"], {
2661
+ svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Upload,
2662
+ className: 'btn btn-outline-dark',
2663
+ onClick: onClick
2664
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
2665
+ namespace: namespace,
2666
+ phrase: 'button'
2667
+ })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", {
2668
+ type: 'file',
2669
+ autoComplete: 'off',
2670
+ className: 'file-select d-none',
2671
+ accept: 'text/csv',
2672
+ ref: useRef,
2673
+ onChange: function onChange(e) {
2674
+ return _onChange(e.target.files[0]);
2675
+ }
2676
+ }));
2677
+ }
2678
+
2679
+ /***/ }),
2680
+
2681
+ /***/ "./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx":
2682
+ /*!**************************************************************************************!*\
2683
+ !*** ./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx ***!
2684
+ \**************************************************************************************/
2685
+ /*! exports provided: EditStudentDetails */
2686
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2687
+
2688
+ "use strict";
2689
+ __webpack_require__.r(__webpack_exports__);
2690
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return EditStudentDetails; });
2691
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2692
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2693
+ /* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
2694
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2695
+ /* harmony import */ var apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/user-manager/validation/user-validation/UserValidationSchema */ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts");
2696
+ /* harmony import */ var apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/user-manager/components/user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+ function EditStudentDetails(props) {
2703
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2704
+
2705
+ var user = props.user,
2706
+ saveUser = props.saveUser,
2707
+ onClickCancel = props.onClickCancel,
2708
+ yearLevels = props.yearLevels,
2709
+ _props$hasNext = props.hasNext,
2710
+ hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
2711
+ _props$initialErrors = props.initialErrors,
2712
+ initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
2713
+ var initialValues = {
2714
+ id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
2715
+ name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
2716
+ email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
2717
+ surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
2718
+ yearLevel: {
2719
+ id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.yearLevel) === null || _f === void 0 ? void 0 : _f.id,
2720
+ name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.yearLevel) === null || _h === void 0 ? void 0 : _h.name
2721
+ }
2722
+ };
2723
+ var initialTouched = {};
2724
+ Object.keys(initialErrors).forEach(function (err) {
2725
+ initialTouched[err] = true;
2726
+ });
2727
+ var StudentValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_3__["getStudentValidationSchema"])(yearLevels);
2728
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
2729
+ initialValues: initialValues,
2730
+ initialErrors: initialErrors,
2731
+ initialTouched: initialTouched,
2732
+ validationSchema: StudentValidationSchema,
2733
+ onSubmit: saveUser
2734
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_4__["UserDetailsForm"], {
2735
+ onClickCancel: onClickCancel,
2736
+ yearLevels: yearLevels,
2737
+ userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__["MockUserType"].Student,
2738
+ hasNext: hasNext
2739
+ }));
2740
+ }
2741
+
2742
+ /***/ }),
2743
+
2744
+ /***/ "./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx":
2745
+ /*!**************************************************************************************!*\
2746
+ !*** ./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx ***!
2747
+ \**************************************************************************************/
2748
+ /*! exports provided: EditTeacherDetails */
2749
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2750
+
2751
+ "use strict";
2752
+ __webpack_require__.r(__webpack_exports__);
2753
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return EditTeacherDetails; });
2754
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2755
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2756
+ /* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
2757
+ /* harmony import */ var apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/user-manager/validation/user-validation/UserValidationSchema */ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts");
2758
+ /* harmony import */ var apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/user-manager/components/user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
2759
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+ function EditTeacherDetails(props) {
2766
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2767
+
2768
+ var user = props.user,
2769
+ saveUser = props.saveUser,
2770
+ onClickCancel = props.onClickCancel,
2771
+ userRoles = props.userRoles,
2772
+ _props$hasNext = props.hasNext,
2773
+ hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
2774
+ _props$initialErrors = props.initialErrors,
2775
+ initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
2776
+ var initialValues = {
2777
+ id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
2778
+ name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
2779
+ email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
2780
+ surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
2781
+ userRole: {
2782
+ id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.userRole) === null || _f === void 0 ? void 0 : _f.id,
2783
+ name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.userRole) === null || _h === void 0 ? void 0 : _h.name
2784
+ }
2785
+ };
2786
+ var initialTouched = {};
2787
+ Object.keys(initialErrors).forEach(function (err) {
2788
+ initialTouched[err] = true;
2789
+ });
2790
+ var TeacherValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_2__["getTeacherValidationSchema"])(userRoles);
2791
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
2792
+ initialValues: initialValues,
2793
+ initialErrors: initialErrors,
2794
+ initialTouched: initialTouched,
2795
+ validationSchema: TeacherValidationSchema,
2796
+ onSubmit: saveUser
2797
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_3__["UserDetailsForm"], {
2798
+ onClickCancel: onClickCancel,
2799
+ userRoles: userRoles,
2800
+ userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__["MockUserType"].Teacher,
2801
+ hasNext: hasNext
2802
+ }));
2803
+ }
2804
+
2805
+ /***/ }),
2806
+
2807
+ /***/ "./src/apps/user-manager/components/index.ts":
2808
+ /*!***************************************************!*\
2809
+ !*** ./src/apps/user-manager/components/index.ts ***!
2810
+ \***************************************************/
2811
+ /*! exports provided: UserDetailsForm, YearLevelSelect, EditStudentDetails, EditTeacherDetails, BulkUploadFileSelect */
2812
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2813
+
2814
+ "use strict";
2815
+ __webpack_require__.r(__webpack_exports__);
2816
+ /* harmony import */ var _user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-details-form/UserDetailsForm */ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx");
2817
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return _user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_0__["UserDetailsForm"]; });
2818
+
2819
+ /* harmony import */ var _year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./year-level-select/YearLevelSelect */ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx");
2820
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return _year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_1__["YearLevelSelect"]; });
2821
+
2822
+ /* harmony import */ var _edit_student_details_EditStudentDetails__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./edit-student-details/EditStudentDetails */ "./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx");
2823
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return _edit_student_details_EditStudentDetails__WEBPACK_IMPORTED_MODULE_2__["EditStudentDetails"]; });
2824
+
2825
+ /* harmony import */ var _edit_teacher_details_EditTeacherDetails__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./edit-teacher-details/EditTeacherDetails */ "./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx");
2826
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return _edit_teacher_details_EditTeacherDetails__WEBPACK_IMPORTED_MODULE_3__["EditTeacherDetails"]; });
2827
+
2828
+ /* harmony import */ var _bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./bulk-upload-file-select/BulkUploadFileSelect */ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx");
2829
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return _bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_4__["BulkUploadFileSelect"]; });
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+ /***/ }),
2838
+
2839
+ /***/ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx":
2840
+ /*!********************************************************************************!*\
2841
+ !*** ./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx ***!
2842
+ \********************************************************************************/
2843
+ /*! exports provided: UserDetailsForm */
2844
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2845
+
2846
+ "use strict";
2847
+ __webpack_require__.r(__webpack_exports__);
2848
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return UserDetailsForm; });
2849
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2850
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2851
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
2852
+ /* 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");
2853
+ /* harmony import */ var _libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-field/FormField */ "../../libs/shared/src/components/forms/form-field/FormField.tsx");
2854
+ /* harmony import */ var _libs_shared_src_components_forms_form_buttons_FormButtons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-buttons/FormButtons */ "../../libs/shared/src/components/forms/form-buttons/FormButtons.tsx");
2855
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
2856
+ /* harmony import */ var _libs_shared_src_utils_FormHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/FormHelper */ "../../libs/shared/src/utils/FormHelper.ts");
2857
+ /* harmony import */ var _libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/forms/form-wrapper/FormWrapper */ "../../libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx");
2858
+ /* harmony import */ var apps_user_manager_components_year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! apps/user-manager/components/year-level-select/YearLevelSelect */ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx");
2859
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+ /**
2871
+ * This file uses 3 *.lang.json files.
2872
+ * - One for generic values
2873
+ * - One for student specific values
2874
+ * - One for teacher specific values
2875
+ */
2876
+
2877
+ var namespace = 'userManager.userDetailsForm';
2878
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(namespace);
2879
+ function UserDetailsForm(props) {
2880
+ var onClickCancel = props.onClickCancel,
2881
+ yearLevels = props.yearLevels,
2882
+ userRoles = props.userRoles,
2883
+ userType = props.userType;
2884
+ var formikProps = Object(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_7__["useFormikContextWrapper"])();
2885
+
2886
+ var getTreeSelectClassName = function getTreeSelectClassName(field) {
2887
+ return _libs_shared_src_utils_FormHelper__WEBPACK_IMPORTED_MODULE_6__["FormHelper"].getCustomFormControlClassName(formikProps.errors, formikProps.touched, field, 'revert-form-control h-auto');
2888
+ };
2889
+
2890
+ var getTypePhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_9__["MockUserType"].Teacher ? 'userManager.teacherDetailsForm' : 'userManager.studentDetailsForm');
2891
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](formik__WEBPACK_IMPORTED_MODULE_1__["Form"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2892
+ label: getPhrase('firstName'),
2893
+ type: 'text',
2894
+ name: 'name',
2895
+ id: 'name',
2896
+ placeholder: getTypePhrase('firstNamePlaceholder'),
2897
+ autoFocus: true,
2898
+ value: formikProps.values.name
2899
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2900
+ label: getPhrase('lastName'),
2901
+ type: 'text',
2902
+ name: 'surname',
2903
+ id: 'surname',
2904
+ placeholder: getTypePhrase('lastNamePlaceholder'),
2905
+ value: formikProps.values.surname
2906
+ }), yearLevels && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2907
+ name: 'yearLevel',
2908
+ label: getPhrase('yearLevel')
2909
+ }, function () {
2910
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2911
+ className: getTreeSelectClassName('yearLevel')
2912
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components_year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_8__["YearLevelSelect"], {
2913
+ yearLevels: yearLevels,
2914
+ selected: formikProps.values.yearLevel,
2915
+ onSelect: function onSelect(yearLevel) {
2916
+ return formikProps.setFieldValue('yearLevel', yearLevel);
2917
+ }
2918
+ }));
2919
+ }), userRoles && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2920
+ label: getPhrase('userRole'),
2921
+ name: 'userRole',
2922
+ as: 'select',
2923
+ onChange: function onChange(e) {
2924
+ var roleObj = props.userRoles.find(function (r) {
2925
+ return r.id === e.target.value;
2926
+ });
2927
+ formikProps.setFieldValue('userRole', roleObj);
2928
+ },
2929
+ value: formikProps.values.userRole.id
2930
+ }, userRoles.map(function (r) {
2931
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("option", {
2932
+ key: r.id,
2933
+ value: r.id
2934
+ }, r.name);
2935
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2936
+ label: getPhrase('emailAddress'),
2937
+ type: 'text',
2938
+ name: 'email',
2939
+ id: 'email',
2940
+ placeholder: getTypePhrase('emailAddressPlaceholder'),
2941
+ value: formikProps.values.email
2942
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2943
+ className: 'btn-container d-flex justify-content-end'
2944
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("button", {
2945
+ type: 'button',
2946
+ className: "btn btn-link mr-2",
2947
+ onClick: onClickCancel
2948
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
2949
+ namespace: namespace,
2950
+ phrase: 'cancel'
2951
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_buttons_FormButtons__WEBPACK_IMPORTED_MODULE_4__["FormButtons"], {
2952
+ isNew: false,
2953
+ hasNext: props.hasNext
2954
+ })));
2955
+ }
2956
+
2957
+ /***/ }),
2958
+
2959
+ /***/ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx":
2960
+ /*!********************************************************************************!*\
2961
+ !*** ./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx ***!
2962
+ \********************************************************************************/
2963
+ /*! exports provided: YearLevelSelect */
2964
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2965
+
2966
+ "use strict";
2967
+ __webpack_require__.r(__webpack_exports__);
2968
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return YearLevelSelect; });
2969
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2970
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2971
+
2972
+
2973
+ function YearLevel(props) {
2974
+ var yearLevel = props.yearLevel,
2975
+ selected = props.selected,
2976
+ onSelect = props.onSelect;
2977
+ var className = selected ? 'badge-info' : 'badge-light';
2978
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
2979
+ className: "badge-pill d-inline-block mr-1 mb-1 cursor-pointer ".concat(className),
2980
+ role: 'radio',
2981
+ "aria-checked": selected,
2982
+ onClick: function onClick() {
2983
+ return onSelect(yearLevel);
2984
+ }
2985
+ }, yearLevel.name);
2986
+ }
2987
+
2988
+ function YearLevelSelect(props) {
2989
+ var yearLevels = props.yearLevels,
2990
+ selected = props.selected,
2991
+ onSelect = props.onSelect;
2992
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2993
+ role: 'radiogroup'
2994
+ }, yearLevels.map(function (y) {
2995
+ var _a, _b;
2996
+
2997
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](YearLevel, {
2998
+ key: y.id,
2999
+ yearLevel: y,
3000
+ selected: y.id.toString() === ((_b = (_a = selected) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString()),
3001
+ onSelect: onSelect
3002
+ });
3003
+ }));
3004
+ }
3005
+
3006
+ /***/ }),
3007
+
3008
+ /***/ "./src/apps/user-manager/enums/index.ts":
3009
+ /*!**********************************************!*\
3010
+ !*** ./src/apps/user-manager/enums/index.ts ***!
3011
+ \**********************************************/
3012
+ /*! exports provided: MockUserType */
3013
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3014
+
3015
+ "use strict";
3016
+ __webpack_require__.r(__webpack_exports__);
3017
+ /* harmony import */ var _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mocks/MockUserType */ "./src/apps/user-manager/enums/mocks/MockUserType.ts");
3018
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__["MockUserType"]; });
3019
+
3020
+
3021
+
3022
+ /***/ }),
3023
+
3024
+ /***/ "./src/apps/user-manager/enums/mocks/MockUserType.ts":
3025
+ /*!***********************************************************!*\
3026
+ !*** ./src/apps/user-manager/enums/mocks/MockUserType.ts ***!
3027
+ \***********************************************************/
3028
+ /*! exports provided: MockUserType */
3029
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3030
+
3031
+ "use strict";
3032
+ __webpack_require__.r(__webpack_exports__);
3033
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return MockUserType; });
3034
+ var MockUserType;
3035
+
3036
+ (function (MockUserType) {
3037
+ MockUserType["Student"] = "student";
3038
+ MockUserType["Teacher"] = "teacher";
3039
+ })(MockUserType || (MockUserType = {}));
3040
+
3041
+ /***/ }),
3042
+
3043
+ /***/ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts":
3044
+ /*!**********************************************************************************!*\
3045
+ !*** ./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts ***!
3046
+ \**********************************************************************************/
3047
+ /*! exports provided: getTeacherValidationSchema, getStudentValidationSchema */
3048
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3049
+
3050
+ "use strict";
3051
+ __webpack_require__.r(__webpack_exports__);
3052
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTeacherValidationSchema", function() { return getTeacherValidationSchema; });
3053
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStudentValidationSchema", function() { return getStudentValidationSchema; });
3054
+ /* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yup */ "yup");
3055
+ /* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(yup__WEBPACK_IMPORTED_MODULE_0__);
3056
+ /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
3057
+
3058
+
3059
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('userManager.userValidation');
3060
+ var UserValidationSchema = Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
3061
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
3062
+ return getPhrase('nameExceeds');
3063
+ }).required(function () {
3064
+ return getPhrase('nameRequired');
3065
+ })["default"](''),
3066
+ surname: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
3067
+ return getPhrase('surnameExceeds');
3068
+ }).required(function () {
3069
+ return getPhrase('surnameRequired');
3070
+ })["default"](''),
3071
+ email: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
3072
+ return getPhrase('emailExceeds');
3073
+ }).required(function () {
3074
+ return getPhrase('emailRequired');
3075
+ }).email(function () {
3076
+ return getPhrase('emailValid');
3077
+ })["default"]('')
3078
+ });
3079
+ var getTeacherValidationSchema = function getTeacherValidationSchema(userRoles) {
3080
+ return UserValidationSchema.shape({
3081
+ userRole: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
3082
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
3083
+ return getPhrase('userRoleRequired');
3084
+ }).oneOf(userRoles.map(function (r) {
3085
+ return r.name;
3086
+ }), function () {
3087
+ return getPhrase('userRoleInvalid');
3088
+ })["default"]('')
3089
+ })
3090
+ });
3091
+ };
3092
+ var getStudentValidationSchema = function getStudentValidationSchema(yearLevels) {
3093
+ return UserValidationSchema.shape({
3094
+ yearLevel: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
3095
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
3096
+ return getPhrase('yearLevelRequired');
3097
+ }).oneOf(yearLevels.map(function (y) {
3098
+ return y.name;
3099
+ }), function () {
3100
+ return getPhrase('yearLevelInvalid');
3101
+ })["default"]('')
3102
+ })
3103
+ });
3104
+ };
3105
+
3106
+ /***/ }),
3107
+
3108
+ /***/ "./src/shared/components/toggle-switch/ToggleSwitch.tsx":
3109
+ /*!**************************************************************!*\
3110
+ !*** ./src/shared/components/toggle-switch/ToggleSwitch.tsx ***!
3111
+ \**************************************************************/
3112
+ /*! exports provided: ToggleSwitch */
3113
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3114
+
3115
+ "use strict";
3116
+ __webpack_require__.r(__webpack_exports__);
3117
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleSwitch", function() { return ToggleSwitch; });
3118
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3119
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3120
+ /* harmony import */ var _libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/div-button/DivButton */ "../../libs/shared/src/components/div-button/DivButton.tsx");
3121
+
3122
+
3123
+ function ToggleSwitch(props) {
3124
+ function onClick() {
3125
+ if (props.disabled) return;
3126
+ props.onClick.apply(props, arguments);
3127
+ }
3128
+
3129
+ var bootstrapClasses = 'd-inline-block float-right align-top custom-toggle toggle-option';
3130
+ var onClass = props.on && !props.disabled ? 'on' : '';
3131
+ var disabledClass = props.disabled ? 'disabled' : '';
3132
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_1__["DivButton"], {
3133
+ onClick: onClick,
3134
+ className: "".concat(bootstrapClasses, " ").concat(onClass, " ").concat(disabledClass)
3135
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
3136
+ className: 'handle'
3137
+ }));
3138
+ }
3139
+
3140
+ /***/ }),
3141
+
3142
+ /***/ "./src/shared/hooks/useBulkCheckboxManager.tsx":
3143
+ /*!*****************************************************!*\
3144
+ !*** ./src/shared/hooks/useBulkCheckboxManager.tsx ***!
3145
+ \*****************************************************/
3146
+ /*! exports provided: useBulkCheckboxManager */
3147
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3148
+
3149
+ "use strict";
3150
+ __webpack_require__.r(__webpack_exports__);
3151
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useBulkCheckboxManager", function() { return useBulkCheckboxManager; });
3152
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
3153
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3154
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3155
+
3156
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3157
+
3158
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3159
+
3160
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3161
+
3162
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
3163
+
3164
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
3165
+
3166
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
3167
+
3168
+
3169
+ /**
3170
+ * @param collection - The collection you are keeping track of with checkboxes
3171
+ * @param options - See interface above
3172
+ */
3173
+
3174
+ var useBulkCheckboxManager = function useBulkCheckboxManager(collection) {
3175
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3176
+
3177
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(false),
3178
+ _React$useState2 = _slicedToArray(_React$useState, 2),
3179
+ bulkChecked = _React$useState2[0],
3180
+ setBulkChecked = _React$useState2[1];
3181
+
3182
+ var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState({}),
3183
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
3184
+ items = _React$useState4[0],
3185
+ setItems = _React$useState4[1];
3186
+
3187
+ var _options$idField = options.idField,
3188
+ idField = _options$idField === void 0 ? 'id' : _options$idField;
3189
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.useEffect(function () {
3190
+ var _a;
3191
+
3192
+ if (!((_a = collection) === null || _a === void 0 ? void 0 : _a.length)) return;
3193
+ var newItemState = collection.reduce(function (stateObj, item) {
3194
+ var _a, _b;
3195
+
3196
+ var checkboxState = false;
3197
+ if ((_b = (_a = options) === null || _a === void 0 ? void 0 : _a.preselectedIds) === null || _b === void 0 ? void 0 : _b.includes(item[idField])) checkboxState = true;
3198
+ var id = item[idField];
3199
+ stateObj[id] = checkboxState;
3200
+ return stateObj;
3201
+ }, {});
3202
+ setItems(newItemState);
3203
+ }, [collection]); // When toggled on, all checkbox items will be enabled. Vice versa if toggled off
3204
+
3205
+ function onToggleBulk() {
3206
+ var nextState = !bulkChecked;
3207
+ setBulkChecked(nextState);
3208
+ var newItemsState = collection.reduce(function (stateObj, item) {
3209
+ stateObj[item[idField]] = nextState;
3210
+ return stateObj;
3211
+ }, {});
3212
+ setItems(newItemsState);
3213
+ } // Toggles a single item
3214
+
3215
+
3216
+ function onToggleItem(id) {
3217
+ var nextItemState = !items[id];
3218
+ var nextState = Object.assign(Object.assign({}, items), _defineProperty({}, id, nextItemState));
3219
+ setItems(nextState);
3220
+ /**
3221
+ * Keep the bulk checkbox in sync with all of the other checkboxes
3222
+ */
3223
+
3224
+ var totalItemsSelected = Object.keys(nextState).filter(function (i) {
3225
+ return nextState[i];
3226
+ }).length;
3227
+
3228
+ if (totalItemsSelected === collection.length) {
3229
+ setBulkChecked(true);
3230
+ return;
3231
+ }
3232
+
3233
+ if (!nextItemState && bulkChecked) setBulkChecked(false);
3234
+ } // Returns the state of the item passed in
3235
+
3236
+
3237
+ function isChecked(item) {
3238
+ if (bulkChecked) return true;
3239
+ if (typeof item !== 'string') item = item[idField];
3240
+ return items[item];
3241
+ }
3242
+
3243
+ function getSelected() {
3244
+ if (bulkChecked) return Object.keys(items);
3245
+ return Object.keys(items).filter(function (item) {
3246
+ return items[item];
3247
+ });
3248
+ }
3249
+
3250
+ return {
3251
+ onToggleBulk: onToggleBulk,
3252
+ onToggleItem: onToggleItem,
3253
+ getSelected: getSelected,
3254
+ isChecked: isChecked,
3255
+ bulkChecked: bulkChecked
3256
+ };
3257
+ };
3258
+
3259
+ /***/ })
3260
+
3261
+ }]);
3262
+ //# sourceMappingURL=5.chunk.js.map