@clickview/lite 0.0.19 → 0.0.20-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 (260) hide show
  1. package/dist/css/0.chunk.css.map +1 -0
  2. package/dist/css/1.chunk.css +146 -0
  3. package/dist/css/1.chunk.css.map +1 -0
  4. package/dist/css/11.chunk.css.map +1 -0
  5. package/dist/css/12.chunk.css.map +1 -0
  6. package/dist/css/13.chunk.css.map +1 -0
  7. package/dist/css/14.chunk.css.map +1 -0
  8. package/dist/css/15.chunk.css.map +1 -0
  9. package/dist/css/16.chunk.css.map +1 -0
  10. package/dist/css/17.chunk.css.map +1 -0
  11. package/dist/css/18.chunk.css.map +1 -0
  12. package/dist/css/19.chunk.css.map +1 -0
  13. package/dist/css/21.chunk.css.map +1 -0
  14. package/dist/css/22.chunk.css.map +1 -0
  15. package/dist/css/23.chunk.css.map +1 -0
  16. package/dist/css/24.chunk.css.map +1 -0
  17. package/dist/css/25.chunk.css.map +1 -0
  18. package/dist/css/26.chunk.css.map +1 -0
  19. package/dist/css/27.chunk.css.map +1 -0
  20. package/dist/css/28.chunk.css.map +1 -0
  21. package/dist/css/29.chunk.css.map +1 -0
  22. package/dist/css/3.chunk.css.map +1 -0
  23. package/dist/css/30.chunk.css +32 -0
  24. package/dist/css/30.chunk.css.map +1 -0
  25. package/dist/css/31.chunk.css.map +1 -0
  26. package/dist/css/32.chunk.css +6 -0
  27. package/dist/css/32.chunk.css.map +1 -0
  28. package/dist/css/33.chunk.css +5 -0
  29. package/dist/css/33.chunk.css.map +1 -0
  30. package/dist/css/34.chunk.css.map +1 -0
  31. package/dist/css/36.chunk.css +6 -0
  32. package/dist/css/36.chunk.css.map +1 -0
  33. package/dist/css/37.chunk.css +7 -0
  34. package/dist/css/37.chunk.css.map +1 -0
  35. package/dist/css/38.chunk.css.map +1 -0
  36. package/dist/css/41.chunk.css +38 -0
  37. package/dist/css/41.chunk.css.map +1 -0
  38. package/dist/css/5.chunk.css.map +1 -0
  39. package/dist/css/51.chunk.css +9 -0
  40. package/dist/css/51.chunk.css.map +1 -0
  41. package/dist/css/6.chunk.css.map +1 -0
  42. package/dist/css/7.chunk.css +66 -0
  43. package/dist/css/7.chunk.css.map +1 -0
  44. package/dist/css/lite-app.css.map +1 -0
  45. package/dist/libs/shared/src/utils/ImageHelper.d.ts +1 -1
  46. package/dist/projects/lite/src/polyfills.d.ts +2 -0
  47. package/dist/scripts/0.chunk.js +308 -0
  48. package/dist/scripts/0.chunk.js.map +1 -0
  49. package/dist/scripts/1.chunk.js +623 -0
  50. package/dist/scripts/1.chunk.js.map +1 -0
  51. package/dist/scripts/10.chunk.js +530 -0
  52. package/dist/scripts/10.chunk.js.map +1 -0
  53. package/dist/scripts/11.chunk.js +380 -0
  54. package/dist/scripts/11.chunk.js.map +1 -0
  55. package/dist/scripts/12.chunk.js +434 -0
  56. package/dist/scripts/12.chunk.js.map +1 -0
  57. package/dist/scripts/13.chunk.js +1287 -0
  58. package/dist/scripts/13.chunk.js.map +1 -0
  59. package/dist/scripts/14.chunk.js +575 -0
  60. package/dist/scripts/14.chunk.js.map +1 -0
  61. package/dist/scripts/15.chunk.js +806 -0
  62. package/dist/scripts/15.chunk.js.map +1 -0
  63. package/dist/scripts/16.chunk.js +482 -0
  64. package/dist/scripts/16.chunk.js.map +1 -0
  65. package/dist/scripts/17.chunk.js +428 -0
  66. package/dist/scripts/17.chunk.js.map +1 -0
  67. package/dist/scripts/18.chunk.js +766 -0
  68. package/dist/scripts/18.chunk.js.map +1 -0
  69. package/dist/scripts/19.chunk.js +647 -0
  70. package/dist/scripts/19.chunk.js.map +1 -0
  71. package/dist/scripts/2.chunk.js +18882 -0
  72. package/dist/scripts/2.chunk.js.map +1 -0
  73. package/dist/scripts/20.chunk.js +212 -0
  74. package/dist/scripts/20.chunk.js.map +1 -0
  75. package/dist/scripts/21.chunk.js +1591 -0
  76. package/dist/scripts/21.chunk.js.map +1 -0
  77. package/dist/scripts/22.chunk.js +1348 -0
  78. package/dist/scripts/22.chunk.js.map +1 -0
  79. package/dist/scripts/23.chunk.js +1181 -0
  80. package/dist/scripts/23.chunk.js.map +1 -0
  81. package/dist/scripts/24.chunk.js +1141 -0
  82. package/dist/scripts/24.chunk.js.map +1 -0
  83. package/dist/scripts/25.chunk.js +907 -0
  84. package/dist/scripts/25.chunk.js.map +1 -0
  85. package/dist/scripts/26.chunk.js +979 -0
  86. package/dist/scripts/26.chunk.js.map +1 -0
  87. package/dist/scripts/27.chunk.js +655 -0
  88. package/dist/scripts/27.chunk.js.map +1 -0
  89. package/dist/scripts/28.chunk.js +615 -0
  90. package/dist/scripts/28.chunk.js.map +1 -0
  91. package/dist/scripts/29.chunk.js +622 -0
  92. package/dist/scripts/29.chunk.js.map +1 -0
  93. package/dist/scripts/{3-f01af775f2.chunk.js → 3-7c3e2f071d.chunk.js} +1 -1
  94. package/dist/scripts/3.chunk.js +809 -0
  95. package/dist/scripts/3.chunk.js.map +1 -0
  96. package/dist/scripts/30.chunk.js +468 -0
  97. package/dist/scripts/30.chunk.js.map +1 -0
  98. package/dist/scripts/31.chunk.js +441 -0
  99. package/dist/scripts/31.chunk.js.map +1 -0
  100. package/dist/scripts/32.chunk.js +509 -0
  101. package/dist/scripts/32.chunk.js.map +1 -0
  102. package/dist/scripts/33.chunk.js +957 -0
  103. package/dist/scripts/33.chunk.js.map +1 -0
  104. package/dist/scripts/34.chunk.js +502 -0
  105. package/dist/scripts/34.chunk.js.map +1 -0
  106. package/dist/scripts/35.chunk.js +938 -0
  107. package/dist/scripts/35.chunk.js.map +1 -0
  108. package/dist/scripts/36.chunk.js +537 -0
  109. package/dist/scripts/36.chunk.js.map +1 -0
  110. package/dist/scripts/37.chunk.js +414 -0
  111. package/dist/scripts/37.chunk.js.map +1 -0
  112. package/dist/scripts/38.chunk.js +245 -0
  113. package/dist/scripts/38.chunk.js.map +1 -0
  114. package/dist/scripts/39.chunk.js +337 -0
  115. package/dist/scripts/39.chunk.js.map +1 -0
  116. package/dist/scripts/4.chunk.js +402 -0
  117. package/dist/scripts/4.chunk.js.map +1 -0
  118. package/dist/scripts/40.chunk.js +350 -0
  119. package/dist/scripts/40.chunk.js.map +1 -0
  120. package/dist/scripts/41.chunk.js +343 -0
  121. package/dist/scripts/41.chunk.js.map +1 -0
  122. package/dist/scripts/42.chunk.js +404 -0
  123. package/dist/scripts/42.chunk.js.map +1 -0
  124. package/dist/scripts/43.chunk.js +221 -0
  125. package/dist/scripts/43.chunk.js.map +1 -0
  126. package/dist/scripts/44.chunk.js +230 -0
  127. package/dist/scripts/44.chunk.js.map +1 -0
  128. package/dist/scripts/45.chunk.js +409 -0
  129. package/dist/scripts/45.chunk.js.map +1 -0
  130. package/dist/scripts/46.chunk.js +272 -0
  131. package/dist/scripts/46.chunk.js.map +1 -0
  132. package/dist/scripts/47.chunk.js +267 -0
  133. package/dist/scripts/47.chunk.js.map +1 -0
  134. package/dist/scripts/48.chunk.js +359 -0
  135. package/dist/scripts/48.chunk.js.map +1 -0
  136. package/dist/scripts/49.chunk.js +225 -0
  137. package/dist/scripts/49.chunk.js.map +1 -0
  138. package/dist/scripts/5.chunk.js +1104 -0
  139. package/dist/scripts/5.chunk.js.map +1 -0
  140. package/dist/scripts/50.chunk.js +318 -0
  141. package/dist/scripts/50.chunk.js.map +1 -0
  142. package/dist/scripts/51.chunk.js +64 -0
  143. package/dist/scripts/51.chunk.js.map +1 -0
  144. package/dist/scripts/52.chunk.js +108 -0
  145. package/dist/scripts/52.chunk.js.map +1 -0
  146. package/dist/scripts/53.chunk.js +110 -0
  147. package/dist/scripts/53.chunk.js.map +1 -0
  148. package/dist/scripts/54.chunk.js +162 -0
  149. package/dist/scripts/54.chunk.js.map +1 -0
  150. package/dist/scripts/55.chunk.js +145 -0
  151. package/dist/scripts/55.chunk.js.map +1 -0
  152. package/dist/scripts/56.chunk.js +139 -0
  153. package/dist/scripts/56.chunk.js.map +1 -0
  154. package/dist/scripts/57.chunk.js +142 -0
  155. package/dist/scripts/57.chunk.js.map +1 -0
  156. package/dist/scripts/58.chunk.js +173 -0
  157. package/dist/scripts/58.chunk.js.map +1 -0
  158. package/dist/scripts/59.chunk.js +160 -0
  159. package/dist/scripts/59.chunk.js.map +1 -0
  160. package/dist/scripts/6.chunk.js +335 -0
  161. package/dist/scripts/6.chunk.js.map +1 -0
  162. package/dist/scripts/60.chunk.js +98 -0
  163. package/dist/scripts/60.chunk.js.map +1 -0
  164. package/dist/scripts/61.chunk.js +48 -0
  165. package/dist/scripts/61.chunk.js.map +1 -0
  166. package/dist/scripts/62.chunk.js +70 -0
  167. package/dist/scripts/62.chunk.js.map +1 -0
  168. package/dist/scripts/63.chunk.js +32 -0
  169. package/dist/scripts/63.chunk.js.map +1 -0
  170. package/dist/scripts/64.chunk.js +29 -0
  171. package/dist/scripts/64.chunk.js.map +1 -0
  172. package/dist/scripts/65.chunk.js +27 -0
  173. package/dist/scripts/65.chunk.js.map +1 -0
  174. package/dist/scripts/66.chunk.js +65 -0
  175. package/dist/scripts/66.chunk.js.map +1 -0
  176. package/dist/scripts/67.chunk.js +67 -0
  177. package/dist/scripts/67.chunk.js.map +1 -0
  178. package/dist/scripts/68.chunk.js +104 -0
  179. package/dist/scripts/68.chunk.js.map +1 -0
  180. package/dist/scripts/69.chunk.js +89 -0
  181. package/dist/scripts/69.chunk.js.map +1 -0
  182. package/dist/scripts/7.chunk.js +2579 -0
  183. package/dist/scripts/7.chunk.js.map +1 -0
  184. package/dist/scripts/70.chunk.js +1001 -0
  185. package/dist/scripts/70.chunk.js.map +1 -0
  186. package/dist/scripts/71.chunk.js +36 -0
  187. package/dist/scripts/71.chunk.js.map +1 -0
  188. package/dist/scripts/8.chunk.js +24 -0
  189. package/dist/scripts/8.chunk.js.map +1 -0
  190. package/dist/scripts/9.chunk.js +327 -0
  191. package/dist/scripts/9.chunk.js.map +1 -0
  192. package/dist/scripts/{bundle-5ecb0c9441.min.js → bundle-df3f2fe30a.min.js} +1 -1
  193. package/dist/scripts/bundle.js +38145 -0
  194. package/dist/scripts/bundle.js.map +1 -0
  195. package/dist/scripts/bundles.json +1 -1
  196. package/dist/scripts/polyfills.js +15232 -0
  197. package/dist/scripts/polyfills.js.map +1 -0
  198. package/package.json +1 -1
  199. package/dist/scripts/14-9f08e07fae.chunk.js +0 -1
  200. package/dist/scripts/3-6e2ac46662.chunk.js +0 -7
  201. package/dist/scripts/4-ea79bf1533.chunk.js +0 -1
  202. package/dist/scripts/bundle-25efc68e8d.min.js +0 -1
  203. package/dist/scripts/bundle-c6241bd7ac.min.js +0 -1
  204. package/dist/scripts/bundle-ece1c21857.min.js +0 -1
  205. /package/dist/scripts/{0-d95e8444c4.chunk.js → 0-531d6e6349.chunk.js} +0 -0
  206. /package/dist/scripts/{11-d419aa0984.chunk.js → 11-8f0bdf9018.chunk.js} +0 -0
  207. /package/dist/scripts/{12-b38a27f951.chunk.js → 12-48ed970d19.chunk.js} +0 -0
  208. /package/dist/scripts/{13-1ad100c6fa.chunk.js → 13-b0f32ba098.chunk.js} +0 -0
  209. /package/dist/scripts/{14-ffa8f0cdc3.chunk.js → 14-3fdae3a2e0.chunk.js} +0 -0
  210. /package/dist/scripts/{15-ee9fb81b9f.chunk.js → 15-fded12e48f.chunk.js} +0 -0
  211. /package/dist/scripts/{16-8fe78e04c2.chunk.js → 16-adabe89775.chunk.js} +0 -0
  212. /package/dist/scripts/{17-ea7fe3ea28.chunk.js → 17-b2cd7a4b5e.chunk.js} +0 -0
  213. /package/dist/scripts/{18-1bb07c0b9b.chunk.js → 18-40f63a0517.chunk.js} +0 -0
  214. /package/dist/scripts/{19-c869d34687.chunk.js → 19-402b058c2a.chunk.js} +0 -0
  215. /package/dist/scripts/{2-a816feb2a1.chunk.js → 2-2af40ff44f.chunk.js} +0 -0
  216. /package/dist/scripts/{20-43ec005977.chunk.js → 20-6fefb546ab.chunk.js} +0 -0
  217. /package/dist/scripts/{21-8513db8251.chunk.js → 21-a89abdba1d.chunk.js} +0 -0
  218. /package/dist/scripts/{22-d4adb2384c.chunk.js → 22-09dbfdff25.chunk.js} +0 -0
  219. /package/dist/scripts/{23-d8b5b9ad2c.chunk.js → 23-b206a9cf33.chunk.js} +0 -0
  220. /package/dist/scripts/{24-f2913e26e2.chunk.js → 24-7841060223.chunk.js} +0 -0
  221. /package/dist/scripts/{25-68705527ea.chunk.js → 25-a7d11dc1a9.chunk.js} +0 -0
  222. /package/dist/scripts/{26-7d25448f1c.chunk.js → 26-e74d7d8b73.chunk.js} +0 -0
  223. /package/dist/scripts/{27-bab6c9f5c7.chunk.js → 27-98612375ea.chunk.js} +0 -0
  224. /package/dist/scripts/{28-080baa3fbc.chunk.js → 28-bf3436e9a7.chunk.js} +0 -0
  225. /package/dist/scripts/{29-5e9889b68a.chunk.js → 29-4e8053f425.chunk.js} +0 -0
  226. /package/dist/scripts/{30-cdbeea4fc5.chunk.js → 30-52574fd7e7.chunk.js} +0 -0
  227. /package/dist/scripts/{31-6fa4413cdb.chunk.js → 31-a1cd93aead.chunk.js} +0 -0
  228. /package/dist/scripts/{32-d4725d3b7d.chunk.js → 32-3582316ec6.chunk.js} +0 -0
  229. /package/dist/scripts/{33-bec24aab85.chunk.js → 33-c12e2d64d8.chunk.js} +0 -0
  230. /package/dist/scripts/{34-c42c6cf42a.chunk.js → 34-123b98d346.chunk.js} +0 -0
  231. /package/dist/scripts/{35-4512b236f2.chunk.js → 35-0d10217f78.chunk.js} +0 -0
  232. /package/dist/scripts/{36-eede7769b2.chunk.js → 36-926dfeed42.chunk.js} +0 -0
  233. /package/dist/scripts/{37-80ed339c4f.chunk.js → 37-b7eb76b267.chunk.js} +0 -0
  234. /package/dist/scripts/{38-c11d4c88e3.chunk.js → 38-194e4e7a6b.chunk.js} +0 -0
  235. /package/dist/scripts/{39-d0e74fb062.chunk.js → 39-52658e5919.chunk.js} +0 -0
  236. /package/dist/scripts/{4-ca4a9fc001.chunk.js → 4-1069225fdd.chunk.js} +0 -0
  237. /package/dist/scripts/{40-d764e6157b.chunk.js → 40-f894eeb643.chunk.js} +0 -0
  238. /package/dist/scripts/{41-0aa7093354.chunk.js → 41-0185da83f4.chunk.js} +0 -0
  239. /package/dist/scripts/{42-3d8c5fa14c.chunk.js → 42-7dec68cd96.chunk.js} +0 -0
  240. /package/dist/scripts/{43-969806e81e.chunk.js → 43-a0bebde767.chunk.js} +0 -0
  241. /package/dist/scripts/{44-e8e3fef4c3.chunk.js → 44-70673a004e.chunk.js} +0 -0
  242. /package/dist/scripts/{45-d8f70269d6.chunk.js → 45-e4e06801b2.chunk.js} +0 -0
  243. /package/dist/scripts/{46-946ae22c1f.chunk.js → 46-349ff5f0d5.chunk.js} +0 -0
  244. /package/dist/scripts/{47-1579412cd0.chunk.js → 47-42a55c12e2.chunk.js} +0 -0
  245. /package/dist/scripts/{48-fdf97c1c73.chunk.js → 48-8af4070f2b.chunk.js} +0 -0
  246. /package/dist/scripts/{49-970fc479c8.chunk.js → 49-d94fce3ca9.chunk.js} +0 -0
  247. /package/dist/scripts/{5-d1bb14adf6.chunk.js → 5-66270e3a0d.chunk.js} +0 -0
  248. /package/dist/scripts/{50-1257ab0b95.chunk.js → 50-fab4522d40.chunk.js} +0 -0
  249. /package/dist/scripts/{51-ac615445f0.chunk.js → 51-119315f5af.chunk.js} +0 -0
  250. /package/dist/scripts/{52-874629b81c.chunk.js → 52-2f07b899d9.chunk.js} +0 -0
  251. /package/dist/scripts/{53-22e3d0793b.chunk.js → 53-43aaf5b628.chunk.js} +0 -0
  252. /package/dist/scripts/{54-da1a07610c.chunk.js → 54-70394f7bc2.chunk.js} +0 -0
  253. /package/dist/scripts/{55-02647df65c.chunk.js → 55-5f4a32f8ef.chunk.js} +0 -0
  254. /package/dist/scripts/{56-1b6e6349fa.chunk.js → 56-87d38b6834.chunk.js} +0 -0
  255. /package/dist/scripts/{57-8fc09ba02c.chunk.js → 57-b9334f46ba.chunk.js} +0 -0
  256. /package/dist/scripts/{58-8e5cc56c3f.chunk.js → 58-7aedb52028.chunk.js} +0 -0
  257. /package/dist/scripts/{6-0e53df2ece.chunk.js → 6-a888530bed.chunk.js} +0 -0
  258. /package/dist/scripts/{7-26822045b2.chunk.js → 7-7e596a99ba.chunk.js} +0 -0
  259. /package/dist/scripts/{8-7450eff674.chunk.js → 8-abff2ccf3c.chunk.js} +0 -0
  260. /package/dist/scripts/{9-f24f1577dd.chunk.js → 9-58b0e36108.chunk.js} +0 -0
@@ -0,0 +1,2579 @@
1
+ (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[7],{
2
+
3
+ /***/ "../../libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx":
4
+ /*!**************************************************************************************************************************!*\
5
+ !*** C:/ClickView/front-end/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
+ var 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
+ var audiences = props.data.subjectPresentationAudiences && props.data.subjectPresentationAudiences.data;
41
+ var filteredAudiences = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getSortedPresentationAudiences(audiences, props.presentationAudiences);
42
+ var mergedAudience = _utils_AudienceHelper__WEBPACK_IMPORTED_MODULE_2__["AudienceHelper"].getMergedPresentationAudienceString(filteredAudiences);
43
+ var 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 ".concat(_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/front-end/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/forms/form-checkbox/Checkbox.tsx":
82
+ /*!*************************************************************************************************************!*\
83
+ !*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/forms/form-checkbox/Checkbox.tsx ***!
84
+ \*************************************************************************************************************/
85
+ /*! exports provided: Checkbox */
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__, "Checkbox", function() { return Checkbox; });
91
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
92
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
93
+
94
+ Checkbox.defaultProps = {
95
+ checked: false,
96
+ label: '',
97
+ className: ''
98
+ };
99
+ /**
100
+ * Use this checkbox outside of Formik contexts
101
+ */
102
+
103
+ function Checkbox(props) {
104
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
105
+ className: "custom-control custom-checkbox ".concat(props.className)
106
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", {
107
+ type: 'checkbox',
108
+ className: 'custom-control-input',
109
+ id: props.id,
110
+ name: props.name,
111
+ checked: props.checked,
112
+ onChange: props.onChange
113
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", {
114
+ className: 'custom-control-label cursor-pointer',
115
+ htmlFor: props.id
116
+ }, props.label));
117
+ }
118
+
119
+ /***/ }),
120
+
121
+ /***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx":
122
+ /*!**************************************************************************************************************************************!*\
123
+ !*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/PlaylistWidgetItem.tsx ***!
124
+ \**************************************************************************************************************************************/
125
+ /*! exports provided: PlaylistWidgetItem */
126
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
127
+
128
+ "use strict";
129
+ __webpack_require__.r(__webpack_exports__);
130
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistWidgetItem", function() { return PlaylistWidgetItem; });
131
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
132
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
133
+ /* 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");
134
+ /* 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");
135
+ /* harmony import */ var _playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2__);
136
+ var __rest = undefined && undefined.__rest || function (s, e) {
137
+ var t = {};
138
+
139
+ for (var p in s) {
140
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
141
+ }
142
+
143
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
144
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
145
+ }
146
+ return t;
147
+ };
148
+
149
+
150
+
151
+
152
+ function PlaylistWidgetItem(props) {
153
+ var context = props.context,
154
+ otherProps = __rest(props, ["context"]);
155
+
156
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
157
+ className: "position-relative p-1 flex-shrink-0 ".concat(_playlist_widget_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.width)
158
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_apps_playlists_components_playlist_list_PlaylistItem__WEBPACK_IMPORTED_MODULE_1__["PlaylistItem"], Object.assign({}, otherProps)));
159
+ }
160
+
161
+ /***/ }),
162
+
163
+ /***/ "../../libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss":
164
+ /*!*****************************************************************************************************************************************!*\
165
+ !*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/playlist-widget-item/playlist-widget-item.scss ***!
166
+ \*****************************************************************************************************************************************/
167
+ /*! no static exports found */
168
+ /***/ (function(module, exports, __webpack_require__) {
169
+
170
+ // extracted by mini-css-extract-plugin
171
+ module.exports = {"width":"cv--width--wNWEd"};
172
+
173
+ /***/ }),
174
+
175
+ /***/ "./src/apps/search/components/filter-actions/FilterActions.tsx":
176
+ /*!*********************************************************************!*\
177
+ !*** ./src/apps/search/components/filter-actions/FilterActions.tsx ***!
178
+ \*********************************************************************/
179
+ /*! exports provided: FilterActions */
180
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
181
+
182
+ "use strict";
183
+ __webpack_require__.r(__webpack_exports__);
184
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return FilterActions; });
185
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
186
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
187
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intersection-observer */ "react-intersection-observer");
188
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
189
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
190
+ /* 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");
191
+ /* 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");
192
+ /* 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");
193
+ /* 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");
194
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
195
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
196
+ /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
197
+ /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
198
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
199
+
200
+ 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."); }
201
+
202
+ 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); }
203
+
204
+ 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; }
205
+
206
+ 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; }
207
+
208
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+ var namespace = 'search.filterActions';
222
+
223
+ var triggerAppLink = function triggerAppLink(stateChange) {
224
+ var currentQueryParams = _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].LocationUtils.GetQuery();
225
+ var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_4__["ContextService"].getCurrentRoute().appLink;
226
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].AppLinkHelper.trigger({
227
+ application: currentAppLink.application,
228
+ action: currentAppLink.action,
229
+ params: apps_search_utils__WEBPACK_IMPORTED_MODULE_8__["FilterHelper"].buildQueryParams(currentQueryParams, stateChange)
230
+ });
231
+ };
232
+
233
+ FilterActions.defaultProps = {
234
+ active: false,
235
+ className: ''
236
+ };
237
+ function FilterActions(props) {
238
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_7__["FilterContext"]),
239
+ dispatch = _React$useContext.dispatch;
240
+
241
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false),
242
+ _React$useState2 = _slicedToArray(_React$useState, 2),
243
+ triggerOnClose = _React$useState2[0],
244
+ setTriggerOnClose = _React$useState2[1];
245
+
246
+ var _ReactIntersectionObs = react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__["useInView"](),
247
+ _ReactIntersectionObs2 = _slicedToArray(_ReactIntersectionObs, 2),
248
+ ref = _ReactIntersectionObs2[0],
249
+ inView = _ReactIntersectionObs2[1];
250
+
251
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
252
+ if (inView) {
253
+ setTriggerOnClose(true);
254
+ return;
255
+ }
256
+
257
+ if (!inView && triggerOnClose) {
258
+ setTriggerOnClose(false);
259
+ applyFilter(false);
260
+ }
261
+ }, [inView]);
262
+
263
+ function applyFilter(applyClicked) {
264
+ var _a, _b; // The default value should not be set as a query param
265
+
266
+
267
+ 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"]);
268
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
269
+ type: props.filter.name,
270
+ selection: props.selection && !isDefaultValue ? props.selection : [],
271
+ isActive: props.active && !isDefaultValue,
272
+ applyClicked: applyClicked
273
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
274
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
275
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter
276
+ }));
277
+ var payload = {
278
+ filter: props.filter,
279
+ active: props.active && !isDefaultValue,
280
+ selection: props.selection && !isDefaultValue ? props.selection : []
281
+ };
282
+ dispatch({
283
+ type: 'apply',
284
+ payload: payload
285
+ });
286
+ triggerAppLink(payload);
287
+ }
288
+
289
+ function onClickReset(e) {
290
+ e.preventDefault();
291
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].logUserAction({
292
+ type: props.filter.name
293
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_9__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
294
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["WorkflowPhase"].Complete,
295
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["UserAction"].Filter,
296
+ descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_10__["FilterDescriptor"].Reset
297
+ }));
298
+ var payload = {
299
+ filter: props.filter,
300
+ active: false,
301
+ selection: null
302
+ };
303
+ dispatch({
304
+ type: 'reset',
305
+ payload: payload
306
+ });
307
+ triggerAppLink(payload);
308
+ }
309
+
310
+ function onClickApply(e) {
311
+ e.preventDefault();
312
+ applyFilter(true);
313
+ }
314
+
315
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
316
+ ref: ref,
317
+ className: "d-flex justify-content-between ".concat(props.className)
318
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
319
+ className: 'text-muted hover-text-underline cursor-pointer',
320
+ onClick: onClickReset
321
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
322
+ namespace: namespace,
323
+ phrase: 'reset'
324
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_6__["DivButton"], {
325
+ className: 'info-link',
326
+ onClick: onClickApply
327
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
328
+ namespace: namespace,
329
+ phrase: 'apply'
330
+ })));
331
+ }
332
+
333
+ /***/ }),
334
+
335
+ /***/ "./src/apps/search/components/filter-button/FilterButton.tsx":
336
+ /*!*******************************************************************!*\
337
+ !*** ./src/apps/search/components/filter-button/FilterButton.tsx ***!
338
+ \*******************************************************************/
339
+ /*! exports provided: FilterButton */
340
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
341
+
342
+ "use strict";
343
+ __webpack_require__.r(__webpack_exports__);
344
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return FilterButton; });
345
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
346
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
347
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
348
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
349
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
350
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
351
+ /* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter-button.scss */ "./src/apps/search/components/filter-button/filter-button.scss");
352
+ /* harmony import */ var _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4__);
353
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
354
+
355
+ 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."); }
356
+
357
+ 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); }
358
+
359
+ 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; }
360
+
361
+ 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; }
362
+
363
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
364
+
365
+
366
+
367
+
368
+
369
+
370
+ function FilterButton(props) {
371
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.filter.name),
372
+ _React$useState2 = _slicedToArray(_React$useState, 2),
373
+ label = _React$useState2[0],
374
+ setLabel = _React$useState2[1];
375
+
376
+ var FilterComponent = props.filter.customComponent ? props.filter.customComponent : apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].mapTypeToComponent(props.filter.type);
377
+
378
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
379
+ state = _React$useContext.state;
380
+
381
+ var filterState = state[props.filter.id];
382
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
383
+ setLabel(apps_search_utils__WEBPACK_IMPORTED_MODULE_2__["FilterHelper"].getLabel(props.filter, filterState));
384
+ }, [props.filter, filterState.selection]);
385
+ var baseClass = "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterButton, " mx-1 btn");
386
+ var colorClass = filterState.active ? 'btn-info' : 'btn-light';
387
+ var caretClass = props.filter.type !== 'dropdown' ? _filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.hideCaret : '';
388
+ 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, {
389
+ id: props.filter.id,
390
+ className: "".concat(baseClass, " ").concat(colorClass, " ").concat(caretClass)
391
+ }, label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Menu, {
392
+ onClick: function onClick(e) {
393
+ return e.stopPropagation();
394
+ }
395
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
396
+ className: "".concat(_filter_button_scss__WEBPACK_IMPORTED_MODULE_4___default.a.filterItem, " mx-1 ").concat(props.filter.type !== 'dropdown' ? 'px-2 py-1' : '')
397
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](FilterComponent, {
398
+ analyticsOptions: props.analyticsOptions,
399
+ filter: props.filter
400
+ }))));
401
+ }
402
+
403
+ /***/ }),
404
+
405
+ /***/ "./src/apps/search/components/filter-button/filter-button.scss":
406
+ /*!*********************************************************************!*\
407
+ !*** ./src/apps/search/components/filter-button/filter-button.scss ***!
408
+ \*********************************************************************/
409
+ /*! no static exports found */
410
+ /***/ (function(module, exports, __webpack_require__) {
411
+
412
+ // extracted by mini-css-extract-plugin
413
+ module.exports = {"filterButton":"cv--filterButton--2LJ1G","hideCaret":"cv--hideCaret--2OStB","filterItem":"cv--filterItem--13K5j"};
414
+
415
+ /***/ }),
416
+
417
+ /***/ "./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx":
418
+ /*!************************************************************************************!*\
419
+ !*** ./src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.tsx ***!
420
+ \************************************************************************************/
421
+ /*! exports provided: CheckboxFilter */
422
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
423
+
424
+ "use strict";
425
+ __webpack_require__.r(__webpack_exports__);
426
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return CheckboxFilter; });
427
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
428
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
429
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
430
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
431
+ /* 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");
432
+ /* harmony import */ var shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/hooks/useBulkCheckboxManager */ "./src/shared/hooks/useBulkCheckboxManager.tsx");
433
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
434
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
435
+
436
+
437
+
438
+
439
+
440
+
441
+ function CheckboxFilter(props) {
442
+ var _a;
443
+
444
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"]),
445
+ state = _React$useContext.state;
446
+
447
+ var filterState = state[props.filter.id];
448
+
449
+ var _useBulkCheckboxManag = Object(shared_hooks_useBulkCheckboxManager__WEBPACK_IMPORTED_MODULE_3__["useBulkCheckboxManager"])(props.filter.options, {
450
+ preselectedIds: ((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.map(function (s) {
451
+ return s.id;
452
+ })) || []
453
+ }),
454
+ onToggleItem = _useBulkCheckboxManag.onToggleItem,
455
+ isChecked = _useBulkCheckboxManag.isChecked,
456
+ getSelected = _useBulkCheckboxManag.getSelected;
457
+
458
+ var selections = getSelected().map(function (optionName) {
459
+ return props.filter.options.find(function (o) {
460
+ return o.id === optionName;
461
+ });
462
+ });
463
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
464
+ className: 'h6 mb-2'
465
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
466
+ className: 'mb-3'
467
+ }, props.filter.options.map(function (option) {
468
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_2__["Checkbox"], {
469
+ key: option.id,
470
+ label: option.name,
471
+ name: option.id,
472
+ id: option.id,
473
+ onChange: function onChange() {
474
+ return onToggleItem(option.id);
475
+ },
476
+ checked: isChecked(option.id),
477
+ className: 'my-1'
478
+ });
479
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_5__["FilterActions"], {
480
+ active: !!selections.length,
481
+ filter: props.filter,
482
+ selection: selections,
483
+ analyticsOptions: props.analyticsOptions
484
+ }));
485
+ }
486
+
487
+ /***/ }),
488
+
489
+ /***/ "./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx":
490
+ /*!************************************************************************************!*\
491
+ !*** ./src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.tsx ***!
492
+ \************************************************************************************/
493
+ /*! exports provided: DropdownFilter */
494
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
495
+
496
+ "use strict";
497
+ __webpack_require__.r(__webpack_exports__);
498
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return DropdownFilter; });
499
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
500
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
501
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
502
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
503
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
504
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
505
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
506
+
507
+ 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."); }
508
+
509
+ 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); }
510
+
511
+ 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; }
512
+
513
+ 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; }
514
+
515
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
516
+
517
+
518
+
519
+
520
+
521
+ function DropdownFilter(props) {
522
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(apps_search_reducers__WEBPACK_IMPORTED_MODULE_2__["FilterContext"]),
523
+ state = _React$useContext.state;
524
+
525
+ var filterState = state[props.filter.id];
526
+
527
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(filterState.selection),
528
+ _React$useState2 = _slicedToArray(_React$useState, 2),
529
+ currentSelection = _React$useState2[0],
530
+ setCurrentSelection = _React$useState2[1];
531
+
532
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.filter.options.map(function (option) {
533
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Dropdown"].Item, {
534
+ key: option.id,
535
+ onClick: function onClick() {
536
+ return setCurrentSelection([option]);
537
+ }
538
+ }, option.name);
539
+ }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"], {
540
+ active: !!currentSelection,
541
+ filter: props.filter,
542
+ selection: currentSelection,
543
+ className: 'pt-1 px-2',
544
+ analyticsOptions: props.analyticsOptions
545
+ }));
546
+ }
547
+
548
+ /***/ }),
549
+
550
+ /***/ "./src/apps/search/components/filter-types/index.ts":
551
+ /*!**********************************************************!*\
552
+ !*** ./src/apps/search/components/filter-types/index.ts ***!
553
+ \**********************************************************/
554
+ /*! exports provided: CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
555
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
556
+
557
+ "use strict";
558
+ __webpack_require__.r(__webpack_exports__);
559
+ /* 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");
560
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _checkbox_filter_CheckboxFilter__WEBPACK_IMPORTED_MODULE_0__["CheckboxFilter"]; });
561
+
562
+ /* 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");
563
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _more_filters_MoreFilters__WEBPACK_IMPORTED_MODULE_1__["MoreFilters"]; });
564
+
565
+ /* 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");
566
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _switch_filter_SwitchFilter__WEBPACK_IMPORTED_MODULE_2__["SwitchFilter"]; });
567
+
568
+ /* 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");
569
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _dropdown_filter_DropdownFilter__WEBPACK_IMPORTED_MODULE_3__["DropdownFilter"]; });
570
+
571
+ /* 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");
572
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _radio_filter_RadioFilter__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"]; });
573
+
574
+ /* 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");
575
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _radio_filter_year_level_YearLevelRadioFilter__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+ /***/ }),
585
+
586
+ /***/ "./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx":
587
+ /*!******************************************************************************!*\
588
+ !*** ./src/apps/search/components/filter-types/more-filters/MoreFilters.tsx ***!
589
+ \******************************************************************************/
590
+ /*! exports provided: MoreFilters */
591
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
592
+
593
+ "use strict";
594
+ __webpack_require__.r(__webpack_exports__);
595
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return MoreFilters; });
596
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
597
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
598
+
599
+ function MoreFilters(props) {
600
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
601
+ }
602
+
603
+ /***/ }),
604
+
605
+ /***/ "./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx":
606
+ /*!******************************************************************************!*\
607
+ !*** ./src/apps/search/components/filter-types/radio-filter/RadioFilter.tsx ***!
608
+ \******************************************************************************/
609
+ /*! exports provided: RadioFilter */
610
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
611
+
612
+ "use strict";
613
+ __webpack_require__.r(__webpack_exports__);
614
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return RadioFilter; });
615
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
616
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
617
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
618
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
619
+ /* 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");
620
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
621
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
622
+ /* 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");
623
+ /* harmony import */ var _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_radio_filter_scss__WEBPACK_IMPORTED_MODULE_5__);
624
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
625
+
626
+ 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."); }
627
+
628
+ 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); }
629
+
630
+ 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; }
631
+
632
+ 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; }
633
+
634
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+ function RadioFilter(props) {
643
+ var _a;
644
+
645
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
646
+ state = _React$useContext.state;
647
+
648
+ var filterState = state[props.filter.id];
649
+
650
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
651
+ _React$useState2 = _slicedToArray(_React$useState, 2),
652
+ currentSelection = _React$useState2[0],
653
+ setCurrentSelection = _React$useState2[1];
654
+
655
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
656
+ return setCurrentSelection(filterState.selection);
657
+ }, [filterState.selection]);
658
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
659
+ className: 'h6 mb-2'
660
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
661
+ className: 'mb-3'
662
+ }, props.filter.options.map(function (option) {
663
+ var _a;
664
+
665
+ 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;
666
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"].Check, {
667
+ key: option.id,
668
+ custom: true,
669
+ type: 'radio',
670
+ label: option.name,
671
+ name: option.id,
672
+ id: option.id,
673
+ value: option.id,
674
+ onChange: function onChange() {
675
+ return setCurrentSelection([option]);
676
+ },
677
+ checked: isSelected,
678
+ className: _radio_filter_scss__WEBPACK_IMPORTED_MODULE_5___default.a.radioFilter
679
+ });
680
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
681
+ active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
682
+ filter: props.filter,
683
+ selection: currentSelection,
684
+ analyticsOptions: props.analyticsOptions
685
+ }));
686
+ }
687
+
688
+ /***/ }),
689
+
690
+ /***/ "./src/apps/search/components/filter-types/radio-filter/radio-filter.scss":
691
+ /*!********************************************************************************!*\
692
+ !*** ./src/apps/search/components/filter-types/radio-filter/radio-filter.scss ***!
693
+ \********************************************************************************/
694
+ /*! no static exports found */
695
+ /***/ (function(module, exports, __webpack_require__) {
696
+
697
+ // extracted by mini-css-extract-plugin
698
+ module.exports = {"radioFilter":"cv--radioFilter--3srm_"};
699
+
700
+ /***/ }),
701
+
702
+ /***/ "./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx":
703
+ /*!**************************************************************************************************!*\
704
+ !*** ./src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.tsx ***!
705
+ \**************************************************************************************************/
706
+ /*! exports provided: YearLevelRadioFilter */
707
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
708
+
709
+ "use strict";
710
+ __webpack_require__.r(__webpack_exports__);
711
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return YearLevelRadioFilter; });
712
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
713
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
714
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
715
+ /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
716
+ /* 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");
717
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
718
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
719
+ /* harmony import */ var apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/user-manager/components */ "./src/apps/user-manager/components/index.ts");
720
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
721
+
722
+ 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."); }
723
+
724
+ 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); }
725
+
726
+ 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; }
727
+
728
+ 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; }
729
+
730
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+ function YearLevelRadioFilter(props) {
739
+ var _a;
740
+
741
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
742
+ state = _React$useContext.state;
743
+
744
+ var filterState = state[props.filter.id];
745
+
746
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.selection),
747
+ _React$useState2 = _slicedToArray(_React$useState, 2),
748
+ currentSelection = _React$useState2[0],
749
+ setCurrentSelection = _React$useState2[1];
750
+
751
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
752
+ return setCurrentSelection(filterState.selection);
753
+ }, [filterState.selection]);
754
+
755
+ function onSelect(yearLevel) {
756
+ setCurrentSelection([yearLevel]);
757
+ }
758
+
759
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
760
+ className: 'h6 mb-2'
761
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Form"], {
762
+ className: 'mb-3'
763
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components__WEBPACK_IMPORTED_MODULE_5__["YearLevelSelect"], {
764
+ yearLevels: props.filter.options,
765
+ onSelect: onSelect,
766
+ selected: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(currentSelection)
767
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_4__["FilterActions"], {
768
+ active: !!((_a = currentSelection) === null || _a === void 0 ? void 0 : _a.length),
769
+ filter: props.filter,
770
+ selection: currentSelection,
771
+ analyticsOptions: props.analyticsOptions
772
+ }));
773
+ }
774
+
775
+ /***/ }),
776
+
777
+ /***/ "./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx":
778
+ /*!********************************************************************************!*\
779
+ !*** ./src/apps/search/components/filter-types/switch-filter/SwitchFilter.tsx ***!
780
+ \********************************************************************************/
781
+ /*! exports provided: SwitchFilter */
782
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
783
+
784
+ "use strict";
785
+ __webpack_require__.r(__webpack_exports__);
786
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return SwitchFilter; });
787
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
788
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
789
+ /* 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");
790
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
791
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
792
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
793
+
794
+ 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."); }
795
+
796
+ 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); }
797
+
798
+ 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; }
799
+
800
+ 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; }
801
+
802
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
803
+
804
+
805
+
806
+
807
+
808
+ function SwitchFilter(props) {
809
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_3__["FilterContext"]),
810
+ state = _React$useContext.state;
811
+
812
+ var filterState = state[props.filter.id];
813
+
814
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](filterState.active),
815
+ _React$useState2 = _slicedToArray(_React$useState, 2),
816
+ active = _React$useState2[0],
817
+ setActive = _React$useState2[1];
818
+
819
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h3", {
820
+ className: 'h6 mb-2'
821
+ }, props.filter.name), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
822
+ className: 'd-inline-block w-75 mr-auto'
823
+ }, props.filter.description), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](shared_components_toggle_switch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_1__["ToggleSwitch"], {
824
+ onClick: function onClick() {
825
+ return setActive(!active);
826
+ },
827
+ on: active
828
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterActions"], {
829
+ active: active,
830
+ filter: props.filter,
831
+ analyticsOptions: props.analyticsOptions
832
+ }));
833
+ }
834
+
835
+ /***/ }),
836
+
837
+ /***/ "./src/apps/search/components/index.ts":
838
+ /*!*********************************************!*\
839
+ !*** ./src/apps/search/components/index.ts ***!
840
+ \*********************************************/
841
+ /*! exports provided: SearchFilters, PartialSearchFilters, FilterButton, FilterActions, ResetButton, CheckboxFilter, MoreFilters, SwitchFilter, DropdownFilter, RadioFilter, YearLevelRadioFilter */
842
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
843
+
844
+ "use strict";
845
+ __webpack_require__.r(__webpack_exports__);
846
+ /* harmony import */ var _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./search-filters/SearchFilters */ "./src/apps/search/components/search-filters/SearchFilters.tsx");
847
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return _search_filters_SearchFilters__WEBPACK_IMPORTED_MODULE_0__["SearchFilters"]; });
848
+
849
+ /* harmony import */ var _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters/PartialSearchFilters */ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx");
850
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return _search_filters_PartialSearchFilters__WEBPACK_IMPORTED_MODULE_1__["PartialSearchFilters"]; });
851
+
852
+ /* harmony import */ var _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter-button/FilterButton */ "./src/apps/search/components/filter-button/FilterButton.tsx");
853
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterButton", function() { return _filter_button_FilterButton__WEBPACK_IMPORTED_MODULE_2__["FilterButton"]; });
854
+
855
+ /* harmony import */ var _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./filter-actions/FilterActions */ "./src/apps/search/components/filter-actions/FilterActions.tsx");
856
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterActions", function() { return _filter_actions_FilterActions__WEBPACK_IMPORTED_MODULE_3__["FilterActions"]; });
857
+
858
+ /* harmony import */ var _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reset-button/ResetButton */ "./src/apps/search/components/reset-button/ResetButton.tsx");
859
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return _reset_button_ResetButton__WEBPACK_IMPORTED_MODULE_4__["ResetButton"]; });
860
+
861
+ /* harmony import */ var _filter_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./filter-types */ "./src/apps/search/components/filter-types/index.ts");
862
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["CheckboxFilter"]; });
863
+
864
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoreFilters", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["MoreFilters"]; });
865
+
866
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["SwitchFilter"]; });
867
+
868
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropdownFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["DropdownFilter"]; });
869
+
870
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["RadioFilter"]; });
871
+
872
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelRadioFilter", function() { return _filter_types__WEBPACK_IMPORTED_MODULE_5__["YearLevelRadioFilter"]; });
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+ /***/ }),
882
+
883
+ /***/ "./src/apps/search/components/reset-button/ResetButton.tsx":
884
+ /*!*****************************************************************!*\
885
+ !*** ./src/apps/search/components/reset-button/ResetButton.tsx ***!
886
+ \*****************************************************************/
887
+ /*! exports provided: ResetButton */
888
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
889
+
890
+ "use strict";
891
+ __webpack_require__.r(__webpack_exports__);
892
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResetButton", function() { return ResetButton; });
893
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
894
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
895
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
896
+ /* 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");
897
+ /* 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");
898
+ /* 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");
899
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
900
+ /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
901
+ /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+ function ResetButton(props) {
911
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_5__["FilterContext"]),
912
+ dispatch = _React$useContext.dispatch;
913
+
914
+ var onClickReset = function onClickReset() {
915
+ var currentAppLink = _libs_shared_src_services_ContextService__WEBPACK_IMPORTED_MODULE_2__["ContextService"].getCurrentRoute().appLink;
916
+ var nextAppLink = {
917
+ application: currentAppLink.application,
918
+ action: currentAppLink.action
919
+ };
920
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].logUserAction({
921
+ type: 'All',
922
+ active: false
923
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
924
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["UserAction"].Filter,
925
+ descriptor: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["FilterDescriptor"].Reset,
926
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_7__["WorkflowPhase"].Complete
927
+ }));
928
+ if (props.currentQueryParam) nextAppLink.params = {
929
+ query: props.currentQueryParam
930
+ };
931
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__["Core"].AppLinkHelper.trigger(nextAppLink);
932
+ dispatch({
933
+ type: 'trigger-reset',
934
+ payload: {}
935
+ });
936
+ };
937
+
938
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_3__["DivButton"], {
939
+ onClick: onClickReset,
940
+ className: 'hover-text-underline cursor-pointer d-flex align-items-center ml-2'
941
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
942
+ namespace: 'search.resetButton',
943
+ phrase: 'reset'
944
+ }));
945
+ }
946
+
947
+ /***/ }),
948
+
949
+ /***/ "./src/apps/search/components/search-filters/PartialSearchFilters.tsx":
950
+ /*!****************************************************************************!*\
951
+ !*** ./src/apps/search/components/search-filters/PartialSearchFilters.tsx ***!
952
+ \****************************************************************************/
953
+ /*! exports provided: PartialSearchFilters */
954
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
955
+
956
+ "use strict";
957
+ __webpack_require__.r(__webpack_exports__);
958
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialSearchFilters", function() { return PartialSearchFilters; });
959
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
960
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
961
+ /* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search-filters.scss */ "./src/apps/search/components/search-filters/search-filters.scss");
962
+ /* harmony import */ var _search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1__);
963
+
964
+
965
+ function PartialSearchFilters(_ref) {
966
+ var _ref$count = _ref.count,
967
+ count = _ref$count === void 0 ? 6 : _ref$count,
968
+ hideHeading = _ref.hideHeading;
969
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
970
+ className: 'd-flex'
971
+ }, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
972
+ 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 ")
973
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
974
+ className: 'd-flex pl-1'
975
+ }, Array(count).fill(null).map(function (item, index) {
976
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
977
+ key: index,
978
+ className: "".concat(_search_filters_scss__WEBPACK_IMPORTED_MODULE_1___default.a.partialButton, " partial-loading-background mx-1")
979
+ });
980
+ })));
981
+ }
982
+
983
+ /***/ }),
984
+
985
+ /***/ "./src/apps/search/components/search-filters/SearchFilters.tsx":
986
+ /*!*********************************************************************!*\
987
+ !*** ./src/apps/search/components/search-filters/SearchFilters.tsx ***!
988
+ \*********************************************************************/
989
+ /*! exports provided: SearchFilters */
990
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
991
+
992
+ "use strict";
993
+ __webpack_require__.r(__webpack_exports__);
994
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchFilters", function() { return SearchFilters; });
995
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
996
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
997
+ /* 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");
998
+ /* harmony import */ var apps_search_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/search/components */ "./src/apps/search/components/index.ts");
999
+ /* harmony import */ var apps_search_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! apps/search/utils */ "./src/apps/search/utils/index.ts");
1000
+ /* harmony import */ var apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/search/reducers */ "./src/apps/search/reducers/index.ts");
1001
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1002
+
1003
+ 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."); }
1004
+
1005
+ 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); }
1006
+
1007
+ 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; }
1008
+
1009
+ 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; }
1010
+
1011
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+ function SearchFilters(props) {
1019
+ var queryParams = props.queryParams,
1020
+ mainFilters = props.mainFilters,
1021
+ moreFilters = props.moreFilters,
1022
+ hideHeading = props.hideHeading;
1023
+ var initialState = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () {
1024
+ return apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery(queryParams, mainFilters, moreFilters);
1025
+ }, [queryParams]);
1026
+
1027
+ var _React$useReducer = react__WEBPACK_IMPORTED_MODULE_0__["useReducer"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterReducer"], initialState),
1028
+ _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
1029
+ state = _React$useReducer2[0],
1030
+ dispatch = _React$useReducer2[1];
1031
+
1032
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
1033
+ if (!state.bulkReset) return;
1034
+ dispatch({
1035
+ type: 'bulk-reset',
1036
+ payload: apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].deriveInitialStateFromQuery({}, mainFilters, moreFilters)
1037
+ });
1038
+ }, [state]);
1039
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_reducers__WEBPACK_IMPORTED_MODULE_4__["FilterContext"].Provider, {
1040
+ value: {
1041
+ state: state,
1042
+ dispatch: dispatch
1043
+ }
1044
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["LanguageNamespaceContext"].Provider, {
1045
+ value: 'search.searchFilters'
1046
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("section", {
1047
+ className: 'd-flex'
1048
+ }, !hideHeading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h2", {
1049
+ className: 'h5 mb-0 d-inline-block pr-2 border-right d-flex align-items-center'
1050
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_1__["Text"], {
1051
+ phrase: 'heading'
1052
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1053
+ className: 'd-flex'
1054
+ }, mainFilters.map(function (f) {
1055
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
1056
+ key: f.id,
1057
+ filter: f,
1058
+ analyticsOptions: props.analyticsOptions
1059
+ });
1060
+ }), moreFilters && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["FilterButton"], {
1061
+ key: moreFilters.id,
1062
+ filter: moreFilters,
1063
+ analyticsOptions: props.analyticsOptions
1064
+ }), apps_search_utils__WEBPACK_IMPORTED_MODULE_3__["FilterHelper"].hasActiveFilters(queryParams) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components__WEBPACK_IMPORTED_MODULE_2__["ResetButton"], {
1065
+ currentQueryParam: queryParams.query,
1066
+ analyticsOptions: props.analyticsOptions
1067
+ })))));
1068
+ }
1069
+
1070
+ /***/ }),
1071
+
1072
+ /***/ "./src/apps/search/components/search-filters/search-filters.scss":
1073
+ /*!***********************************************************************!*\
1074
+ !*** ./src/apps/search/components/search-filters/search-filters.scss ***!
1075
+ \***********************************************************************/
1076
+ /*! no static exports found */
1077
+ /***/ (function(module, exports, __webpack_require__) {
1078
+
1079
+ // extracted by mini-css-extract-plugin
1080
+ module.exports = {"partialFilterHeading":"cv--partialFilterHeading--2zHGT","partialButton":"cv--partialButton--3Gy7Y"};
1081
+
1082
+ /***/ }),
1083
+
1084
+ /***/ "./src/apps/search/reducers/FilterReducer.tsx":
1085
+ /*!****************************************************!*\
1086
+ !*** ./src/apps/search/reducers/FilterReducer.tsx ***!
1087
+ \****************************************************/
1088
+ /*! exports provided: FilterContext, FilterReducer */
1089
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1090
+
1091
+ "use strict";
1092
+ __webpack_require__.r(__webpack_exports__);
1093
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return FilterContext; });
1094
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return FilterReducer; });
1095
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1096
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1097
+ 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; }
1098
+
1099
+
1100
+ var FilterContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(null);
1101
+ /**
1102
+ * Reducer - root level keys should match the filter object's corresponding "id" field
1103
+ */
1104
+
1105
+ function FilterReducer(state, action) {
1106
+ switch (action.type) {
1107
+ case 'apply':
1108
+ return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
1109
+ active: action.payload.active,
1110
+ selection: action.payload.selection
1111
+ }));
1112
+
1113
+ case 'reset':
1114
+ return Object.assign(Object.assign({}, state), _defineProperty({}, action.payload.filter.id, {
1115
+ active: action.payload.active,
1116
+ selection: action.payload.selection
1117
+ }));
1118
+
1119
+ case 'trigger-reset':
1120
+ return Object.assign(Object.assign({}, state), {
1121
+ bulkReset: true
1122
+ });
1123
+
1124
+ case 'bulk-reset':
1125
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), {
1126
+ bulkReset: false
1127
+ });
1128
+
1129
+ default:
1130
+ return state;
1131
+ }
1132
+ }
1133
+
1134
+ /***/ }),
1135
+
1136
+ /***/ "./src/apps/search/reducers/index.ts":
1137
+ /*!*******************************************!*\
1138
+ !*** ./src/apps/search/reducers/index.ts ***!
1139
+ \*******************************************/
1140
+ /*! exports provided: FilterContext, FilterReducer */
1141
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1142
+
1143
+ "use strict";
1144
+ __webpack_require__.r(__webpack_exports__);
1145
+ /* harmony import */ var _FilterReducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterReducer */ "./src/apps/search/reducers/FilterReducer.tsx");
1146
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterContext", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterContext"]; });
1147
+
1148
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterReducer", function() { return _FilterReducer__WEBPACK_IMPORTED_MODULE_0__["FilterReducer"]; });
1149
+
1150
+
1151
+
1152
+ /***/ }),
1153
+
1154
+ /***/ "./src/apps/search/utils/FilterHelper.tsx":
1155
+ /*!************************************************!*\
1156
+ !*** ./src/apps/search/utils/FilterHelper.tsx ***!
1157
+ \************************************************/
1158
+ /*! exports provided: Filters, FilterHelper */
1159
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1160
+
1161
+ "use strict";
1162
+ __webpack_require__.r(__webpack_exports__);
1163
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return Filters; });
1164
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return FilterHelper; });
1165
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1166
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1167
+ /* 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");
1168
+ /* 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");
1169
+ /* 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");
1170
+ /* 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");
1171
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1172
+
1173
+ 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."); }
1174
+
1175
+ 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); }
1176
+
1177
+ 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; }
1178
+
1179
+ 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; }
1180
+
1181
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('search.utils');
1189
+ var Filters = {
1190
+ SortByName: function SortByName(options) {
1191
+ return {
1192
+ id: 'sortName',
1193
+ name: getPhrase('firstNameAToZ'),
1194
+ type: 'dropdown',
1195
+ options: options
1196
+ };
1197
+ },
1198
+ YearLevel: function YearLevel(options) {
1199
+ return {
1200
+ id: 'yearLevel',
1201
+ name: getPhrase('yearLevel'),
1202
+ type: 'radio',
1203
+ customComponent: apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["YearLevelRadioFilter"],
1204
+ options: options
1205
+ };
1206
+ },
1207
+ ObjectType: function ObjectType(options) {
1208
+ return {
1209
+ id: 'objectType',
1210
+ name: getPhrase('objectTypes'),
1211
+ type: 'radio',
1212
+ options: options
1213
+ };
1214
+ },
1215
+ Ratings: function Ratings(options) {
1216
+ return {
1217
+ id: 'ratings',
1218
+ name: getPhrase('ratings'),
1219
+ type: 'rating',
1220
+ options: options
1221
+ };
1222
+ },
1223
+ Interactives: function Interactives() {
1224
+ return {
1225
+ id: 'interactives',
1226
+ name: getPhrase('interactives'),
1227
+ type: 'switch',
1228
+ description: getPhrase('interactivesDescription')
1229
+ };
1230
+ },
1231
+ Clips: function Clips() {
1232
+ return {
1233
+ id: 'clips',
1234
+ name: getPhrase('clips'),
1235
+ type: 'switch',
1236
+ description: getPhrase('clipsDescription')
1237
+ };
1238
+ },
1239
+ Classroom: function Classroom(options) {
1240
+ return {
1241
+ id: 'classroom',
1242
+ name: getPhrase('classroom'),
1243
+ type: 'checkbox',
1244
+ options: options
1245
+ };
1246
+ }
1247
+ };
1248
+ var FilterHelper = {
1249
+ getMoreFilters: function getMoreFilters() {
1250
+ return {
1251
+ id: 'moreFilters',
1252
+ name: getPhrase('moreFilters'),
1253
+ type: 'more-filters',
1254
+ filters: []
1255
+ };
1256
+ },
1257
+ mapTypeToComponent: function mapTypeToComponent(type) {
1258
+ switch (type) {
1259
+ case 'switch':
1260
+ return function (props) {
1261
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
1262
+ key: props.id
1263
+ }, props));
1264
+ };
1265
+
1266
+ case 'checkbox':
1267
+ return function (props) {
1268
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["CheckboxFilter"], Object.assign({
1269
+ key: props.id
1270
+ }, props));
1271
+ };
1272
+
1273
+ case 'radio':
1274
+ return function (props) {
1275
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["RadioFilter"], Object.assign({
1276
+ key: props.id
1277
+ }, props));
1278
+ };
1279
+
1280
+ case 'rating':
1281
+ return function (props) {
1282
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["SwitchFilter"], Object.assign({
1283
+ key: props.id
1284
+ }, props));
1285
+ };
1286
+
1287
+ case 'dropdown':
1288
+ return function (props) {
1289
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["DropdownFilter"], Object.assign({
1290
+ key: props.id
1291
+ }, props));
1292
+ };
1293
+
1294
+ case 'more-filters':
1295
+ return function (props) {
1296
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_search_components_filter_types__WEBPACK_IMPORTED_MODULE_4__["MoreFilters"], Object.assign({
1297
+ key: props.id
1298
+ }, props));
1299
+ };
1300
+ }
1301
+ },
1302
+ deriveInitialStateFromQuery: function deriveInitialStateFromQuery() {
1303
+ var queryParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1304
+ var mainFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1305
+ var moreFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1306
+ var initialStates = {
1307
+ sortName: {
1308
+ active: !!queryParams.sortName,
1309
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'sortName')
1310
+ },
1311
+ objectType: {
1312
+ active: !!queryParams.objectType,
1313
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'objectType')
1314
+ },
1315
+ ratings: {
1316
+ active: !!queryParams.ratings,
1317
+ selection: queryParams.ratings || null
1318
+ },
1319
+ interactives: {
1320
+ active: queryParams.interactives
1321
+ },
1322
+ clips: {
1323
+ active: queryParams.clips
1324
+ },
1325
+ yearLevel: {
1326
+ active: !!queryParams.yearLevel,
1327
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'yearLevel')
1328
+ },
1329
+ classroom: {
1330
+ active: !!queryParams.classroom,
1331
+ selection: getFilterSelectionsFromQueryParams(queryParams, mainFilters, 'classroom')
1332
+ },
1333
+ moreFilters: {
1334
+ active: false // TODO: figure this shit out eventually
1335
+
1336
+ }
1337
+ };
1338
+ var derivedState = mainFilters.reduce(function (state, filter) {
1339
+ state[filter.id] = initialStates[filter.id];
1340
+ return state;
1341
+ }, {});
1342
+ if (moreFilters) derivedState.moreFilters = initialStates.moreFilters;
1343
+ return derivedState;
1344
+ },
1345
+ hasActiveFilters: function hasActiveFilters(queryParams) {
1346
+ var paramKeys = Object.keys(queryParams);
1347
+ if (!paramKeys.length) return false;
1348
+ var activeFilters = paramKeys.filter(function (q) {
1349
+ // 'query', 'cursor', and 'page' don't count as filters
1350
+ 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
1351
+
1352
+ if (Array.isArray(queryParams[q]) && !queryParams[q].length) return false;
1353
+ return true;
1354
+ });
1355
+ return !!activeFilters.length;
1356
+ },
1357
+ getLabel: function getLabel(filter, filterState) {
1358
+ var _a;
1359
+
1360
+ if (!((_a = filterState.selection) === null || _a === void 0 ? void 0 : _a.length)) return filter.name;
1361
+ if (filter.type === 'dropdown') return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection).name;
1362
+
1363
+ if (filter.type === 'radio') {
1364
+ var selection = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(filterState.selection);
1365
+ if (!selection || selection["default"]) return filter.name;
1366
+ return selection.name;
1367
+ }
1368
+
1369
+ if (filter.type === 'checkbox') return "".concat(filter.name, " - ").concat(filterState.selection.length);
1370
+ },
1371
+ buildQueryParams: function buildQueryParams(queryParams, state) {
1372
+ var _state$filter = state.filter,
1373
+ param = _state$filter.id,
1374
+ type = _state$filter.type;
1375
+ var updatedParams = Object.assign({}, queryParams);
1376
+
1377
+ switch (type) {
1378
+ case 'switch':
1379
+ updatedParams[param] = state.active ? 'true' : '';
1380
+ break;
1381
+
1382
+ case 'radio':
1383
+ case 'dropdown':
1384
+ updatedParams[param] = getRadioParamValue(state.selection);
1385
+ break;
1386
+
1387
+ case 'checkbox':
1388
+ updatedParams[param] = state.active ? state.selection.map(function (option) {
1389
+ return option.id;
1390
+ }) : [];
1391
+ }
1392
+
1393
+ if (!updatedParams[param]) // If the param is empty, delete it
1394
+ delete updatedParams[param];
1395
+ return updatedParams;
1396
+ },
1397
+
1398
+ /**
1399
+ * This returns an object of all of the query params our search requests will pass to the backend endpoint.
1400
+ * This usually consists of:
1401
+ * q = the query string e.g. 'shakespeare'
1402
+ * filter = the filter string e.g. '{interactives:true,classroom:classroom-2-a,classroom:classroom-2-b}'
1403
+ * query = the with statement e.g. '{orderbydesc:name}series,season,interactives,resources,subtitles'
1404
+ * cursor = the cursor e.g. 's-sf3r9o32f-0vd'
1405
+ */
1406
+ getBackendQueryParams: function getBackendQueryParams(queryParams) {
1407
+ var q = queryParams.query;
1408
+ var query = getWithStatement(queryParams);
1409
+ var filter = getFilterString(queryParams);
1410
+ var backendQueryParams = {};
1411
+ if (q) backendQueryParams.q = q;
1412
+ if (query) backendQueryParams.query = query;
1413
+ if (filter) backendQueryParams.filter = "{".concat(filter, "}");
1414
+ if (queryParams.cursor) backendQueryParams.cursor = queryParams.cursor;
1415
+ return backendQueryParams;
1416
+ },
1417
+
1418
+ /**
1419
+ * This functions purpose is to convert a with statement string into an object that is easy to use
1420
+ * in mock backends for sorting/filtering mock data. It doesn't need to be efficient, as it should
1421
+ * never ever be used in production
1422
+ */
1423
+ convertWithStatementToObject: function convertWithStatementToObject(withStatement) {
1424
+ if (!withStatement) return {}; // Remove any angle brackets with commas, which we use in `.split` just below
1425
+
1426
+ withStatement = withStatement.replace('{', ',').replace('}', ',');
1427
+ var withStatements = withStatement.split(',');
1428
+ var sortingStatement = '';
1429
+ var assocStatements = [];
1430
+ withStatements.forEach(function (statement) {
1431
+ if (statement.includes(':')) sortingStatement = statement;else assocStatements.push(statement);
1432
+ });
1433
+
1434
+ var _sortingStatement$spl = sortingStatement.split(':'),
1435
+ _sortingStatement$spl2 = _slicedToArray(_sortingStatement$spl, 2),
1436
+ sortKey = _sortingStatement$spl2[0],
1437
+ sortValue = _sortingStatement$spl2[1];
1438
+
1439
+ return {
1440
+ assocs: assocStatements,
1441
+ sortKey: sortKey,
1442
+ sortValue: sortValue
1443
+ };
1444
+ },
1445
+ // This is used for filtering data in mock flight requests. It shouldn't be used in production code
1446
+ revertFilterString: function revertFilterString(filterString) {
1447
+ if (!filterString) return {}; // Remove "{" and "}" from both ends
1448
+
1449
+ filterString = filterString.slice(1, -1); // Get an array of all of our filter values:
1450
+ // E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom-2-b', 'classroom-2-c' ]
1451
+
1452
+ var filterValues = filterString.split(',');
1453
+ var keyValueFilterStrings = [];
1454
+ var currentFilterKey = '';
1455
+ filterValues.forEach(function (filterStr) {
1456
+ // Here we're building an array that looks like `filterValues`, but where every value has its key attached
1457
+ // E.g. [ 'yearLevel:year-2', 'classroom:classroom-2-a', 'classroom:classroom-2-b', 'classroom:classroom-2-c' ]
1458
+ if (filterStr.includes(':')) {
1459
+ currentFilterKey = filterStr.split(':')[0];
1460
+ keyValueFilterStrings.push(filterStr);
1461
+ return;
1462
+ }
1463
+
1464
+ var fullFilterString = "".concat(currentFilterKey, ":").concat(filterStr);
1465
+ keyValueFilterStrings.push(fullFilterString);
1466
+ }); // Convert the array into an object.
1467
+ // E.g. { yearLevel: 'year-2', classroom: [ 'classroom-2-a', 'classroom-2-b', 'classroom-2-c' ] }
1468
+
1469
+ return keyValueFilterStrings.reduce(function (filterObj, filterStr) {
1470
+ var _filterStr$split = filterStr.split(':'),
1471
+ _filterStr$split2 = _slicedToArray(_filterStr$split, 2),
1472
+ key = _filterStr$split2[0],
1473
+ value = _filterStr$split2[1];
1474
+
1475
+ if (filterObj[key] && !Array.isArray(filterObj[key])) {
1476
+ var temp = filterObj[key];
1477
+ filterObj[key] = [temp];
1478
+ }
1479
+
1480
+ if (Array.isArray(filterObj[key])) filterObj[key].push(value);else filterObj[key] = value;
1481
+ return filterObj;
1482
+ }, {});
1483
+ },
1484
+
1485
+ /**
1486
+ * Helpers below this comment return hard coded filter options for a particular filter.
1487
+ * If you are adding a new filter with hard coded options, add a new function here.
1488
+ */
1489
+ getObjectTypeOptions: function getObjectTypeOptions() {
1490
+ return [{
1491
+ id: 'allTypes',
1492
+ name: getPhrase('allTypes'),
1493
+ "default": true
1494
+ }, {
1495
+ id: 'topics',
1496
+ name: getPhrase('topics')
1497
+ }, {
1498
+ id: 'playlists',
1499
+ name: getPhrase('playlists')
1500
+ }, {
1501
+ id: 'series',
1502
+ name: getPhrase('series')
1503
+ }, {
1504
+ id: 'videos',
1505
+ name: getPhrase('videos')
1506
+ }];
1507
+ },
1508
+ getNameSortOptions: function getNameSortOptions() {
1509
+ return [{
1510
+ id: 'first-name-atoz',
1511
+ name: getPhrase('firstNameAToZ'),
1512
+ "default": true
1513
+ }, {
1514
+ id: 'first-name-ztoa',
1515
+ name: getPhrase('firstNameZToA')
1516
+ }, {
1517
+ id: 'surname-atoz',
1518
+ name: getPhrase('surnameAToZ')
1519
+ }, {
1520
+ id: 'surname-ztoa',
1521
+ name: getPhrase('surnameZToA')
1522
+ }];
1523
+ },
1524
+ getYearLevelOptions: function getYearLevelOptions(yearLevels) {
1525
+ var _a;
1526
+
1527
+ if (!((_a = yearLevels) === null || _a === void 0 ? void 0 : _a.length)) return [];
1528
+ return yearLevels.map(function (level) {
1529
+ return {
1530
+ id: level.name.toLowerCase().replace(' ', '-'),
1531
+ name: level.name
1532
+ };
1533
+ });
1534
+ },
1535
+ getClassroomOptions: function getClassroomOptions(classrooms) {
1536
+ var _a;
1537
+
1538
+ if (!((_a = classrooms) === null || _a === void 0 ? void 0 : _a.length)) return [];
1539
+ return classrooms.map(function (classroom) {
1540
+ return {
1541
+ id: classroom.name.toLowerCase().replace(' ', '-'),
1542
+ name: classroom.name
1543
+ };
1544
+ });
1545
+ }
1546
+ }; // This allows us to determine which filters should be applied based on the query params set on first load
1547
+
1548
+ function getFilterSelectionsFromQueryParams(queryParams, filters, filterName) {
1549
+ var filter = filters.find(function (f) {
1550
+ return f.id === filterName;
1551
+ });
1552
+ if (!filter) return [];
1553
+ if (!queryParams[filterName]) return filter.options.filter(function (option) {
1554
+ return option["default"];
1555
+ });
1556
+ var selections = queryParams[filterName];
1557
+ if (!Array.isArray(selections)) selections = [selections];
1558
+ return filter.options.filter(function (option) {
1559
+ return selections.includes(option.id);
1560
+ });
1561
+ }
1562
+
1563
+ function getRadioParamValue(selection) {
1564
+ var _a;
1565
+
1566
+ if (!((_a = selection) === null || _a === void 0 ? void 0 : _a.length)) return '';
1567
+ return _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_2__["ArrayHelper"].first(selection).id;
1568
+ }
1569
+ /**
1570
+ * This is massively under developed, and only does what it's needed for at this time.
1571
+ * Please update if you need extra functionality
1572
+ */
1573
+
1574
+
1575
+ function getWithStatement(queryParams) {
1576
+ var withStatement = '';
1577
+
1578
+ if (queryParams['sortName']) {
1579
+ switch (queryParams['sortName']) {
1580
+ case 'first-name-atoz':
1581
+ withStatement += '{orderby:name}';
1582
+ break;
1583
+
1584
+ case 'first-name-ztoa':
1585
+ withStatement += '{orderbydesc:name}';
1586
+ break;
1587
+
1588
+ case 'surname-atoz':
1589
+ withStatement += '{orderby:surname}';
1590
+ break;
1591
+
1592
+ case 'surname-ztoa':
1593
+ withStatement += '{orderbydesc:surname}';
1594
+ break;
1595
+
1596
+ default:
1597
+ break;
1598
+ }
1599
+ }
1600
+
1601
+ return withStatement;
1602
+ }
1603
+ /**
1604
+ * Private functions
1605
+ */
1606
+
1607
+
1608
+ function getFilterString(queryParams) {
1609
+ // Add any potential query params here that are not supposed to be in the filter string
1610
+ var omitKeys = ['query', 'sortName', 'cursor', 'page'];
1611
+ var filterQueryParams = _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].omit(queryParams, omitKeys);
1612
+ var filterStrings = Object.keys(filterQueryParams).map(function (filter) {
1613
+ return "".concat(filter, ":").concat(filterQueryParams[filter]);
1614
+ });
1615
+ return filterStrings.join(',');
1616
+ }
1617
+
1618
+ /***/ }),
1619
+
1620
+ /***/ "./src/apps/search/utils/SearchHelper.tsx":
1621
+ /*!************************************************!*\
1622
+ !*** ./src/apps/search/utils/SearchHelper.tsx ***!
1623
+ \************************************************/
1624
+ /*! exports provided: SearchHelper */
1625
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1626
+
1627
+ "use strict";
1628
+ __webpack_require__.r(__webpack_exports__);
1629
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return SearchHelper; });
1630
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1631
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1632
+ /* 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");
1633
+ /* 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");
1634
+ /* 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");
1635
+ /* 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");
1636
+ /* 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");
1637
+ /* 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");
1638
+ /* 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");
1639
+ /* 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");
1640
+ /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
1641
+ /* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
1642
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
1643
+
1644
+ 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."); }
1645
+
1646
+ 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); }
1647
+
1648
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
1649
+
1650
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
1651
+
1652
+ 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; }
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+ var Capacities = {
1666
+ MainResults: {
1667
+ SUBJECTS: 10,
1668
+ PLAYLISTS: 5,
1669
+ SERIES: 4
1670
+ },
1671
+ OtherResults: {
1672
+ VIDEOS: 6,
1673
+ PLAYLISTS: 10,
1674
+ SERIES: 10
1675
+ }
1676
+ };
1677
+ var SearchHelper = {
1678
+ /**
1679
+ * These are the results that appear at the very top of the page
1680
+ */
1681
+ filterMainResults: function filterMainResults(results) {
1682
+ var MainResults = Capacities.MainResults;
1683
+ var subjects = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.subjects, MainResults.SUBJECTS);
1684
+ var firstVideo = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].first(results.videos);
1685
+ var playlists = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.playlists, MainResults.PLAYLISTS);
1686
+ var series = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].firstFew(results.series, MainResults.SERIES);
1687
+ return {
1688
+ subjects: subjects,
1689
+ firstVideo: firstVideo,
1690
+ playlists: playlists,
1691
+ series: series,
1692
+ otherResults: {
1693
+ videos: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.videos, results.videos.length - 1),
1694
+ playlists: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.playlists, results.playlists.length - MainResults.PLAYLISTS),
1695
+ series: _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].lastFew(results.series, results.series.length - MainResults.SERIES)
1696
+ }
1697
+ };
1698
+ },
1699
+ structureOtherResults: function structureOtherResults(results) {
1700
+ var OtherResults = Capacities.OtherResults;
1701
+ var videoSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.videos, OtherResults.VIDEOS);
1702
+ var playlistSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.playlists, OtherResults.PLAYLISTS);
1703
+ var seriesSets = _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].chunk(results.series, OtherResults.SERIES);
1704
+ return SearchHelper.buildResultStructure(videoSets, playlistSets, seriesSets);
1705
+ },
1706
+ // For every 6 videos, there should be either a row of playlists or a row of series (alternating)
1707
+ buildResultStructure: function buildResultStructure(videoSets, playlistSets, seriesSets) {
1708
+ var structure = []; // Clone each set as we need to use a mutable structure, but don't want to mutate the inputs directly
1709
+
1710
+ var videosClone = _toConsumableArray(videoSets);
1711
+
1712
+ var playlistsClone = _toConsumableArray(playlistSets);
1713
+
1714
+ var seriesClone = _toConsumableArray(seriesSets); // We set the iterations here instead of in the for-loop args because `videoSets` gets mutated
1715
+
1716
+
1717
+ var iterations = videoSets.length;
1718
+
1719
+ for (var index = 0; index < iterations; index++) {
1720
+ var nextVideoSet = videosClone.shift(); // After every video set will come a set of playlists or series
1721
+
1722
+ var seriesOrPlaylistSet = SearchHelper.getSeriesOrPlaylistSet(playlistsClone, seriesClone, index);
1723
+ nextVideoSet && structure.push({
1724
+ type: 'video',
1725
+ data: nextVideoSet
1726
+ });
1727
+ seriesOrPlaylistSet && structure.push(seriesOrPlaylistSet);
1728
+ } // In edge cases where there may be more playlists or series result sets than video sets, add them to the end
1729
+
1730
+
1731
+ if (playlistsClone.length) {
1732
+ playlistsClone.forEach(function (data) {
1733
+ return structure.push({
1734
+ type: 'playlist',
1735
+ data: data
1736
+ });
1737
+ });
1738
+ }
1739
+
1740
+ if (seriesClone.length) {
1741
+ seriesClone.forEach(function (data) {
1742
+ return structure.push({
1743
+ type: 'series',
1744
+ data: data
1745
+ });
1746
+ });
1747
+ } // Remove any empty sets
1748
+
1749
+
1750
+ return structure.filter(function (set) {
1751
+ return set.data && !!set.data.length;
1752
+ });
1753
+ },
1754
+
1755
+ /**
1756
+ * Determines whether or not a playlist or series set should be added to the results structure next.
1757
+ */
1758
+ getSeriesOrPlaylistSet: function getSeriesOrPlaylistSet(playlists, series, videoSetIndex) {
1759
+ var isOdd = videoSetIndex % 2 === 0; // If odd, add a series set. If even, add a playlist set.
1760
+
1761
+ if (isOdd && series.length || !playlists.length) return {
1762
+ type: 'series',
1763
+ data: series.shift()
1764
+ };
1765
+ if (!isOdd && playlists.length || !series.length) return {
1766
+ type: 'playlist',
1767
+ data: playlists.shift()
1768
+ }; // We will only reach this point once we have run out of series and playlist results
1769
+
1770
+ return null;
1771
+ },
1772
+ getResultSetComponent: function getResultSetComponent(set, audiences, setFavourite) {
1773
+ switch (set.type) {
1774
+ case 'video':
1775
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1776
+ className: 'pb-3'
1777
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_5__["VideoList"], {
1778
+ videos: set.data,
1779
+ getVideoAppLink: SearchHelper.getVideoAppLink,
1780
+ getSeriesAppLink: SearchHelper.getSeriesAppLink,
1781
+ setFavourite: setFavourite
1782
+ }));
1783
+
1784
+ case 'playlist':
1785
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1786
+ className: 'mx-n1'
1787
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
1788
+ name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedPlaylists'),
1789
+ collection: set.data,
1790
+ childAppLink: SearchHelper.getPlaylistAppLink(),
1791
+ childComponent: function childComponent(childProps) {
1792
+ 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, {
1793
+ presentationAudiences: audiences
1794
+ }));
1795
+ },
1796
+ contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Playlists
1797
+ }));
1798
+
1799
+ case 'series':
1800
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1801
+ className: 'mx-n1'
1802
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_widgets_fixed_widget_FixedWidget__WEBPACK_IMPORTED_MODULE_6__["FixedWidget"], {
1803
+ name: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].getPhrase('search.searchResults', 'relatedSeries'),
1804
+ collection: set.data,
1805
+ childAppLink: SearchHelper.getSeriesAppLink(),
1806
+ childComponent: function childComponent(childProps) {
1807
+ 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, {
1808
+ audiences: audiences
1809
+ }));
1810
+ },
1811
+ contents: _libs_shared_src_enums_WidgetContents__WEBPACK_IMPORTED_MODULE_4__["WidgetContents"].Series
1812
+ }));
1813
+ }
1814
+ },
1815
+ getVideoAppLink: function getVideoAppLink(video) {
1816
+ return {
1817
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
1818
+ action: 'play:video',
1819
+ args: [video.id]
1820
+ };
1821
+ },
1822
+ getSeriesAppLink: function getSeriesAppLink(series) {
1823
+ return {
1824
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
1825
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Default.SERIES,
1826
+ args: series ? [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(series.name)] : []
1827
+ };
1828
+ },
1829
+ getPlaylistAppLink: function getPlaylistAppLink(playlist) {
1830
+ return {
1831
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].PLAYLISTS,
1832
+ action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_10__["Actions"].Playlists.PLAYLIST,
1833
+ args: playlist ? [playlist.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_3__["TextHelper"].slugify(playlist.name)] : []
1834
+ };
1835
+ }
1836
+ };
1837
+
1838
+ /***/ }),
1839
+
1840
+ /***/ "./src/apps/search/utils/index.ts":
1841
+ /*!****************************************!*\
1842
+ !*** ./src/apps/search/utils/index.ts ***!
1843
+ \****************************************/
1844
+ /*! exports provided: Filters, FilterHelper, SearchHelper */
1845
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1846
+
1847
+ "use strict";
1848
+ __webpack_require__.r(__webpack_exports__);
1849
+ /* harmony import */ var _FilterHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilterHelper */ "./src/apps/search/utils/FilterHelper.tsx");
1850
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Filters", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["Filters"]; });
1851
+
1852
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterHelper", function() { return _FilterHelper__WEBPACK_IMPORTED_MODULE_0__["FilterHelper"]; });
1853
+
1854
+ /* harmony import */ var _SearchHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SearchHelper */ "./src/apps/search/utils/SearchHelper.tsx");
1855
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SearchHelper", function() { return _SearchHelper__WEBPACK_IMPORTED_MODULE_1__["SearchHelper"]; });
1856
+
1857
+
1858
+
1859
+
1860
+ /***/ }),
1861
+
1862
+ /***/ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx":
1863
+ /*!*******************************************************************************************!*\
1864
+ !*** ./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx ***!
1865
+ \*******************************************************************************************/
1866
+ /*! exports provided: BulkUploadFileSelect */
1867
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1868
+
1869
+ "use strict";
1870
+ __webpack_require__.r(__webpack_exports__);
1871
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return BulkUploadFileSelect; });
1872
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1873
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1874
+ /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! papaparse */ "../../../node_modules/papaparse/papaparse.min.js");
1875
+ /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(papaparse__WEBPACK_IMPORTED_MODULE_1__);
1876
+ /* 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");
1877
+ /* 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");
1878
+ /* 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");
1879
+ /* 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");
1880
+ /* 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");
1881
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
1882
+ /* 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");
1883
+ /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
1884
+ /* harmony import */ var shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! shared/constants/LiteViewModels */ "./src/shared/constants/LiteViewModels.ts");
1885
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
1886
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1887
+
1888
+ 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."); }
1889
+
1890
+ 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); }
1891
+
1892
+ 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; }
1893
+
1894
+ 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; }
1895
+
1896
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+ var namespace = 'userManager.bulkUploadFileSelect';
1911
+ function BulkUploadFileSelect(props) {
1912
+ var ref = react__WEBPACK_IMPORTED_MODULE_0___default.a.useRef(null);
1913
+ var useRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.useCallback(function (node) {
1914
+ if (!node) return;
1915
+ ref.current = node;
1916
+ }, []);
1917
+ 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;
1918
+
1919
+ var _useViewModel = Object(_libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_2__["useViewModel"])(viewModelKey),
1920
+ _useViewModel2 = _slicedToArray(_useViewModel, 2),
1921
+ setUsers = _useViewModel2[1];
1922
+
1923
+ var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_6__["useAlerts"])();
1924
+
1925
+ var buildStudent = function buildStudent(r, index) {
1926
+ var yearLevel = props.yearLevels.find(function (y) {
1927
+ return y.name === r[2];
1928
+ });
1929
+ return {
1930
+ lookupId: index.toString(),
1931
+ name: r[0],
1932
+ surname: r[1],
1933
+ yearLevel: yearLevel,
1934
+ email: r[3]
1935
+ };
1936
+ };
1937
+
1938
+ var buildTeacher = function buildTeacher(r, index) {
1939
+ var userRole = props.userRoles.find(function (y) {
1940
+ return y.name === r[2];
1941
+ }); // TODO: Change to actually work
1942
+
1943
+ return {
1944
+ lookupId: index.toString(),
1945
+ name: r[0],
1946
+ surname: r[1],
1947
+ userRole: userRole,
1948
+ email: r[3]
1949
+ };
1950
+ };
1951
+
1952
+ var onClick = function onClick(e) {
1953
+ ref.current.value = null;
1954
+ ref.current.click(null);
1955
+ };
1956
+
1957
+ var _onChange = function onChange(file) {
1958
+ Object(papaparse__WEBPACK_IMPORTED_MODULE_1__["parse"])(file, {
1959
+ complete: function complete(result) {
1960
+ var data = result.data;
1961
+
1962
+ if (!data.length || data.length === 1) {
1963
+ alerts.warning(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__["LanguageService"].getPhrase(namespace, 'emptyCsvWarning'));
1964
+ return;
1965
+ }
1966
+
1967
+ data.shift();
1968
+ setUsers(data.map(props.userType === apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_11__["MockUserType"].Student ? buildStudent : buildTeacher));
1969
+ _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_7__["Core"].AppLinkHelper.trigger({
1970
+ application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].USER_MANAGER,
1971
+ action: props.action
1972
+ });
1973
+ }
1974
+ });
1975
+ };
1976
+
1977
+ 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"], {
1978
+ svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Upload,
1979
+ className: 'btn btn-outline-dark',
1980
+ onClick: onClick
1981
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
1982
+ namespace: namespace,
1983
+ phrase: 'button'
1984
+ })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", {
1985
+ type: 'file',
1986
+ autoComplete: 'off',
1987
+ className: 'file-select d-none',
1988
+ accept: 'text/csv',
1989
+ ref: useRef,
1990
+ onChange: function onChange(e) {
1991
+ return _onChange(e.target.files[0]);
1992
+ }
1993
+ }));
1994
+ }
1995
+
1996
+ /***/ }),
1997
+
1998
+ /***/ "./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx":
1999
+ /*!**************************************************************************************!*\
2000
+ !*** ./src/apps/user-manager/components/edit-student-details/EditStudentDetails.tsx ***!
2001
+ \**************************************************************************************/
2002
+ /*! exports provided: EditStudentDetails */
2003
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2004
+
2005
+ "use strict";
2006
+ __webpack_require__.r(__webpack_exports__);
2007
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return EditStudentDetails; });
2008
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2009
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2010
+ /* 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");
2011
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2012
+ /* 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");
2013
+ /* 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");
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+ function EditStudentDetails(props) {
2020
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2021
+
2022
+ var user = props.user,
2023
+ saveUser = props.saveUser,
2024
+ onClickCancel = props.onClickCancel,
2025
+ yearLevels = props.yearLevels,
2026
+ _props$hasNext = props.hasNext,
2027
+ hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
2028
+ _props$initialErrors = props.initialErrors,
2029
+ initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
2030
+ var initialValues = {
2031
+ id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
2032
+ name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
2033
+ email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
2034
+ surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
2035
+ yearLevel: {
2036
+ id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.yearLevel) === null || _f === void 0 ? void 0 : _f.id,
2037
+ name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.yearLevel) === null || _h === void 0 ? void 0 : _h.name
2038
+ }
2039
+ };
2040
+ var initialTouched = {};
2041
+ Object.keys(initialErrors).forEach(function (err) {
2042
+ initialTouched[err] = true;
2043
+ });
2044
+ var StudentValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_3__["getStudentValidationSchema"])(yearLevels);
2045
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
2046
+ initialValues: initialValues,
2047
+ initialErrors: initialErrors,
2048
+ initialTouched: initialTouched,
2049
+ validationSchema: StudentValidationSchema,
2050
+ onSubmit: saveUser
2051
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_4__["UserDetailsForm"], {
2052
+ onClickCancel: onClickCancel,
2053
+ yearLevels: yearLevels,
2054
+ userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_2__["MockUserType"].Student,
2055
+ hasNext: hasNext
2056
+ }));
2057
+ }
2058
+
2059
+ /***/ }),
2060
+
2061
+ /***/ "./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx":
2062
+ /*!**************************************************************************************!*\
2063
+ !*** ./src/apps/user-manager/components/edit-teacher-details/EditTeacherDetails.tsx ***!
2064
+ \**************************************************************************************/
2065
+ /*! exports provided: EditTeacherDetails */
2066
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2067
+
2068
+ "use strict";
2069
+ __webpack_require__.r(__webpack_exports__);
2070
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return EditTeacherDetails; });
2071
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2072
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2073
+ /* 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");
2074
+ /* 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");
2075
+ /* 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");
2076
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+ function EditTeacherDetails(props) {
2083
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2084
+
2085
+ var user = props.user,
2086
+ saveUser = props.saveUser,
2087
+ onClickCancel = props.onClickCancel,
2088
+ userRoles = props.userRoles,
2089
+ _props$hasNext = props.hasNext,
2090
+ hasNext = _props$hasNext === void 0 ? false : _props$hasNext,
2091
+ _props$initialErrors = props.initialErrors,
2092
+ initialErrors = _props$initialErrors === void 0 ? {} : _props$initialErrors;
2093
+ var initialValues = {
2094
+ id: (_a = user) === null || _a === void 0 ? void 0 : _a.id,
2095
+ name: (_b = user) === null || _b === void 0 ? void 0 : _b.name,
2096
+ email: (_c = user) === null || _c === void 0 ? void 0 : _c.email,
2097
+ surname: (_d = user) === null || _d === void 0 ? void 0 : _d.surname,
2098
+ userRole: {
2099
+ id: (_f = (_e = user) === null || _e === void 0 ? void 0 : _e.userRole) === null || _f === void 0 ? void 0 : _f.id,
2100
+ name: (_h = (_g = user) === null || _g === void 0 ? void 0 : _g.userRole) === null || _h === void 0 ? void 0 : _h.name
2101
+ }
2102
+ };
2103
+ var initialTouched = {};
2104
+ Object.keys(initialErrors).forEach(function (err) {
2105
+ initialTouched[err] = true;
2106
+ });
2107
+ var TeacherValidationSchema = Object(apps_user_manager_validation_user_validation_UserValidationSchema__WEBPACK_IMPORTED_MODULE_2__["getTeacherValidationSchema"])(userRoles);
2108
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_1__["FormWrapper"], {
2109
+ initialValues: initialValues,
2110
+ initialErrors: initialErrors,
2111
+ initialTouched: initialTouched,
2112
+ validationSchema: TeacherValidationSchema,
2113
+ onSubmit: saveUser
2114
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_3__["UserDetailsForm"], {
2115
+ onClickCancel: onClickCancel,
2116
+ userRoles: userRoles,
2117
+ userType: apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_4__["MockUserType"].Teacher,
2118
+ hasNext: hasNext
2119
+ }));
2120
+ }
2121
+
2122
+ /***/ }),
2123
+
2124
+ /***/ "./src/apps/user-manager/components/index.ts":
2125
+ /*!***************************************************!*\
2126
+ !*** ./src/apps/user-manager/components/index.ts ***!
2127
+ \***************************************************/
2128
+ /*! exports provided: UserDetailsForm, YearLevelSelect, EditStudentDetails, EditTeacherDetails, BulkUploadFileSelect */
2129
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2130
+
2131
+ "use strict";
2132
+ __webpack_require__.r(__webpack_exports__);
2133
+ /* 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");
2134
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return _user_details_form_UserDetailsForm__WEBPACK_IMPORTED_MODULE_0__["UserDetailsForm"]; });
2135
+
2136
+ /* 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");
2137
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return _year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_1__["YearLevelSelect"]; });
2138
+
2139
+ /* 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");
2140
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditStudentDetails", function() { return _edit_student_details_EditStudentDetails__WEBPACK_IMPORTED_MODULE_2__["EditStudentDetails"]; });
2141
+
2142
+ /* 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");
2143
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EditTeacherDetails", function() { return _edit_teacher_details_EditTeacherDetails__WEBPACK_IMPORTED_MODULE_3__["EditTeacherDetails"]; });
2144
+
2145
+ /* 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");
2146
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return _bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_4__["BulkUploadFileSelect"]; });
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+ /***/ }),
2155
+
2156
+ /***/ "./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx":
2157
+ /*!********************************************************************************!*\
2158
+ !*** ./src/apps/user-manager/components/user-details-form/UserDetailsForm.tsx ***!
2159
+ \********************************************************************************/
2160
+ /*! exports provided: UserDetailsForm */
2161
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2162
+
2163
+ "use strict";
2164
+ __webpack_require__.r(__webpack_exports__);
2165
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserDetailsForm", function() { return UserDetailsForm; });
2166
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2167
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2168
+ /* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! formik */ "../../../node_modules/formik/dist/formik.esm.js");
2169
+ /* 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");
2170
+ /* 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");
2171
+ /* 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");
2172
+ /* 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");
2173
+ /* 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");
2174
+ /* 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");
2175
+ /* 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");
2176
+ /* harmony import */ var apps_user_manager_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! apps/user-manager/enums */ "./src/apps/user-manager/enums/index.ts");
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+ /**
2188
+ * This file uses 3 *.lang.json files.
2189
+ * - One for generic values
2190
+ * - One for student specific values
2191
+ * - One for teacher specific values
2192
+ */
2193
+
2194
+ var namespace = 'userManager.userDetailsForm';
2195
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace(namespace);
2196
+ function UserDetailsForm(props) {
2197
+ var onClickCancel = props.onClickCancel,
2198
+ yearLevels = props.yearLevels,
2199
+ userRoles = props.userRoles,
2200
+ userType = props.userType;
2201
+ var formikProps = Object(_libs_shared_src_components_forms_form_wrapper_FormWrapper__WEBPACK_IMPORTED_MODULE_7__["useFormikContextWrapper"])();
2202
+
2203
+ var getTreeSelectClassName = function getTreeSelectClassName(field) {
2204
+ return _libs_shared_src_utils_FormHelper__WEBPACK_IMPORTED_MODULE_6__["FormHelper"].getCustomFormControlClassName(formikProps.errors, formikProps.touched, field, 'revert-form-control h-auto');
2205
+ };
2206
+
2207
+ 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');
2208
+ 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"], {
2209
+ label: getPhrase('firstName'),
2210
+ type: 'text',
2211
+ name: 'name',
2212
+ id: 'name',
2213
+ placeholder: getTypePhrase('firstNamePlaceholder'),
2214
+ autoFocus: true,
2215
+ value: formikProps.values.name
2216
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2217
+ label: getPhrase('lastName'),
2218
+ type: 'text',
2219
+ name: 'surname',
2220
+ id: 'surname',
2221
+ placeholder: getTypePhrase('lastNamePlaceholder'),
2222
+ value: formikProps.values.surname
2223
+ }), yearLevels && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2224
+ name: 'yearLevel',
2225
+ label: getPhrase('yearLevel')
2226
+ }, function () {
2227
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2228
+ className: getTreeSelectClassName('yearLevel')
2229
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_user_manager_components_year_level_select_YearLevelSelect__WEBPACK_IMPORTED_MODULE_8__["YearLevelSelect"], {
2230
+ yearLevels: yearLevels,
2231
+ selected: formikProps.values.yearLevel,
2232
+ onSelect: function onSelect(yearLevel) {
2233
+ return formikProps.setFieldValue('yearLevel', yearLevel);
2234
+ }
2235
+ }));
2236
+ }), userRoles && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2237
+ label: getPhrase('userRole'),
2238
+ name: 'userRole',
2239
+ as: 'select',
2240
+ onChange: function onChange(e) {
2241
+ var roleObj = props.userRoles.find(function (r) {
2242
+ return r.id === e.target.value;
2243
+ });
2244
+ formikProps.setFieldValue('userRole', roleObj);
2245
+ },
2246
+ value: formikProps.values.userRole.id
2247
+ }, userRoles.map(function (r) {
2248
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("option", {
2249
+ key: r.id,
2250
+ value: r.id
2251
+ }, r.name);
2252
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_field_FormField__WEBPACK_IMPORTED_MODULE_3__["FormField"], {
2253
+ label: getPhrase('emailAddress'),
2254
+ type: 'text',
2255
+ name: 'email',
2256
+ id: 'email',
2257
+ placeholder: getTypePhrase('emailAddressPlaceholder'),
2258
+ value: formikProps.values.email
2259
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2260
+ className: 'btn-container d-flex justify-content-end'
2261
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("button", {
2262
+ type: 'button',
2263
+ className: "btn btn-link mr-2",
2264
+ onClick: onClickCancel
2265
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_5__["Text"], {
2266
+ namespace: namespace,
2267
+ phrase: 'cancel'
2268
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_forms_form_buttons_FormButtons__WEBPACK_IMPORTED_MODULE_4__["FormButtons"], {
2269
+ isNew: false,
2270
+ hasNext: props.hasNext
2271
+ })));
2272
+ }
2273
+
2274
+ /***/ }),
2275
+
2276
+ /***/ "./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx":
2277
+ /*!********************************************************************************!*\
2278
+ !*** ./src/apps/user-manager/components/year-level-select/YearLevelSelect.tsx ***!
2279
+ \********************************************************************************/
2280
+ /*! exports provided: YearLevelSelect */
2281
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2282
+
2283
+ "use strict";
2284
+ __webpack_require__.r(__webpack_exports__);
2285
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "YearLevelSelect", function() { return YearLevelSelect; });
2286
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2287
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2288
+
2289
+
2290
+ function YearLevel(props) {
2291
+ var yearLevel = props.yearLevel,
2292
+ selected = props.selected,
2293
+ onSelect = props.onSelect;
2294
+ var className = selected ? 'badge-info' : 'badge-light';
2295
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
2296
+ className: "badge-pill d-inline-block mr-1 mb-1 cursor-pointer ".concat(className),
2297
+ role: 'radio',
2298
+ "aria-checked": selected,
2299
+ onClick: function onClick() {
2300
+ return onSelect(yearLevel);
2301
+ }
2302
+ }, yearLevel.name);
2303
+ }
2304
+
2305
+ function YearLevelSelect(props) {
2306
+ var yearLevels = props.yearLevels,
2307
+ selected = props.selected,
2308
+ onSelect = props.onSelect;
2309
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
2310
+ role: 'radiogroup'
2311
+ }, yearLevels.map(function (y) {
2312
+ var _a, _b;
2313
+
2314
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](YearLevel, {
2315
+ key: y.id,
2316
+ yearLevel: y,
2317
+ selected: y.id.toString() === ((_b = (_a = selected) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString()),
2318
+ onSelect: onSelect
2319
+ });
2320
+ }));
2321
+ }
2322
+
2323
+ /***/ }),
2324
+
2325
+ /***/ "./src/apps/user-manager/enums/index.ts":
2326
+ /*!**********************************************!*\
2327
+ !*** ./src/apps/user-manager/enums/index.ts ***!
2328
+ \**********************************************/
2329
+ /*! exports provided: MockUserType */
2330
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2331
+
2332
+ "use strict";
2333
+ __webpack_require__.r(__webpack_exports__);
2334
+ /* harmony import */ var _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mocks/MockUserType */ "./src/apps/user-manager/enums/mocks/MockUserType.ts");
2335
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return _mocks_MockUserType__WEBPACK_IMPORTED_MODULE_0__["MockUserType"]; });
2336
+
2337
+
2338
+
2339
+ /***/ }),
2340
+
2341
+ /***/ "./src/apps/user-manager/enums/mocks/MockUserType.ts":
2342
+ /*!***********************************************************!*\
2343
+ !*** ./src/apps/user-manager/enums/mocks/MockUserType.ts ***!
2344
+ \***********************************************************/
2345
+ /*! exports provided: MockUserType */
2346
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2347
+
2348
+ "use strict";
2349
+ __webpack_require__.r(__webpack_exports__);
2350
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MockUserType", function() { return MockUserType; });
2351
+ var MockUserType;
2352
+
2353
+ (function (MockUserType) {
2354
+ MockUserType["Student"] = "student";
2355
+ MockUserType["Teacher"] = "teacher";
2356
+ })(MockUserType || (MockUserType = {}));
2357
+
2358
+ /***/ }),
2359
+
2360
+ /***/ "./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts":
2361
+ /*!**********************************************************************************!*\
2362
+ !*** ./src/apps/user-manager/validation/user-validation/UserValidationSchema.ts ***!
2363
+ \**********************************************************************************/
2364
+ /*! exports provided: getTeacherValidationSchema, getStudentValidationSchema */
2365
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2366
+
2367
+ "use strict";
2368
+ __webpack_require__.r(__webpack_exports__);
2369
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTeacherValidationSchema", function() { return getTeacherValidationSchema; });
2370
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStudentValidationSchema", function() { return getStudentValidationSchema; });
2371
+ /* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yup */ "../../../node_modules/yup/lib/index.js");
2372
+ /* harmony import */ var yup__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(yup__WEBPACK_IMPORTED_MODULE_0__);
2373
+ /* 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");
2374
+
2375
+
2376
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace('userManager.userValidation');
2377
+ var UserValidationSchema = Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
2378
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
2379
+ return getPhrase('nameExceeds');
2380
+ }).required(function () {
2381
+ return getPhrase('nameRequired');
2382
+ })["default"](''),
2383
+ surname: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
2384
+ return getPhrase('surnameExceeds');
2385
+ }).required(function () {
2386
+ return getPhrase('surnameRequired');
2387
+ })["default"](''),
2388
+ email: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().max(255, function () {
2389
+ return getPhrase('emailExceeds');
2390
+ }).required(function () {
2391
+ return getPhrase('emailRequired');
2392
+ }).email(function () {
2393
+ return getPhrase('emailValid');
2394
+ })["default"]('')
2395
+ });
2396
+ var getTeacherValidationSchema = function getTeacherValidationSchema(userRoles) {
2397
+ return UserValidationSchema.shape({
2398
+ userRole: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
2399
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
2400
+ return getPhrase('userRoleRequired');
2401
+ }).oneOf(userRoles.map(function (r) {
2402
+ return r.name;
2403
+ }), function () {
2404
+ return getPhrase('userRoleInvalid');
2405
+ })["default"]('')
2406
+ })
2407
+ });
2408
+ };
2409
+ var getStudentValidationSchema = function getStudentValidationSchema(yearLevels) {
2410
+ return UserValidationSchema.shape({
2411
+ yearLevel: Object(yup__WEBPACK_IMPORTED_MODULE_0__["object"])().shape({
2412
+ name: Object(yup__WEBPACK_IMPORTED_MODULE_0__["string"])().required(function () {
2413
+ return getPhrase('yearLevelRequired');
2414
+ }).oneOf(yearLevels.map(function (y) {
2415
+ return y.name;
2416
+ }), function () {
2417
+ return getPhrase('yearLevelInvalid');
2418
+ })["default"]('')
2419
+ })
2420
+ });
2421
+ };
2422
+
2423
+ /***/ }),
2424
+
2425
+ /***/ "./src/shared/components/toggle-switch/ToggleSwitch.tsx":
2426
+ /*!**************************************************************!*\
2427
+ !*** ./src/shared/components/toggle-switch/ToggleSwitch.tsx ***!
2428
+ \**************************************************************/
2429
+ /*! exports provided: ToggleSwitch */
2430
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2431
+
2432
+ "use strict";
2433
+ __webpack_require__.r(__webpack_exports__);
2434
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleSwitch", function() { return ToggleSwitch; });
2435
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2436
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2437
+ /* 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");
2438
+
2439
+
2440
+ function ToggleSwitch(props) {
2441
+ function onClick() {
2442
+ if (props.disabled) return;
2443
+ props.onClick.apply(props, arguments);
2444
+ }
2445
+
2446
+ var bootstrapClasses = 'd-inline-block float-right align-top custom-toggle toggle-option';
2447
+ var onClass = props.on && !props.disabled ? 'on' : '';
2448
+ var disabledClass = props.disabled ? 'disabled' : '';
2449
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_div_button_DivButton__WEBPACK_IMPORTED_MODULE_1__["DivButton"], {
2450
+ onClick: onClick,
2451
+ className: "".concat(bootstrapClasses, " ").concat(onClass, " ").concat(disabledClass)
2452
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
2453
+ className: 'handle'
2454
+ }));
2455
+ }
2456
+
2457
+ /***/ }),
2458
+
2459
+ /***/ "./src/shared/hooks/useBulkCheckboxManager.tsx":
2460
+ /*!*****************************************************!*\
2461
+ !*** ./src/shared/hooks/useBulkCheckboxManager.tsx ***!
2462
+ \*****************************************************/
2463
+ /*! exports provided: useBulkCheckboxManager */
2464
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2465
+
2466
+ "use strict";
2467
+ __webpack_require__.r(__webpack_exports__);
2468
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useBulkCheckboxManager", function() { return useBulkCheckboxManager; });
2469
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2470
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2471
+ 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; }
2472
+
2473
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2474
+
2475
+ 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."); }
2476
+
2477
+ 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); }
2478
+
2479
+ 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; }
2480
+
2481
+ 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; }
2482
+
2483
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2484
+
2485
+
2486
+ /**
2487
+ * @param collection - The collection you are keeping track of with checkboxes
2488
+ * @param options - See interface above
2489
+ */
2490
+
2491
+ var useBulkCheckboxManager = function useBulkCheckboxManager(collection) {
2492
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2493
+
2494
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState(false),
2495
+ _React$useState2 = _slicedToArray(_React$useState, 2),
2496
+ bulkChecked = _React$useState2[0],
2497
+ setBulkChecked = _React$useState2[1];
2498
+
2499
+ var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState({}),
2500
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
2501
+ items = _React$useState4[0],
2502
+ setItems = _React$useState4[1];
2503
+
2504
+ var _options$idField = options.idField,
2505
+ idField = _options$idField === void 0 ? 'id' : _options$idField;
2506
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.useEffect(function () {
2507
+ var _a;
2508
+
2509
+ if (!((_a = collection) === null || _a === void 0 ? void 0 : _a.length)) return;
2510
+ var newItemState = collection.reduce(function (stateObj, item) {
2511
+ var _a, _b;
2512
+
2513
+ var checkboxState = false;
2514
+ if ((_b = (_a = options) === null || _a === void 0 ? void 0 : _a.preselectedIds) === null || _b === void 0 ? void 0 : _b.includes(item[idField])) checkboxState = true;
2515
+ var id = item[idField];
2516
+ stateObj[id] = checkboxState;
2517
+ return stateObj;
2518
+ }, {});
2519
+ setItems(newItemState);
2520
+ }, [collection]); // When toggled on, all checkbox items will be enabled. Vice versa if toggled off
2521
+
2522
+ function onToggleBulk() {
2523
+ var nextState = !bulkChecked;
2524
+ setBulkChecked(nextState);
2525
+ var newItemsState = collection.reduce(function (stateObj, item) {
2526
+ stateObj[item[idField]] = nextState;
2527
+ return stateObj;
2528
+ }, {});
2529
+ setItems(newItemsState);
2530
+ } // Toggles a single item
2531
+
2532
+
2533
+ function onToggleItem(id) {
2534
+ var nextItemState = !items[id];
2535
+ var nextState = Object.assign(Object.assign({}, items), _defineProperty({}, id, nextItemState));
2536
+ setItems(nextState);
2537
+ /**
2538
+ * Keep the bulk checkbox in sync with all of the other checkboxes
2539
+ */
2540
+
2541
+ var totalItemsSelected = Object.keys(nextState).filter(function (i) {
2542
+ return nextState[i];
2543
+ }).length;
2544
+
2545
+ if (totalItemsSelected === collection.length) {
2546
+ setBulkChecked(true);
2547
+ return;
2548
+ }
2549
+
2550
+ if (!nextItemState && bulkChecked) setBulkChecked(false);
2551
+ } // Returns the state of the item passed in
2552
+
2553
+
2554
+ function isChecked(item) {
2555
+ if (bulkChecked) return true;
2556
+ if (typeof item !== 'string') item = item[idField];
2557
+ return items[item];
2558
+ }
2559
+
2560
+ function getSelected() {
2561
+ if (bulkChecked) return Object.keys(items);
2562
+ return Object.keys(items).filter(function (item) {
2563
+ return items[item];
2564
+ });
2565
+ }
2566
+
2567
+ return {
2568
+ onToggleBulk: onToggleBulk,
2569
+ onToggleItem: onToggleItem,
2570
+ getSelected: getSelected,
2571
+ isChecked: isChecked,
2572
+ bulkChecked: bulkChecked
2573
+ };
2574
+ };
2575
+
2576
+ /***/ })
2577
+
2578
+ }]);
2579
+ //# sourceMappingURL=7.chunk.js.map