@clickview/lite 0.0.18-rc.2 → 0.0.18

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 (321) hide show
  1. package/dist/css/11.chunk.css +14 -8
  2. package/dist/css/12.chunk.css +15 -5
  3. package/dist/css/13.chunk.css +5 -13
  4. package/dist/css/14.chunk.css +6 -6
  5. package/dist/css/15.chunk.css +15 -3
  6. package/dist/css/16.chunk.css +9 -3
  7. package/dist/css/17.chunk.css +4 -2
  8. package/dist/css/19.chunk.css +2 -6
  9. package/dist/css/2.chunk.css +0 -14
  10. package/dist/css/20.chunk.css +2 -2
  11. package/dist/css/21.chunk.css +7 -1
  12. package/dist/css/22.chunk.css +2 -2
  13. package/dist/css/23.chunk.css +2 -2
  14. package/dist/css/24.chunk.css +1 -1
  15. package/dist/css/25.chunk.css +2 -2
  16. package/dist/css/26.chunk.css +2 -2
  17. package/dist/css/27.chunk.css +1 -67
  18. package/dist/css/28.chunk.css +2 -48
  19. package/dist/css/29.chunk.css +2 -45
  20. package/dist/css/3.chunk.css +7 -13
  21. package/dist/css/31.chunk.css +1 -6
  22. package/dist/css/34.chunk.css +1 -5
  23. package/dist/css/38.chunk.css +2 -36
  24. package/dist/css/4.chunk.css +13 -5
  25. package/dist/css/44.chunk.css +1 -1
  26. package/dist/css/46.chunk.css +2 -0
  27. package/dist/css/5.chunk.css +8 -2
  28. package/dist/css/6.chunk.css +2 -0
  29. package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -1
  30. package/dist/libs/shared/src/utils/ImageHelper.d.ts +1 -1
  31. package/dist/scripts/0-d95e8444c4.chunk.js +1 -0
  32. package/dist/scripts/{1-f6fa17226d.chunk.js → 1-2b6afccaa5.chunk.js} +3 -3
  33. package/dist/scripts/11-d419aa0984.chunk.js +1 -0
  34. package/dist/scripts/12-b38a27f951.chunk.js +1 -0
  35. package/dist/scripts/13-1ad100c6fa.chunk.js +1 -0
  36. package/dist/scripts/14-9f08e07fae.chunk.js +1 -0
  37. package/dist/scripts/15-ee9fb81b9f.chunk.js +1 -0
  38. package/dist/scripts/{14-11868e2868.chunk.js → 16-8fe78e04c2.chunk.js} +1 -1
  39. package/dist/scripts/17-ea7fe3ea28.chunk.js +1 -0
  40. package/dist/scripts/18-1bb07c0b9b.chunk.js +1 -0
  41. package/dist/scripts/19-c869d34687.chunk.js +1 -0
  42. package/dist/scripts/2-a816feb2a1.chunk.js +1 -0
  43. package/dist/scripts/20-43ec005977.chunk.js +1 -0
  44. package/dist/scripts/21-8513db8251.chunk.js +1 -0
  45. package/dist/scripts/22-d4adb2384c.chunk.js +1 -0
  46. package/dist/scripts/23-d8b5b9ad2c.chunk.js +1 -0
  47. package/dist/scripts/{21-891207049a.chunk.js → 24-f2913e26e2.chunk.js} +1 -1
  48. package/dist/scripts/25-68705527ea.chunk.js +1 -0
  49. package/dist/scripts/26-7d25448f1c.chunk.js +1 -0
  50. package/dist/scripts/27-bab6c9f5c7.chunk.js +1 -0
  51. package/dist/scripts/28-080baa3fbc.chunk.js +1 -0
  52. package/dist/scripts/29-5e9889b68a.chunk.js +1 -0
  53. package/dist/scripts/3-6e2ac46662.chunk.js +7 -0
  54. package/dist/scripts/{27-f26afdae78.chunk.js → 30-cdbeea4fc5.chunk.js} +1 -1
  55. package/dist/scripts/31-6fa4413cdb.chunk.js +1 -0
  56. package/dist/scripts/32-d4725d3b7d.chunk.js +1 -0
  57. package/dist/scripts/33-bec24aab85.chunk.js +1 -0
  58. package/dist/scripts/34-c42c6cf42a.chunk.js +1 -0
  59. package/dist/scripts/{33-4579af9cf9.chunk.js → 35-4512b236f2.chunk.js} +1 -1
  60. package/dist/scripts/{34-d8b96d9f9f.chunk.js → 36-eede7769b2.chunk.js} +1 -1
  61. package/dist/scripts/37-80ed339c4f.chunk.js +1 -0
  62. package/dist/scripts/{37-afd3d321e3.chunk.js → 38-c11d4c88e3.chunk.js} +1 -1
  63. package/dist/scripts/{38-6ad53aa15b.chunk.js → 39-d0e74fb062.chunk.js} +1 -1
  64. package/dist/scripts/4-ea79bf1533.chunk.js +1 -0
  65. package/dist/scripts/{39-46c747b1d9.chunk.js → 40-d764e6157b.chunk.js} +1 -1
  66. package/dist/scripts/{40-c1b8806b1c.chunk.js → 41-0aa7093354.chunk.js} +1 -1
  67. package/dist/scripts/42-3d8c5fa14c.chunk.js +1 -0
  68. package/dist/scripts/43-969806e81e.chunk.js +1 -0
  69. package/dist/scripts/44-e8e3fef4c3.chunk.js +1 -0
  70. package/dist/scripts/45-d8f70269d6.chunk.js +1 -0
  71. package/dist/scripts/{44-7f92272274.chunk.js → 46-946ae22c1f.chunk.js} +1 -1
  72. package/dist/scripts/47-1579412cd0.chunk.js +1 -0
  73. package/dist/scripts/48-fdf97c1c73.chunk.js +1 -0
  74. package/dist/scripts/49-970fc479c8.chunk.js +1 -0
  75. package/dist/scripts/5-d1bb14adf6.chunk.js +1 -0
  76. package/dist/scripts/50-1257ab0b95.chunk.js +1 -0
  77. package/dist/scripts/{50-8cb0d9cd7d.chunk.js → 51-ac615445f0.chunk.js} +1 -1
  78. package/dist/scripts/52-874629b81c.chunk.js +1 -0
  79. package/dist/scripts/{52-bfb2683b5d.chunk.js → 53-22e3d0793b.chunk.js} +1 -1
  80. package/dist/scripts/{53-3cf5cd5f69.chunk.js → 54-da1a07610c.chunk.js} +1 -1
  81. package/dist/scripts/{54-26807e3e49.chunk.js → 55-02647df65c.chunk.js} +1 -1
  82. package/dist/scripts/56-1b6e6349fa.chunk.js +1 -0
  83. package/dist/scripts/57-8fc09ba02c.chunk.js +1 -0
  84. package/dist/scripts/{56-d4abc25ec3.chunk.js → 58-8e5cc56c3f.chunk.js} +1 -1
  85. package/dist/scripts/6-0e53df2ece.chunk.js +1 -0
  86. package/dist/scripts/7-26822045b2.chunk.js +1 -0
  87. package/dist/scripts/8-7450eff674.chunk.js +1 -0
  88. package/dist/scripts/9-f24f1577dd.chunk.js +1 -0
  89. package/dist/scripts/bundle-5ecb0c9441.min.js +1 -0
  90. package/dist/scripts/bundle-c6241bd7ac.min.js +1 -0
  91. package/dist/scripts/bundles.json +1 -1
  92. package/package.json +3 -3
  93. package/dist/css/0.chunk.css.map +0 -1
  94. package/dist/css/1.chunk.css +0 -146
  95. package/dist/css/1.chunk.css.map +0 -1
  96. package/dist/css/10.chunk.css +0 -20
  97. package/dist/css/10.chunk.css.map +0 -1
  98. package/dist/css/11.chunk.css.map +0 -1
  99. package/dist/css/12.chunk.css.map +0 -1
  100. package/dist/css/13.chunk.css.map +0 -1
  101. package/dist/css/14.chunk.css.map +0 -1
  102. package/dist/css/16.chunk.css.map +0 -1
  103. package/dist/css/18.chunk.css.map +0 -1
  104. package/dist/css/19.chunk.css.map +0 -1
  105. package/dist/css/21.chunk.css.map +0 -1
  106. package/dist/css/22.chunk.css.map +0 -1
  107. package/dist/css/23.chunk.css.map +0 -1
  108. package/dist/css/24.chunk.css.map +0 -1
  109. package/dist/css/25.chunk.css.map +0 -1
  110. package/dist/css/26.chunk.css.map +0 -1
  111. package/dist/css/27.chunk.css.map +0 -1
  112. package/dist/css/28.chunk.css.map +0 -1
  113. package/dist/css/29.chunk.css.map +0 -1
  114. package/dist/css/3.chunk.css.map +0 -1
  115. package/dist/css/30.chunk.css.map +0 -1
  116. package/dist/css/31.chunk.css.map +0 -1
  117. package/dist/css/32.chunk.css +0 -5
  118. package/dist/css/32.chunk.css.map +0 -1
  119. package/dist/css/34.chunk.css.map +0 -1
  120. package/dist/css/35.chunk.css +0 -7
  121. package/dist/css/35.chunk.css.map +0 -1
  122. package/dist/css/36.chunk.css +0 -4
  123. package/dist/css/36.chunk.css.map +0 -1
  124. package/dist/css/37.chunk.css +0 -4
  125. package/dist/css/37.chunk.css.map +0 -1
  126. package/dist/css/38.chunk.css.map +0 -1
  127. package/dist/css/4.chunk.css.map +0 -1
  128. package/dist/css/45.chunk.css +0 -9
  129. package/dist/css/45.chunk.css.map +0 -1
  130. package/dist/css/5.chunk.css.map +0 -1
  131. package/dist/css/9.chunk.css +0 -24
  132. package/dist/css/lite-app.css.map +0 -1
  133. package/dist/scripts/0-525bd75473.chunk.js +0 -1
  134. package/dist/scripts/0.chunk.js +0 -478
  135. package/dist/scripts/0.chunk.js.map +0 -1
  136. package/dist/scripts/1.chunk.js +0 -621
  137. package/dist/scripts/1.chunk.js.map +0 -1
  138. package/dist/scripts/10-f3b34b2d35.chunk.js +0 -1
  139. package/dist/scripts/10.chunk.js +0 -400
  140. package/dist/scripts/10.chunk.js.map +0 -1
  141. package/dist/scripts/11-a698af3f1c.chunk.js +0 -1
  142. package/dist/scripts/11.chunk.js +0 -1289
  143. package/dist/scripts/11.chunk.js.map +0 -1
  144. package/dist/scripts/12-9ace90fcbc.chunk.js +0 -1
  145. package/dist/scripts/12.chunk.js +0 -1059
  146. package/dist/scripts/12.chunk.js.map +0 -1
  147. package/dist/scripts/13-3a4f103546.chunk.js +0 -1
  148. package/dist/scripts/13.chunk.js +0 -751
  149. package/dist/scripts/13.chunk.js.map +0 -1
  150. package/dist/scripts/14.chunk.js +0 -425
  151. package/dist/scripts/14.chunk.js.map +0 -1
  152. package/dist/scripts/15-78ff5e8be2.chunk.js +0 -1
  153. package/dist/scripts/15.chunk.js +0 -609
  154. package/dist/scripts/15.chunk.js.map +0 -1
  155. package/dist/scripts/16-22f6224811.chunk.js +0 -1
  156. package/dist/scripts/16.chunk.js +0 -648
  157. package/dist/scripts/16.chunk.js.map +0 -1
  158. package/dist/scripts/17-afe6281dd5.chunk.js +0 -1
  159. package/dist/scripts/17.chunk.js +0 -541
  160. package/dist/scripts/17.chunk.js.map +0 -1
  161. package/dist/scripts/18-47be31c0b6.chunk.js +0 -1
  162. package/dist/scripts/18.chunk.js +0 -766
  163. package/dist/scripts/18.chunk.js.map +0 -1
  164. package/dist/scripts/19-89c0b2c20e.chunk.js +0 -1
  165. package/dist/scripts/19.chunk.js +0 -647
  166. package/dist/scripts/19.chunk.js.map +0 -1
  167. package/dist/scripts/2-3b37480a80.chunk.js +0 -7
  168. package/dist/scripts/2.chunk.js +0 -8259
  169. package/dist/scripts/2.chunk.js.map +0 -1
  170. package/dist/scripts/20-32ac3fe0b9.chunk.js +0 -1
  171. package/dist/scripts/20.chunk.js +0 -122
  172. package/dist/scripts/20.chunk.js.map +0 -1
  173. package/dist/scripts/21.chunk.js +0 -1571
  174. package/dist/scripts/21.chunk.js.map +0 -1
  175. package/dist/scripts/22-24236e6723.chunk.js +0 -1
  176. package/dist/scripts/22.chunk.js +0 -1387
  177. package/dist/scripts/22.chunk.js.map +0 -1
  178. package/dist/scripts/23-7b425169bc.chunk.js +0 -1
  179. package/dist/scripts/23.chunk.js +0 -1121
  180. package/dist/scripts/23.chunk.js.map +0 -1
  181. package/dist/scripts/24-40edd30087.chunk.js +0 -1
  182. package/dist/scripts/24.chunk.js +0 -1348
  183. package/dist/scripts/24.chunk.js.map +0 -1
  184. package/dist/scripts/25-887b9ef587.chunk.js +0 -1
  185. package/dist/scripts/25.chunk.js +0 -1137
  186. package/dist/scripts/25.chunk.js.map +0 -1
  187. package/dist/scripts/26-cbe0ff0f77.chunk.js +0 -1
  188. package/dist/scripts/26.chunk.js +0 -906
  189. package/dist/scripts/26.chunk.js.map +0 -1
  190. package/dist/scripts/27.chunk.js +0 -1143
  191. package/dist/scripts/27.chunk.js.map +0 -1
  192. package/dist/scripts/28-70414fd373.chunk.js +0 -1
  193. package/dist/scripts/28.chunk.js +0 -656
  194. package/dist/scripts/28.chunk.js.map +0 -1
  195. package/dist/scripts/29-944b5c01a7.chunk.js +0 -1
  196. package/dist/scripts/29.chunk.js +0 -616
  197. package/dist/scripts/29.chunk.js.map +0 -1
  198. package/dist/scripts/3-233f573a92.chunk.js +0 -1
  199. package/dist/scripts/3.chunk.js +0 -585
  200. package/dist/scripts/3.chunk.js.map +0 -1
  201. package/dist/scripts/30-3a229887e9.chunk.js +0 -1
  202. package/dist/scripts/30.chunk.js +0 -557
  203. package/dist/scripts/30.chunk.js.map +0 -1
  204. package/dist/scripts/31-ab038bfc0c.chunk.js +0 -1
  205. package/dist/scripts/31.chunk.js +0 -731
  206. package/dist/scripts/31.chunk.js.map +0 -1
  207. package/dist/scripts/32-8bd6703eef.chunk.js +0 -1
  208. package/dist/scripts/32.chunk.js +0 -957
  209. package/dist/scripts/32.chunk.js.map +0 -1
  210. package/dist/scripts/33.chunk.js +0 -938
  211. package/dist/scripts/33.chunk.js.map +0 -1
  212. package/dist/scripts/34.chunk.js +0 -523
  213. package/dist/scripts/34.chunk.js.map +0 -1
  214. package/dist/scripts/35-666d815525.chunk.js +0 -1
  215. package/dist/scripts/35.chunk.js +0 -414
  216. package/dist/scripts/35.chunk.js.map +0 -1
  217. package/dist/scripts/36-02ce5f3538.chunk.js +0 -1
  218. package/dist/scripts/36.chunk.js +0 -404
  219. package/dist/scripts/36.chunk.js.map +0 -1
  220. package/dist/scripts/37.chunk.js +0 -245
  221. package/dist/scripts/37.chunk.js.map +0 -1
  222. package/dist/scripts/38.chunk.js +0 -343
  223. package/dist/scripts/38.chunk.js.map +0 -1
  224. package/dist/scripts/39.chunk.js +0 -318
  225. package/dist/scripts/39.chunk.js.map +0 -1
  226. package/dist/scripts/4-6942fee782.chunk.js +0 -1
  227. package/dist/scripts/4.chunk.js +0 -1030
  228. package/dist/scripts/4.chunk.js.map +0 -1
  229. package/dist/scripts/40.chunk.js +0 -236
  230. package/dist/scripts/40.chunk.js.map +0 -1
  231. package/dist/scripts/41-f4c23477e3.chunk.js +0 -1
  232. package/dist/scripts/41.chunk.js +0 -231
  233. package/dist/scripts/41.chunk.js.map +0 -1
  234. package/dist/scripts/42-7a5b92d70b.chunk.js +0 -1
  235. package/dist/scripts/42.chunk.js +0 -350
  236. package/dist/scripts/42.chunk.js.map +0 -1
  237. package/dist/scripts/43-97193a87df.chunk.js +0 -1
  238. package/dist/scripts/43.chunk.js +0 -225
  239. package/dist/scripts/43.chunk.js.map +0 -1
  240. package/dist/scripts/44.chunk.js +0 -318
  241. package/dist/scripts/44.chunk.js.map +0 -1
  242. package/dist/scripts/45-265f1a7a42.chunk.js +0 -1
  243. package/dist/scripts/45.chunk.js +0 -64
  244. package/dist/scripts/45.chunk.js.map +0 -1
  245. package/dist/scripts/46-a594ad7eba.chunk.js +0 -1
  246. package/dist/scripts/46.chunk.js +0 -108
  247. package/dist/scripts/46.chunk.js.map +0 -1
  248. package/dist/scripts/47-99777c20cf.chunk.js +0 -1
  249. package/dist/scripts/47.chunk.js +0 -110
  250. package/dist/scripts/47.chunk.js.map +0 -1
  251. package/dist/scripts/48-9880523c82.chunk.js +0 -1
  252. package/dist/scripts/48.chunk.js +0 -148
  253. package/dist/scripts/48.chunk.js.map +0 -1
  254. package/dist/scripts/49-5e718594e5.chunk.js +0 -1
  255. package/dist/scripts/49.chunk.js +0 -142
  256. package/dist/scripts/49.chunk.js.map +0 -1
  257. package/dist/scripts/5-2f631dcd74.chunk.js +0 -1
  258. package/dist/scripts/5.chunk.js +0 -3262
  259. package/dist/scripts/5.chunk.js.map +0 -1
  260. package/dist/scripts/50.chunk.js +0 -145
  261. package/dist/scripts/50.chunk.js.map +0 -1
  262. package/dist/scripts/51-211b643ca5.chunk.js +0 -1
  263. package/dist/scripts/51.chunk.js +0 -176
  264. package/dist/scripts/51.chunk.js.map +0 -1
  265. package/dist/scripts/52.chunk.js +0 -160
  266. package/dist/scripts/52.chunk.js.map +0 -1
  267. package/dist/scripts/53.chunk.js +0 -98
  268. package/dist/scripts/53.chunk.js.map +0 -1
  269. package/dist/scripts/54.chunk.js +0 -48
  270. package/dist/scripts/54.chunk.js.map +0 -1
  271. package/dist/scripts/55-d38be4860b.chunk.js +0 -1
  272. package/dist/scripts/55.chunk.js +0 -99
  273. package/dist/scripts/55.chunk.js.map +0 -1
  274. package/dist/scripts/56.chunk.js +0 -64
  275. package/dist/scripts/56.chunk.js.map +0 -1
  276. package/dist/scripts/57.chunk.js +0 -72
  277. package/dist/scripts/57.chunk.js.map +0 -1
  278. package/dist/scripts/58.chunk.js +0 -73
  279. package/dist/scripts/58.chunk.js.map +0 -1
  280. package/dist/scripts/59.chunk.js +0 -70
  281. package/dist/scripts/59.chunk.js.map +0 -1
  282. package/dist/scripts/6-4d72a3c3fc.chunk.js +0 -1
  283. package/dist/scripts/6.chunk.js +0 -24
  284. package/dist/scripts/6.chunk.js.map +0 -1
  285. package/dist/scripts/60.chunk.js +0 -32
  286. package/dist/scripts/60.chunk.js.map +0 -1
  287. package/dist/scripts/61.chunk.js +0 -29
  288. package/dist/scripts/61.chunk.js.map +0 -1
  289. package/dist/scripts/62.chunk.js +0 -27
  290. package/dist/scripts/62.chunk.js.map +0 -1
  291. package/dist/scripts/63.chunk.js +0 -67
  292. package/dist/scripts/63.chunk.js.map +0 -1
  293. package/dist/scripts/64.chunk.js +0 -80
  294. package/dist/scripts/64.chunk.js.map +0 -1
  295. package/dist/scripts/65.chunk.js +0 -65
  296. package/dist/scripts/65.chunk.js.map +0 -1
  297. package/dist/scripts/66.chunk.js +0 -67
  298. package/dist/scripts/66.chunk.js.map +0 -1
  299. package/dist/scripts/67.chunk.js +0 -104
  300. package/dist/scripts/67.chunk.js.map +0 -1
  301. package/dist/scripts/68.chunk.js +0 -69
  302. package/dist/scripts/68.chunk.js.map +0 -1
  303. package/dist/scripts/69.chunk.js +0 -89
  304. package/dist/scripts/69.chunk.js.map +0 -1
  305. package/dist/scripts/7-90ad392b55.chunk.js +0 -1
  306. package/dist/scripts/7.chunk.js +0 -327
  307. package/dist/scripts/7.chunk.js.map +0 -1
  308. package/dist/scripts/70.chunk.js +0 -36
  309. package/dist/scripts/70.chunk.js.map +0 -1
  310. package/dist/scripts/8.chunk.js +0 -470
  311. package/dist/scripts/8.chunk.js.map +0 -1
  312. package/dist/scripts/9-52877087ef.chunk.js +0 -1
  313. package/dist/scripts/9.chunk.js +0 -471
  314. package/dist/scripts/9.chunk.js.map +0 -1
  315. package/dist/scripts/bundle-87d75d901a.min.js +0 -1
  316. package/dist/scripts/bundle-99976c17a2.min.js +0 -1
  317. package/dist/scripts/bundle-9f5ad50596.min.js +0 -1
  318. package/dist/scripts/bundle-a4952df647.min.js +0 -1
  319. package/dist/scripts/bundle.js +0 -34769
  320. package/dist/scripts/bundle.js.map +0 -1
  321. /package/dist/css/{30.chunk.css → 8.chunk.css} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/badges/Badge.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/badges/BadgeListContainer.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/badges/badge.scss?33e1","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/favourite-button/FavouriteButton.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/mask/Mask.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/mask/mask.scss?ae93","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/thumbnails/video/VideoThumbnail.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/thumbnails/video/expandable/ExpandableVideoThumbnail.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/thumbnails/video/expandable/expandable-video-thumbnail.scss?da3c","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/thumbnails/video/static/StaticVideoThumbnail.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/thumbnails/video/static/static-video-thumbnail.scss?ea68","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/ThumbnailTextPosition.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/VideoDetailsHelper.ts"],"names":[],"mappings":"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","file":"scripts/1.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { Placement } from 'react-bootstrap/Overlay';\r\n\r\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\r\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\r\nimport { Rating } from 'libs/shared/interfaces';\r\n\r\nimport styles from './badge.scss';\r\n\r\nexport enum BadgeType {\r\n Duration = 'duration',\r\n Interactive = 'interactive',\r\n Rating = 'rating',\r\n ProductionYear = 'production-year'\r\n}\r\n\r\ninterface BadgeProps {\r\n type: BadgeType;\r\n data: any;\r\n}\r\n\r\ninterface TooltipOptions {\r\n placement: Placement;\r\n title: string;\r\n}\r\n\r\nfunction getClassName(type: BadgeType, data: any): string {\r\n const baseClass = 'badge';\r\n\r\n let typeClass = '';\r\n\r\n if (type === BadgeType.Duration)\r\n typeClass = styles.duration;\r\n\r\n if (type === BadgeType.Interactive)\r\n typeClass = styles.interactive;\r\n\r\n if (type === BadgeType.Rating)\r\n typeClass = `${styles.rating} ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\r\n\r\n if (type === BadgeType.ProductionYear)\r\n typeClass = styles.productionYear;\r\n\r\n return `${baseClass} ${typeClass}`;\r\n}\r\n\r\nfunction getBadgeText(type: BadgeType, data: any): string {\r\n if (type === BadgeType.Interactive)\r\n return 'Interactive';\r\n\r\n if (type === BadgeType.Duration)\r\n return DurationHelper.ToDisplayDuration(data); // data expected to be the duration\r\n\r\n if (type === BadgeType.Rating)\r\n return (data as Rating).code; // data expected to be a rating object\r\n\r\n if (type === BadgeType.ProductionYear)\r\n return data; // data should be the production year\r\n}\r\n\r\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\r\n if (type === BadgeType.Rating)\r\n return {\r\n title: (data as Rating).name,\r\n placement: 'top'\r\n };\r\n\r\n return null;\r\n}\r\n\r\nfunction hasData(type: BadgeType, data: any): boolean {\r\n if (type === BadgeType.Rating)\r\n return data && !!(data as Rating).value;\r\n\r\n return !!data;\r\n}\r\n\r\nexport function Badge(props : BadgeProps): JSX.Element {\r\n const { type, data } = props;\r\n\r\n if (!hasData(type, data))\r\n return <></>;\r\n\r\n const className = getClassName(type, data);\r\n const text = getBadgeText(type, data);\r\n const tooltip = getTooltip(type, data);\r\n\r\n if (tooltip) {\r\n return (\r\n <OverlayTrigger\r\n placement={tooltip.placement}\r\n overlay={<Tooltip id={tooltip.title}>{tooltip.title}</Tooltip>}\r\n >\r\n <span className={className}>{text}</span>\r\n </OverlayTrigger>\r\n );\r\n }\r\n\r\n return <span className={className}>{text}</span>;\r\n}","import * as React from 'react';\r\n\r\nimport styles from './badge.scss';\r\n\r\ninterface BadgeListContainerProps {\r\n className?: string;\r\n}\r\n\r\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\r\n let className = `d-flex ${styles.badgeList}`;\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n return (\r\n <div className={className}>\r\n {props.children}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"duration\":\"cv--duration--3XH_S\",\"interactive\":\"cv--interactive--INxgX\",\"productionYear\":\"cv--productionYear--Bt6Bx\",\"rating\":\"cv--rating--3bOtF\",\"badgeList\":\"cv--badgeList--1BsVS\"};","import * as React from 'react';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { Video } from 'libs/shared/interfaces';\r\n\r\nconst namespace = 'shared.favouriteButton';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface FavouriteButtonProps {\r\n video: Video;\r\n setFavourite: (videoId: string, shouldFavourite: boolean, onError?: () => void) => void;\r\n className?: string;\r\n}\r\n\r\nexport function FavouriteButton(props: FavouriteButtonProps): JSX.Element {\r\n const alerts = useAlerts();\r\n\r\n const hasFavouriteData = typeof props.video.isFavourited === 'boolean';\r\n\r\n const initialIsFavourite = !!props.video.isFavourited;\r\n\r\n // Use local state so that changes are reflected immediately.\r\n const [ isFavourite, setIsFavourite ] = React.useState(initialIsFavourite);\r\n\r\n React.useEffect(() => {\r\n setIsFavourite(initialIsFavourite);\r\n }, [initialIsFavourite]);\r\n\r\n let className = `cursor-pointer text${isFavourite ? '-danger' : '-dark'}`;\r\n\r\n if (props.className)\r\n className += ` ${props.className}`;\r\n\r\n function onClick(): void {\r\n const shouldFavourite = !isFavourite;\r\n\r\n function onError(): void {\r\n alerts.error(getPhrase(shouldFavourite ? 'favouriteError' : 'unfavouriteError'));\r\n setIsFavourite(!shouldFavourite);\r\n }\r\n\r\n setIsFavourite(shouldFavourite);\r\n props.setFavourite(props.video.id, shouldFavourite, onError);\r\n }\r\n\r\n // Don't render until we know the state of isFavourite\r\n if (!hasFavouriteData)\r\n return <></>;\r\n\r\n return (\r\n <div className={className} onClick={onClick}>\r\n <SvgContainer\r\n svgName={isFavourite ? cvSvgLibrary.Heart : cvSvgLibrary.HeartOutline}\r\n size={SvgContainerSize.Small}\r\n />\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\n\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\n\r\nimport styles from './mask.scss';\r\n\r\nexport enum MaskType {\r\n Video,\r\n Playlist\r\n}\r\n\r\nfunction getClassByType(type: MaskType): string {\r\n if (type === MaskType.Video)\r\n return styles.video;\r\n\r\n if (type === MaskType.Playlist)\r\n return styles.playlist;\r\n\r\n return '';\r\n}\r\n\r\nfunction getSvgType(type: MaskType): string {\r\n\r\n if (type === MaskType.Video)\r\n return cvSvgLibrary.PlayCircle;\r\n\r\n if (type === MaskType.Playlist)\r\n return cvSvgLibrary.AddToPlaylists;\r\n\r\n return '';\r\n}\r\n\r\ninterface MaskProps {\r\n type: MaskType;\r\n}\r\n\r\nexport function Mask(props: MaskProps): JSX.Element {\r\n const { type } = props;\r\n\r\n const typeClass = getClassByType(type);\r\n const svgType = getSvgType(type);\r\n\r\n return (\r\n <div className={ styles.maskContainer }>\r\n <div className={ styles.mask }></div>\r\n <SvgContainer svgName={svgType} className={ typeClass } />\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mask\":\"cv--mask--3nE2p\",\"video\":\"cv--video--KdGwU\",\"playlist\":\"cv--playlist--1cBmC\",\"maskContainer\":\"cv--maskContainer--3si6K\"};","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Video } from 'libs/shared/interfaces';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\n\r\nimport { ExpandableVideoThumbnail } from './expandable/ExpandableVideoThumbnail';\r\nimport { StaticVideoThumbnail } from './static/StaticVideoThumbnail';\r\n\r\nexport interface VideoThumbnailProps {\r\n video: Video;\r\n size: ThumbnailSize;\r\n type: 'expandable' | 'static';\r\n textPosition: ThumbnailTextPosition;\r\n appLink: Core.AppLink;\r\n seriesAppLink?: Core.AppLink;\r\n setFavourite?: (videoId: string, shouldFavourite: boolean, onError?: () => void) => void;\r\n preload?: boolean;\r\n hovering?: boolean;\r\n}\r\n\r\nexport function VideoThumbnail(props: VideoThumbnailProps): JSX.Element {\r\n // Expandable thumbnails show metadata on hover. Static display the duration and don't expand on hover\r\n return props.type === 'expandable'\r\n ? <ExpandableVideoThumbnail {...props} />\r\n : <StaticVideoThumbnail {...props} />;\r\n}","import React from 'react';\r\n\r\nimport { VideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\r\nimport { BaseThumbnail, AspectRatio } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { SeriesLink } from 'libs/shared/components/series-link/SeriesLink';\r\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\r\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './expandable-video-thumbnail.scss';\r\n\r\nexport function ExpandableVideoThumbnail(props: VideoThumbnailProps): JSX.Element {\r\n const { video, appLink, size, setFavourite, preload, hovering } = props;\r\n\r\n return (\r\n <div className='position-relative rounded overflow-hidden'>\r\n {!!FunctionHelper.isFunction(setFavourite) &&\r\n <div className={styles.favouriteContainer}>\r\n <FavouriteButton\r\n setFavourite={setFavourite}\r\n video={video}\r\n className={`rounded-circle p-1 ${styles.favouriteButton}`}\r\n />\r\n </div>\r\n }\r\n\r\n <BaseThumbnail\r\n data={video.thumbnail}\r\n appLink={appLink}\r\n aspectRatio={AspectRatio.SixteenByNine}\r\n size={size}\r\n preload={preload}\r\n className={styles.gradient}\r\n >\r\n {hovering && (\r\n <SvgContainer className={styles.playIcon} svgName={cvSvgLibrary.PlayCircle} />\r\n )}\r\n\r\n <ThumbnailFallback type={ThumbnailFallbackType.Video} />\r\n <div className={styles.overlayContainer}>\r\n <div className={`${styles.title} ${hovering ? styles.downScale : ''}`}>\r\n {!!props.video.series?.id && (\r\n <SeriesLink\r\n className='text-shadow clamp-1'\r\n video={video}\r\n appLink={null}\r\n />\r\n )}\r\n\r\n <span className={`h6 text-reset text-shadow clamp-1 mb-0`}>\r\n {video.name}\r\n </span>\r\n\r\n {hovering && (\r\n <BadgeListContainer className={`align-items-center mb-n1`}>\r\n <Badge type={BadgeType.Duration} data={video.duration} />\r\n <Badge type={BadgeType.Rating} data={video.rating} />\r\n {/*\r\n TODO: Determine if video has subtitles when Prad updates the backend to\r\n include this info on videos retrieved by `/dashboards/playlists/{id}`\r\n */}\r\n <span className='badge p-0'>\r\n <SvgContainer svgName={cvSvgLibrary.CloseCaptionBadge} />\r\n </span>\r\n </BadgeListContainer>\r\n )}\r\n </div>\r\n </div>\r\n </BaseThumbnail>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"overlayContainer\":\"cv--overlayContainer--1MQy4\",\"favouriteContainer\":\"cv--favouriteContainer--2obuZ\",\"favouriteButton\":\"cv--favouriteButton--1UfdO\",\"title\":\"cv--title--Q1km-\",\"downScale\":\"cv--downScale--2_7sb\",\"gradient\":\"cv--gradient--Of_Cn\",\"playIcon\":\"cv--playIcon--B9cJG\"};","import React from 'react';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { VideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\r\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\r\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\r\nimport { BaseThumbnail, AspectRatio } from 'libs/shared/components/thumbnails/base/BaseThumbnail';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { MaskType, Mask } from 'libs/shared/components/mask/Mask';\r\nimport { SeriesLink } from 'libs/shared/components/series-link/SeriesLink';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\r\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\r\n\r\nimport styles from './static-video-thumbnail.scss';\r\n\r\nfunction ThumbnailText(props: VideoThumbnailProps): JSX.Element {\r\n const { video, seriesAppLink, textPosition, appLink } = props;\r\n\r\n const textIsOverlayed = textPosition === ThumbnailTextPosition.Overlay;\r\n\r\n const className = textIsOverlayed\r\n ? styles.titleOverlay\r\n : styles.titleBelow;\r\n\r\n return (\r\n <div className={className}>\r\n {!!props.video.series?.id &&\r\n <SeriesLink\r\n className={textIsOverlayed ? `text-shadow clamp-1` : 'clamp-2'}\r\n video={video}\r\n appLink={!textIsOverlayed ? seriesAppLink : null}\r\n />\r\n }\r\n\r\n {textIsOverlayed\r\n ? <span className={`h6 text-reset text-shadow clamp-1 mb-0`}>\r\n {video.name}\r\n </span>\r\n : <AppLink className='h6 text-reset clamp-2 mb-0' appLink={appLink}>\r\n {video.name}\r\n </AppLink>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\nexport function StaticVideoThumbnail(props: VideoThumbnailProps): JSX.Element {\r\n const { video, appLink, textPosition, size, setFavourite, preload } = props;\r\n\r\n let className = 'position-relative';\r\n\r\n /**\r\n * By setting textPosition to overlay, we'll use the simiplified styles for the thumbnail.\r\n * TODO: Make this the default once we've tested it.\r\n */\r\n if (textPosition === ThumbnailTextPosition.Overlay)\r\n className += ` rounded overflow-hidden`;\r\n\r\n return (\r\n <div className={className}>\r\n {!!FunctionHelper.isFunction(setFavourite) &&\r\n <div className={styles.favouriteContainer}>\r\n <FavouriteButton\r\n setFavourite={setFavourite}\r\n video={video}\r\n className={`rounded-circle p-1 ${styles.favouriteButton}`}\r\n />\r\n </div>\r\n }\r\n <BaseThumbnail\r\n data={video.thumbnail}\r\n appLink={appLink}\r\n aspectRatio={AspectRatio.SixteenByNine}\r\n size={size}\r\n preload={preload}\r\n className={textPosition === ThumbnailTextPosition.Overlay ? styles.gradient : ''}\r\n >\r\n <Mask type={MaskType.Video} />\r\n <ThumbnailFallback type={ThumbnailFallbackType.Video} />\r\n <div className={styles.overlayContainer}>\r\n {textPosition === ThumbnailTextPosition.Overlay && <ThumbnailText {...props} />}\r\n <BadgeListContainer className={styles.badgeContainer}>\r\n <Badge type={BadgeType.Duration} data={video.duration} />\r\n </BadgeListContainer>\r\n </div>\r\n </BaseThumbnail>\r\n\r\n {textPosition === ThumbnailTextPosition.Below && <ThumbnailText {...props} />}\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleOverlay\":\"cv--titleOverlay--1JIh4\",\"titleBelow\":\"cv--titleBelow--1OKu_\",\"overlayContainer\":\"cv--overlayContainer--1BBKk\",\"favouriteContainer\":\"cv--favouriteContainer--23tXc\",\"favouriteButton\":\"cv--favouriteButton--2lJ57\",\"badgeContainer\":\"cv--badgeContainer--28ZUf\",\"gradient\":\"cv--gradient--1o4aT\"};","export enum ThumbnailTextPosition {\r\n Below = 1,\r\n Overlay = 2,\r\n Independent = 3\r\n}","import { useService } from 'libs/common/react/hooks/UseService';\r\nimport { BaseAlertService, BaseAlert, BaseAlertOptions, AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\r\nimport { CommonServices } from 'libs/common/backbone/constants/CommonServices';\r\n\r\nexport const useAlerts = () => {\r\n const alertService = useService<BaseAlertService>(CommonServices.ALERT);\r\n\r\n return {\r\n success(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.success(alertContent)();\r\n },\r\n error(alertContent: string | BaseAlert | BaseAlertOptions): void {\r\n alertService.error(alertContent)();\r\n },\r\n warning(alertContent: string): void {\r\n alertService.createAlert({\r\n type: AlertType.Warning,\r\n heading: DefaultAlertHeading.Warning,\r\n message: alertContent\r\n });\r\n }\r\n };\r\n};","export const VideoDetailsHelper = {\r\n mapRatingToClass(ratingValue: number): string {\r\n if (!ratingValue) return '';\r\n\r\n const ratings = (rating: number): string => {\r\n switch (true) {\r\n case (rating < 32):\r\n return 'bg-purple';\r\n case (rating < 48):\r\n return 'bg-success';\r\n case (rating < 80):\r\n return 'bg-info';\r\n case (rating < 96):\r\n return 'bg-danger';\r\n case (rating < 128):\r\n return 'bg-pink';\r\n case (rating >= 128):\r\n return 'bg-warning';\r\n default:\r\n return ''; // Handles unrated\r\n }\r\n };\r\n\r\n return ratings(ratingValue);\r\n }\r\n};"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[10],{416:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return m}));var n,r,i=a(0),c=a(78),s=a(33),o=a(10),l=a(9),u=a(458),d=a.n(u);function m(e){const{type:t,mediaType:a,extraClasses:u}=e,m=(Object(c.a)(l.b.ImageUrl).getImageUrls(),function(e){return e===n.Video?d.a.videoFallback:e===n.Playlist?d.a.playlistFallback:e===n.Series||e===n.TallSubject?d.a.posterFallback:e===n.Subject?d.a.subjectFallback:""}(t)),p=function(e,t){return e===n.Video?o.b.Play:e===n.Playlist?o.b.Playlist:e===n.Series?o.b.Series:e===n.Subject||e===n.TallSubject?o.b.Subject:""}(t);let b=""+function(e,t){return t===n.Subject?d.a.subjectFallbackContainer:e===r.Svg?d.a.svgFallbackContainer:d.a.baseFallbackContainer}(a,t);return u&&(b+=" "+e.extraClasses),i.createElement("div",{className:b},a===r.Svg?i.createElement(s.a,{svgName:p,className:m,tagName:"div"}):i.createElement("div",{className:d.a.fallbackThumbnailImage,style:{backgroundImage:`url('${p}')`}}))}!function(e){e[e.Video=0]="Video",e[e.Playlist=1]="Playlist",e[e.Series=2]="Series",e[e.Subject=3]="Subject",e[e.TallSubject=4]="TallSubject"}(n||(n={})),function(e){e[e.Svg=0]="Svg",e[e.Image=1]="Image"}(r||(r={})),m.defaultProps={mediaType:r.Svg}},426:function(e,t,a){"use strict";var n;a.d(t,"a",(function(){return n})),function(e){e.Small="small",e.Medium="medium",e.Large="large",e.Raw="raw"}(n||(n={}))},427:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a(7),i=a(33),c=a(34),s=a(10);function o({backToName:e,appLink:t,color:a}){const o=e?r.a.getPhrase("shared.backButton","backTo",{backToName:e}):r.a.getPhrase("shared.backButton","back"),l="black"===a?"":"text-light";return n.createElement(c.a,{appLink:t,className:"d-inline-flex align-items-center h5 mb-0 "+l},n.createElement(i.a,{svgName:s.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},o))}o.defaultProps={color:"black"}},429:function(e,t,a){"use strict";var n=a(0),r=a(36),i=a(406),c=a(456),s=a.n(c),o=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};const l=n.memo((function(e){var{forceLoad:t}=e,a=o(e,["forceLoad"]);const[r,c]=i.useInView({triggerOnce:!0});if(void 0===window.IntersectionObserver)return n.createElement("img",Object.assign({alt:""},a));const{src:l}=a,u=o(a,["src"]),d=Object.assign(Object.assign({alt:""},u),c||t?{src:l}:{});return t||(d.ref=r),n.createElement("img",Object.assign({className:s.a.image},d))}));var u,d=a(34),m=a(426),p=a(457),b=a.n(p);function f(e){let t="thumbnail "+b.a.thumbnail,a="";return e.aspectRatio===u.SixteenByNine&&(a=b.a.sixteenByNine),e.aspectRatio===u.NineBySixteen&&(a=b.a.nineBySixteen),e.aspectRatio===u.OneByOne&&(a=b.a.oneByOne),e.aspectRatio===u.TwoByThree&&(a=b.a.twoByThree),a&&(t+=" "+a),e.className&&(t+=" "+e.className),t}function g(e){const{data:t,size:a,appLink:i,preload:c}=e;let s="";"string"==typeof t?s=t:r.a.isObject(t)&&(s=t.url);const o=s&&function(e,t=m.a.Small){return`${e}?size=${t}`}(s,a);return n.createElement("div",{className:f(e)},n.createElement(d.a,{appLink:i},e.children,o&&n.createElement(l,{src:o,forceLoad:c})))}a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return g})),function(e){e[e.SixteenByNine=0]="SixteenByNine",e[e.OneByOne=1]="OneByOne",e[e.TwoByThree=2]="TwoByThree",e[e.NineBySixteen=3]="NineBySixteen"}(u||(u={}))},430:function(e,t,a){"use strict";var n=a(0),r=a(28),i=a(131),c=a(33),s=a(34),o=a(10),l=a(435),u=a.n(l);function d(e){let t="dropdown-item";return e&&(t+=" "+e),t}function m(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);const t="actions-dropdown-"+i.a.getRandomInt();let a="px-0 "+u.a.dropdownToggle;return e.dropdownToggleClassName&&(a+=" "+e.dropdownToggleClassName),n.createElement(r.Dropdown,{className:e.className?e.className:"",alignRight:!0},n.createElement(r.Dropdown.Toggle,{as:"button",type:"button",id:t,className:a},n.createElement(c.a,{svgName:o.b.More,size:c.b.Small})),n.createElement(r.Dropdown.Menu,null,e.actions.map((e,t)=>n.createElement(s.a,{key:t,appLink:e.appLink,className:d(e.className)},e.label))))}m.defaultProps={dropdownToggleClassName:"btn btn-light"};var p=a(119),b=a(83);function f(e){const{onClick:t,appLink:a,svgName:r,tooltip:i}=e.actionOptions;let c="ml-2";return e.actionOptions.className&&(c+=" "+e.actionOptions.className),i?n.createElement(b.a,{title:i},n.createElement(p.a,{appLink:a,svgName:r,onClick:t,className:c},e.children)):r?n.createElement(p.a,{onClick:t,appLink:a,svgName:r,className:c},e.children):a?n.createElement(s.a,{onClick:t,appLink:a,className:c},e.children):n.createElement("button",{onClick:t,className:c},e.children)}function g(e){const t=[],a=[];e.actions.forEach(e=>{e.button?t.push(e):a.push(e)});let r="d-flex";return e.className&&(r+=" "+e.className),n.createElement("div",{className:r},n.createElement(n.Fragment,null,!!t.length&&n.createElement("span",{className:u.a.buttonList},t.map((e,t)=>n.createElement(f,{key:t,actionOptions:e},e.label))),e.sortComponent?e.sortComponent:"",!!a.length&&n.createElement(m,{actions:a,className:!!t.length&&"ml-2",dropdownToggleClassName:e.actionsDropdownClassName})))}a.d(t,"a",(function(){return g}))},432:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return d}));var n=a(0),r=a(427),i=a(122),c=a(80),s=a(430),o=a(433),l=a.n(o);const u=n.memo((function(e){const{heading:t,banner:a,imageCdnUrl:o,actions:u,sortComponent:d}=e,m=i.a.createBannerUrl(a,{fallbackBaseUrl:o,fallbackCategoryName:t,type:c.b.Banners},{size:c.a.Large,resizeType:c.c.Cover});return n.createElement("div",{className:"banner",style:{backgroundImage:`url('${m}')`}},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(r.a,{appLink:e.backButtonAppLink,backToName:e.backButtonText,color:"white"})),n.createElement("h1",{className:"text-white text-shadow position-absolute m-0 pb-3"},t),!!u&&n.createElement("div",{className:l.a.actionsContainer},n.createElement(s.a,{actions:u,sortComponent:d})))}),(e,t)=>e.actions===t.actions),d=()=>n.createElement("div",{className:"partial-banner partial-loading-background"})},433:function(e,t,a){e.exports={actionsContainer:"_286KF"}},434:function(e,t,a){"use strict";var n=a(0),r=a(28);const i={mapRatingToClass(e){if(!e)return"";return(e=>{switch(!0){case e<32:return"bg-purple";case e<48:return"bg-success";case e<80:return"bg-info";case e<96:return"bg-danger";case e<128:return"bg-pink";case e>=128:return"bg-warning";default:return""}})(e)}};var c,s=a(132),o=a(460),l=a.n(o);function u(e){const{type:t,data:a}=e;if(!function(e,t){return e===c.Rating?t&&!!t.value:!!t}(t,a))return n.createElement(n.Fragment,null);const o=function(e,t){let a="";return e===c.Duration&&(a=l.a.duration),e===c.Interactive&&(a=l.a.interactive),e===c.Rating&&(a=`${l.a.rating} ${i.mapRatingToClass(t.value)}`),e===c.ProductionYear&&(a=l.a.productionYear),"badge "+a}(t,a),u=function(e,t){return e===c.Interactive?"Interactive":e===c.Duration?s.a.ToDisplayDuration(t):e===c.Rating?t.code:e===c.ProductionYear?t:void 0}(t,a),d=function(e,t){return e===c.Rating?{title:t.name,placement:"top"}:null}(t,a);return d?n.createElement(r.OverlayTrigger,{placement:d.placement,overlay:n.createElement(r.Tooltip,{id:d.title},d.title)},n.createElement("span",{className:o},u)):n.createElement("span",{className:o},u)}a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return u})),function(e){e.Duration="duration",e.Interactive="interactive",e.Rating="rating",e.ProductionYear="production-year"}(c||(c={}))},435:function(e,t,a){e.exports={buttonList:"_2v9CT",dropdownToggle:"AYBvQ"}},439:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(67);const r=/([0-9]+)/gi,i=/(^\w+)/gi;const c={getSortedPresentationAudiences(e,t){const a=e.map(e=>e.id.toString());return t.filter(e=>a.includes(e.masterId.toString()))},getMergedPresentationAudienceString(e){if(1===e.length)return e[0];const t=e.map(e=>e.name).join(","),a=t.match(r),n=t.match(i);if(!a||!n)return e[0];const c=function(e){let t,a,n=!1;const r=[];let i,c;for(e=e.sort((e,t)=>e-t),i=0;i<e.length;i++)c=i+1,n||(t=e[i]),a=e[c],e[i]+1===a?n=!0:n?(r.push(`${t} - ${e[i]}`),n=!1):(r.push(""+e[i]),n=!1);return r}(a.map(e=>+e)||[]);return{name:`${n[0]} ${c.join(" , ")}`}},sortMembersWithDuplicateNamesByAudience(e){const t=e=>{let t,a;return e.forEach(e=>{const i=+n.a.first(e.name.match(r));if(!t)return t=e,void(a=i);i>a&&(t=e)}),t},a={};let i=[];return e.forEach(e=>{if(!a[e.name])return a[e.name]=1,void i.push(e);i.push(e),a[e.name]++;const n=i.splice(i.length-a[e.name]).sort((e,a)=>{const n=t(e.subjectPresentationAudiences.data),r=t(a.subjectPresentationAudiences.data);return n.name.localeCompare(r.name)});i=i.concat(n)}),i}}},440:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0);a(463);function r(e){return e.audience?n.createElement("div",{className:"border rounded-pill d-inline-block px-2 mt-1 "+("border-"+e.border)},e.audience.name):n.createElement(n.Fragment,null)}},441:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));const n=5,r=50,i=100,c={getPartialLoadingItems(e={}){const{numItems:t=n,minWidth:a=r,maxWidth:c=i}=e;return[...Array(t)].map(()=>({width:Math.max(Math.floor(Math.random()*c),a)+"px"}))}}},452:function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return s}));var n=a(0),r=a(26);const i={className:"",delay:0};function c(e=i){const[t,a]=n.useState(!1),c=n.useRef(null),s=r.a.throttle(()=>{var t,n;e.className&&(null===(n=null===(t=c.current)||void 0===t?void 0:t.classList)||void 0===n||n.add(e.className)),a(!0)},e.delay,{leading:!1}),o=()=>{var t,n;r.a.isFunction(s.cancel)&&s.cancel(),e.className&&(null===(n=null===(t=c.current)||void 0===t?void 0:t.classList)||void 0===n||n.remove(e.className)),a(!1)};return n.useLayoutEffect(()=>{const e=c.current;if(e)return e.addEventListener("mouseenter",s),e.addEventListener("mouseleave",o),()=>{e.removeEventListener("mouseenter",s),e.removeEventListener("mouseleave",o)}},[c.current]),[c,t]}function s(e){return c({className:e,delay:275})}},454:function(e,t,a){e.exports={partialLoadingHeading:"_1RLPq",partialLoading:"oArG4",labelContainer:"QLCgm",hoverActive:"_3Aleb",mask:"_2M2Zz",width:"TQg2K"}},456:function(e,t,a){e.exports={image:"_1YW-E"}},457:function(e,t,a){e.exports={thumbnail:"_3lfBf",sixteenByNine:"_2LqZ8",nineBySixteen:"_136ry",oneByOne:"_2wYLa",twoByThree:"_1eC6Q"}},458:function(e,t,a){e.exports={baseFallbackContainer:"_1wRjB",svgFallbackContainer:"_2t1jq",subjectFallbackContainer:"_12D74",videoFallback:"_6BPy-",playlistFallback:"_1slQX",posterFallback:"i0o8n",subjectFallback:"_2Srdd",fallbackThumbnailImage:"_2L_tV"}},460:function(e,t,a){e.exports={duration:"_3XH_S",interactive:"INxgX",productionYear:"Bt6Bx",rating:"_3bOtF",badgeList:"_1BsVS"}},463:function(e,t,a){e.exports={audienceLabelListItem:"_2YGVO"}},464:function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var n=a(0),r=a(35),i=a(452),c=a(439),s=a(34),o=a(429),l=a(416),u=a(426),d=a(440),m=a(434),p=a(454),b=a.n(p);function f(e){const{data:t,appLink:a,preloadImage:p}=e,f=Object.assign(Object.assign({},a),{args:[t.id,r.a.slugify(t.name)]});let g=t&&t.subjectPresentationAudiences&&t.subjectPresentationAudiences.data||[];const v=c.a.getSortedPresentationAudiences(g,e.audiences),h=c.a.getMergedPresentationAudienceString(v),[y,E]=Object(i.b)(b.a.hoverActive);return n.createElement(s.a,{key:t.id,appLink:f,className:"position-relative p-1 flex-shrink-0 "+b.a.width},n.createElement("div",{ref:y},E&&n.createElement("div",{className:"p-3 text-white text-center "+b.a.mask},n.createElement("h3",{className:"h4"},t.name),n.createElement("p",null,t.description)),n.createElement(o.b,{data:t.tallPoster,aspectRatio:o.a.NineBySixteen,preload:p,size:u.a.Large},n.createElement(l.a,{type:l.b.Series}),n.createElement("div",{className:"position-absolute text-white "+b.a.labelContainer},g&&g.length?n.createElement(d.a,{audience:h,border:"white"}):n.createElement(m.a,{type:m.b.Rating,data:t.rating})))))}},465:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));const n=()=>"/api/domain/v1/subjects/audiences",r={presentationAudiences:()=>({bootstrapName:"presentationAudiences",url:n(),key:"presentation:audiences",normalize:!1})}},466:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a(454),i=a.n(r);const c=[...Array(4)],s=()=>n.createElement("div",{className:"pb-3"},n.createElement("div",{className:"partial-loading-background "+i.a.partialLoadingHeading,dangerouslySetInnerHTML:{__html:"&nbsp"}}),n.createElement("div",{className:"row"},c.map((e,t)=>n.createElement("div",{key:t,className:"col-6 col-sm-4 col-lg-3 "},n.createElement("div",{className:"py-2"},n.createElement("div",{className:i.a.partialLoading+" partial-loading-background"}))))))},467:function(e,t,a){"use strict";var n;function r(e,t){switch(t.type){case n.Init:return Object.assign(Object.assign({},e),t.payload.reduce((e,t)=>(e[t.masterId]=t,e),{}));case n.Toggle:return Object.assign({},function(e,t){const a=t.audience,n=t.isSelected;if(!a)return e;const r=a.masterId,i=Object.assign({},e);return n?i[r]||(i[r]=a):delete i[r],i}(e,t.payload));default:return e}}a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return r})),function(e){e.Init="init",e.Toggle="toggle"}(n||(n={}))},479:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a(496),i=a.n(r);function c(e){const{audience:t,highlight:a,setAudience:r,isDisabled:c,extraClasses:s}=e,o=function(e,t){return e?"badge-info text-light":t?i.a.disabled+" text-muted":"badge-light"}(a,c),l=`badge-pill d-inline-block mr-1 ${c?"cursor-default":"cursor-pointer"} ${o} ${s}`;return n.createElement("span",{className:l,onClick:()=>{c||r(t,!a)},role:"checkbox","aria-checked":a},t.name.split(" ").map(e=>e.charAt(0).toUpperCase()+e.substring(1)).join(" "))}c.defaultProps={extraClasses:""}},496:function(e,t,a){e.exports={disabled:"_1KxF9"}},498:function(e,t,a){"use strict";var n=a(0),r=a(26),i=a(36),c=a(67),s=a(441),o=a(34);const l=({breadcrumb:{label:e,appLink:t,active:a}})=>n.createElement("li",{className:"breadcrumb-item"+(a?" active":"")},a?n.createElement("strong",null,e):n.createElement(o.a,{appLink:t},e)),u=({breadcrumbs:e})=>n.createElement("ol",{className:"breadcrumb m-0 p-0"},e.map((e,t)=>n.createElement(l,{key:t,breadcrumb:e})));var d;function m(e,t,a){return{label:e.name,appLink:t(e),active:a}}function p(e){const{type:t}=e,a=function(e,t){let{currentItem:a,getItemAppLink:s,getParent:o,rootItem:l,data:u,subview:d}=e;const[p,b]=Object(n.useState)([]);n.useMemo(()=>{if(t||i.a.isEmpty(u))return;const e=u.map((e,t)=>m(e,s,t+1===u.length));l&&e.unshift(l),b(e)},[u]),n.useMemo(()=>{if(!t||!r.a.isFunction(o))return;const e=[m(a,s,!0)];for(a=o(a);a;)e.unshift(m(a,s)),a=o(a);return l&&e.unshift(l),b(e)},[a,o,s,l]);const{current:f}=n.useRef({label:d,appLink:null,active:!0});if(d){p.includes(f)||b([...p,f]);const e=p.filter(e=>e.active&&e!==f);e.length&&(c.a.first(e).active=!1)}return p}(e,t===d.Dynamic);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement(u,{breadcrumbs:a}))}a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return p})),a.d(t,"c",(function(){return f})),function(e){e[e.Static=0]="Static",e[e.Dynamic=1]="Dynamic"}(d||(d={}));const b=s.a.getPartialLoadingItems({numItems:3}),f=()=>n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},b.map(({width:e},t)=>n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:e},dangerouslySetInnerHTML:{__html:"&nbsp"}})))))},533:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a(2);function i(e,t=[]){n.useEffect(()=>{const{appLink:t,paramBuilder:a,isValid:n,appLinkOptions:i}=e;(function(e,t){return!!e&&(!(!e.application||!e.action)&&!!t())})(t,n)&&(t.params=a(),r.a.AppLinkHelper.trigger(t,i))},[...t])}},534:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),r=a(36),i=a(467);const c=/\s|\+/gi;function s(e){return e?e.replace(c,"").toLowerCase():""}function o(e,t,a,c=[]){n.useEffect(()=>{if(!r.a.isObject(e)||r.a.isEmpty(e))return;if(!t||!t.length)return;let{a:n}=e;if(!n)return;"string"==typeof n&&(n=[n]);const c=n.reduce((e,t)=>(e[s(t)]=t,e),{}),o=t.filter(e=>c[s(e.name)]);a({type:i.a.Init,payload:o})},[...c])}},535:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return l}));var n=a(0),r=a(441),i=a(479),c=a(467);function s(e){const{audiences:t,activeAudiences:a,setAudience:r,disabled:s}=e;return t&&t.length?n.createElement("div",{className:"pt-3"},t.map(e=>n.createElement(i.a,{key:e.masterId,audience:e,highlight:!!a&&!!a[e.masterId],setAudience:(e,t)=>r({type:c.a.Toggle,payload:{audience:e,isSelected:t}}),isDisabled:s}))):n.createElement(n.Fragment,null)}const o=r.a.getPartialLoadingItems({numItems:6}),l=()=>n.createElement("div",{className:"pt-3"},o.map(({width:e},t)=>n.createElement("span",{key:t,className:"d-inline-block badge-pill partial-loading-background mr-1",dangerouslySetInnerHTML:{__html:"&nbsp"},style:{width:e}})))},536:function(e,t,a){"use strict";var n=a(464);a.d(t,"b",(function(){return n.a}));var r=a(466);a.d(t,"a",(function(){return r.a}))},537:function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"d",(function(){return s})),a.d(t,"c",(function(){return o})),a.d(t,"b",(function(){return l}));var n=a(35),r=a(4),i=a(11),c=function(e){return function(t){return{application:r.a.SUBJECT,action:i.a.Subjects.CLASSIFICATION,args:t?[t.id,n.a.slugify(t.name)]:[],params:e||{}}}},s=function(e){return{application:r.a.SUBJECT,action:i.a.Subjects.CLASSIFICATION_SERIES,args:e?[e.id,n.a.slugify(e.name)]:[]}},o=function(e){return{application:r.a.PLAYLISTS,action:i.a.Playlists.PLAYLIST,args:[e.id,n.a.slugify(e.name)]}},l=function(){return{application:r.a.DASHBOARD,action:i.a.Dashboard.HOME}}},608:function(e,t,a){e.exports={seriesItem:"_1tgrv"}},643:function(e,t,a){"use strict";a.r(t),a.d(t,"ClassificationSeriesListView",(function(){return L}));var n=a(0),r=a(7),i=a(12),c=a(36),s=a(432),o=a(498),l=a(126),u=a(120),d=a(133),m=a(465),p=a(533),b=a(534),f=a(467),g=a(535),v=a(536),h=a(537),y=a(608),E=a.n(y);function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,r=!1,i=void 0;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done)&&(a.push(c.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==s.return||s.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return N(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return N(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var S=r.a.encloseNamespace("subjects.classificationSeriesList");function L(e){var t,a,r,y,N,L=e.id,w=e.queryParams,j=k(n.useReducer(f.b,{}),2),I=j[0],O=j[1],x=i.a.useBasicFetch(u.a.currentUser),C=i.a.useBasicFetch(l.a.config),T=i.a.useBasicFetch((null===(t=x.data)||void 0===t?void 0:t.id)?d.a.classification(L,null===(a=x.data)||void 0===a?void 0:a.id):null),B=i.a.useBasicFetch(d.a.presentation()),A=i.a.useBasicFetch(d.a.path(L)),P=i.a.useBasicFetch(m.a.presentationAudiences()),_=c.a.keys(I),F=c.a.values(I),R=null===(y=null===(r=B)||void 0===r?void 0:r.data)||void 0===y?void 0:y.id,D=d.a.series(L,R,_),M=i.a.useGetResponse(D&&D.key),$=i.a.useGetFetch(D);n.useEffect((function(){R&&$()}),[R]);var U=Object(h.a)();Object(p.a)({appLink:Object(h.d)(T.data),paramBuilder:function(){return{a:F.map((function(e){return e.name}))}},isValid:function(){var e;return!!(null===(e=T.data)||void 0===e?void 0:e.id)},appLinkOptions:{replace:!0}},[F.length]);var V=!(!P.data||!P.data.length);Object(b.a)(w,P.data,O,[V]);var Y=!!A.data,z=!!P.data;return n.createElement("div",{className:"bg-white"},T.data&&C.data?n.createElement(s.a,{heading:S("heading",{classification:T.data.name}),banner:T.data.banner,imageCdnUrl:C.data.imageCdnUrl}):n.createElement(s.b,null),n.createElement("div",{className:"px-3"},n.createElement("div",{className:"py-3 mb-3 border-bottom"},Y?n.createElement(o.b,{currentItem:T.data,type:o.a.Static,getItemAppLink:U,data:A.data,rootItem:{label:S("dashboard"),appLink:Object(h.b)()},subview:S("subview")}):n.createElement(o.c,null),z?n.createElement(g.a,{audiences:P.data,activeAudiences:I,setAudience:O}):n.createElement(g.b,null)),(null===(N=M.data)||void 0===N?void 0:N.data)&&T.data?n.createElement("div",{className:"mx-n2"},M.data.data.map((function(e){return n.createElement("div",{className:"d-inline-flex position-relative px-2 mb-2 ".concat(E.a.seriesItem)},n.createElement(v.b,{data:e,appLink:Object(h.d)(T.data),audiences:P.data}))}))):n.createElement(v.a,null)))}}}]);
@@ -1,400 +0,0 @@
1
- (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[10],{
2
-
3
- /***/ "../../libs/common/src/react/utils/TypeHelper.ts":
4
- /*!*******************************************************************************************!*\
5
- !*** C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts ***!
6
- \*******************************************************************************************/
7
- /*! exports provided: TypeHelper */
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__, "TypeHelper", function() { return TypeHelper; });
13
- const TypeHelper = {
14
- isNumber(obj) {
15
- return TypeHelper.isType(obj, 'number');
16
- },
17
-
18
- isString(obj) {
19
- return TypeHelper.isType(obj, 'string');
20
- },
21
-
22
- isType(obj, type) {
23
- return typeof obj === type;
24
- }
25
-
26
- };
27
-
28
- /***/ }),
29
-
30
- /***/ "../../libs/shared/src/components/search-bar/SearchBar.tsx":
31
- /*!*****************************************************************************************************!*\
32
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchBar.tsx ***!
33
- \*****************************************************************************************************/
34
- /*! exports provided: SearchBar */
35
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
36
-
37
- "use strict";
38
- __webpack_require__.r(__webpack_exports__);
39
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchBar", function() { return SearchBar; });
40
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
41
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
42
- /* harmony import */ var react_autosuggest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-autosuggest */ "react-autosuggest");
43
- /* harmony import */ var react_autosuggest__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_autosuggest__WEBPACK_IMPORTED_MODULE_1__);
44
- /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
45
- /* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
46
- /* harmony import */ var _hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/UseMediaQuery */ "../../libs/shared/src/hooks/UseMediaQuery.tsx");
47
- /* harmony import */ var _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
48
- /* harmony import */ var _SearchUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SearchUtils */ "../../libs/shared/src/components/search-bar/SearchUtils.tsx");
49
- /* harmony import */ var _SearchInput__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SearchInput */ "../../libs/shared/src/components/search-bar/SearchInput.tsx");
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
- const namespace = 'shared.searchBar';
59
- const isFunction = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction;
60
- SearchBar.defaultProps = {
61
- updateQueryOnSelection: true,
62
- valueKey: 'name',
63
- activationLength: 3,
64
- suggestionLimit: 5,
65
- recentSearches: [],
66
- initialSuggestions: [],
67
- searchIconPlacement: 'right'
68
- };
69
- function SearchBar(props) {
70
- const initialState = _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getInitialState"](props.initialSuggestions, props.recentSearches);
71
- const [query, setQuery] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.initialQuery || '');
72
- const [suggestions, setSuggestions] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState);
73
- const isMobile = Object(_hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__["useMediaQuery"])(_enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__["MediaQueryStrings"].XS);
74
-
75
- const resetSuggestions = () => {
76
- setSuggestions(initialState);
77
- };
78
-
79
- const onChange = (e, {
80
- newValue
81
- }) => {
82
- setQuery(newValue);
83
- if (isFunction(props.onQueryChange)) props.onQueryChange(newValue);
84
- };
85
-
86
- const onSubmit = event => {
87
- event.preventDefault();
88
- if (isFunction(props.onSubmit)) props.onSubmit(query);
89
- };
90
-
91
- const onKeyDown = event => {
92
- if (event.keyCode === 8 && props.onBackspace && !query) props.onBackspace();
93
- };
94
-
95
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("form", {
96
- onSubmit: onSubmit
97
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_autosuggest__WEBPACK_IMPORTED_MODULE_1__, {
98
- suggestions: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionSections"](suggestions, !query, props.recentSearchHeading || _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'recentSearchHeading'), props.suggestionsHeading, props.getSections, props.suggestionLimit),
99
- onSuggestionsFetchRequested: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["onSuggestionsFetchRequestedHandler"](props, setSuggestions, resetSuggestions),
100
- onSuggestionsClearRequested: () => {
101
- if (!props.alwaysRenderSuggestions) resetSuggestions();
102
- },
103
- onSuggestionSelected: (e, {
104
- suggestion
105
- }) => {
106
- if (props.clearQueryOnSelect) setQuery('');
107
- props.onSuggestionSelected(suggestion);
108
- },
109
- getSuggestionValue: suggestion => {
110
- if (!props.updateQueryOnSelection) return query;
111
- return _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionValue"](props.valueKey, suggestion);
112
- },
113
- renderSuggestion: suggestion => {
114
- if (isFunction(props.getSuggestionComponent)) return props.getSuggestionComponent(suggestion);
115
- return _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionComponent"](props.valueKey, suggestion);
116
- },
117
- alwaysRenderSuggestions: props.alwaysRenderSuggestions,
118
-
119
- /**
120
- * Setting focusInputOnSuggestionClick to false when isMobile is true prevents the keyboard from
121
- * appearing on mobile devices when a suggestion is clicked.
122
- */
123
- focusInputOnSuggestionClick: !isMobile,
124
- inputProps: {
125
- placeholder: props.placeholder || _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'placeholder'),
126
- value: query,
127
- onChange,
128
- onKeyDown,
129
- autoFocus: !!props.autoFocusInput,
130
- onClickSearchIcon: !!props.submitOnClickSearchIcon && onSubmit,
131
- searchIconPlacement: props.searchIconPlacement
132
- },
133
- renderInputComponent: _SearchInput__WEBPACK_IMPORTED_MODULE_7__["SearchInput"],
134
- theme: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getTheme"](props.theme),
135
- multiSection: true,
136
- renderSectionTitle: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["renderSectionTitle"],
137
- getSectionSuggestions: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSectionSuggestions"]
138
- }));
139
- }
140
-
141
- /***/ }),
142
-
143
- /***/ "../../libs/shared/src/components/search-bar/SearchInput.tsx":
144
- /*!*******************************************************************************************************!*\
145
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchInput.tsx ***!
146
- \*******************************************************************************************************/
147
- /*! exports provided: SearchInput */
148
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
149
-
150
- "use strict";
151
- __webpack_require__.r(__webpack_exports__);
152
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchInput", function() { return SearchInput; });
153
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
154
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
155
- /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
156
- /* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
157
- /* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
158
- /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search-bar.scss */ "../../libs/shared/src/components/search-bar/search-bar.scss");
159
- /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4__);
160
- var __rest = undefined && undefined.__rest || function (s, e) {
161
- var t = {};
162
-
163
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
164
-
165
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
166
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
167
- }
168
- return t;
169
- };
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- const getSvgContainerClassName = onClickSearch => {
178
- const className = 'd-inline-block svg-container';
179
- if (!_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].isFunction(onClickSearch)) return className;
180
- return className + ' cursor-pointer';
181
- };
182
-
183
- function SearchInput(props) {
184
- const {
185
- onClickSearchIcon,
186
- searchIconPlacement,
187
- className
188
- } = props,
189
- inputProps = __rest(props, ["onClickSearchIcon", "searchIconPlacement", "className"]);
190
-
191
- let inputClassName = `form-control ${_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.input}`;
192
- let iconContainerClassName = 'input-group-text bg-white';
193
-
194
- if (searchIconPlacement === 'right') {
195
- inputClassName += ' border-right-0';
196
- iconContainerClassName += ' pl-0';
197
- }
198
-
199
- if (searchIconPlacement === 'left') {
200
- inputClassName += ' border-left-0';
201
- iconContainerClassName += ' pr-0';
202
- }
203
-
204
- if (className) inputClassName += ` ${className}`;
205
-
206
- const SearchIcon = () => react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
207
- className: iconContainerClassName
208
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
209
- svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Search,
210
- size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Small,
211
- onClick: onClickSearchIcon,
212
- className: getSvgContainerClassName(onClickSearchIcon)
213
- }));
214
-
215
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
216
- className: 'input-group'
217
- }, searchIconPlacement === 'left' && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
218
- className: 'input-group-prepend'
219
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SearchIcon, null)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", Object.assign({
220
- className: inputClassName
221
- }, inputProps)), searchIconPlacement === 'right' && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
222
- className: 'input-group-append'
223
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SearchIcon, null)));
224
- }
225
-
226
- /***/ }),
227
-
228
- /***/ "../../libs/shared/src/components/search-bar/SearchUtils.tsx":
229
- /*!*******************************************************************************************************!*\
230
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchUtils.tsx ***!
231
- \*******************************************************************************************************/
232
- /*! exports provided: SuggestionType, getInitialState, onSuggestionsFetchRequestedHandler, getSuggestionValue, getSuggestionComponent, getSuggestionSections, getSectionSuggestions, renderSectionTitle, getTheme */
233
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
234
-
235
- "use strict";
236
- __webpack_require__.r(__webpack_exports__);
237
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionType", function() { return SuggestionType; });
238
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInitialState", function() { return getInitialState; });
239
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSuggestionsFetchRequestedHandler", function() { return onSuggestionsFetchRequestedHandler; });
240
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionValue", function() { return getSuggestionValue; });
241
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionComponent", function() { return getSuggestionComponent; });
242
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionSections", function() { return getSuggestionSections; });
243
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSectionSuggestions", function() { return getSectionSuggestions; });
244
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderSectionTitle", function() { return renderSectionTitle; });
245
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return getTheme; });
246
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
247
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
248
- /* harmony import */ var _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/src/backbone/enums/HttpVerbs */ "../../libs/common/src/backbone/enums/HttpVerbs.ts");
249
- /* harmony import */ var _common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/src/react */ "../../libs/common/src/react/index.ts");
250
- /* harmony import */ var _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
251
- /* harmony import */ var _common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../common/src/react/utils/TypeHelper */ "../../libs/common/src/react/utils/TypeHelper.ts");
252
- /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
253
- /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./search-bar.scss */ "../../libs/shared/src/components/search-bar/search-bar.scss");
254
- /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_search_bar_scss__WEBPACK_IMPORTED_MODULE_6__);
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
- var SuggestionType;
263
-
264
- (function (SuggestionType) {
265
- SuggestionType["Local"] = "local";
266
- SuggestionType["Recent"] = "recent";
267
- SuggestionType["Remote"] = "remote";
268
- })(SuggestionType || (SuggestionType = {}));
269
-
270
- function getInitialState(initialSuggestions, recentSearches) {
271
- return {
272
- [SuggestionType.Recent]: recentSearches,
273
- [SuggestionType.Local]: initialSuggestions,
274
- [SuggestionType.Remote]: []
275
- };
276
- }
277
-
278
- function hasAttribute(obj, valueKey) {
279
- return _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].isObject(obj) && obj.hasOwnProperty(valueKey) && _common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__["TypeHelper"].isString(obj[valueKey]);
280
- }
281
-
282
- function getLocalSuggestions(query, data, valueKey) {
283
- const q = query.trim().toLowerCase();
284
- if (!q.length) return [];
285
- return data.filter(d => {
286
- if (!hasAttribute(d, valueKey) || !_common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__["TypeHelper"].isString(d[valueKey])) return false;
287
- return d[valueKey].trim().toLowerCase().includes(q);
288
- });
289
- }
290
-
291
- function fetchSuggestions(getUrl, query, callback) {
292
- const resource = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(getUrl) && getUrl(query);
293
- if (!resource) return;
294
- _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].ajaxRequest({
295
- resource,
296
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_1__["HttpVerbs"].GET,
297
- success: callback,
298
- error: () => {}
299
- });
300
- }
301
-
302
- function onSuggestionsFetchRequestedHandler(props, setSuggestions, resetSuggestions) {
303
- return ({
304
- value
305
- }) => {
306
- if (!value.length) resetSuggestions();
307
- if (value.length < props.activationLength) return;
308
-
309
- if (props.local) {
310
- const filtered = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(props.getLocalSuggestions) ? props.getLocalSuggestions(value, props.local) : getLocalSuggestions(value, props.local, props.valueKey);
311
- setSuggestions(s => Object.assign(Object.assign({}, s), {
312
- [SuggestionType.Local]: filtered
313
- }));
314
- }
315
-
316
- if (props.getRemoteUrl) fetchSuggestions(props.getRemoteUrl, value, data => setSuggestions(s => Object.assign(Object.assign({}, s), {
317
- [SuggestionType.Remote]: _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(props.formatRemoteSuggestions) ? props.formatRemoteSuggestions(data) : data
318
- })));
319
- };
320
- }
321
- function getSuggestionValue(valueKey, suggestion) {
322
- if (!hasAttribute(suggestion, valueKey)) return '';
323
- return suggestion[valueKey];
324
- }
325
- /**
326
- * Default suggestion component. Renders text based on valueKey.
327
- *
328
- * @param valueKey object attribute to be rendered.
329
- */
330
-
331
- function getSuggestionComponent(valueKey, suggestion) {
332
- return hasAttribute(suggestion, valueKey) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, suggestion[valueKey]) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
333
- }
334
- /**
335
- * Maps the suggestion state into sections.
336
- *
337
- * @param getSections - an optional function passed in from anything consuming
338
- * SearchBar used to break the local and remote suggestions into sections.
339
- */
340
-
341
- function getSuggestionSections(suggestionState, showRecentSearches, recentSearchHeading, suggestionsHeading, getSections, suggestionLimit) {
342
- const getTypeSuggestions = type => {
343
- const typeSuggestions = suggestionState[type];
344
- return typeSuggestions || [];
345
- };
346
-
347
- const recentSuggestions = showRecentSearches ? getTypeSuggestions(SuggestionType.Recent) : [];
348
- const localSuggestions = getTypeSuggestions(SuggestionType.Local);
349
- const remoteSuggestions = getTypeSuggestions(SuggestionType.Remote);
350
- let sections = [];
351
- if (recentSuggestions.length) sections.push({
352
- title: recentSearchHeading,
353
- data: recentSuggestions
354
- });
355
- const matchedSuggestions = [...localSuggestions, ...remoteSuggestions];
356
- if (Number.isInteger(suggestionLimit) && sections.length > suggestionLimit) matchedSuggestions.slice(0, suggestionLimit);
357
- if (_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(getSections)) sections.push(...getSections(matchedSuggestions));else sections.push({
358
- title: suggestionsHeading,
359
- data: matchedSuggestions
360
- });
361
- return sections;
362
- }
363
- /**
364
- * Maps a section into a list of suggestions.
365
- */
366
-
367
- function getSectionSuggestions(section) {
368
- return section.data;
369
- }
370
- function renderSectionTitle(section) {
371
- if (section.title) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("strong", null, section.title);
372
- }
373
- const defaultTheme = {
374
- container: 'position-relative',
375
- suggestionsContainerOpen: `bg-white py-1 border rounded ${_search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.suggestionsContainerOpen}`,
376
- suggestionsList: 'list-unstyled m-0',
377
- suggestion: 'cursor-pointer py-1 px-2',
378
- suggestionHighlighted: _search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.suggestionHighlighted,
379
- sectionContainer: `border-bottom py-1 ${_search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.sectionContainer}`
380
- };
381
- function getTheme(theme = {}) {
382
- return Object.assign(defaultTheme, theme);
383
- }
384
-
385
- /***/ }),
386
-
387
- /***/ "../../libs/shared/src/components/search-bar/search-bar.scss":
388
- /*!*******************************************************************************************************!*\
389
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/search-bar.scss ***!
390
- \*******************************************************************************************************/
391
- /*! no static exports found */
392
- /***/ (function(module, exports, __webpack_require__) {
393
-
394
- // extracted by mini-css-extract-plugin
395
- module.exports = {"input":"cv--input--3MysI","suggestionsContainerOpen":"cv--suggestionsContainerOpen--ahMdW","sectionContainer":"cv--sectionContainer--xstWL","suggestionHighlighted":"cv--suggestionHighlighted--3YTCa"};
396
-
397
- /***/ })
398
-
399
- }]);
400
- //# sourceMappingURL=10.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchBar.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchInput.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchUtils.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/search-bar.scss?d22e"],"names":[],"mappings":"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","file":"scripts/10.chunk.js","sourcesContent":["export const TypeHelper = {\r\n isNumber(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'number');\r\n },\r\n\r\n isString(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'string');\r\n },\r\n\r\n isType(obj: any, type: string): boolean {\r\n return typeof obj === type;\r\n }\r\n};","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\n\r\nimport * as SearchUtils from './SearchUtils';\r\nimport { SearchInput } from './SearchInput';\r\n\r\nconst namespace = 'shared.searchBar';\r\n\r\nconst isFunction = FunctionHelper.isFunction;\r\n\r\nexport interface SearchBarProps<T extends HashObject> {\r\n /**\r\n * Optional initial query. Useful for populating the search bar\r\n * on a search results page.\r\n */\r\n initialQuery?: string;\r\n\r\n /**\r\n * Callback function for when a suggestion is selected.\r\n */\r\n onSuggestionSelected: (suggestion: T) => void;\r\n\r\n /**\r\n * Flag to determine if the query should be updated when a\r\n * suggestion is selected. Defaults to `true` in `defaultProps`.\r\n * If true, SearchUtils.getSuggestionValue is used to update the query.\r\n */\r\n updateQueryOnSelection?: boolean;\r\n\r\n /**\r\n * Optional callback for when the search query changes.\r\n */\r\n onQueryChange?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback for when the search is submitted.\r\n */\r\n onSubmit?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback to get the remote resource if remote search\r\n * results are being used.\r\n */\r\n getRemoteUrl?: (query: string) => string;\r\n\r\n /**\r\n * Optional formatting function for the data returned from the remote resource.\r\n */\r\n formatRemoteSuggestions?: (data: any) => T[];\r\n\r\n /**\r\n * Optional array of recent searches.\r\n */\r\n recentSearches?: T[];\r\n\r\n /**\r\n * A label for the recent search section.\r\n * A default is provided in the i18n config.\r\n */\r\n recentSearchHeading?: string;\r\n\r\n /**\r\n * A label for the main suggestions section.\r\n * Will not be used if getSections is passed as a prop.\r\n */\r\n suggestionsHeading?: string;\r\n\r\n /**\r\n * Optional array of local data to be used as suggestion sources.\r\n */\r\n local?: T[];\r\n\r\n /**\r\n * Optional array of initial suggestions. These suggestions will be available\r\n * when no query is present. Entering a query will begin filtering suggestions.\r\n * This is useful for using SearchBar to filter a list.\r\n */\r\n initialSuggestions?: T[];\r\n\r\n /**\r\n * Key used to filter local data. This is required if local is provided,\r\n * however a default of 'name' is set in `defaultProps`.\r\n */\r\n valueKey?: keyof T;\r\n\r\n /**\r\n * Optional function to filter suggestions from local data.\r\n * SearchUtils.getLocalSuggestions will be used by default.\r\n */\r\n getLocalSuggestions?: (query: string, local: T[]) => T[];\r\n\r\n /**\r\n * Optional function for splitting suggestions into sections.\r\n * Doesn't apply to recent searches (SuggestionType.Recent).\r\n */\r\n getSections?: (suggestions: T[]) => SearchUtils.SuggestionSection<T>[];\r\n\r\n /**\r\n * Placeholder for the search input.\r\n * A default is provided in the i18n config.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * The number of characters required to begin providing suggestions.\r\n * A default is provided in `defaultProps`.\r\n */\r\n activationLength?: number;\r\n\r\n /**\r\n * Max number of suggestions to render. A default is set in `defaultProps`.\r\n * Set to false to render all suggestions (e.g. for filtering a list in memory).\r\n */\r\n suggestionLimit?: number | false;\r\n\r\n /**\r\n * Callback function to get the component to be rendered for a suggestion.\r\n * SearchUtils.getSuggestionComponent is used a default. This uses\r\n * `valueKey` to render text.\r\n */\r\n getSuggestionComponent?: (suggestion: T) => JSX.Element;\r\n\r\n /**\r\n * If true, suggestions will be rendered, even if the input isn't focussed.\r\n */\r\n alwaysRenderSuggestions?: boolean;\r\n\r\n /*\r\n * Optional theme hash to override `defaultTheme` in SearchUtils.\r\n */\r\n theme?: Autosuggest.Theme;\r\n\r\n /**\r\n * Option to determine whether to render the search icon and if so,\r\n * which side to render it on. Defaults to `right` in `defaultProps`\r\n */\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n\r\n /**\r\n * Flag to determine whether clicking the search icon should trigger\r\n * submitting the search query.\r\n */\r\n submitOnClickSearchIcon?: boolean;\r\n\r\n /**\r\n * Flag to determine whether the search input should be autofocused.\r\n */\r\n autoFocusInput?: boolean;\r\n\r\n /**\r\n * When true, the input field will be cleared whenever a suggestion is selected.\r\n */\r\n clearQueryOnSelect?: boolean;\r\n\r\n onBackspace?: () => void;\r\n}\r\n\r\nSearchBar.defaultProps = {\r\n updateQueryOnSelection: true,\r\n valueKey: 'name',\r\n activationLength: 3,\r\n suggestionLimit: 5,\r\n recentSearches: [],\r\n initialSuggestions: [],\r\n searchIconPlacement: 'right'\r\n};\r\n\r\nexport function SearchBar<T extends HashObject>(props: SearchBarProps<T>): JSX.Element {\r\n const initialState = SearchUtils.getInitialState(props.initialSuggestions, props.recentSearches);\r\n\r\n const [ query, setQuery ] = React.useState(props.initialQuery || '');\r\n const [ suggestions, setSuggestions ] = React.useState<SearchUtils.SuggestionState<T>>(initialState);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n const resetSuggestions = () => {\r\n setSuggestions(initialState);\r\n };\r\n\r\n const onChange = (e: React.ChangeEvent, { newValue }: Autosuggest.ChangeEvent) => {\r\n setQuery(newValue);\r\n\r\n if (isFunction(props.onQueryChange))\r\n props.onQueryChange(newValue);\r\n };\r\n\r\n const onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n\r\n if (isFunction(props.onSubmit))\r\n props.onSubmit(query);\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 8 && props.onBackspace && !query)\r\n props.onBackspace();\r\n };\r\n\r\n return (\r\n <form onSubmit={onSubmit}>\r\n <Autosuggest<T>\r\n suggestions={\r\n SearchUtils.getSuggestionSections(\r\n suggestions,\r\n !query,\r\n props.recentSearchHeading || LanguageService.getPhrase(namespace, 'recentSearchHeading'),\r\n props.suggestionsHeading,\r\n props.getSections,\r\n props.suggestionLimit\r\n )\r\n }\r\n onSuggestionsFetchRequested={\r\n SearchUtils.onSuggestionsFetchRequestedHandler(props, setSuggestions, resetSuggestions)\r\n }\r\n onSuggestionsClearRequested={() => {\r\n if (!props.alwaysRenderSuggestions)\r\n resetSuggestions();\r\n }}\r\n onSuggestionSelected={(e: React.FormEvent, { suggestion }: Autosuggest.SuggestionSelectedEventData<T>) => {\r\n if (props.clearQueryOnSelect)\r\n setQuery('');\r\n\r\n props.onSuggestionSelected(suggestion);\r\n }}\r\n getSuggestionValue={(suggestion: T) => {\r\n if (!props.updateQueryOnSelection)\r\n return query;\r\n\r\n return SearchUtils.getSuggestionValue(props.valueKey, suggestion);\r\n }}\r\n renderSuggestion={(suggestion: T) => {\r\n if (isFunction(props.getSuggestionComponent))\r\n return props.getSuggestionComponent(suggestion);\r\n\r\n return SearchUtils.getSuggestionComponent(props.valueKey, suggestion);\r\n }}\r\n alwaysRenderSuggestions={props.alwaysRenderSuggestions}\r\n /** \r\n * Setting focusInputOnSuggestionClick to false when isMobile is true prevents the keyboard from \r\n * appearing on mobile devices when a suggestion is clicked.\r\n */\r\n focusInputOnSuggestionClick={!isMobile}\r\n inputProps={{\r\n placeholder: props.placeholder || LanguageService.getPhrase(namespace, 'placeholder'),\r\n value: query,\r\n onChange,\r\n onKeyDown,\r\n autoFocus: !!props.autoFocusInput,\r\n onClickSearchIcon: !!props.submitOnClickSearchIcon && onSubmit,\r\n searchIconPlacement: props.searchIconPlacement\r\n } as Autosuggest.InputProps<T>}\r\n renderInputComponent={SearchInput}\r\n theme={SearchUtils.getTheme(props.theme)}\r\n multiSection\r\n renderSectionTitle={SearchUtils.renderSectionTitle}\r\n getSectionSuggestions={SearchUtils.getSectionSuggestions}\r\n />\r\n </form>\r\n );\r\n}","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './search-bar.scss';\r\n\r\nconst getSvgContainerClassName = (onClickSearch: () => void) => {\r\n const className = 'd-inline-block svg-container';\r\n\r\n if (!FunctionHelper.isFunction(onClickSearch))\r\n return className;\r\n\r\n return className + ' cursor-pointer';\r\n};\r\n\r\ninterface SearchInputProps {\r\n onClickSearchIcon?: () => void;\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n}\r\n\r\nexport function SearchInput<T extends {}>(props: SearchInputProps & Autosuggest.InputProps<T>): JSX.Element {\r\n const { onClickSearchIcon, searchIconPlacement, className, ...inputProps } = props;\r\n\r\n let inputClassName = `form-control ${styles.input}`;\r\n\r\n let iconContainerClassName = 'input-group-text bg-white';\r\n\r\n\r\n if (searchIconPlacement === 'right') {\r\n inputClassName += ' border-right-0';\r\n iconContainerClassName += ' pl-0';\r\n }\r\n\r\n if (searchIconPlacement === 'left') {\r\n inputClassName += ' border-left-0';\r\n iconContainerClassName += ' pr-0';\r\n }\r\n\r\n if (className)\r\n inputClassName += ` ${className}`;\r\n\r\n\r\n const SearchIcon = () => (\r\n <div className={iconContainerClassName}>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Search}\r\n size={SvgContainerSize.Small}\r\n onClick={onClickSearchIcon}\r\n className={getSvgContainerClassName(onClickSearchIcon)}\r\n />\r\n </div>\r\n );\r\n\r\n return (\r\n <div className='input-group'>\r\n {searchIconPlacement === 'left' &&\r\n <div className='input-group-prepend'>\r\n <SearchIcon />\r\n </div>\r\n }\r\n <input className={inputClassName} {...inputProps as React.HTMLProps<HTMLInputElement>} />\r\n {searchIconPlacement === 'right' &&\r\n <div className='input-group-append'>\r\n <SearchIcon />\r\n </div>\r\n }\r\n </div>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { TypeHelper } from 'libs/common/react/utils/TypeHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { SearchBarProps } from './SearchBar';\r\n\r\nimport styles from './search-bar.scss';\r\n\r\nexport enum SuggestionType {\r\n Local = 'local',\r\n Recent = 'recent',\r\n Remote = 'remote'\r\n}\r\n\r\n/**\r\n * Suggestions grouped as a section\r\n */\r\nexport interface SuggestionSection<T extends HashObject> {\r\n data: T[];\r\n title?: string;\r\n}\r\n\r\n/**\r\n * How suggestion data is stored in state in SearchBar\r\n */\r\nexport type SuggestionState<T extends HashObject> = { [ key in SuggestionType ]: T[] };\r\n\r\nexport function getInitialState<T extends HashObject>(\r\n initialSuggestions: T[], recentSearches: T[]\r\n): SuggestionState<T> {\r\n return {\r\n [SuggestionType.Recent]: recentSearches,\r\n [SuggestionType.Local]: initialSuggestions,\r\n [SuggestionType.Remote]: []\r\n };\r\n}\r\n\r\nfunction hasAttribute<T extends HashObject>(obj: T, valueKey: keyof T): boolean {\r\n return ObjectHelper.isObject(obj) && obj.hasOwnProperty(valueKey) && TypeHelper.isString(obj[valueKey]);\r\n}\r\n\r\nfunction getLocalSuggestions<T extends HashObject>(query: string, data: T[], valueKey: keyof T): T[] {\r\n const q = query.trim().toLowerCase();\r\n\r\n if (!q.length)\r\n return [];\r\n\r\n return data.filter(d => {\r\n if (!hasAttribute(d, valueKey) || !TypeHelper.isString(d[valueKey]))\r\n return false;\r\n\r\n return d[valueKey].trim().toLowerCase().includes(q);\r\n });\r\n}\r\n\r\nfunction fetchSuggestions<T extends HashObject>(\r\n getUrl: (query: string) => string, query: string, callback: (suggestions: T[]) => void\r\n): void {\r\n const resource = FunctionHelper.isFunction(getUrl) && getUrl(query);\r\n\r\n if (!resource)\r\n return;\r\n\r\n Flight.ajaxRequest({\r\n resource,\r\n type: HttpVerbs.GET,\r\n success: callback,\r\n error: () => {}\r\n });\r\n}\r\n\r\nexport function onSuggestionsFetchRequestedHandler<T extends HashObject>(\r\n props: SearchBarProps<T>,\r\n setSuggestions: React.Dispatch<React.SetStateAction<SuggestionState<T>>>,\r\n resetSuggestions: () => void\r\n): (params: Autosuggest.SuggestionsFetchRequestedParams) => void {\r\n return ({ value }: Autosuggest.SuggestionsFetchRequestedParams) => {\r\n if (!value.length)\r\n resetSuggestions();\r\n\r\n if (value.length < props.activationLength)\r\n return;\r\n\r\n if (props.local) {\r\n const filtered = FunctionHelper.isFunction(props.getLocalSuggestions)\r\n ? props.getLocalSuggestions(value, props.local)\r\n : getLocalSuggestions(value, props.local, props.valueKey);\r\n\r\n setSuggestions(s => ({ ...s, [SuggestionType.Local]: filtered }));\r\n }\r\n\r\n if (props.getRemoteUrl)\r\n fetchSuggestions(\r\n props.getRemoteUrl,\r\n value,\r\n (data: any) => setSuggestions(\r\n s => ({\r\n ...s,\r\n [SuggestionType.Remote]: FunctionHelper.isFunction(props.formatRemoteSuggestions)\r\n ? props.formatRemoteSuggestions(data)\r\n : data\r\n })\r\n )\r\n );\r\n };\r\n}\r\n\r\nexport function getSuggestionValue<T extends HashObject>(valueKey: keyof T, suggestion: T): string {\r\n if (!hasAttribute(suggestion, valueKey))\r\n return '';\r\n\r\n return suggestion[valueKey];\r\n}\r\n\r\n/**\r\n * Default suggestion component. Renders text based on valueKey.\r\n * \r\n * @param valueKey object attribute to be rendered.\r\n */\r\nexport function getSuggestionComponent<T extends HashObject>(valueKey: keyof T, suggestion: T): JSX.Element {\r\n return hasAttribute(suggestion, valueKey)\r\n ? <>\r\n {suggestion[valueKey]}\r\n </>\r\n : <></>;\r\n}\r\n\r\n/**\r\n * Maps the suggestion state into sections.\r\n * \r\n * @param getSections - an optional function passed in from anything consuming\r\n * SearchBar used to break the local and remote suggestions into sections.\r\n */\r\nexport function getSuggestionSections<T extends HashObject>(\r\n suggestionState: SuggestionState<T>,\r\n showRecentSearches: boolean,\r\n recentSearchHeading: string,\r\n suggestionsHeading?: string,\r\n getSections?: (suggestions: T[]) => SuggestionSection<T>[],\r\n suggestionLimit?: number | false\r\n): SuggestionSection<T>[] {\r\n const getTypeSuggestions = (type: SuggestionType) => {\r\n const typeSuggestions = suggestionState[type];\r\n\r\n return typeSuggestions || [];\r\n };\r\n\r\n const recentSuggestions = showRecentSearches ? getTypeSuggestions(SuggestionType.Recent) : [];\r\n const localSuggestions = getTypeSuggestions(SuggestionType.Local);\r\n const remoteSuggestions = getTypeSuggestions(SuggestionType.Remote);\r\n\r\n let sections: SuggestionSection<T>[] = [];\r\n\r\n if (recentSuggestions.length)\r\n sections.push({\r\n title: recentSearchHeading,\r\n data: recentSuggestions\r\n });\r\n\r\n const matchedSuggestions = [ ...localSuggestions, ...remoteSuggestions ];\r\n\r\n if (Number.isInteger((suggestionLimit as number)) && sections.length > suggestionLimit)\r\n matchedSuggestions.slice(0, (suggestionLimit as number));\r\n\r\n if (FunctionHelper.isFunction(getSections))\r\n sections.push(...getSections(matchedSuggestions));\r\n else\r\n sections.push({ title: suggestionsHeading, data: matchedSuggestions });\r\n\r\n return sections;\r\n}\r\n\r\n/**\r\n * Maps a section into a list of suggestions.\r\n */\r\nexport function getSectionSuggestions<T extends HashObject>(section: SuggestionSection<T>): T[] {\r\n return section.data;\r\n}\r\n\r\nexport function renderSectionTitle<T extends HashObject>(section: SuggestionSection<T>): JSX.Element | null {\r\n if (section.title)\r\n return <strong>{section.title}</strong>;\r\n}\r\n\r\nconst defaultTheme = {\r\n container: 'position-relative',\r\n suggestionsContainerOpen: `bg-white py-1 border rounded ${styles.suggestionsContainerOpen}`,\r\n suggestionsList: 'list-unstyled m-0',\r\n suggestion: 'cursor-pointer py-1 px-2',\r\n suggestionHighlighted: styles.suggestionHighlighted,\r\n sectionContainer: `border-bottom py-1 ${styles.sectionContainer}`\r\n};\r\n\r\nexport function getTheme(theme: Autosuggest.Theme = {}): Autosuggest.Theme {\r\n return Object.assign(defaultTheme, theme);\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"cv--input--3MysI\",\"suggestionsContainerOpen\":\"cv--suggestionsContainerOpen--ahMdW\",\"sectionContainer\":\"cv--sectionContainer--xstWL\",\"suggestionHighlighted\":\"cv--suggestionHighlighted--3YTCa\"};"],"sourceRoot":""}