@clickview/streamable-learning 0.34.0 → 0.34.1-dev.0

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 (437) hide show
  1. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  2. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  3. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  4. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  5. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  6. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  7. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  10. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  11. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  12. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  13. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  16. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  17. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  18. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  19. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  20. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  21. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  22. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  23. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  24. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  25. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  26. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  27. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  28. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  29. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  30. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  31. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  32. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  33. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  34. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  35. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  36. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  37. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  43. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  44. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  45. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  46. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  47. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  48. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  49. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  50. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  51. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  52. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  53. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  54. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  55. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  56. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  57. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  58. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  59. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  60. package/dist/bundles.json +2 -2
  61. package/dist/css/B-attovs.chunk.css +9 -0
  62. package/dist/css/B1NucFMn.chunk.css +1 -0
  63. package/dist/css/BPdg7JW4.chunk.css +1 -0
  64. package/dist/css/BPrUSCaY.chunk.css +1 -0
  65. package/dist/css/BR0fUt9D.chunk.css +1 -0
  66. package/dist/css/BhYm6SRm.chunk.css +1 -0
  67. package/dist/css/BiRz4h1c.chunk.css +1 -0
  68. package/dist/css/Bq1ChJn4.chunk.css +1 -0
  69. package/dist/css/Bt85j9js.chunk.css +1 -0
  70. package/dist/css/BuYrqi9E.chunk.css +1 -0
  71. package/dist/css/BugV1Bpa.chunk.css +1 -0
  72. package/dist/css/BuuVPl7n.chunk.css +1 -0
  73. package/dist/css/C1NkrNqQ.chunk.css +1 -0
  74. package/dist/css/C1qv5jz5.chunk.css +1 -0
  75. package/dist/css/C7XoyEPr.chunk.css +1 -0
  76. package/dist/css/C7_MDu56.chunk.css +1 -0
  77. package/dist/css/CC5F5C8O.chunk.css +1 -0
  78. package/dist/css/CChSC6Ta.chunk.css +1 -0
  79. package/dist/css/CCsCPLDG.chunk.css +1 -0
  80. package/dist/css/CD1qrI1T.chunk.css +1 -0
  81. package/dist/css/CKqvCBj4.chunk.css +1 -0
  82. package/dist/css/CLZ0Ycds.chunk.css +1 -0
  83. package/dist/css/CO7M4rZW.chunk.css +1 -0
  84. package/dist/css/CY0yvCW4.chunk.css +1 -0
  85. package/dist/css/CYGsw8FT.chunk.css +1 -0
  86. package/dist/css/Cbi3KYBa.chunk.css +1 -0
  87. package/dist/css/CliS8Q8r.chunk.css +1 -0
  88. package/dist/css/D-kQKsZN.chunk.css +1 -0
  89. package/dist/css/D2NwUVrK.chunk.css +1 -0
  90. package/dist/css/D4g1IoUU.chunk.css +1 -0
  91. package/dist/css/DBgpcO3T.chunk.css +1 -0
  92. package/dist/css/DDnpOnVB.chunk.css +1 -0
  93. package/dist/css/DZJSONGP.chunk.css +1 -0
  94. package/dist/css/Dc0zNt2E.chunk.css +1 -0
  95. package/dist/css/DeAfaPiD.chunk.css +1 -0
  96. package/dist/css/Dj731zLm.chunk.css +1 -0
  97. package/dist/css/DjPPxa0A.chunk.css +1 -0
  98. package/dist/css/DlOtoSz0.chunk.css +1 -0
  99. package/dist/css/DwduQat7.chunk.css +1 -0
  100. package/dist/css/Dzuu2GTx.chunk.css +1 -0
  101. package/dist/css/JAvsJreH.chunk.css +1 -0
  102. package/dist/css/NKlFYVOc.chunk.css +1 -0
  103. package/dist/css/VZd8qGtK.chunk.css +1 -0
  104. package/dist/css/Y7U--2na.chunk.css +1 -0
  105. package/dist/css/ir3IcK_l.chunk.css +1 -0
  106. package/dist/css/jbMisi9r.chunk.css +1 -0
  107. package/dist/css/kS5aDtIJ.chunk.css +1 -0
  108. package/dist/css/mqCL1o7m.chunk.css +1 -0
  109. package/dist/css/qZzkUeZk.chunk.css +1 -0
  110. package/dist/css/sC_H3yXE.chunk.css +1 -0
  111. package/dist/css/wR_6C_NV.chunk.css +1 -0
  112. package/dist/en.json +1 -0
  113. package/dist/scripts/-Oi3rE3V.chunk.js +5 -0
  114. package/dist/scripts/-Oi3rE3V.chunk.js.map +1 -0
  115. package/dist/scripts/-cwk-1Iv.chunk.js +2 -0
  116. package/dist/scripts/-cwk-1Iv.chunk.js.map +1 -0
  117. package/dist/scripts/4oi1ldJ4.chunk.js +3 -0
  118. package/dist/scripts/4oi1ldJ4.chunk.js.map +1 -0
  119. package/dist/scripts/6UeJLeAd.chunk.js +2 -0
  120. package/dist/scripts/6UeJLeAd.chunk.js.map +1 -0
  121. package/dist/scripts/8zar0u1i.chunk.js +2 -0
  122. package/dist/scripts/8zar0u1i.chunk.js.map +1 -0
  123. package/dist/scripts/9NIa7Pi_.chunk.js +2 -0
  124. package/dist/scripts/9NIa7Pi_.chunk.js.map +1 -0
  125. package/dist/scripts/B5OOLcT3.chunk.js +2 -0
  126. package/dist/scripts/B5OOLcT3.chunk.js.map +1 -0
  127. package/dist/scripts/B8XJmK96.chunk.js +8 -0
  128. package/dist/scripts/B8XJmK96.chunk.js.map +1 -0
  129. package/dist/scripts/BA6k9XoA.chunk.js +2 -0
  130. package/dist/scripts/BA6k9XoA.chunk.js.map +1 -0
  131. package/dist/scripts/BBnDr_iy.chunk.js +2 -0
  132. package/dist/scripts/BBnDr_iy.chunk.js.map +1 -0
  133. package/dist/scripts/BEL0opwe.chunk.js +2 -0
  134. package/dist/scripts/BEL0opwe.chunk.js.map +1 -0
  135. package/dist/scripts/BHmtLW9C.chunk.js +2 -0
  136. package/dist/scripts/BHmtLW9C.chunk.js.map +1 -0
  137. package/dist/scripts/BJ0C6oH6.chunk.js +2 -0
  138. package/dist/scripts/BJ0C6oH6.chunk.js.map +1 -0
  139. package/dist/scripts/BPcJv8Nj.chunk.js +2 -0
  140. package/dist/scripts/BPcJv8Nj.chunk.js.map +1 -0
  141. package/dist/scripts/BQQ9SPei.chunk.js +10 -0
  142. package/dist/scripts/BQQ9SPei.chunk.js.map +1 -0
  143. package/dist/scripts/BQQZ0Zva.chunk.js +2 -0
  144. package/dist/scripts/BQQZ0Zva.chunk.js.map +1 -0
  145. package/dist/scripts/BRKKXF-k.chunk.js +2 -0
  146. package/dist/scripts/BRKKXF-k.chunk.js.map +1 -0
  147. package/dist/scripts/BUhbk0mt.chunk.js +2 -0
  148. package/dist/scripts/BUhbk0mt.chunk.js.map +1 -0
  149. package/dist/scripts/BXKrMYdw.chunk.js +2 -0
  150. package/dist/scripts/BXKrMYdw.chunk.js.map +1 -0
  151. package/dist/scripts/B_eK8A25.chunk.js +2 -0
  152. package/dist/scripts/B_eK8A25.chunk.js.map +1 -0
  153. package/dist/scripts/BbjveACT.chunk.js +2 -0
  154. package/dist/scripts/BbjveACT.chunk.js.map +1 -0
  155. package/dist/scripts/BdHxGaRy.chunk.js +2 -0
  156. package/dist/scripts/BdHxGaRy.chunk.js.map +1 -0
  157. package/dist/scripts/BeHz9c4V.chunk.js +2 -0
  158. package/dist/scripts/BeHz9c4V.chunk.js.map +1 -0
  159. package/dist/scripts/BexFb8rj.chunk.js +2 -0
  160. package/dist/scripts/BexFb8rj.chunk.js.map +1 -0
  161. package/dist/scripts/Bi8YRFeY.chunk.js +2 -0
  162. package/dist/scripts/Bi8YRFeY.chunk.js.map +1 -0
  163. package/dist/scripts/Bj3i6I7i.chunk.js +2 -0
  164. package/dist/scripts/Bj3i6I7i.chunk.js.map +1 -0
  165. package/dist/scripts/BktU87GA.chunk.js +2 -0
  166. package/dist/scripts/BktU87GA.chunk.js.map +1 -0
  167. package/dist/scripts/Bl1HvG0b.chunk.js +2 -0
  168. package/dist/scripts/Bl1HvG0b.chunk.js.map +1 -0
  169. package/dist/scripts/BnWlQ7-4.chunk.js +2 -0
  170. package/dist/scripts/BnWlQ7-4.chunk.js.map +1 -0
  171. package/dist/scripts/BoqzK1u7.chunk.js +2 -0
  172. package/dist/scripts/BoqzK1u7.chunk.js.map +1 -0
  173. package/dist/scripts/Bsa3zcW0.chunk.js +2 -0
  174. package/dist/scripts/Bsa3zcW0.chunk.js.map +1 -0
  175. package/dist/scripts/Bt3kaRtU.chunk.js +6 -0
  176. package/dist/scripts/Bt3kaRtU.chunk.js.map +1 -0
  177. package/dist/scripts/BtiKTu8r.chunk.js +2 -0
  178. package/dist/scripts/BtiKTu8r.chunk.js.map +1 -0
  179. package/dist/scripts/BwOoIPmc.chunk.js +2 -0
  180. package/dist/scripts/BwOoIPmc.chunk.js.map +1 -0
  181. package/dist/scripts/BwuSNwcs.chunk.js +2 -0
  182. package/dist/scripts/BwuSNwcs.chunk.js.map +1 -0
  183. package/dist/scripts/Byn8R7bs.chunk.js +2 -0
  184. package/dist/scripts/Byn8R7bs.chunk.js.map +1 -0
  185. package/dist/scripts/C2Zu5vKc.chunk.js +2 -0
  186. package/dist/scripts/C2Zu5vKc.chunk.js.map +1 -0
  187. package/dist/scripts/C2uxO8e2.chunk.js +2 -0
  188. package/dist/scripts/C2uxO8e2.chunk.js.map +1 -0
  189. package/dist/scripts/C35NlkUr.chunk.js +2 -0
  190. package/dist/scripts/C35NlkUr.chunk.js.map +1 -0
  191. package/dist/scripts/C5QPXJGU.chunk.js +15 -0
  192. package/dist/scripts/C5QPXJGU.chunk.js.map +1 -0
  193. package/dist/scripts/C6mGMCz4.chunk.js +2 -0
  194. package/dist/scripts/C6mGMCz4.chunk.js.map +1 -0
  195. package/dist/scripts/C8ZuWYfb.chunk.js +2 -0
  196. package/dist/scripts/C8ZuWYfb.chunk.js.map +1 -0
  197. package/dist/scripts/CEmtkty-.chunk.js +2 -0
  198. package/dist/scripts/CEmtkty-.chunk.js.map +1 -0
  199. package/dist/scripts/CICkmQW6.chunk.js +2 -0
  200. package/dist/scripts/CICkmQW6.chunk.js.map +1 -0
  201. package/dist/scripts/CLumRL-T.chunk.js +2 -0
  202. package/dist/scripts/CLumRL-T.chunk.js.map +1 -0
  203. package/dist/scripts/CO_D2O4I.chunk.js +2 -0
  204. package/dist/scripts/CO_D2O4I.chunk.js.map +1 -0
  205. package/dist/scripts/CPXlV0fg.chunk.js +2 -0
  206. package/dist/scripts/CPXlV0fg.chunk.js.map +1 -0
  207. package/dist/scripts/CQZOieOF.chunk.js +2 -0
  208. package/dist/scripts/CQZOieOF.chunk.js.map +1 -0
  209. package/dist/scripts/CQoWqq54.chunk.js +2 -0
  210. package/dist/scripts/CQoWqq54.chunk.js.map +1 -0
  211. package/dist/scripts/CRT9qru0.chunk.js +2 -0
  212. package/dist/scripts/CRT9qru0.chunk.js.map +1 -0
  213. package/dist/scripts/CU6iZ8MR.chunk.js +2 -0
  214. package/dist/scripts/CU6iZ8MR.chunk.js.map +1 -0
  215. package/dist/scripts/CUltMbyK.chunk.js +2 -0
  216. package/dist/scripts/CUltMbyK.chunk.js.map +1 -0
  217. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  218. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  219. package/dist/scripts/CYlwi5iC.chunk.js +7 -0
  220. package/dist/scripts/CYlwi5iC.chunk.js.map +1 -0
  221. package/dist/scripts/CgJckl-g.chunk.js +2 -0
  222. package/dist/scripts/CgJckl-g.chunk.js.map +1 -0
  223. package/dist/scripts/Cj5ETNHP.chunk.js +2 -0
  224. package/dist/scripts/Cj5ETNHP.chunk.js.map +1 -0
  225. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  226. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  227. package/dist/scripts/Cr8fUgj9.chunk.js +2 -0
  228. package/dist/scripts/Cr8fUgj9.chunk.js.map +1 -0
  229. package/dist/scripts/CtM_cXum.chunk.js +2 -0
  230. package/dist/scripts/CtM_cXum.chunk.js.map +1 -0
  231. package/dist/scripts/Cv1FGdNu.chunk.js +2 -0
  232. package/dist/scripts/Cv1FGdNu.chunk.js.map +1 -0
  233. package/dist/scripts/CvPDjx7y.chunk.js +2 -0
  234. package/dist/scripts/CvPDjx7y.chunk.js.map +1 -0
  235. package/dist/scripts/D0bydDVL.chunk.js +2 -0
  236. package/dist/scripts/D0bydDVL.chunk.js.map +1 -0
  237. package/dist/scripts/D1EE4AEz.chunk.js +356 -0
  238. package/dist/scripts/D1EE4AEz.chunk.js.map +1 -0
  239. package/dist/scripts/D84-WY3k.chunk.js +2 -0
  240. package/dist/scripts/D84-WY3k.chunk.js.map +1 -0
  241. package/dist/scripts/DAh7Ea13.chunk.js +2 -0
  242. package/dist/scripts/DAh7Ea13.chunk.js.map +1 -0
  243. package/dist/scripts/DBIkG3Bu.chunk.js +2 -0
  244. package/dist/scripts/DBIkG3Bu.chunk.js.map +1 -0
  245. package/dist/scripts/DCcI7sWt.chunk.js +2 -0
  246. package/dist/scripts/DCcI7sWt.chunk.js.map +1 -0
  247. package/dist/scripts/DEP24A-f.chunk.js +2 -0
  248. package/dist/scripts/DEP24A-f.chunk.js.map +1 -0
  249. package/dist/scripts/DGFORsAE.chunk.js +2 -0
  250. package/dist/scripts/DGFORsAE.chunk.js.map +1 -0
  251. package/dist/scripts/DGaf-Jy9.chunk.js +2 -0
  252. package/dist/scripts/DGaf-Jy9.chunk.js.map +1 -0
  253. package/dist/scripts/DJyZ6Hx7.chunk.js +2 -0
  254. package/dist/scripts/DJyZ6Hx7.chunk.js.map +1 -0
  255. package/dist/scripts/DOCam-GK.chunk.js +2 -0
  256. package/dist/scripts/DOCam-GK.chunk.js.map +1 -0
  257. package/dist/scripts/DSLX3H2r.chunk.js +2 -0
  258. package/dist/scripts/DSLX3H2r.chunk.js.map +1 -0
  259. package/dist/scripts/DSq4f4jm.chunk.js +2 -0
  260. package/dist/scripts/DSq4f4jm.chunk.js.map +1 -0
  261. package/dist/scripts/DXxBqeLg.chunk.js +2 -0
  262. package/dist/scripts/DXxBqeLg.chunk.js.map +1 -0
  263. package/dist/scripts/DZ6Jrm23.chunk.js +2 -0
  264. package/dist/scripts/DZ6Jrm23.chunk.js.map +1 -0
  265. package/dist/scripts/Daes5Wgy.chunk.js +2 -0
  266. package/dist/scripts/Daes5Wgy.chunk.js.map +1 -0
  267. package/dist/scripts/DeUbJqVo.chunk.js +2 -0
  268. package/dist/scripts/DeUbJqVo.chunk.js.map +1 -0
  269. package/dist/scripts/DgEqkZy0.chunk.js +8 -0
  270. package/dist/scripts/DgEqkZy0.chunk.js.map +1 -0
  271. package/dist/scripts/DhB-Uugx.chunk.js +2 -0
  272. package/dist/scripts/DhB-Uugx.chunk.js.map +1 -0
  273. package/dist/scripts/DhqAA1wT.chunk.js +2 -0
  274. package/dist/scripts/DhqAA1wT.chunk.js.map +1 -0
  275. package/dist/scripts/Di5-l4QJ.chunk.js +2 -0
  276. package/dist/scripts/Di5-l4QJ.chunk.js.map +1 -0
  277. package/dist/scripts/DiQkAtUx.chunk.js +53 -0
  278. package/dist/scripts/DiQkAtUx.chunk.js.map +1 -0
  279. package/dist/scripts/DireiQEp.chunk.js +2 -0
  280. package/dist/scripts/DireiQEp.chunk.js.map +1 -0
  281. package/dist/scripts/Dj66TI5y.chunk.js +2 -0
  282. package/dist/scripts/Dj66TI5y.chunk.js.map +1 -0
  283. package/dist/scripts/DkFkYS-j.chunk.js +2 -0
  284. package/dist/scripts/DkFkYS-j.chunk.js.map +1 -0
  285. package/dist/scripts/Dkq5GtOV.chunk.js +2 -0
  286. package/dist/scripts/Dkq5GtOV.chunk.js.map +1 -0
  287. package/dist/scripts/DmSSmUHZ.chunk.js +2 -0
  288. package/dist/scripts/DmSSmUHZ.chunk.js.map +1 -0
  289. package/dist/scripts/DoQU9vjn.chunk.js +2 -0
  290. package/dist/scripts/DoQU9vjn.chunk.js.map +1 -0
  291. package/dist/scripts/DtHh_hpg.chunk.js +2 -0
  292. package/dist/scripts/DtHh_hpg.chunk.js.map +1 -0
  293. package/dist/scripts/DvDdiDQN.chunk.js +7 -0
  294. package/dist/scripts/DvDdiDQN.chunk.js.map +1 -0
  295. package/dist/scripts/DwhG2uva.chunk.js +2 -0
  296. package/dist/scripts/DwhG2uva.chunk.js.map +1 -0
  297. package/dist/scripts/DxJlWHZr.chunk.js +2 -0
  298. package/dist/scripts/DxJlWHZr.chunk.js.map +1 -0
  299. package/dist/scripts/DxmeZ4C9.chunk.js +2 -0
  300. package/dist/scripts/DxmeZ4C9.chunk.js.map +1 -0
  301. package/dist/scripts/KuveJuNy.chunk.js +2 -0
  302. package/dist/scripts/KuveJuNy.chunk.js.map +1 -0
  303. package/dist/scripts/LKCLmV2A.chunk.js +2 -0
  304. package/dist/scripts/LKCLmV2A.chunk.js.map +1 -0
  305. package/dist/scripts/RnuR8yr3.chunk.js +2 -0
  306. package/dist/scripts/RnuR8yr3.chunk.js.map +1 -0
  307. package/dist/scripts/XxrnElSv.chunk.js +2 -0
  308. package/dist/scripts/XxrnElSv.chunk.js.map +1 -0
  309. package/dist/scripts/YF_QoXEj.chunk.js +3 -0
  310. package/dist/scripts/YF_QoXEj.chunk.js.map +1 -0
  311. package/dist/scripts/Z2sDSVPb.chunk.js +2 -0
  312. package/dist/scripts/Z2sDSVPb.chunk.js.map +1 -0
  313. package/dist/scripts/Zbze2j9b.chunk.js +2 -0
  314. package/dist/scripts/Zbze2j9b.chunk.js.map +1 -0
  315. package/dist/scripts/app-C56EnOMP.js +216 -0
  316. package/dist/scripts/app-C56EnOMP.js.map +1 -0
  317. package/dist/scripts/cvX-F_mx.chunk.js +2 -0
  318. package/dist/scripts/cvX-F_mx.chunk.js.map +1 -0
  319. package/dist/scripts/h34ZSRKe.chunk.js +2 -0
  320. package/dist/scripts/h34ZSRKe.chunk.js.map +1 -0
  321. package/dist/scripts/leubTuJo.chunk.js +2 -0
  322. package/dist/scripts/leubTuJo.chunk.js.map +1 -0
  323. package/dist/scripts/m5XtnRaH.chunk.js +2 -0
  324. package/dist/scripts/m5XtnRaH.chunk.js.map +1 -0
  325. package/dist/scripts/nay4aGaa.chunk.js +2 -0
  326. package/dist/scripts/nay4aGaa.chunk.js.map +1 -0
  327. package/dist/scripts/p61U8kXz.chunk.js +2 -0
  328. package/dist/scripts/p61U8kXz.chunk.js.map +1 -0
  329. package/dist/scripts/pkzD5BEm.chunk.js +2 -0
  330. package/dist/scripts/pkzD5BEm.chunk.js.map +1 -0
  331. package/dist/scripts/sc9-PV9Y.chunk.js +2 -0
  332. package/dist/scripts/sc9-PV9Y.chunk.js.map +1 -0
  333. package/dist/scripts/tAsRziXo.chunk.js +8 -0
  334. package/dist/scripts/tAsRziXo.chunk.js.map +1 -0
  335. package/dist/scripts/xrHhD6CF.chunk.js +8 -0
  336. package/dist/scripts/xrHhD6CF.chunk.js.map +1 -0
  337. package/dist/scripts/xxo027lm.chunk.js +2 -0
  338. package/dist/scripts/xxo027lm.chunk.js.map +1 -0
  339. package/package.json +5 -3
  340. package/typings/utils/imports.d.ts +2 -1
  341. package/vite.config.ts +6 -0
  342. package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +0 -7
  343. package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +0 -2
  344. package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +0 -50
  345. package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +0 -2
  346. package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +0 -34
  347. package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +0 -22
  348. package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +0 -2
  349. package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +0 -90
  350. package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +0 -9
  351. package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +0 -98
  352. package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +0 -13
  353. package/dist/css/6017-streamable-learning-098a205d01.chunk.css +0 -6
  354. package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +0 -1
  355. package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +0 -1
  356. package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +0 -5
  357. package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +0 -12
  358. package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +0 -1
  359. package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +0 -13
  360. package/dist/css/8601-streamable-learning-f525210660.chunk.css +0 -6
  361. package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +0 -2
  362. package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +0 -8
  363. package/dist/css/9842-streamable-learning-24729103f7.chunk.css +0 -4
  364. package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +0 -4
  365. package/dist/css/streamable-learning-dd0c1095d5.css +0 -23
  366. package/dist/languages/en.json +0 -1
  367. package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +0 -1
  368. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +0 -2
  369. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +0 -105
  370. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +0 -2
  371. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +0 -1
  372. package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +0 -1
  373. package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +0 -1
  374. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +0 -2
  375. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +0 -9
  376. package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +0 -1
  377. package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +0 -1
  378. package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +0 -1
  379. package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +0 -1
  380. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +0 -2
  381. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +0 -1
  382. package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +0 -1
  383. package/dist/scripts/2911-9e2725fd22-streamable-learning.chunk.js +0 -1
  384. package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +0 -1
  385. package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +0 -1
  386. package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +0 -1
  387. package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +0 -1
  388. package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +0 -1
  389. package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +0 -1
  390. package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +0 -1
  391. package/dist/scripts/4254-ef581b8105-streamable-learning.chunk.js +0 -1
  392. package/dist/scripts/4607-36e8f52a55-streamable-learning.chunk.js +0 -2
  393. package/dist/scripts/4607-36e8f52a55-streamable-learning.chunk.js.LICENSE.txt +0 -1
  394. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +0 -2
  395. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +0 -1
  396. package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +0 -1
  397. package/dist/scripts/5003-c23dd99aad-streamable-learning.chunk.js +0 -2
  398. package/dist/scripts/5003-c23dd99aad-streamable-learning.chunk.js.LICENSE.txt +0 -1
  399. package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +0 -1
  400. package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +0 -1
  401. package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +0 -1
  402. package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +0 -1
  403. package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +0 -1
  404. package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +0 -1
  405. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +0 -2
  406. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +0 -1
  407. package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +0 -1
  408. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +0 -2
  409. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +0 -1
  410. package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +0 -1
  411. package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +0 -1
  412. package/dist/scripts/7347-e2b82be015-streamable-learning.chunk.js +0 -1
  413. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +0 -2
  414. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +0 -1
  415. package/dist/scripts/7904-e07cdef2de-streamable-learning.chunk.js +0 -1
  416. package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +0 -1
  417. package/dist/scripts/8058-5333f0f01b-streamable-learning.chunk.js +0 -1
  418. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +0 -2
  419. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +0 -60
  420. package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +0 -1
  421. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +0 -2
  422. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +0 -1
  423. package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +0 -1
  424. package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +0 -1
  425. package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +0 -1
  426. package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +0 -1
  427. package/dist/scripts/9390-0f988af378-streamable-learning.chunk.js +0 -1
  428. package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +0 -1
  429. package/dist/scripts/9766-7c34cab592-streamable-learning.chunk.js +0 -2
  430. package/dist/scripts/9766-7c34cab592-streamable-learning.chunk.js.LICENSE.txt +0 -1
  431. package/dist/scripts/9842-3add7f20d0-streamable-learning.chunk.js +0 -1
  432. package/dist/scripts/9899-ca1a1a08c4-streamable-learning.chunk.js +0 -2
  433. package/dist/scripts/9899-ca1a1a08c4-streamable-learning.chunk.js.LICENSE.txt +0 -1
  434. package/dist/scripts/bundle-91983aeacb.min.js +0 -2
  435. package/dist/scripts/bundle-91983aeacb.min.js.LICENSE.txt +0 -108
  436. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +0 -2
  437. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +0 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-Oi3rE3V.chunk.js","sources":["../../../../../node_modules/linkifyjs/lib/linkify/utils/class.js","../../../../../node_modules/linkifyjs/lib/linkify/utils/options.js","../../../../../node_modules/linkifyjs/lib/linkify/core/state.js","../../../../../node_modules/linkifyjs/lib/linkify/core/tokens/create-token-class.js","../../../../../node_modules/linkifyjs/lib/linkify/core/tokens/text.js","../../../../../node_modules/linkifyjs/lib/linkify/core/scanner.js","../../../../../node_modules/linkifyjs/lib/linkify/core/tokens/multi.js","../../../../../node_modules/linkifyjs/lib/linkify/core/parser.js","../../../../../node_modules/linkifyjs/lib/linkify.js","../../../../../node_modules/linkifyjs/lib/linkify-string.js","../../../../../node_modules/linkifyjs/string.js","../../../../libs/common/src/react/utils/LinkifyHelper.ts"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\nexports.inherits = inherits;\nfunction inherits(parent, child) {\n\tvar props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar extended = Object.create(parent.prototype);\n\tfor (var p in props) {\n\t\textended[p] = props[p];\n\t}\n\textended.constructor = child;\n\tchild.prototype = extended;\n\treturn child;\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar defaults = {\n\tdefaultProtocol: 'http',\n\tevents: null,\n\tformat: noop,\n\tformatHref: noop,\n\tnl2br: false,\n\ttagName: 'a',\n\ttarget: typeToTarget,\n\tvalidate: true,\n\tignoreTags: [],\n\tattributes: null,\n\tclassName: 'linkified' // Deprecated value - no default class will be provided in the future\n};\n\nexports.defaults = defaults;\nexports.Options = Options;\nexports.contains = contains;\n\n\nfunction Options(opts) {\n\topts = opts || {};\n\n\tthis.defaultProtocol = opts.hasOwnProperty('defaultProtocol') ? opts.defaultProtocol : defaults.defaultProtocol;\n\tthis.events = opts.hasOwnProperty('events') ? opts.events : defaults.events;\n\tthis.format = opts.hasOwnProperty('format') ? opts.format : defaults.format;\n\tthis.formatHref = opts.hasOwnProperty('formatHref') ? opts.formatHref : defaults.formatHref;\n\tthis.nl2br = opts.hasOwnProperty('nl2br') ? opts.nl2br : defaults.nl2br;\n\tthis.tagName = opts.hasOwnProperty('tagName') ? opts.tagName : defaults.tagName;\n\tthis.target = opts.hasOwnProperty('target') ? opts.target : defaults.target;\n\tthis.validate = opts.hasOwnProperty('validate') ? opts.validate : defaults.validate;\n\tthis.ignoreTags = [];\n\n\t// linkAttributes and linkClass is deprecated\n\tthis.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n\tthis.className = opts.hasOwnProperty('className') ? opts.className : opts.linkClass || defaults.className;\n\n\t// Make all tags names upper case\n\tvar ignoredTags = opts.hasOwnProperty('ignoreTags') ? opts.ignoreTags : defaults.ignoreTags;\n\tfor (var i = 0; i < ignoredTags.length; i++) {\n\t\tthis.ignoreTags.push(ignoredTags[i].toUpperCase());\n\t}\n}\n\nOptions.prototype = {\n\t/**\n * Given the token, return all options for how it should be displayed\n */\n\tresolve: function resolve(token) {\n\t\tvar href = token.toHref(this.defaultProtocol);\n\t\treturn {\n\t\t\tformatted: this.get('format', token.toString(), token),\n\t\t\tformattedHref: this.get('formatHref', href, token),\n\t\t\ttagName: this.get('tagName', href, token),\n\t\t\tclassName: this.get('className', href, token),\n\t\t\ttarget: this.get('target', href, token),\n\t\t\tevents: this.getObject('events', href, token),\n\t\t\tattributes: this.getObject('attributes', href, token)\n\t\t};\n\t},\n\n\n\t/**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n\tcheck: function check(token) {\n\t\treturn this.get('validate', token.toString(), token);\n\t},\n\n\n\t// Private methods\n\n\t/**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {String} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n\tget: function get(key, operator, token) {\n\t\tvar optionValue = void 0,\n\t\t option = this[key];\n\t\tif (!option) {\n\t\t\treturn option;\n\t\t}\n\n\t\tswitch (typeof option === 'undefined' ? 'undefined' : _typeof(option)) {\n\t\t\tcase 'function':\n\t\t\t\treturn option(operator, token.type);\n\t\t\tcase 'object':\n\t\t\t\toptionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n\t\t\t\treturn typeof optionValue === 'function' ? optionValue(operator, token.type) : optionValue;\n\t\t}\n\n\t\treturn option;\n\t},\n\tgetObject: function getObject(key, operator, token) {\n\t\tvar option = this[key];\n\t\treturn typeof option === 'function' ? option(operator, token.type) : option;\n\t}\n};\n\n/**\n * Quick indexOf replacement for checking the ignoreTags option\n */\nfunction contains(arr, value) {\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (arr[i] === value) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction noop(val) {\n\treturn val;\n}\n\nfunction typeToTarget(href, type) {\n\treturn type === 'url' ? '_blank' : null;\n}","'use strict';\n\nexports.__esModule = true;\nexports.stateify = exports.TokenState = exports.CharacterState = undefined;\n\nvar _class = require('../utils/class');\n\nfunction createStateClass() {\n\treturn function (tClass) {\n\t\tthis.j = [];\n\t\tthis.T = tClass || null;\n\t};\n}\n\n/**\n\tA simple state machine that can emit token classes\n\n\tThe `j` property in this class refers to state jumps. It's a\n\tmultidimensional array where for each element:\n\n\t* index [0] is a symbol or class of symbols to transition to.\n\t* index [1] is a State instance which matches\n\n\tThe type of symbol will depend on the target implementation for this class.\n\tIn Linkify, we have a two-stage scanner. Each stage uses this state machine\n\tbut with a slighly different (polymorphic) implementation.\n\n\tThe `T` property refers to the token class.\n\n\tTODO: Can the `on` and `next` methods be combined?\n\n\t@class BaseState\n*/\nvar BaseState = createStateClass();\nBaseState.prototype = {\n\tdefaultTransition: false,\n\n\t/**\n \t@method constructor\n \t@param {Class} tClass Pass in the kind of token to emit if there are\n \t\tno jumps after this state and the state is accepting.\n */\n\n\t/**\n \tOn the given symbol(s), this machine should go to the given state\n \t\t@method on\n \t@param {Array|Mixed} symbol\n \t@param {BaseState} state Note that the type of this state should be the\n \t\tsame as the current instance (i.e., don't pass in a different\n \t\tsubclass)\n */\n\ton: function on(symbol, state) {\n\t\tif (symbol instanceof Array) {\n\t\t\tfor (var i = 0; i < symbol.length; i++) {\n\t\t\t\tthis.j.push([symbol[i], state]);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tthis.j.push([symbol, state]);\n\t\treturn this;\n\t},\n\n\n\t/**\n \tGiven the next item, returns next state for that item\n \t@method next\n \t@param {Mixed} item Should be an instance of the symbols handled by\n \t\tthis particular machine.\n \t@return {State} state Returns false if no jumps are available\n */\n\tnext: function next(item) {\n\t\tfor (var i = 0; i < this.j.length; i++) {\n\t\t\tvar jump = this.j[i];\n\t\t\tvar symbol = jump[0]; // Next item to check for\n\t\t\tvar state = jump[1]; // State to jump to if items match\n\n\t\t\t// compare item with symbol\n\t\t\tif (this.test(item, symbol)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t}\n\n\t\t// Nowhere left to jump!\n\t\treturn this.defaultTransition;\n\t},\n\n\n\t/**\n \tDoes this state accept?\n \t`true` only of `this.T` exists\n \t\t@method accepts\n \t@return {Boolean}\n */\n\taccepts: function accepts() {\n\t\treturn !!this.T;\n\t},\n\n\n\t/**\n \tDetermine whether a given item \"symbolizes\" the symbol, where symbol is\n \ta class of items handled by this state machine.\n \t\tThis method should be overriden in extended classes.\n \t\t@method test\n \t@param {Mixed} item Does this item match the given symbol?\n \t@param {Mixed} symbol\n \t@return {Boolean}\n */\n\ttest: function test(item, symbol) {\n\t\treturn item === symbol;\n\t},\n\n\n\t/**\n \tEmit the token for this State (just return it in this case)\n \tIf this emits a token, this instance is an accepting state\n \t@method emit\n \t@return {Class} T\n */\n\temit: function emit() {\n\t\treturn this.T;\n\t}\n};\n\n/**\n\tState machine for string-based input\n\n\t@class CharacterState\n\t@extends BaseState\n*/\nvar CharacterState = (0, _class.inherits)(BaseState, createStateClass(), {\n\t/**\n \tDoes the given character match the given character or regular\n \texpression?\n \t\t@method test\n \t@param {String} char\n \t@param {String|RegExp} charOrRegExp\n \t@return {Boolean}\n */\n\ttest: function test(character, charOrRegExp) {\n\t\treturn character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n\t}\n});\n\n/**\n\tState machine for input in the form of TextTokens\n\n\t@class TokenState\n\t@extends BaseState\n*/\nvar TokenState = (0, _class.inherits)(BaseState, createStateClass(), {\n\n\t/**\n * Similar to `on`, but returns the state the results in the transition from\n * the given item\n * @method jump\n * @param {Mixed} item\n * @param {Token} [token]\n * @return state\n */\n\tjump: function jump(token) {\n\t\tvar tClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\t\tvar state = this.next(new token('')); // dummy temp token\n\t\tif (state === this.defaultTransition) {\n\t\t\t// Make a new state!\n\t\t\tstate = new this.constructor(tClass);\n\t\t\tthis.on(token, state);\n\t\t} else if (tClass) {\n\t\t\tstate.T = tClass;\n\t\t}\n\t\treturn state;\n\t},\n\n\n\t/**\n \tIs the given token an instance of the given token class?\n \t\t@method test\n \t@param {TextToken} token\n \t@param {Class} tokenClass\n \t@return {Boolean}\n */\n\ttest: function test(token, tokenClass) {\n\t\treturn token instanceof tokenClass;\n\t}\n});\n\n/**\n\tGiven a non-empty target string, generates states (if required) for each\n\tconsecutive substring of characters in str starting from the beginning of\n\tthe string. The final state will have a special value, as specified in\n\toptions. All other \"in between\" substrings will have a default end state.\n\n\tThis turns the state machine into a Trie-like data structure (rather than a\n\tintelligently-designed DFA).\n\n\tNote that I haven't really tried these with any strings other than\n\tDOMAIN.\n\n\t@param {String} str\n\t@param {CharacterState} start State to jump from the first character\n\t@param {Class} endToken Token class to emit when the given string has been\n\t\tmatched and no more jumps exist.\n\t@param {Class} defaultToken \"Filler token\", or which token type to emit when\n\t\twe don't have a full match\n\t@return {Array} list of newly-created states\n*/\nfunction stateify(str, start, endToken, defaultToken) {\n\tvar i = 0,\n\t len = str.length,\n\t state = start,\n\t newStates = [],\n\t nextState = void 0;\n\n\t// Find the next state without a jump to the next character\n\twhile (i < len && (nextState = state.next(str[i]))) {\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tif (i >= len) {\n\t\treturn [];\n\t} // no new tokens were added\n\n\twhile (i < len - 1) {\n\t\tnextState = new CharacterState(defaultToken);\n\t\tnewStates.push(nextState);\n\t\tstate.on(str[i], nextState);\n\t\tstate = nextState;\n\t\ti++;\n\t}\n\n\tnextState = new CharacterState(endToken);\n\tnewStates.push(nextState);\n\tstate.on(str[len - 1], nextState);\n\n\treturn newStates;\n}\n\nexports.CharacterState = CharacterState;\nexports.TokenState = TokenState;\nexports.stateify = stateify;","\"use strict\";\n\nexports.__esModule = true;\nfunction createTokenClass() {\n\treturn function (value) {\n\t\tif (value) {\n\t\t\tthis.v = value;\n\t\t}\n\t};\n}\n\nexports.createTokenClass = createTokenClass;","'use strict';\n\nexports.__esModule = true;\nexports.AMPERSAND = exports.CLOSEPAREN = exports.CLOSEANGLEBRACKET = exports.CLOSEBRACKET = exports.CLOSEBRACE = exports.OPENPAREN = exports.OPENANGLEBRACKET = exports.OPENBRACKET = exports.OPENBRACE = exports.WS = exports.TLD = exports.SYM = exports.UNDERSCORE = exports.SLASH = exports.MAILTO = exports.PROTOCOL = exports.QUERY = exports.POUND = exports.PLUS = exports.NUM = exports.NL = exports.LOCALHOST = exports.PUNCTUATION = exports.DOT = exports.COLON = exports.AT = exports.DOMAIN = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n\n/**\n\tAbstract class used for manufacturing text tokens.\n\tPass in the value this token represents\n\n\t@class TextToken\n\t@abstract\n*/\nvar TextToken = (0, _createTokenClass.createTokenClass)();\nTextToken.prototype = {\n\ttoString: function toString() {\n\t\treturn this.v + '';\n\t}\n};\n\nfunction inheritsToken(value) {\n\tvar props = value ? { v: value } : {};\n\treturn (0, _class.inherits)(TextToken, (0, _createTokenClass.createTokenClass)(), props);\n}\n\n/**\n\tA valid domain token\n\t@class DOMAIN\n\t@extends TextToken\n*/\nvar DOMAIN = inheritsToken();\n\n/**\n\t@class AT\n\t@extends TextToken\n*/\nvar AT = inheritsToken('@');\n\n/**\n\tRepresents a single colon `:` character\n\n\t@class COLON\n\t@extends TextToken\n*/\nvar COLON = inheritsToken(':');\n\n/**\n\t@class DOT\n\t@extends TextToken\n*/\nvar DOT = inheritsToken('.');\n\n/**\n\tA character class that can surround the URL, but which the URL cannot begin\n\tor end with. Does not include certain English punctuation like parentheses.\n\n\t@class PUNCTUATION\n\t@extends TextToken\n*/\nvar PUNCTUATION = inheritsToken();\n\n/**\n\tThe word localhost (by itself)\n\t@class LOCALHOST\n\t@extends TextToken\n*/\nvar LOCALHOST = inheritsToken();\n\n/**\n\tNewline token\n\t@class NL\n\t@extends TextToken\n*/\nvar NL = inheritsToken('\\n');\n\n/**\n\t@class NUM\n\t@extends TextToken\n*/\nvar NUM = inheritsToken();\n\n/**\n\t@class PLUS\n\t@extends TextToken\n*/\nvar PLUS = inheritsToken('+');\n\n/**\n\t@class POUND\n\t@extends TextToken\n*/\nvar POUND = inheritsToken('#');\n\n/**\n\tRepresents a web URL protocol. Supported types include\n\n\t* `http:`\n\t* `https:`\n\t* `ftp:`\n\t* `ftps:`\n\n\t@class PROTOCOL\n\t@extends TextToken\n*/\nvar PROTOCOL = inheritsToken();\n\n/**\n\tRepresents the start of the email URI protocol\n\n\t@class MAILTO\n\t@extends TextToken\n*/\nvar MAILTO = inheritsToken('mailto:');\n\n/**\n\t@class QUERY\n\t@extends TextToken\n*/\nvar QUERY = inheritsToken('?');\n\n/**\n\t@class SLASH\n\t@extends TextToken\n*/\nvar SLASH = inheritsToken('/');\n\n/**\n\t@class UNDERSCORE\n\t@extends TextToken\n*/\nvar UNDERSCORE = inheritsToken('_');\n\n/**\n\tOne ore more non-whitespace symbol.\n\t@class SYM\n\t@extends TextToken\n*/\nvar SYM = inheritsToken();\n\n/**\n\t@class TLD\n\t@extends TextToken\n*/\nvar TLD = inheritsToken();\n\n/**\n\tRepresents a string of consecutive whitespace characters\n\n\t@class WS\n\t@extends TextToken\n*/\nvar WS = inheritsToken();\n\n/**\n\tOpening/closing bracket classes\n*/\n\nvar OPENBRACE = inheritsToken('{');\nvar OPENBRACKET = inheritsToken('[');\nvar OPENANGLEBRACKET = inheritsToken('<');\nvar OPENPAREN = inheritsToken('(');\nvar CLOSEBRACE = inheritsToken('}');\nvar CLOSEBRACKET = inheritsToken(']');\nvar CLOSEANGLEBRACKET = inheritsToken('>');\nvar CLOSEPAREN = inheritsToken(')');\n\nvar AMPERSAND = inheritsToken('&');\n\nexports.Base = TextToken;\nexports.DOMAIN = DOMAIN;\nexports.AT = AT;\nexports.COLON = COLON;\nexports.DOT = DOT;\nexports.PUNCTUATION = PUNCTUATION;\nexports.LOCALHOST = LOCALHOST;\nexports.NL = NL;\nexports.NUM = NUM;\nexports.PLUS = PLUS;\nexports.POUND = POUND;\nexports.QUERY = QUERY;\nexports.PROTOCOL = PROTOCOL;\nexports.MAILTO = MAILTO;\nexports.SLASH = SLASH;\nexports.UNDERSCORE = UNDERSCORE;\nexports.SYM = SYM;\nexports.TLD = TLD;\nexports.WS = WS;\nexports.OPENBRACE = OPENBRACE;\nexports.OPENBRACKET = OPENBRACKET;\nexports.OPENANGLEBRACKET = OPENANGLEBRACKET;\nexports.OPENPAREN = OPENPAREN;\nexports.CLOSEBRACE = CLOSEBRACE;\nexports.CLOSEBRACKET = CLOSEBRACKET;\nexports.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\nexports.CLOSEPAREN = CLOSEPAREN;\nexports.AMPERSAND = AMPERSAND;","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _text = require('./tokens/text');\n\nvar TOKENS = _interopRequireWildcard(_text);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tlds = 'aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw'.split('|'); // macro, see gulpfile.js\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar NUMBERS = '0123456789'.split('');\nvar ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\nvar WHITESPACE = [' ', '\\f', '\\r', '\\t', '\\v', '\\xA0', '\\u1680', '\\u180E']; // excluding line breaks\n\nvar domainStates = []; // states that jump to DOMAIN on /[a-z0-9]/\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.CharacterState(tokenClass);\n};\n\n// Frequently used states\nvar S_START = makeState();\nvar S_NUM = makeState(_text.NUM);\nvar S_DOMAIN = makeState(_text.DOMAIN);\nvar S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\nvar S_WS = makeState(_text.WS);\n\n// States for special URL symbols\nS_START.on('@', makeState(_text.AT)).on('.', makeState(_text.DOT)).on('+', makeState(_text.PLUS)).on('#', makeState(_text.POUND)).on('?', makeState(_text.QUERY)).on('/', makeState(_text.SLASH)).on('_', makeState(_text.UNDERSCORE)).on(':', makeState(_text.COLON)).on('{', makeState(_text.OPENBRACE)).on('[', makeState(_text.OPENBRACKET)).on('<', makeState(_text.OPENANGLEBRACKET)).on('(', makeState(_text.OPENPAREN)).on('}', makeState(_text.CLOSEBRACE)).on(']', makeState(_text.CLOSEBRACKET)).on('>', makeState(_text.CLOSEANGLEBRACKET)).on(')', makeState(_text.CLOSEPAREN)).on('&', makeState(_text.AMPERSAND)).on([',', ';', '!', '\"', '\\''], makeState(_text.PUNCTUATION));\n\n// Whitespace jumps\n// Tokens of only non-newline whitespace are arbitrarily long\nS_START.on('\\n', makeState(_text.NL)).on(WHITESPACE, S_WS);\n\n// If any whitespace except newline, more whitespace!\nS_WS.on(WHITESPACE, S_WS);\n\n// Generates states for top-level domains\n// Note that this is most accurate when tlds are in alphabetical order\nfor (var i = 0; i < tlds.length; i++) {\n\tvar newStates = (0, _state.stateify)(tlds[i], S_START, _text.TLD, _text.DOMAIN);\n\tdomainStates.push.apply(domainStates, newStates);\n}\n\n// Collect the states generated by different protocls\nvar partialProtocolFileStates = (0, _state.stateify)('file', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolFtpStates = (0, _state.stateify)('ftp', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolHttpStates = (0, _state.stateify)('http', S_START, _text.DOMAIN, _text.DOMAIN);\nvar partialProtocolMailtoStates = (0, _state.stateify)('mailto', S_START, _text.DOMAIN, _text.DOMAIN);\n\n// Add the states to the array of DOMAINeric states\ndomainStates.push.apply(domainStates, partialProtocolFileStates);\ndomainStates.push.apply(domainStates, partialProtocolFtpStates);\ndomainStates.push.apply(domainStates, partialProtocolHttpStates);\ndomainStates.push.apply(domainStates, partialProtocolMailtoStates);\n\n// Protocol states\nvar S_PROTOCOL_FILE = partialProtocolFileStates.pop();\nvar S_PROTOCOL_FTP = partialProtocolFtpStates.pop();\nvar S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();\nvar S_MAILTO = partialProtocolMailtoStates.pop();\nvar S_PROTOCOL_SECURE = makeState(_text.DOMAIN);\nvar S_FULL_PROTOCOL = makeState(_text.PROTOCOL); // Full protocol ends with COLON\nvar S_FULL_MAILTO = makeState(_text.MAILTO); // Mailto ends with COLON\n\n// Secure protocols (end with 's')\nS_PROTOCOL_FTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\nS_PROTOCOL_HTTP.on('s', S_PROTOCOL_SECURE).on(':', S_FULL_PROTOCOL);\n\ndomainStates.push(S_PROTOCOL_SECURE);\n\n// Become protocol tokens after a COLON\nS_PROTOCOL_FILE.on(':', S_FULL_PROTOCOL);\nS_PROTOCOL_SECURE.on(':', S_FULL_PROTOCOL);\nS_MAILTO.on(':', S_FULL_MAILTO);\n\n// Localhost\nvar partialLocalhostStates = (0, _state.stateify)('localhost', S_START, _text.LOCALHOST, _text.DOMAIN);\ndomainStates.push.apply(domainStates, partialLocalhostStates);\n\n// Everything else\n// DOMAINs make more DOMAINs\n// Number and character transitions\nS_START.on(NUMBERS, S_NUM);\nS_NUM.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN\n\nS_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n\n// All the generated states should have a jump to DOMAIN\nfor (var _i = 0; _i < domainStates.length; _i++) {\n\tdomainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);\n}\n\nS_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN).on(ALPHANUM, S_DOMAIN);\n\n// Set default transition\nS_START.defaultTransition = makeState(_text.SYM);\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {String} str Input string to scan\n\t@return {Array} Array of TOKEN instances\n*/\nvar run = function run(str) {\n\n\t// The state machine only looks at lowercase strings.\n\t// This selective `toLowerCase` is used because lowercasing the entire\n\t// string causes the length and character position to vary in some in some\n\t// non-English strings. This happens only on V8-based runtimes.\n\tvar lowerStr = str.replace(/[A-Z]/g, function (c) {\n\t\treturn c.toLowerCase();\n\t});\n\tvar len = str.length;\n\tvar tokens = []; // return value\n\n\tvar cursor = 0;\n\n\t// Tokenize the string\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar nextState = null;\n\t\tvar tokenLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && (nextState = state.next(lowerStr[cursor]))) {\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\ttokenLength++;\n\t\t\tcursor++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\t\t\tcontinue;\n\t\t} // Should never happen\n\n\t\t// Roll back to the latest accepting state\n\t\tcursor -= sinceAccepts;\n\t\ttokenLength -= sinceAccepts;\n\n\t\t// Get the class for the new token\n\t\tvar TOKEN = latestAccepting.emit(); // Current token class\n\n\t\t// No more jumps, just make a new token\n\t\ttokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));\n\t}\n\n\treturn tokens;\n};\n\nvar start = S_START;\nexports.State = _state.CharacterState;\nexports.TOKENS = TOKENS;\nexports.run = run;\nexports.start = start;","'use strict';\n\nexports.__esModule = true;\nexports.URL = exports.TEXT = exports.NL = exports.EMAIL = exports.MAILTOEMAIL = exports.Base = undefined;\n\nvar _createTokenClass = require('./create-token-class');\n\nvar _class = require('../../utils/class');\n\nvar _text = require('./text');\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n// Is the given token a valid domain token?\n// Should nums be included here?\nfunction isDomainToken(token) {\n\treturn token instanceof _text.DOMAIN || token instanceof _text.TLD;\n}\n\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@abstract\n*/\nvar MultiToken = (0, _createTokenClass.createTokenClass)();\n\nMultiToken.prototype = {\n\t/**\n \tString representing the type for this token\n \t@property type\n \t@default 'TOKEN'\n */\n\ttype: 'token',\n\n\t/**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n\tisLink: false,\n\n\t/**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {String}\n */\n\ttoString: function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.v.length; i++) {\n\t\t\tresult.push(this.v[i].toString());\n\t\t}\n\t\treturn result.join('');\n\t},\n\n\n\t/**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\treturn this.toString();\n\t},\n\n\n\t/**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {String} [protocol] `'http'` by default\n \t@return {Object}\n */\n\ttoObject: function toObject() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue: this.toString(),\n\t\t\thref: this.toHref(protocol)\n\t\t};\n\t}\n};\n\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MAILTO\n\t@extends MultiToken\n*/\nvar MAILTOEMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true\n});\n\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class EMAIL\n\t@extends MultiToken\n*/\nvar EMAIL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'email',\n\tisLink: true,\n\ttoHref: function toHref() {\n\t\treturn 'mailto:' + this.toString();\n\t}\n});\n\n/**\n\tRepresents some plain text\n\t@class TEXT\n\t@extends MultiToken\n*/\nvar TEXT = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'text' });\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class NL\n\t@extends MultiToken\n*/\nvar NL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: 'nl' });\n\n/**\n\tRepresents a list of tokens making up a valid URL\n\t@class URL\n\t@extends MultiToken\n*/\nvar URL = (0, _class.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n\ttype: 'url',\n\tisLink: true,\n\n\t/**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {String} protocol\n \t@return {String}\n */\n\ttoHref: function toHref() {\n\t\tvar protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'http';\n\n\t\tvar hasProtocol = false;\n\t\tvar hasSlashSlash = false;\n\t\tvar tokens = this.v;\n\t\tvar result = [];\n\t\tvar i = 0;\n\n\t\t// Make the first part of the domain lowercase\n\t\t// Lowercase protocol\n\t\twhile (tokens[i] instanceof _text.PROTOCOL) {\n\t\t\thasProtocol = true;\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Skip slash-slash\n\t\twhile (tokens[i] instanceof _text.SLASH) {\n\t\t\thasSlashSlash = true;\n\t\t\tresult.push(tokens[i].toString());\n\t\t\ti++;\n\t\t}\n\n\t\t// Lowercase all other characters in the domain\n\t\twhile (isDomainToken(tokens[i])) {\n\t\t\tresult.push(tokens[i].toString().toLowerCase());\n\t\t\ti++;\n\t\t}\n\n\t\t// Leave all other characters as they were written\n\t\tfor (; i < tokens.length; i++) {\n\t\t\tresult.push(tokens[i].toString());\n\t\t}\n\n\t\tresult = result.join('');\n\n\t\tif (!(hasProtocol || hasSlashSlash)) {\n\t\t\tresult = protocol + '://' + result;\n\t\t}\n\n\t\treturn result;\n\t},\n\thasProtocol: function hasProtocol() {\n\t\treturn this.v[0] instanceof _text.PROTOCOL;\n\t}\n});\n\nexports.Base = MultiToken;\nexports.MAILTOEMAIL = MAILTOEMAIL;\nexports.EMAIL = EMAIL;\nexports.NL = NL;\nexports.TEXT = TEXT;\nexports.URL = URL;","'use strict';\n\nexports.__esModule = true;\nexports.start = exports.run = exports.TOKENS = exports.State = undefined;\n\nvar _state = require('./state');\n\nvar _multi = require('./tokens/multi');\n\nvar MULTI_TOKENS = _interopRequireWildcard(_multi);\n\nvar _text = require('./tokens/text');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main parser\n*/\n\nvar makeState = function makeState(tokenClass) {\n\treturn new _state.TokenState(tokenClass);\n};\n\n// The universal starting state.\nvar S_START = makeState();\n\n// Intermediate states for URLs. Note that domains that begin with a protocol\n// are treated slighly differently from those that don't.\nvar S_PROTOCOL = makeState(); // e.g., 'http:'\nvar S_MAILTO = makeState(); // 'mailto:'\nvar S_PROTOCOL_SLASH = makeState(); // e.g., '/', 'http:/''\nvar S_PROTOCOL_SLASH_SLASH = makeState(); // e.g., '//', 'http://'\nvar S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\nvar S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\nvar S_TLD = makeState(_multi.URL); // (A) Simplest possible URL with no query string\nvar S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\nvar S_TLD_PORT = makeState(_multi.URL); // TLD followed by a port number\nvar S_URL = makeState(_multi.URL); // Long URL with optional port and maybe query string\nvar S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\nvar S_URL_OPENBRACE = makeState(); // URL followed by {\nvar S_URL_OPENBRACKET = makeState(); // URL followed by [\nvar S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\nvar S_URL_OPENPAREN = makeState(); // URL followed by (\nvar S_URL_OPENBRACE_Q = makeState(_multi.URL); // URL followed by { and some symbols that the URL can end it\nvar S_URL_OPENBRACKET_Q = makeState(_multi.URL); // URL followed by [ and some symbols that the URL can end it\nvar S_URL_OPENANGLEBRACKET_Q = makeState(_multi.URL); // URL followed by < and some symbols that the URL can end it\nvar S_URL_OPENPAREN_Q = makeState(_multi.URL); // URL followed by ( and some symbols that the URL can end it\nvar S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\nvar S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\nvar S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\nvar S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\nvar S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\nvar S_EMAIL = makeState(_multi.EMAIL); // (C) Possible email address (could have more tlds)\nvar S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\nvar S_EMAIL_PORT = makeState(_multi.EMAIL); // (C) Email address with a port\nvar S_MAILTO_EMAIL = makeState(_multi.MAILTOEMAIL); // Email that begins with the mailto prefix (D)\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\nvar S_LOCALPART = makeState(); // Local part of the email address\nvar S_LOCALPART_AT = makeState(); // Local part of the email address plus @\nvar S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\nvar S_NL = makeState(_multi.NL); // single new line\n\n// Make path from start to protocol (with '//')\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\n\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\n\n// The very first potential domain name\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\n\n// Force URL for protocol followed by anything sane\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\n\n// Account for dots and hyphens\n// hyphens are usually parts of domain names\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Hyphen can jump back to a domain name\n\n// After the first domain and a dot, we can find either a URL or another domain\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\n\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\n\n// S_TLD accepts! But the URL could be longer, try to find a match greedily\n// The `run` function should be able to \"rollback\" to the accepting state\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\n\n// Become real URLs after `SLASH` or `COLON NUM SLASH`\n// Here PSS and non-PSS converge\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\n\n// Types of characters the URL can definitely end in\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\n\n// Types of tokens that can follow a URL and be part of the query string\n// but cannot be the very last characters\n// Characters that cannot appear in the URL at all should be excluded\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\n\n// These states are responsible primarily for determining whether or not to\n// include the final round bracket.\n\n// URL, followed by an opening bracket\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// URL with extra symbols at the end, followed by an opening bracket\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\n\n// Closing bracket component. This character WILL be included in the URL\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\n\n// URL that beings with an opening bracket, followed by a symbols.\n// Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n// has a single opening bracket for some reason).\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// URL that begins with an opening bracket, followed by some symbols\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\n\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\n\n// Account for the query string\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\n\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\n\n// Email address-specific state definitions\n// Note: We are not allowing '/' in email addresses since this would interfere\n// with real URLs\n\n// For addresses with the mailto prefix\n// 'mailto:' followed by anything sane is a valid email\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\n\n// Greedily get more potential valid email values\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n\n// For addresses without the mailto prefix\n// Tokens allowed in the localpart of the email\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\n\n// Some of the tokens in `localpartAccepting` are already accounted for here and\n// will not be overwritten (don't worry)\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\n\n// Okay we're on a localpart. Now what?\n// TODO: IP addresses and what if the email starts with numbers?\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT) // close to an email address now\n.on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\n// States following `@` defined above\n\nvar run = function run(tokens) {\n\tvar len = tokens.length;\n\tvar cursor = 0;\n\tvar multis = [];\n\tvar textTokens = [];\n\n\twhile (cursor < len) {\n\t\tvar state = S_START;\n\t\tvar secondState = null;\n\t\tvar nextState = null;\n\t\tvar multiLength = 0;\n\t\tvar latestAccepting = null;\n\t\tvar sinceAccepts = -1;\n\n\t\twhile (cursor < len && !(secondState = state.next(tokens[cursor]))) {\n\t\t\t// Starting tokens with nowhere to jump to.\n\t\t\t// Consider these to be just plain text\n\t\t\ttextTokens.push(tokens[cursor++]);\n\t\t}\n\n\t\twhile (cursor < len && (nextState = secondState || state.next(tokens[cursor]))) {\n\n\t\t\t// Get the next state\n\t\t\tsecondState = null;\n\t\t\tstate = nextState;\n\n\t\t\t// Keep track of the latest accepting state\n\t\t\tif (state.accepts()) {\n\t\t\t\tsinceAccepts = 0;\n\t\t\t\tlatestAccepting = state;\n\t\t\t} else if (sinceAccepts >= 0) {\n\t\t\t\tsinceAccepts++;\n\t\t\t}\n\n\t\t\tcursor++;\n\t\t\tmultiLength++;\n\t\t}\n\n\t\tif (sinceAccepts < 0) {\n\n\t\t\t// No accepting state was found, part of a regular text token\n\t\t\t// Add all the tokens we looked at to the text tokens array\n\t\t\tfor (var i = cursor - multiLength; i < cursor; i++) {\n\t\t\t\ttextTokens.push(tokens[i]);\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Accepting state!\n\n\t\t\t// First close off the textTokens (if available)\n\t\t\tif (textTokens.length > 0) {\n\t\t\t\tmultis.push(new _multi.TEXT(textTokens));\n\t\t\t\ttextTokens = [];\n\t\t\t}\n\n\t\t\t// Roll back to the latest accepting state\n\t\t\tcursor -= sinceAccepts;\n\t\t\tmultiLength -= sinceAccepts;\n\n\t\t\t// Create a new multitoken\n\t\t\tvar MULTI = latestAccepting.emit();\n\t\t\tmultis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n\t\t}\n\t}\n\n\t// Finally close off the textTokens (if available)\n\tif (textTokens.length > 0) {\n\t\tmultis.push(new _multi.TEXT(textTokens));\n\t}\n\n\treturn multis;\n};\n\nexports.State = _state.TokenState;\nexports.TOKENS = MULTI_TOKENS;\nexports.run = run;\nexports.start = S_START;","'use strict';\n\nexports.__esModule = true;\nexports.tokenize = exports.test = exports.scanner = exports.parser = exports.options = exports.inherits = exports.find = undefined;\n\nvar _class = require('./linkify/utils/class');\n\nvar _options = require('./linkify/utils/options');\n\nvar options = _interopRequireWildcard(_options);\n\nvar _scanner = require('./linkify/core/scanner');\n\nvar scanner = _interopRequireWildcard(_scanner);\n\nvar _parser = require('./linkify/core/parser');\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n\tConverts a string into tokens that represent linkable and non-linkable bits\n\t@method tokenize\n\t@param {String} str\n\t@return {Array} tokens\n*/\nvar tokenize = function tokenize(str) {\n\treturn parser.run(scanner.run(str));\n};\n\n/**\n\tReturns a list of linkable items in the given string.\n*/\nvar find = function find(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\tvar filtered = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tif (token.isLink && (!type || token.type === type)) {\n\t\t\tfiltered.push(token.toObject());\n\t\t}\n\t}\n\n\treturn filtered;\n};\n\n/**\n\tIs the given string valid linkable text of some sort\n\tNote that this does not trim the text for you.\n\n\tOptionally pass in a second `type` param, which is the type of link to test\n\tfor.\n\n\tFor example,\n\n\t\ttest(str, 'email');\n\n\tWill return `true` if str is a valid email.\n*/\nvar test = function test(str) {\n\tvar type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\tvar tokens = tokenize(str);\n\treturn tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\n\n// Scanner and parser provide states and tokens for the lexicographic stage\n// (will be used to add additional link types)\nexports.find = find;\nexports.inherits = _class.inherits;\nexports.options = options;\nexports.parser = parser;\nexports.scanner = scanner;\nexports.test = test;\nexports.tokenize = tokenize;","'use strict';\n\nexports.__esModule = true;\n\nvar _linkify = require('./linkify');\n\nvar linkify = _interopRequireWildcard(_linkify);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar tokenize = linkify.tokenize,\n options = linkify.options; /**\n \tConvert strings of text into linkable HTML text\n */\n\nvar Options = options.Options;\n\n\nfunction escapeText(text) {\n\treturn text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nfunction escapeAttr(href) {\n\treturn href.replace(/\"/g, '&quot;');\n}\n\nfunction attributesToString(attributes) {\n\tif (!attributes) {\n\t\treturn '';\n\t}\n\tvar result = [];\n\n\tfor (var attr in attributes) {\n\t\tvar val = attributes[attr] + '';\n\t\tresult.push(attr + '=\"' + escapeAttr(val) + '\"');\n\t}\n\treturn result.join(' ');\n}\n\nfunction linkifyStr(str) {\n\tvar opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\topts = new Options(opts);\n\n\tvar tokens = tokenize(str);\n\tvar result = [];\n\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\n\t\tif (token.type === 'nl' && opts.nl2br) {\n\t\t\tresult.push('<br>\\n');\n\t\t\tcontinue;\n\t\t} else if (!token.isLink || !opts.check(token)) {\n\t\t\tresult.push(escapeText(token.toString()));\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar _opts$resolve = opts.resolve(token),\n\t\t formatted = _opts$resolve.formatted,\n\t\t formattedHref = _opts$resolve.formattedHref,\n\t\t tagName = _opts$resolve.tagName,\n\t\t className = _opts$resolve.className,\n\t\t target = _opts$resolve.target,\n\t\t attributes = _opts$resolve.attributes;\n\n\t\tvar link = '<' + tagName + ' href=\"' + escapeAttr(formattedHref) + '\"';\n\n\t\tif (className) {\n\t\t\tlink += ' class=\"' + escapeAttr(className) + '\"';\n\t\t}\n\n\t\tif (target) {\n\t\t\tlink += ' target=\"' + escapeAttr(target) + '\"';\n\t\t}\n\n\t\tif (attributes) {\n\t\t\tlink += ' ' + attributesToString(attributes);\n\t\t}\n\n\t\tlink += '>' + escapeText(formatted) + '</' + tagName + '>';\n\t\tresult.push(link);\n\t}\n\n\treturn result.join('');\n}\n\nif (!String.prototype.linkify) {\n\ttry {\n\t\tObject.defineProperty(String.prototype, 'linkify', {\n\t\t\tset: function set() {},\n\t\t\tget: function get() {\n\t\t\t\treturn function linkify(opts) {\n\t\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t} catch (e) {\n\t\t// IE 8 doesn't like Object.defineProperty on non-DOM objects\n\t\tif (!String.prototype.linkify) {\n\t\t\tString.prototype.linkify = function (opts) {\n\t\t\t\treturn linkifyStr(this, opts);\n\t\t\t};\n\t\t}\n\t}\n}\n\nexports.default = linkifyStr;","module.exports = require('./lib/linkify-string').default;\n","import { ObjectHash } from 'backbone';\nimport linkifyStr from 'linkifyjs/string';\nimport * as _ from 'underscore';\n\nconst BaseLinkifyOptions = {\n className: 'info-link',\n defaultProtocol: 'https'\n};\n\nexport const LinkifyHelper = {\n /**\n * The underlying linkifyStr interface escapes text within the input string\n */\n linkifyText(text: string, options?: ObjectHash): string {\n if (!text) return;\n const ops = options ? _.extend({}, BaseLinkifyOptions, options) : BaseLinkifyOptions;\n return linkifyStr(text, ops);\n }\n};"],"names":["_class","inherits","parent","child","props","extended","p","options","_typeof","obj","defaults","noop","typeToTarget","Options","contains","opts","ignoredTags","i","token","href","key","operator","optionValue","option","arr","value","val","type","state","require$$0","createStateClass","tClass","BaseState","symbol","item","jump","CharacterState","character","charOrRegExp","TokenState","tokenClass","stateify","str","start","endToken","defaultToken","len","newStates","nextState","createTokenClass_1","createTokenClass","text","_createTokenClass","require$$1","TextToken","inheritsToken","DOMAIN","AT","COLON","DOT","PUNCTUATION","LOCALHOST","NL","NUM","PLUS","POUND","PROTOCOL","MAILTO","QUERY","SLASH","UNDERSCORE","SYM","TLD","WS","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","scanner","_state","_text","TOKENS","_interopRequireWildcard","newObj","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","makeState","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","_i","run","lowerStr","c","tokens","cursor","tokenLength","latestAccepting","sinceAccepts","TOKEN","multi","require$$2","isDomainToken","MultiToken","result","protocol","MAILTOEMAIL","EMAIL","TEXT","URL","hasProtocol","hasSlashSlash","parser","_multi","MULTI_TOKENS","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","multis","textTokens","secondState","multiLength","MULTI","linkify","_options","_scanner","_parser","require$$3","arg","tokenize","find","filtered","test","linkifyString","_linkify","escapeText","escapeAttr","attributesToString","attributes","attr","linkifyStr","_opts$resolve","formatted","formattedHref","tagName","className","target","link","string","BaseLinkifyOptions","LinkifyHelper","ops","_.extend"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
@@ -0,0 +1,2 @@
1
+ import{j as r}from"./app-C56EnOMP.js";function o(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466",fill:"currentColor"})})}export{o as C};
2
+ //# sourceMappingURL=-cwk-1Iv.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-cwk-1Iv.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/ChevronLeftSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function ChevronLeftSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m8.305 11.267 5.906-5.963a1.046 1.046 0 0 1 1.473 0l.011.01a1.034 1.034 0 0 1 0 1.467L10.526 12l5.17 5.22c.406.41.406 1.055 0 1.465l-.012.011a1.046 1.046 0 0 1-1.473 0l-5.906-5.963a1.034 1.034 0 0 1 0-1.466'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["ChevronLeftSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAAeC,EAAsC,CACnE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,iNACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
@@ -0,0 +1,3 @@
1
+ import{j as i,R as d,an as P,e as b,b6 as k,k as C,i as y,c as T,o as $,$ as D,r as j,V as E,P as R,W as g,X as f}from"./app-C56EnOMP.js";import{A as x}from"./8zar0u1i.chunk.js";import{s as O}from"./RnuR8yr3.chunk.js";import{V as S}from"./DxJlWHZr.chunk.js";import{T as L}from"./DXxBqeLg.chunk.js";function X(e){return e.audience?i.jsx("div",{className:`audience-label border rounded-pill d-inline-block px-2 text-nowrap
2
+ ${"border-"+e.border} ${e.className?e.className:""}`,children:e.audience.name}):i.jsx(i.Fragment,{})}function Y(e,t){const a=d.useMemo(()=>!(e!=null&&e.length)||!t||!x.shouldShowAudiences(t)?null:x.getSortedPresentationAudiences(e,t),[e]);return d.useMemo(()=>a!=null&&a.length?x.getMergedPresentationAudienceString(a):null,[a])}function J(e){let t=`d-flex align-items-center badge-list ${O.minHeight}`;return e.className&&(t+=` ${e.className}`),i.jsx("div",{className:t,children:e.children})}const p={padNumber(e,t){let a=e.toString();if(a.length>=t)return a;for(t=t-a.length;t>0;)a="0"+a,t--;return a}},U={isSeries(e){return(e==null?void 0:e.typeId)===P.Series},buildSeriesSeasonEpisodeText(e,t,a){if(!e)return"";if(!t||!a)return e.toUpperCase();const s=p.padNumber(t,2),n=p.padNumber(a,2);return`${e.toUpperCase()} S${s} • E${n}`},getRating(e){var t;return(t=e._rating)==null?void 0:t.value}},V="_appLink_1owb0_1",v="_hoverUnderline_1owb0_4",h={appLink:V,hoverUnderline:v},F="shared.videoSubText",A=T.encloseNamespace(F);function I(e){const{video:t}=e,{season:a}=t;if(!t.episodeNumber||!a)return i.jsx(i.Fragment,{});const s=p.padNumber(a.number,2),n=p.padNumber(t.episodeNumber,2);return i.jsxs("span",{className:`d-inline-block ${e.appLink?h.hoverUnderline:""}`,children:[e.withSeriesTitle&&i.jsx(i.Fragment,{children:" "}),!!s&&`S${s} • `,"E",n]})}function _(e){const t=S.getReleaseDate(e.video);return t?S.hasSeries(e.video)?i.jsx(i.Fragment,{children:` • ${t}`}):i.jsx(i.Fragment,{children:t}):i.jsx(i.Fragment,{})}function w(e){var u;const{appLink:t,video:a,className:s=""}=e,n=a==null?void 0:a.series,c=S.getReleaseDate(e.video);if(!(n!=null&&n.id)&&!c)return i.jsx(i.Fragment,{});const m=(n==null?void 0:n.id)&&t&&{...t,args:[n.id,b.slugify(n.name)]},l={...e.analyticsData,id:n==null?void 0:n.id,name:n==null?void 0:n.name,videoId:a==null?void 0:a.id,videoName:a==null?void 0:a.name},r={...e.analyticsOptions,entity:y.Series,actionType:C.Click,descriptor:k.Title},o=U.buildSeriesSeasonEpisodeText(n==null?void 0:n.name,(u=a.season)==null?void 0:u.number,a.episodeNumber);return i.jsxs(L,{appLink:m,className:`d-block ${h.appLink} ${s}`,analyticsData:l,analyticsOptions:r,title:o,ariaLabel:`${A("ariaSeries")} ${o}`,children:[(n==null?void 0:n.name)&&n.name,i.jsx(I,{...e,withSeriesTitle:!0}),i.jsx(_,{...e})]})}function M(e){var r,o;const{appLink:t,video:a,className:s=""}=e,n=(o=(r=a==null?void 0:a.productionCompanies)==null?void 0:r.data)==null?void 0:o[0];if(!(n!=null&&n.id))return i.jsx(i.Fragment,{});const c=(n==null?void 0:n.id)&&t&&{...t,args:[n.id,b.slugify(n.name)]},m={...e.analyticsData,id:n==null?void 0:n.id,name:n==null?void 0:n.name,videoId:a==null?void 0:a.id,videoName:a==null?void 0:a.name},l={...e.analyticsOptions,entity:y.Company,actionType:C.Click,descriptor:k.Title};return i.jsx(L,{appLink:c,className:`d-block ${h.appLink} ${s}`,analyticsData:m,analyticsOptions:l,title:n.name,ariaLabel:`${A("ariaCompany")} ${n.name}`,children:n.name})}function K(e){const{type:t="series"}=e;return t==="none"?i.jsx(i.Fragment,{}):t==="series"?i.jsx(w,{...e}):i.jsx(M,{...e})}const G=d.createContext({hasProvider:!1});function Q(){return d.useContext(G)}function Z(e){return i.jsx("svg",{...e,children:i.jsx("path",{fillRule:"evenodd",d:"M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12m23 0c0-6.075-4.925-11-11-11S1 5.925 1 12s4.925 11 11 11 11-4.925 11-11M9 7.498c0-.551.387-.756.847-.469l7.306 4.567c.468.292.46.77 0 1.058l-7.306 4.567c-.468.292-.847.074-.847-.47z",fill:"currentColor"})})}function ee(){var l;const e=$(D.config()),{hasPermissions:t,isLoaded:a}=j();function s(r){var u,N;if(!("productionCompanies"in r))return null;const o=(N=(u=r.productionCompanies)==null?void 0:u.data)==null?void 0:N[0];return o!=null&&o.id?{application:f.DASHBOARD,action:g.Dashboard.COMPANY_DASHBOARD,args:[o.id,b.slugify(o.name)]}:null}function n(r){return{application:f.VIDEOS,action:g.Videos.CLASSROOM_GUIDE,args:[r]}}function c(r){return{application:f.VIDEOS,action:g.Videos.RESOURCE_GUIDANCE,args:[r]}}return{hasCommonVideoPropsCompleted:e.hasCompleted&&a,commonVideoProps:{subTextType:"productionCompany",getSubTextAppLink:s,isPlugin:!1,canFavourite:null,setFavourite:null,imageCdnUrl:(l=e.data)==null?void 0:l.imageCdnUrl,yearGroups:null,getInteractiveGuidanceAppLink:()=>null,getClassroomGuideAppLink:n,getResourceGuidanceAppLink:c,showNewVideoIndicator:!1,companyLogoFallbackUrl:E.StreamableLearning.LOGO,hasStudentExperience:t(R.StudentExperience),hasGuestExperience:!1}}}export{X as A,J as B,Z as P,I as S,K as V,U as a,Y as b,Q as c,ee as u};
3
+ //# sourceMappingURL=4oi1ldJ4.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"4oi1ldJ4.chunk.js","sources":["../../../../libs/shared/src/components/audience-label/AudienceLabel.tsx","../../../../libs/shared/src/hooks/UseMergeAudiences.ts","../../../../libs/shared/src/components/badges/BadgeListContainer.tsx","../../../../libs/shared/src/utils/NumberHelper.ts","../../../../libs/shared/src/utils/SeriesHelper.ts","../../../../libs/shared/src/components/video-sub-text/VideoSubText.tsx","../../../../libs/shared/src/context/player-context/PlayerContext.tsx","../../../../libs/shared/src/images/svg/actions/PlayCircleSvg.tsx","../../src/shared/hooks/useCommonVideoProps.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Audience } from 'libs/shared/interfaces';\n\nimport styles from './audience-label.module.scss';\n\ntype AudienceBorderColour = 'dark' | 'white';\n\ninterface AudienceLabelProps {\n audience: Audience;\n border: AudienceBorderColour;\n className?: string;\n}\n\nexport function AudienceLabel(props: AudienceLabelProps): JSX.Element {\n if (!props.audience)\n return <></>;\n\n // Note: the audience-label class is applied so that parent components can override styling, and Online can style this component\n return (\n <div\n className={`audience-label border rounded-pill d-inline-block px-2 text-nowrap \n ${'border-' + props.border} ${props.className ? props.className : ''}`}\n >\n {props.audience.name}\n </div>\n );\n}\n\ninterface AudienceLabelListProps {\n audiences: Audience[];\n border: AudienceBorderColour;\n}\n\nexport function AudienceLabelList(props: AudienceLabelListProps): JSX.Element {\n if (!props.audiences || !props.audiences.length)\n return <></>;\n\n return (\n <>\n {props.audiences.map((a, idx) => (\n <span key={idx} className={styles.audienceLabelListItem}>\n <AudienceLabel audience={a} border={props.border} />\n </span>\n ))}\n </>\n );\n}","import React from 'react';\n\nimport { Audience, PresentationAudience } from '../interfaces';\nimport { AudienceHelper } from '../utils/audience-helper/AudienceHelper';\n\nexport function useMergeAudiences(\n audiences: Audience[],\n presentationAudiences: PresentationAudience[]\n): PresentationAudience {\n // Memoize the audience functions as they are somewhat expensive and the result shouldn't change\n const sortedAudiences = React.useMemo(() => {\n if (!audiences?.length || !presentationAudiences || !AudienceHelper.shouldShowAudiences(presentationAudiences))\n return null;\n\n return AudienceHelper.getSortedPresentationAudiences(audiences, presentationAudiences);\n }, [audiences]);\n\n const mergedAudience = React.useMemo(() => {\n if (!sortedAudiences?.length)\n return null;\n\n return AudienceHelper.getMergedPresentationAudienceString(sortedAudiences);\n }, [sortedAudiences]);\n\n return mergedAudience;\n}","import * as React from 'react';\n\nimport styles from './badge.module.scss';\n\ninterface BadgeListContainerProps {\n className?: string;\n}\n\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\n let className = `d-flex align-items-center badge-list ${styles.minHeight}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return (\n <div className={className}>\n {props.children}\n </div>\n );\n}","export const NumberHelper = {\n padNumber(num: number, padLength: number): string {\n let numberString = num.toString();\n\n if (numberString.length >= padLength)\n return numberString;\n\n padLength = padLength - numberString.length;\n\n while (padLength > 0) {\n numberString = '0' + numberString;\n padLength--;\n }\n return numberString;\n }\n};","import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Rating, Series } from 'libs/shared/interfaces';\n\nimport { NumberHelper } from './NumberHelper';\n\nexport const SeriesHelper = {\n isSeries(obj: BaseObject): obj is Series {\n return obj?.typeId === MasterType.Series;\n },\n\n buildSeriesSeasonEpisodeText(seriesName: string, season?: number, episode?: number): string {\n if (!seriesName)\n return '';\n\n if (!season || !episode)\n return seriesName.toUpperCase();\n\n const seasonNum = NumberHelper.padNumber(season, 2);\n const episodeNum = NumberHelper.padNumber(episode, 2);\n\n return `${seriesName.toUpperCase()} S${seasonNum} • E${episodeNum}`;\n },\n\n getRating(series: Series): Rating {\n return series._rating?.value;\n }\n};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, UserAction } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { Video } from 'libs/shared/interfaces';\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\nimport { SeriesHelper } from 'libs/shared/utils/SeriesHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { TitleSubText } from '../title-sub-text/TitleSubText';\n\nconst namespace = 'shared.videoSubText';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport styles from './video-sub-text.module.scss';\n\nexport type VideoSubTextType = 'series' | 'productionCompany' | 'none';\n\ninterface SeriesLinkProps {\n video: Video;\n appLink?: Core.AppLink;\n className?: string;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions; // Required as `location` needs to be supplied\n withSeriesTitle?: boolean;\n size?: 'sm' | 'lg';\n}\n\nexport function SeasonEpisode(props: Omit<SeriesLinkProps, 'analyticsOptions' | 'analyticsData'>): JSX.Element {\n const { video } = props;\n const { season } = video;\n\n if (!video.episodeNumber || !season)\n return <></>;\n\n const seasonNumber = NumberHelper.padNumber(season.number, 2);\n const episodeNumber = NumberHelper.padNumber(video.episodeNumber, 2);\n\n /* \\u2022 is the unicode number for &bull; */\n return (\n <span className={`d-inline-block ${props.appLink ? styles.hoverUnderline : ''}`}>\n {props.withSeriesTitle && <>&nbsp;</>}\n {!!seasonNumber && `S${seasonNumber} \\u2022 `}\n E{episodeNumber}\n </span>\n );\n}\n\nfunction ReleaseDate(props: SeriesLinkProps): JSX.Element {\n const releaseDate = VideoHelper.getReleaseDate(props.video);\n\n if (!releaseDate)\n return <></>;\n\n if (VideoHelper.hasSeries(props.video))\n return <>{` \\u2022 ${releaseDate}`}</>;\n\n return <>{releaseDate}</>;\n}\n\nfunction SeriesLink(props: SeriesLinkProps): JSX.Element {\n const { appLink, video, className = '' } = props;\n\n const series = video?.series;\n const releaseDate = VideoHelper.getReleaseDate(props.video);\n\n if ((!series?.id) && !releaseDate)\n return <></>;\n\n const seriesAppLink: Core.AppLink = series?.id && appLink && {\n ...appLink,\n args: [ series.id, TextHelper.slugify(series.name) ]\n };\n\n const analyticsData = { ...props.analyticsData,\n id: series?.id,\n name: series?.name,\n videoId: video?.id,\n videoName: video?.name\n };\n\n const analyticsOptions = {\n ...props.analyticsOptions,\n entity: EntityType.Series,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Title\n };\n\n const seriesTitle = SeriesHelper.buildSeriesSeasonEpisodeText(\n series?.name,\n video.season?.number,\n video.episodeNumber\n );\n\n return (\n <TitleSubText\n appLink={seriesAppLink}\n className={`d-block ${styles.appLink} ${className}`}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={seriesTitle}\n ariaLabel={`${getPhrase('ariaSeries')} ${seriesTitle}`}\n >\n {series?.name && series.name}\n <SeasonEpisode {...props} withSeriesTitle />\n <ReleaseDate {...props} />\n </TitleSubText>\n );\n}\n\ninterface ProductionCompanyLinkProps {\n video: Video;\n appLink?: Core.AppLink;\n className?: string;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions; // Required as `location` needs to be supplied\n size?: 'sm' | 'lg';\n}\n\nfunction ProductionCompanyLink(props: ProductionCompanyLinkProps): JSX.Element {\n const { appLink, video, className = '' } = props;\n\n const productionCompany = video?.productionCompanies?.data?.[0];\n\n if (!productionCompany?.id)\n return <></>;\n\n const companyAppLink: Core.AppLink = productionCompany?.id && appLink && {\n ...appLink,\n args: [ productionCompany.id, TextHelper.slugify(productionCompany.name) ]\n };\n\n const analyticsData = { ...props.analyticsData,\n id: productionCompany?.id,\n name: productionCompany?.name,\n videoId: video?.id,\n videoName: video?.name\n };\n\n const analyticsOptions = {\n ...props.analyticsOptions,\n entity: EntityType.Company,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Title\n };\n\n return (\n <TitleSubText\n appLink={companyAppLink}\n className={`d-block ${styles.appLink} ${className}`}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={productionCompany.name}\n ariaLabel={`${getPhrase('ariaCompany')} ${productionCompany.name}`}\n >\n {productionCompany.name}\n </TitleSubText>\n );\n}\n\ninterface VideoSubTextProps {\n type: VideoSubTextType;\n video: Video;\n appLink?: Core.AppLink;\n className?: string;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions; // Required as `location` needs to be supplied\n size?: 'sm' | 'lg';\n}\n\nexport function VideoSubText(props: VideoSubTextProps): JSX.Element {\n const { type = 'series' } = props;\n\n if (type === 'none')\n return <></>;\n\n if (type === 'series')\n return <SeriesLink {...props} />;\n\n return <ProductionCompanyLink {...props} />;\n}\n\n","import React from 'react';\nimport { createHtmlPortalNode, HtmlPortalNode } from 'react-reverse-portal';\n\nimport { PlayerInitializationData } from 'libs/shared/context/player-context/interfaces/PlayerContextAction';\nimport { PlayerContextState } from 'libs/shared/context/player-context/interfaces/PlayerContextState';\nimport { PlayerMode } from 'libs/shared/context/player-context/interfaces/PlayerMode';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { playerContextReducer } from 'libs/shared/context/player-context/reducer/PlayerContextReducer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nexport interface PlayerContextValues extends PlayerContextState {\n playerRef?: React.MutableRefObject<PlayerReference>;\n portalNode?: HtmlPortalNode;\n questionListPortalNode?: HtmlPortalNode;\n\n useInitialize?: (initializeData: PlayerInitializationData) => void;\n dispose?: () => void;\n setPlayerRef?: (player: any) => void;\n setPlayerMode?: (mode: PlayerMode) => void;\n setStarted?: (started: boolean) => void;\n setPersist?: () => void;\n\n /**\n * Tells components if an instance of <PlayerContextProvider /> exists\n * above them in the tree. I.e. When this is used in curator.\n */\n hasProvider: boolean;\n}\n\nconst PlayerContext = React.createContext<PlayerContextValues>({ hasProvider: false });\n\nexport function usePlayerContext() {\n return React.useContext(PlayerContext);\n}\n\nexport function PlayerContextProvider(props: React.PropsWithChildren) {\n const [ state, dispatch ] = React.useReducer(playerContextReducer, {});\n\n const { hasPreviewVideos } = useSettings(null);\n\n const playerRef = React.useRef<any>(null);\n const portalNode = React.useMemo(() => createHtmlPortalNode(\n { attributes: { class: 'cv-theatre-mode-video-container' } }\n ), []);\n\n const questionListPortalNode = React.useMemo(createHtmlPortalNode, []);\n\n function setPlayerRef(player: PlayerReference) {\n playerRef.current = player;\n }\n\n function useInitialize(initializeData: PlayerInitializationData) {\n const enabled = hasPreviewVideos || initializeData.mode !== 'hover';\n\n React.useEffect(() => {\n if (!enabled)\n return;\n\n /**\n * Cannot initialize a hover player if we already have a player elsewhere.\n */\n if (initializeData.mode === 'hover' && state.mode)\n return;\n\n /**\n * No hover to play on interactives. This feature is ComingSoon™️ - Sha\n */\n if (initializeData.mode === 'hover' && initializeData.objectTypeId === MasterType.Interactive)\n return;\n\n dispatch({\n type: 'initialize',\n data: initializeData\n });\n\n return disposeInternal;\n }, []);\n\n React.useEffect(() => {\n if (!enabled)\n return;\n\n return () => {\n if (!state.disposed)\n return;\n\n playerRef.current = null;\n };\n }, [state.disposed]);\n }\n\n function setPlayerMode(mode: PlayerMode) {\n dispatch({ type: 'mode', data: { mode } });\n }\n\n function setStarted(): void {\n dispatch({ type: 'started' });\n }\n\n function disposeInternal(force: boolean = false): void {\n dispatch({ type: 'dispose', data: { force: force } });\n }\n\n function setPersist(): void {\n dispatch({ type: 'persist' });\n }\n\n /**\n * If anything external calls dispose, we ignore the persist flag and force a disposal\n */\n function dispose(): void {\n disposeInternal(true);\n }\n\n const playerContextValues: PlayerContextValues = {\n ...state,\n playerRef,\n setPlayerRef,\n portalNode,\n questionListPortalNode,\n useInitialize,\n setPlayerMode,\n setStarted,\n dispose,\n setPersist,\n hasProvider: true\n };\n\n return (\n <PlayerContext.Provider value={playerContextValues}>\n {props.children}\n </PlayerContext.Provider>\n );\n}","import React from 'react';\n\nexport function PlayCircleSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fillRule='evenodd'\n d='M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12m23 0c0-6.075-4.925-11-11-11S1 5.925 1 12s4.925 11 11 11 11-4.925 11-11M9 7.498c0-.551.387-.756.847-.469l7.306 4.567c.468.292.46.77 0 1.058l-7.306 4.567c-.468.292-.847.074-.847-.47z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function useCommonVideoProps(): UseCommonVideoPropsResult {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n\n function getSubTextAppLink(video: VideoTypes) {\n if (!('productionCompanies' in video))\n return null;\n\n const productionCompany = video.productionCompanies?.data?.[0];\n\n if (!productionCompany?.id)\n return null;\n\n return {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.COMPANY_DASHBOARD,\n args: [ productionCompany.id, TextHelper.slugify(productionCompany.name) ]\n };\n }\n\n function getClassroomGuideAppLink(id: string) {\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.CLASSROOM_GUIDE,\n args: [id]\n };\n }\n\n function getResourceGuidanceAppLink(id: string) {\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.RESOURCE_GUIDANCE,\n args: [id]\n };\n }\n\n const hasCommonVideoPropsCompleted = (\n config.hasCompleted &&\n hasLoadedPermissions\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'productionCompany',\n getSubTextAppLink,\n isPlugin: false,\n canFavourite: null,\n setFavourite: null,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: null,\n getInteractiveGuidanceAppLink: () => null,\n getClassroomGuideAppLink,\n getResourceGuidanceAppLink,\n showNewVideoIndicator: false,\n companyLogoFallbackUrl: ImageUrls.StreamableLearning.LOGO,\n hasStudentExperience: hasPermissions(PermissionName.StudentExperience),\n hasGuestExperience: false\n }\n };\n}"],"names":["AudienceLabel","props","jsx","Fragment","useMergeAudiences","audiences","presentationAudiences","sortedAudiences","React","AudienceHelper","BadgeListContainer","className","styles","NumberHelper","num","padLength","numberString","SeriesHelper","obj","MasterType","seriesName","season","episode","seasonNum","episodeNum","series","_a","namespace","getPhrase","LanguageService","SeasonEpisode","video","seasonNumber","episodeNumber","jsxs","ReleaseDate","releaseDate","VideoHelper","SeriesLink","appLink","seriesAppLink","TextHelper","analyticsData","analyticsOptions","EntityType","UserAction","ClickDescriptor","seriesTitle","TitleSubText","ProductionCompanyLink","productionCompany","_b","companyAppLink","VideoSubText","type","PlayerContext","usePlayerContext","PlayCircleSvg","useCommonVideoProps","config","Flight.useBasicFetch","ConfigRequests","hasPermissions","hasLoadedPermissions","usePermissions","getSubTextAppLink","AppChannels","Actions","getClassroomGuideAppLink","id","getResourceGuidanceAppLink","ImageUrls","PermissionName"],"mappings":"0SAcO,SAASA,EAAcC,EAAwC,CACpE,OAAKA,EAAM,SAKTC,EAAAA,IAAC,MAAA,CACC,UAAW;AAAA,QACT,UAAYD,EAAM,MAAM,IAAIA,EAAM,UAAYA,EAAM,UAAY,EAAE,GAEnE,WAAM,SAAS,IAAA,CAAA,EARXC,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAWb,CCtBO,SAASC,EACdC,EACAC,EACsB,CAEtB,MAAMC,EAAkBC,EAAM,QAAQ,IAChC,EAACH,GAAA,MAAAA,EAAW,SAAU,CAACC,GAAyB,CAACG,EAAe,oBAAoBH,CAAqB,EACpG,KAEFG,EAAe,+BAA+BJ,EAAWC,CAAqB,EACpF,CAACD,CAAS,CAAC,EASd,OAPuBG,EAAM,QAAQ,IAC9BD,GAAA,MAAAA,EAAiB,OAGfE,EAAe,oCAAoCF,CAAe,EAFhE,KAGR,CAACA,CAAe,CAAC,CAGtB,CCjBO,SAASG,EAAmBT,EAAsE,CACvG,IAAIU,EAAY,wCAAwCC,EAAO,SAAS,GAExE,OAAIX,EAAM,YACRU,GAAa,IAAIV,EAAM,SAAS,IAGhCC,EAAAA,IAAC,MAAA,CAAI,UAAAS,EACF,SAAAV,EAAM,SACT,CAEJ,CCnBO,MAAMY,EAAe,CAC1B,UAAUC,EAAaC,EAA2B,CAChD,IAAIC,EAAeF,EAAI,SAAA,EAEvB,GAAIE,EAAa,QAAUD,EACzB,OAAOC,EAIT,IAFAD,EAAYA,EAAYC,EAAa,OAE9BD,EAAY,GACjBC,EAAe,IAAMA,EACrBD,IAEF,OAAOC,CACT,CACF,ECVaC,EAAe,CAC1B,SAASC,EAAgC,CACvC,OAAOA,GAAA,YAAAA,EAAK,UAAWC,EAAW,MACpC,EAEA,6BAA6BC,EAAoBC,EAAiBC,EAA0B,CAC1F,GAAI,CAACF,EACH,MAAO,GAET,GAAI,CAACC,GAAU,CAACC,EACd,OAAOF,EAAW,YAAA,EAEpB,MAAMG,EAAYV,EAAa,UAAUQ,EAAQ,CAAC,EAC5CG,EAAaX,EAAa,UAAUS,EAAS,CAAC,EAEpD,MAAO,GAAGF,EAAW,YAAA,CAAa,KAAKG,CAAS,OAAOC,CAAU,EACnE,EAEA,UAAUC,EAAwB,OAChC,OAAOC,EAAAD,EAAO,UAAP,YAAAC,EAAgB,KACzB,CACF,kFCVMC,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAgBrD,SAASG,EAAc7B,EAAiF,CAC7G,KAAM,CAAE,MAAA8B,GAAU9B,EACZ,CAAE,OAAAoB,GAAWU,EAEnB,GAAI,CAACA,EAAM,eAAiB,CAACV,EAC3B,OAAOnB,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEX,MAAM6B,EAAenB,EAAa,UAAUQ,EAAO,OAAQ,CAAC,EACtDY,EAAgBpB,EAAa,UAAUkB,EAAM,cAAe,CAAC,EAGnE,OACEG,EAAAA,KAAC,QAAK,UAAW,kBAAkBjC,EAAM,QAAUW,EAAO,eAAiB,EAAE,GAC1E,SAAA,CAAAX,EAAM,mCAAqB,SAAA,IAAM,EACjC,CAAC,CAAC+B,GAAgB,IAAIA,CAAY,MAAW,IAC5CC,CAAA,EACJ,CAEJ,CAEA,SAASE,EAAYlC,EAAqC,CACxD,MAAMmC,EAAcC,EAAY,eAAepC,EAAM,KAAK,EAE1D,OAAKmC,EAGDC,EAAY,UAAUpC,EAAM,KAAK,EAC5BC,EAAAA,IAAAC,EAAAA,SAAA,CAAG,SAAA,MAAWiC,CAAW,GAAG,oBAE3B,SAAAA,CAAA,CAAY,EALblC,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAMb,CAEA,SAASmC,EAAWrC,EAAqC,OACvD,KAAM,CAAE,QAAAsC,EAAS,MAAAR,EAAO,UAAApB,EAAY,IAAOV,EAErCwB,EAASM,GAAA,YAAAA,EAAO,OAChBK,EAAcC,EAAY,eAAepC,EAAM,KAAK,EAE1D,GAAK,EAACwB,GAAA,MAAAA,EAAQ,KAAO,CAACW,EACpB,OAAOlC,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEX,MAAMqC,GAA8Bf,GAAA,YAAAA,EAAQ,KAAMc,GAAW,CAC3D,GAAGA,EACH,KAAM,CAAEd,EAAO,GAAIgB,EAAW,QAAQhB,EAAO,IAAI,CAAE,CAAA,EAG/CiB,EAAgB,CAAE,GAAGzC,EAAM,cAC/B,GAAIwB,GAAA,YAAAA,EAAQ,GACZ,KAAMA,GAAA,YAAAA,EAAQ,KACd,QAASM,GAAA,YAAAA,EAAO,GAChB,UAAWA,GAAA,YAAAA,EAAO,IAAA,EAGdY,EAAmB,CACvB,GAAG1C,EAAM,iBACT,OAAQ2C,EAAW,OACnB,WAAYC,EAAW,MACvB,WAAYC,EAAgB,KAAA,EAGxBC,EAAc9B,EAAa,6BAC/BQ,GAAA,YAAAA,EAAQ,MACRC,EAAAK,EAAM,SAAN,YAAAL,EAAc,OACdK,EAAM,aAAA,EAGR,OACEG,EAAAA,KAACc,EAAA,CACC,QAASR,EACT,UAAW,WAAW5B,EAAO,OAAO,IAAID,CAAS,GACjD,cAAA+B,EACA,iBAAAC,EACA,MAAOI,EACP,UAAW,GAAGnB,EAAU,YAAY,CAAC,IAAImB,CAAW,GAEnD,SAAA,EAAAtB,GAAA,YAAAA,EAAQ,OAAQA,EAAO,KACxBvB,EAAAA,IAAC4B,EAAA,CAAe,GAAG7B,EAAO,gBAAe,EAAA,CAAC,EAC1CC,MAACiC,EAAA,CAAa,GAAGlC,CAAA,CAAO,CAAA,CAAA,CAAA,CAG9B,CAWA,SAASgD,EAAsBhD,EAAgD,SAC7E,KAAM,CAAE,QAAAsC,EAAS,MAAAR,EAAO,UAAApB,EAAY,IAAOV,EAErCiD,GAAoBC,GAAAzB,EAAAK,GAAA,YAAAA,EAAO,sBAAP,YAAAL,EAA4B,OAA5B,YAAAyB,EAAmC,GAE7D,GAAI,EAACD,GAAA,MAAAA,EAAmB,IACtB,OAAOhD,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEX,MAAMiD,GAA+BF,GAAA,YAAAA,EAAmB,KAAMX,GAAW,CACvE,GAAGA,EACH,KAAM,CAAEW,EAAkB,GAAIT,EAAW,QAAQS,EAAkB,IAAI,CAAE,CAAA,EAGrER,EAAgB,CAAE,GAAGzC,EAAM,cAC/B,GAAIiD,GAAA,YAAAA,EAAmB,GACvB,KAAMA,GAAA,YAAAA,EAAmB,KACzB,QAASnB,GAAA,YAAAA,EAAO,GAChB,UAAWA,GAAA,YAAAA,EAAO,IAAA,EAGdY,EAAmB,CACvB,GAAG1C,EAAM,iBACT,OAAQ2C,EAAW,QACnB,WAAYC,EAAW,MACvB,WAAYC,EAAgB,KAAA,EAG9B,OACE5C,EAAAA,IAAC8C,EAAA,CACC,QAASI,EACT,UAAW,WAAWxC,EAAO,OAAO,IAAID,CAAS,GACjD,cAAA+B,EACA,iBAAAC,EACA,MAAOO,EAAkB,KACzB,UAAW,GAAGtB,EAAU,aAAa,CAAC,IAAIsB,EAAkB,IAAI,GAE/D,SAAAA,EAAkB,IAAA,CAAA,CAGzB,CAYO,SAASG,EAAapD,EAAuC,CAClE,KAAM,CAAE,KAAAqD,EAAO,QAAA,EAAarD,EAE5B,OAAIqD,IAAS,OACJpD,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEPmD,IAAS,SACJpD,MAACoC,EAAA,CAAY,GAAGrC,CAAA,CAAO,EAEzBC,MAAC+C,EAAA,CAAuB,GAAGhD,CAAA,CAAO,CAC3C,CC3JA,MAAMsD,EAAgB/C,EAAM,cAAmC,CAAE,YAAa,GAAO,EAE9E,SAASgD,GAAmB,CACjC,OAAOhD,EAAM,WAAW+C,CAAa,CACvC,CChCO,SAASE,EAAcxD,EAAsC,CAClE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,SAAS,UACT,EAAE,8PACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCMO,SAASwD,IAAiD,OAC/D,MAAMC,EAASC,EAA6BC,EAAe,QAAQ,EAC7D,CAAE,eAAAC,EAAgB,SAAUC,CAAA,EAAyBC,EAAA,EAE3D,SAASC,EAAkBlC,EAAmB,SAC5C,GAAI,EAAE,wBAAyBA,GAC7B,OAAO,KAET,MAAMmB,GAAoBC,GAAAzB,EAAAK,EAAM,sBAAN,YAAAL,EAA2B,OAA3B,YAAAyB,EAAkC,GAE5D,OAAKD,GAAA,MAAAA,EAAmB,GAGjB,CACL,YAAagB,EAAY,UACzB,OAAQC,EAAQ,UAAU,kBAC1B,KAAM,CAAEjB,EAAkB,GAAIT,EAAW,QAAQS,EAAkB,IAAI,CAAE,CAAA,EALlE,IAOX,CAEA,SAASkB,EAAyBC,EAAY,CAC5C,MAAO,CACL,YAAaH,EAAY,OACzB,OAAQC,EAAQ,OAAO,gBACvB,KAAM,CAACE,CAAE,CAAA,CAEb,CAEA,SAASC,EAA2BD,EAAY,CAC9C,MAAO,CACL,YAAaH,EAAY,OACzB,OAAQC,EAAQ,OAAO,kBACvB,KAAM,CAACE,CAAE,CAAA,CAEb,CAOA,MAAO,CACL,6BALAV,EAAO,cACPI,EAKA,iBAAkB,CAChB,YAAa,oBACb,kBAAAE,EACA,SAAU,GACV,aAAc,KACd,aAAc,KACd,aAAavC,EAAAiC,EAAO,OAAP,YAAAjC,EAAa,YAC1B,WAAY,KACZ,8BAA+B,IAAM,KACrC,yBAAA0C,EACA,2BAAAE,EACA,sBAAuB,GACvB,uBAAwBC,EAAU,mBAAmB,KACrD,qBAAsBT,EAAeU,EAAe,iBAAiB,EACrE,mBAAoB,EAAA,CACtB,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as c}from"./app-C56EnOMP.js";function e(l){return c.jsx("svg",{...l,children:c.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0M5.493 14.585a7 7 0 0 0 9.244 3.86l-.59-.591c-.008-.008-.062-.05-.232-.068a2.7 2.7 0 0 0-.603.023c-.205.025-.41.062-.61.098l-.083.015c-.203.036-.44.078-.619.078a.72.72 0 0 1-.544-.261 1.2 1.2 0 0 1-.215-.39 4 4 0 0 1-.175-.856C11 15.903 11 15.256 11 15.005V15c0-.209.088-.397.245-.528a.9.9 0 0 1 .394-.18c.2-.042.45-.042.644-.042h.03c.226 0 .422-.001.59-.026.176-.026.233-.067.243-.078.187-.187.282-.37.407-.62l.006-.013c.124-.248.28-.559.587-.867a1.14 1.14 0 0 1 .667-.345 1.15 1.15 0 0 1 .66.127c.325.162.624.462.851.689l.023.023c.043-.01.103-.033.24-.088l.04-.016c.352-.141.9-.331 1.597.017.267.133.459.326.594.54a7.003 7.003 0 0 0-5.136-8.389.4.4 0 0 0-.026.108c.006.01.021.033.073.084q.022.022.059.057c.103.097.278.26.41.457.182.274.302.622.302 1.09 0 .357-.081.667-.264.925-.18.253-.423.405-.652.51-.191.09-.409.16-.605.223l-.09.03c-.23.075-.45.152-.665.26l-.066.035.04.102.016.042c.063.158.17.426.144.749q-.039.51-.504.978c-.573.572-1.07.771-1.604.771-.215 0-.426-.033-.605-.06l-.05-.008a4 4 0 0 0-.567-.057c-.023.096-.028.249-.028.5v.036c0 .221 0 .543-.088.81a.96.96 0 0 1-.316.463A.95.95 0 0 1 8 13.5c-.384 0-.7-.146-.956-.323a5 5 0 0 1-.633-.56l-.015-.013a4 4 0 0 0-.509-.458.74.74 0 0 0-.325-.142l-.012.03q-.08.204-.1.673c-.012.3 0 .63.015.948l.011.215c.012.233.024.458.024.63a1 1 0 0 1-.007.085M12 5a7 7 0 0 0-6.945 6.118A.85.85 0 0 1 5.5 11c.384 0 .7.146.956.323.241.167.456.382.633.56l.015.013c.194.195.35.348.509.458a.7.7 0 0 0 .359.145C7.995 12.403 8 12.25 8 12v-.036c0-.221 0-.543.088-.81a.96.96 0 0 1 .316-.463A.95.95 0 0 1 9 10.5c.291 0 .542.037.748.068l.03.005c.2.03.338.052.472.052.215 0 .469-.051.896-.479.188-.188.211-.3.215-.35.005-.068-.013-.143-.075-.298l-.012-.03c-.026-.063-.061-.15-.087-.235a1 1 0 0 1-.043-.409c.044-.378.319-.614.632-.771.285-.143.565-.238.803-.316l.097-.032a5 5 0 0 0 .49-.177c.146-.068.215-.127.255-.182.035-.05.079-.144.079-.346 0-.282-.068-.434-.135-.535a1.2 1.2 0 0 0-.207-.23q-.059-.054-.136-.131c-.153-.153-.366-.4-.366-.792q0-.137.035-.278A7 7 0 0 0 12 5m3.651 12.944.018.018a7.04 7.04 0 0 0 2.34-2.369.5.5 0 0 1 .044-.317l.007-.018.016-.053q.019-.067.033-.17c.019-.136.024-.296.007-.454-.038-.335-.16-.544-.34-.634-.303-.152-.505-.092-.778.017l-.023.01-.025.01c-.125.051-.319.13-.509.153a.93.93 0 0 1-.795-.283c-.27-.27-.458-.451-.62-.532a.3.3 0 0 0-.07-.027q-.02-.003-.019-.002h-.003l-.012.006a.3.3 0 0 0-.068.055c-.187.187-.282.37-.407.62l-.006.013c-.124.248-.28.559-.587.867-.24.239-.558.323-.804.36-.248.036-.513.036-.722.036h-.015q-.195-.001-.312.004c.003.3.014.733.058 1.128.029.254.067.461.113.6q.105-.015.271-.044l.081-.015c.197-.035.43-.077.664-.107.264-.033.559-.054.834-.024.268.029.59.112.832.354l.795.796zm-1.098-9.293c.23-.46.53-.776.91-.873a.93.93 0 0 1 .82.18c.19.1.445.259.668.45.124.107.252.236.353.384.099.145.196.345.196.583 0 .267-.123.521-.239.709a3.3 3.3 0 0 1-.47.582 3.3 3.3 0 0 1-.582.47c-.188.116-.442.239-.709.239-.065 0-.157.017-.337.05l-.027.004c-.172.032-.399.071-.636.071a1.6 1.6 0 0 1-.786-.186 1.6 1.6 0 0 1-.661-.715c-.15-.3-.251-.688-.007-1.03a.96.96 0 0 1 .349-.29c.108-.055.226-.096.322-.128l.057-.02c.404-.134.646-.214.779-.48m1.13.114c-.043.034-.129.12-.236.334-.329.658-.975.862-1.322.971q-.051.015-.092.03l-.095.033.01.018c.085.171.174.246.245.285a.63.63 0 0 0 .307.064c.138 0 .286-.023.457-.054l.052-.01a3 3 0 0 1 .491-.061q-.006 0 .001-.002c.016-.004.075-.022.181-.087.125-.077.267-.192.402-.327s.25-.277.327-.402a.8.8 0 0 0 .085-.172l-.019-.03a1 1 0 0 0-.178-.188 2.8 2.8 0 0 0-.523-.345l-.072-.036z",clipRule:"evenodd"})})}export{e as G};
2
+ //# sourceMappingURL=6UeJLeAd.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6UeJLeAd.chunk.js","sources":["../../../../libs/shared/src/images/svg/objects/GlobeSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function GlobeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0M5.493 14.585a7 7 0 0 0 9.244 3.86l-.59-.591c-.008-.008-.062-.05-.232-.068a2.7 2.7 0 0 0-.603.023c-.205.025-.41.062-.61.098l-.083.015c-.203.036-.44.078-.619.078a.72.72 0 0 1-.544-.261 1.2 1.2 0 0 1-.215-.39 4 4 0 0 1-.175-.856C11 15.903 11 15.256 11 15.005V15c0-.209.088-.397.245-.528a.9.9 0 0 1 .394-.18c.2-.042.45-.042.644-.042h.03c.226 0 .422-.001.59-.026.176-.026.233-.067.243-.078.187-.187.282-.37.407-.62l.006-.013c.124-.248.28-.559.587-.867a1.14 1.14 0 0 1 .667-.345 1.15 1.15 0 0 1 .66.127c.325.162.624.462.851.689l.023.023c.043-.01.103-.033.24-.088l.04-.016c.352-.141.9-.331 1.597.017.267.133.459.326.594.54a7.003 7.003 0 0 0-5.136-8.389.4.4 0 0 0-.026.108c.006.01.021.033.073.084q.022.022.059.057c.103.097.278.26.41.457.182.274.302.622.302 1.09 0 .357-.081.667-.264.925-.18.253-.423.405-.652.51-.191.09-.409.16-.605.223l-.09.03c-.23.075-.45.152-.665.26l-.066.035.04.102.016.042c.063.158.17.426.144.749q-.039.51-.504.978c-.573.572-1.07.771-1.604.771-.215 0-.426-.033-.605-.06l-.05-.008a4 4 0 0 0-.567-.057c-.023.096-.028.249-.028.5v.036c0 .221 0 .543-.088.81a.96.96 0 0 1-.316.463A.95.95 0 0 1 8 13.5c-.384 0-.7-.146-.956-.323a5 5 0 0 1-.633-.56l-.015-.013a4 4 0 0 0-.509-.458.74.74 0 0 0-.325-.142l-.012.03q-.08.204-.1.673c-.012.3 0 .63.015.948l.011.215c.012.233.024.458.024.63a1 1 0 0 1-.007.085M12 5a7 7 0 0 0-6.945 6.118A.85.85 0 0 1 5.5 11c.384 0 .7.146.956.323.241.167.456.382.633.56l.015.013c.194.195.35.348.509.458a.7.7 0 0 0 .359.145C7.995 12.403 8 12.25 8 12v-.036c0-.221 0-.543.088-.81a.96.96 0 0 1 .316-.463A.95.95 0 0 1 9 10.5c.291 0 .542.037.748.068l.03.005c.2.03.338.052.472.052.215 0 .469-.051.896-.479.188-.188.211-.3.215-.35.005-.068-.013-.143-.075-.298l-.012-.03c-.026-.063-.061-.15-.087-.235a1 1 0 0 1-.043-.409c.044-.378.319-.614.632-.771.285-.143.565-.238.803-.316l.097-.032a5 5 0 0 0 .49-.177c.146-.068.215-.127.255-.182.035-.05.079-.144.079-.346 0-.282-.068-.434-.135-.535a1.2 1.2 0 0 0-.207-.23q-.059-.054-.136-.131c-.153-.153-.366-.4-.366-.792q0-.137.035-.278A7 7 0 0 0 12 5m3.651 12.944.018.018a7.04 7.04 0 0 0 2.34-2.369.5.5 0 0 1 .044-.317l.007-.018.016-.053q.019-.067.033-.17c.019-.136.024-.296.007-.454-.038-.335-.16-.544-.34-.634-.303-.152-.505-.092-.778.017l-.023.01-.025.01c-.125.051-.319.13-.509.153a.93.93 0 0 1-.795-.283c-.27-.27-.458-.451-.62-.532a.3.3 0 0 0-.07-.027q-.02-.003-.019-.002h-.003l-.012.006a.3.3 0 0 0-.068.055c-.187.187-.282.37-.407.62l-.006.013c-.124.248-.28.559-.587.867-.24.239-.558.323-.804.36-.248.036-.513.036-.722.036h-.015q-.195-.001-.312.004c.003.3.014.733.058 1.128.029.254.067.461.113.6q.105-.015.271-.044l.081-.015c.197-.035.43-.077.664-.107.264-.033.559-.054.834-.024.268.029.59.112.832.354l.795.796zm-1.098-9.293c.23-.46.53-.776.91-.873a.93.93 0 0 1 .82.18c.19.1.445.259.668.45.124.107.252.236.353.384.099.145.196.345.196.583 0 .267-.123.521-.239.709a3.3 3.3 0 0 1-.47.582 3.3 3.3 0 0 1-.582.47c-.188.116-.442.239-.709.239-.065 0-.157.017-.337.05l-.027.004c-.172.032-.399.071-.636.071a1.6 1.6 0 0 1-.786-.186 1.6 1.6 0 0 1-.661-.715c-.15-.3-.251-.688-.007-1.03a.96.96 0 0 1 .349-.29c.108-.055.226-.096.322-.128l.057-.02c.404-.134.646-.214.779-.48m1.13.114c-.043.034-.129.12-.236.334-.329.658-.975.862-1.322.971q-.051.015-.092.03l-.095.033.01.018c.085.171.174.246.245.285a.63.63 0 0 0 .307.064c.138 0 .286-.023.457-.054l.052-.01a3 3 0 0 1 .491-.061q-.006 0 .001-.002c.016-.004.075-.022.181-.087.125-.077.267-.192.402-.327s.25-.277.327-.402a.8.8 0 0 0 .085-.172l-.019-.03a1 1 0 0 0-.178-.188 2.8 2.8 0 0 0-.523-.345l-.072-.036z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n"],"names":["GlobeSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,m9GACF,SAAS,SAAA,CAAA,EAEb,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{g as o,O as f}from"./app-C56EnOMP.js";const l={SpecialEvents:{dlL00b3:{id:"dlL00b3",iconUrl:"https://img.clickviewapp.com/v2/covers/PGbNp0"}},Classifications:{Twig:{EnglandSecondary:{HUB:"yrg5vYN"},ScotlandSecondary:{HUB:"Y69j14M"},InternationalSecondary:{HUB:"MYM6GGM"},NewZealandSecondary:{HUB:"agNmRd9"},CanadaMiddle:{HUB:"RbEbJ4g"},CanadaHigh:{HUB:"xAzA6DP"}},Tigtag:{EnglandPrimary:{HUB:"D1218zx",TIGTAG_HUB:"odldxPJ",TIGTAG_JUNIOR_HUB:"nENExnL"},ScotlandPrimary:{HUB:"JjAONbj",TIGTAG_HUB:"3bNAGl1",TIGTAG_JUNIOR_HUB:"K6GKp43"},InternationalPrimary:{HUB:"W1xqbk2",TIGTAG_HUB:"ek3dJr8",TIGTAG_JUNIOR_HUB:"PGyKzpn"},NewZealandPrimary:{HUB:"odnkREE",TIGTAG_HUB:"kZJ4RPa",TIGTAG_JUNIOR_HUB:"zMg80DR"},CanadaElementary:{HUB:"2mgmJA6",TIGTAG_HUB:"69z9D1A",TIGTAG_JUNIOR_HUB:"ZJvJ1Lg"},CanadaMiddle:{HUB:"Jjajxyd",TIGTAG_HUB:"dq9qbe3",TIGTAG_JUNIOR_HUB:"K6a6qdL"}}},PresentationIds:{DEFAULT:1,AU_PRIMARY:18,AU_SECONDARY:9,AU_TERTIARY:81,US_ELEMENTARY:13,CA_ELEMENTARY:100,CA_MIDDLE:101,CA_HIGH:102,STREAMABLE_LEARNING:68,ENG_PRIMARY:16,ENG_SECONDARY:47,SCT_PRIMARY:12,SCT_SECONDARY:24,UK_TERTIARY:82,INT_PRIMARY:19,INT_SECONDARY:21,NZ_PRIMARY:96,NZ_SECONDARY:97},Images:{Level_1:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/dlM73E",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/WAe8MP",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/raRm7E",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/3kzeZ2"},Level_2:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/WAeKvP",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/9DAZJv",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/eKG2bq",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/xyn5eP"},Level_3:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/dl1d0g",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/R0Pz7A",TOPIC_TALL_POSTER:"https://img.clickviewapp.com/v2/tallposters/8LYZ9R",NEW_RELEASES_BANNER:"https://img.clickviewapp.com/v2/banners/nKDyRj"},Level_4:{TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/vYJPP5",TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/PGPLLP"},STREAMABLE_TOPIC_BANNER:"https://img.clickviewapp.com/v2/banners/q6gnOn",STREAMABLE_TOPIC_COVER:"https://img.clickviewapp.com/v2/covers/age95g"}},R=/\d/,u=1,m={yearsAndGradesBuilder(e){const i=e.map(s=>s.name).join(" "),n=i.split(" ").filter(s=>!isNaN(+s)).map(s=>+s)||[],r=i.split(" ").filter(s=>isNaN(+s))||[],t=e.find(s=>!R.test(s.name));let a=r.find(s=>s!==(t==null?void 0:t.name));if(e.length>1&&(a+="s"),t&&n.length)return`${a} ${t.name.charAt(0)} - ${n.pop()}`;const c=_(n);return`${a} ${c.join(", ")}`},internationalSecondaryBuilder(e){return m.englandSecondaryBuilder(e)},scotlandPrimaryBuilder(e){const i=o.first(e),n=o.last(e);let[r]=i.name.split(" "),[t]=n.name.split(" ");return r==="First"&&(r="1st"),t==="First"&&(t="1st"),r==="Second"&&(r="2nd"),t==="Second"&&(t="2nd"),r===t?`${r} Level`:`${r} - ${t} Level`},internationalPrimaryBuilder(e){const i=o.first(e),n=o.last(e);if(i.name===n.name)return i.name;let[r]=i.name.split(" "),[t]=n.name.split(" ");return r==="Lower"&&(r="Low"),t==="Lower"&&(t="Low"),r==="Middle"&&(r="Mid"),t==="Middle"&&(t="Mid"),`${r} - ${t} Pri`},englandSecondaryBuilder(e){const i=o.first(e),n=o.last(e);if(i.name===n.name)return i.name;if(n.name==="Advanced"){const[r]=i.name.split(" ");return r.toLowerCase()==="lower"?"Lower Sec - Adv":"Upper Sec - Adv"}return"Lower - Upper Sec"},scotlandSecondaryBuilder(e){const i=o.first(e),n=o.last(e);return i.name===n.name?i.name:n.name==="Senior Phase"?`${i.name} - Senior`:"Third - Fourth Level"},englandPrimaryBuilder(e){const i=o.first(e),n=o.last(e),r=o.first(i.name.split(" ")),t=o.first(n.name.split(" ")),a=i.name.split(" ").find(A=>!isNaN(+A)),c=n.name.split(" ").find(A=>!isNaN(+A));if(i===n)return r==="Key"||r==="Reception"?i.name:`${r} KS${a}`;let s="",d="";return r==="Reception"?s="R":s=`KS${a}`,d=`KS${c}`,r==="Lower"&&t==="Upper"?`L ${s} - U ${d}`:(r==="Lower"&&(s=`Lower ${s}`),t==="Upper"&&(d=`Upper ${d}`),t==="Key"&&(d=n.name),`${s} - ${d}`)}};function _(e){const i=u;let n,r,t=!1;const a=[];e=e.sort((d,A)=>d-A);let c,s;for(c=0;c<e.length;c++)s=c+1,t||(n=e[c]),r=e[s],e[c]+i===r?t=!0:t?(a.push(`${n} - ${e[c]}`),t=!1):(a.push(`${e[c]}`),t=!1);return a}const N=/([0-9]+)/ig,I=/\s|\+/ig,P=1,g={getSortedPresentationAudiences(e,i){const n=e.filter(t=>!!t).map(t=>t.id.toString());return i.filter(t=>n.includes(t.masterId.toString()))},getMergedPresentationAudienceString(e){const{presentationId:i}=o.first(e);let n="";switch(+i){case l.PresentationIds.DEFAULT:case l.PresentationIds.AU_SECONDARY:case l.PresentationIds.AU_PRIMARY:case l.PresentationIds.NZ_PRIMARY:case l.PresentationIds.NZ_SECONDARY:case l.PresentationIds.US_ELEMENTARY:case l.PresentationIds.CA_ELEMENTARY:case l.PresentationIds.STREAMABLE_LEARNING:if(e.length===1)return e[0];n=m.yearsAndGradesBuilder(e);break;case l.PresentationIds.INT_SECONDARY:if(e.length===1)return e[0];n=m.internationalSecondaryBuilder(e);break;case l.PresentationIds.INT_PRIMARY:n=m.internationalPrimaryBuilder(e);break;case l.PresentationIds.SCT_PRIMARY:n=m.scotlandPrimaryBuilder(e);break;case l.PresentationIds.ENG_SECONDARY:n=m.englandSecondaryBuilder(e);break;case l.PresentationIds.SCT_SECONDARY:n=m.scotlandSecondaryBuilder(e);break;case l.PresentationIds.ENG_PRIMARY:n=m.englandPrimaryBuilder(e);break}return n?{name:n}:null},sortMembersWithDuplicateNamesByAudience(e){const i=t=>{if(!t.length)return null;let a,c;return t.forEach(s=>{const d=+o.first(s.name.match(N));if(!a){a=s,c=d;return}d<c&&(a=s)}),a},n={};let r=[];return e.forEach(t=>{if(!n[t.name]){n[t.name]=1,r.push(t);return}r.push(t),n[t.name]++;const c=r.splice(r.length-n[t.name]).sort((s,d)=>{const A=i(s.subjectPresentationAudiences.data),p=i(d.subjectPresentationAudiences.data);if(!A&&p)return 1;if(!p)return-1;const E=A.name.localeCompare(p.name);return E===0?E:E>0?-1:1});r=r.concat(c)}),r},getActiveAudiencesFromParams(e,i={}){if(!f.isObject(i)||f.isEmpty(i)||!e||!e.length||!g.shouldShowAudiences(e))return;let{a:n}=i;if(!n)return;typeof n=="string"&&(n=[n]);const r=a=>a.replace(I,"").toLowerCase(),t=n.reduce((a,c)=>(a[r(c)]=c,a),{});return e.filter(a=>t[r(a.name)])},getAudienceParams(e){return e!=null&&e.length?{a:e.map(i=>i.name)}:null},shouldShowAudiences(e=[]){return e?e.length>P:!1}};export{g as A,l as H};
2
+ //# sourceMappingURL=8zar0u1i.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8zar0u1i.chunk.js","sources":["../../../../libs/shared/src/constants/HardCoded.ts","../../../../libs/shared/src/utils/audience-helper/AudienceStringBuilders.ts","../../../../libs/shared/src/utils/audience-helper/AudienceHelper.ts"],"sourcesContent":["export const HardCoded = {\n PublicTranscriptVideoIds: [\n '78902422',\n '8139055',\n '32102562',\n '36875667',\n '3713657',\n '9900524',\n '48278572',\n '39424302',\n '3712691',\n '54504550',\n '23852726',\n '3713563',\n '3714027',\n '51281358',\n '58785149',\n '7322586',\n '3716774',\n '36554689',\n '54192890',\n '6689791',\n '10749459',\n '3712691',\n '81764158',\n '43772092',\n '43974358',\n '48091365',\n '6430651',\n '3713735',\n '54096131',\n '57977558',\n '78840166',\n '57738254',\n '51666370',\n '49858722'\n ],\n SpecialEvents: {\n dlL00b3: {\n id: 'dlL00b3',\n iconUrl: 'https://img.clickviewapp.com/v2/covers/PGbNp0'\n }\n },\n Classifications: {\n Twig: {\n EnglandSecondary: {\n HUB: 'yrg5vYN'\n },\n ScotlandSecondary: {\n HUB: 'Y69j14M'\n },\n InternationalSecondary: {\n HUB: 'MYM6GGM'\n },\n NewZealandSecondary: {\n HUB: 'agNmRd9'\n },\n CanadaMiddle: {\n HUB: 'RbEbJ4g'\n },\n CanadaHigh: {\n HUB: 'xAzA6DP'\n }\n },\n Tigtag: {\n EnglandPrimary: {\n HUB: 'D1218zx',\n TIGTAG_HUB: 'odldxPJ',\n TIGTAG_JUNIOR_HUB: 'nENExnL'\n },\n ScotlandPrimary: {\n HUB: 'JjAONbj',\n TIGTAG_HUB: '3bNAGl1',\n TIGTAG_JUNIOR_HUB: 'K6GKp43'\n },\n InternationalPrimary: {\n HUB: 'W1xqbk2',\n TIGTAG_HUB: 'ek3dJr8',\n TIGTAG_JUNIOR_HUB: 'PGyKzpn'\n },\n NewZealandPrimary: {\n HUB: 'odnkREE',\n TIGTAG_HUB: 'kZJ4RPa',\n TIGTAG_JUNIOR_HUB: 'zMg80DR'\n },\n CanadaElementary: {\n HUB: '2mgmJA6',\n TIGTAG_HUB: '69z9D1A',\n TIGTAG_JUNIOR_HUB: 'ZJvJ1Lg'\n },\n CanadaMiddle: {\n HUB: 'Jjajxyd',\n TIGTAG_HUB: 'dq9qbe3',\n TIGTAG_JUNIOR_HUB: 'K6a6qdL'\n }\n }\n },\n // Production values. For testing in development, change these to staging preso values\n PresentationIds: {\n DEFAULT: 1,\n DEFAULT_CURRICULUM: 10,\n\n AU_PRIMARY: 18,\n AU_SECONDARY: 9,\n AU_TERTIARY: 81,\n US_ELEMENTARY: 13,\n US_MIDDLE: 14,\n US_HIGH: 15,\n CA_ELEMENTARY: 100,\n CA_MIDDLE: 101,\n CA_HIGH: 102,\n STREAMABLE_LEARNING: 68,\n ENG_PRIMARY: 16,\n ENG_SECONDARY: 47,\n SCT_PRIMARY: 12,\n SCT_SECONDARY: 24,\n UK_TERTIARY: 82,\n INT_PRIMARY: 19,\n INT_SECONDARY: 21,\n NZ_PRIMARY: 96,\n NZ_SECONDARY: 97\n },\n Libraries: {\n LICENCED_CONTENT_COLLECTION: '3700633',\n\n AU_PRIMARY: '10066675',\n AU_SECONDARY: '59401330',\n AU_TERTIARY: '5836680',\n US_ELEMENTARY: '38693445',\n US_MIDDLE: '39642303',\n US_HIGH: '38693435',\n CA_ELEMENTARY: '92862332',\n CA_MIDDLE: '92862334',\n CA_HIGH: '92862344',\n STREAMABLE_LEARNING: '78688869',\n ENG_PRIMARY: '35340580',\n ENG_SECONDARY: '59889793',\n SCT_PRIMARY: '33386791',\n SCT_SECONDARY: '59856733',\n UK_TERTIARY: '5815036',\n INT_PRIMARY: '3706428',\n INT_SECONDARY: '3706459',\n NZ_PRIMARY: '3705693',\n NZ_SECONDARY: '3705710',\n NZ_MTV: '26989676',\n\n TWIG: '88117784',\n TIGTAG: '80333935'\n },\n Rostering: {\n sources: {\n 0: { name: 'Unknown', iconUrl: '' },\n 1: { name: 'Clever', iconUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd' },\n 2: { name: 'ClassLink', iconUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5' },\n 3: { name: 'Google', iconUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL' },\n 4: { name: 'Microsoft', iconUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP' },\n 5: { name: 'Schoology', iconUrl: 'https://img.clickviewapp.com/v2/logos/kZNEyz' },\n 6: { name: 'PowerSchool', iconUrl: 'https://img.clickviewapp.com/v2/logos/m6aDmR' }\n }\n },\n Images: {\n Level_1: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dlM73E',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/WAe8MP',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/raRm7E',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/3kzeZ2'\n },\n Level_2: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/WAeKvP',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/9DAZJv',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/eKG2bq',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/xyn5eP'\n },\n Level_3: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dl1d0g',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/R0Pz7A',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/8LYZ9R',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/nKDyRj'\n },\n Level_4: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/vYJPP5',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/PGPLLP'\n },\n TOPIC_DEFAULT_BANNER: 'https://img.clickviewapp.com/v2/banners/yKvoG0',\n STREAMABLE_TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/q6gnOn',\n STREAMABLE_TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/age95g'\n },\n Onboarding: {\n Playlist: {\n COVER_FILE_ID: 'G149g3',\n BANNER_FILE_ID: 'bmPLkn'\n },\n LOADING_THUMBNAILS: [\n 'https://img.clickviewapp.com/v2/thumbnails/7m34ne',\n 'https://img.clickviewapp.com/v2/thumbnails/W1bjqJ',\n 'https://img.clickviewapp.com/v2/thumbnails/G14M1e',\n 'https://img.clickviewapp.com/v2/thumbnails/2mnv5x',\n 'https://img.clickviewapp.com/v2/thumbnails/xAEG91',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbyg',\n 'https://img.clickviewapp.com/v2/thumbnails/W13emP',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6j2vy',\n 'https://img.clickviewapp.com/v2/thumbnails/W1MJGE',\n 'https://img.clickviewapp.com/v2/thumbnails/OqDJqG',\n 'https://img.clickviewapp.com/v2/thumbnails/1My9Wn',\n 'https://img.clickviewapp.com/v2/thumbnails/G14MRe',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgKpl',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbp9',\n 'https://img.clickviewapp.com/v2/thumbnails/G147R1',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgMz5',\n 'https://img.clickviewapp.com/v2/thumbnails/G14Me5',\n 'https://img.clickviewapp.com/v2/thumbnails/5bEovE',\n 'https://img.clickviewapp.com/v2/thumbnails/odY4oZ',\n 'https://img.clickviewapp.com/v2/thumbnails/yrqwqD',\n 'https://img.clickviewapp.com/v2/thumbnails/K6pOmR',\n 'https://img.clickviewapp.com/v2/thumbnails/vYK3w4',\n 'https://img.clickviewapp.com/v2/thumbnails/agnD88',\n 'https://img.clickviewapp.com/v2/thumbnails/4rKmp7',\n 'https://img.clickviewapp.com/v2/thumbnails/0wM4r3',\n 'https://img.clickviewapp.com/v2/thumbnails/69A2jO',\n 'https://img.clickviewapp.com/v2/thumbnails/7m3Z3e',\n 'https://img.clickviewapp.com/v2/thumbnails/3bGL94',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6jwLo',\n 'https://img.clickviewapp.com/v2/thumbnails/1MyPby'\n ]\n }\n};","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nconst HAS_NUMBER_REGEX = /\\d/;\nconst COUNT_OFFSET = 1;\n\nexport const AudienceStringBuilders = {\n /**\n * Handles audience sets like:\n * - Year 7, Year 8, etc\n * - Kindergarten, Grade 1, Grade 2, etc\n */\n yearsAndGradesBuilder(audiences: PresentationAudience[]): string {\n /**\n * Create a string with all of the audiences\n */\n const combinedNames = audiences.map(a => a.name).join(' ');\n\n /**\n * Extract all the numbers and matches from the string\n */\n const numberList = combinedNames.split(' ').filter(name => !isNaN(+name)).map(num => +num) || [];\n const wordList = combinedNames.split(' ').filter(name => isNaN(+name)) || [];\n\n // Find an audience that doesn't have a number, like \"Kindergarten\" or \"Foundation\".\n const audienceWithoutNum = audiences.find(p => {\n return !HAS_NUMBER_REGEX.test(p.name);\n });\n\n // Get audience label prefix\n let prefix = wordList.find(name => name !== audienceWithoutNum?.name);\n\n // Pluralise the prefix is there are multiple audiences\n if (audiences.length > 1)\n prefix += 's';\n\n if (audienceWithoutNum && numberList.length)\n return `${prefix} ${audienceWithoutNum.name.charAt(0)} - ${numberList.pop()}`;\n\n /**\n * Build set of logical audience ranges\n */\n const audienceRange = processAudienceRanges(numberList);\n\n return `${prefix} ${audienceRange.join(', ')}`;\n },\n\n internationalSecondaryBuilder(audiences: PresentationAudience[]): string {\n return AudienceStringBuilders.englandSecondaryBuilder(audiences);\n },\n\n scotlandPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'First')\n firstAudienceLevel = '1st';\n\n if (lastAudienceLevel === 'First')\n lastAudienceLevel = '1st';\n\n if (firstAudienceLevel === 'Second')\n firstAudienceLevel = '2nd';\n\n if (lastAudienceLevel === 'Second')\n lastAudienceLevel = '2nd';\n\n if (firstAudienceLevel === lastAudienceLevel)\n return `${firstAudienceLevel} Level`;\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Level`;\n },\n\n internationalPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'Lower')\n firstAudienceLevel = 'Low';\n\n if (lastAudienceLevel === 'Lower')\n lastAudienceLevel = 'Low';\n\n if (firstAudienceLevel === 'Middle')\n firstAudienceLevel = 'Mid';\n\n if (lastAudienceLevel === 'Middle')\n lastAudienceLevel = 'Mid';\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Pri`;\n },\n\n /**\n * Handles the english secondary audiences, which can be: Lower Secondary, Upper Secondary, and Advanced\n */\n englandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Advanced') {\n const [level] = firstAudience.name.split(' ');\n\n if (level.toLowerCase() === 'lower')\n return 'Lower Sec - Adv';\n\n return 'Upper Sec - Adv';\n }\n\n return 'Lower - Upper Sec';\n },\n\n scotlandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Senior Phase')\n return `${firstAudience.name} - Senior`;\n\n return 'Third - Fourth Level';\n },\n\n /**\n * Handles the audience set: Reception, Key Stage 1, Lower Key Stage 2, and Upper Key Stage 2\n */\n englandPrimaryBuilder(audiences: PresentationAudience[]): string {\n // The first and last audience will build out the range\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n // The first word in the strings will either be \"Upper\", \"Lower\", \"Key\", or \"Reception\"\n const firstAudienceFirstWord = ArrayHelper.first(firstAudience.name.split(' '));\n const lastAudienceFirstWord = ArrayHelper.first(lastAudience.name.split(' '));\n\n // Each audience in this set except for \"Reception\" has a number. Get the numbers for the first and last audiences\n const firstAudienceNumber = firstAudience.name.split(' ').find(word => !isNaN(+word));\n const lastAudienceNumber = lastAudience.name.split(' ').find(word => !isNaN(+word));\n\n // If there's only one audience on the video:\n if (firstAudience === lastAudience) {\n // For these 2 audiences, return the full name as it's short enough already\n if (firstAudienceFirstWord === 'Key' || firstAudienceFirstWord === 'Reception')\n return firstAudience.name;\n\n // For the Upper/Lower key stage audiences, abbreviate the \"key stage\" part to KS1/KS2\n return `${firstAudienceFirstWord} KS${firstAudienceNumber}`;\n }\n\n /**\n * Handle when the object has >1 audience\n */\n\n let firstAudienceString = '';\n let lastAudienceString = '';\n\n // Reception is always shortened to \"R\" when in a range\n if (firstAudienceFirstWord === 'Reception') {\n firstAudienceString = 'R';\n } else {\n // All other audiences will be abbreviated to \"KS1/KS2\"\n firstAudienceString = `KS${firstAudienceNumber}`;\n }\n\n // The last audience will always be a key stage, so abbreviate this too\n lastAudienceString = `KS${lastAudienceNumber}`;\n\n // If the audience range contains both the \"Lower\" and \"Upper\" audiences, abbreviate those and return\n if (firstAudienceFirstWord === 'Lower' && lastAudienceFirstWord === 'Upper') {\n return `L ${firstAudienceString} - U ${lastAudienceString}`;\n }\n\n // Add \"Lower\" and \"Upper\" to the strings if it's needed\n if (firstAudienceFirstWord === 'Lower') {\n firstAudienceString = `Lower ${firstAudienceString}`;\n }\n\n if (lastAudienceFirstWord === 'Upper') {\n lastAudienceString = `Upper ${lastAudienceString}`;\n }\n\n // This handles a case where the range is Reception - Key Stage 1. In which case we don't abbreviate the key stage part to KS1.\n if (lastAudienceFirstWord === 'Key') {\n lastAudienceString = lastAudience.name;\n }\n\n return `${firstAudienceString} - ${lastAudienceString}`;\n }\n};\n\nfunction processAudienceRanges(audienceValues: number[]): string[] {\n /**\n * Lookahead by increments of offset\n */\n const offset = COUNT_OFFSET;\n\n let initialVal; let nextVal;\n let isContinguous: boolean = false;\n\n const ranges: string[] = [];\n\n // Audience values need to be in ascending order\n audienceValues = audienceValues.sort((a, b) => a - b);\n\n let i; let j;\n\n for (i = 0; i < audienceValues.length; i++) {\n j = i + 1;\n\n // Set our lower boundary to compare against\n if (!isContinguous)\n initialVal = audienceValues[i];\n\n nextVal = audienceValues[j];\n\n /**\n * Where the next number is also the next incremental value\n * we're going to continue iterating until the next value\n * is no longer contiguos.\n */\n if (audienceValues[i] + offset === nextVal) {\n isContinguous = true;\n } else if (isContinguous) {\n /**\n * Where we were tracking a contiguous set, format appropriately \n * and store the vals\n */\n\n ranges.push(`${initialVal} - ${audienceValues[i]}`);\n isContinguous = false;\n } else {\n /**\n * Where the values arent contiguous, just store the current value\n */\n\n ranges.push(`${audienceValues[i]}`);\n isContinguous = false;\n }\n }\n\n return ranges;\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { Audience, AudienceFilterParams, BaseObject, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { AudienceStringBuilders } from './AudienceStringBuilders';\n\nconst DIGIT_REGEX = /([0-9]+)/ig;\nconst SPACE_REGEX = /\\s|\\+/ig;\n\n/**\n * Where there is 1 or less audiences on a presentation, it provides little value to\n * the user's experience, so we'll hide audiences altogether.\n */\nconst MIN_AUDIENCE_THRESHOLD = 1;\n\nexport const AudienceHelper = {\n /**\n * This is needed to sort an object's audiences, as they are not sorted by the backend.\n * To do this, we take the presentation audiences (sorted) and filter them by the object's\n * audiences, leaving behind a sorted array of object audiences.\n */\n getSortedPresentationAudiences(\n objectAudiences: Audience[],\n presentationAudiences: PresentationAudience[]\n ): PresentationAudience[] {\n /**\n * Atm there is a bug in flight's optimize, around multiple parts of the page \n * fetching the same object with a different response. We are filtering out\n * falsey values in our object audience ids until that's fixed. - Sha\n */\n const objectAudienceIds = objectAudiences\n .filter(v => !!v)\n .map(audience => audience.id.toString());\n\n /**\n * Remove audiences that aren't relevant for the user's current presentation\n */\n const filteredAudiences = presentationAudiences.filter(presAudience => {\n return objectAudienceIds.includes(presAudience.masterId.toString());\n });\n\n return filteredAudiences;\n },\n\n /**\n * This function accepts a set of presentation audiences, and returns a single\n * audience where the name is a merged string of the names of all of the audiences passed in.\n *\n * As we add more presentations that have different audience sets, we'll need to extend the `switch`\n * statement below to either include new string builder functions, or to include new presentation IDs\n * for existing string builder functions.\n */\n getMergedPresentationAudienceString(presentationAudiences: PresentationAudience[]): PresentationAudience {\n const { presentationId } = ArrayHelper.first(presentationAudiences);\n\n let mergedAudienceString = '';\n\n switch (+presentationId) {\n // Generic `Name Number`. Sometimes has just name. Examples: Year 12, Grade 4, Kindergarten\n case HardCoded.PresentationIds.DEFAULT:\n case HardCoded.PresentationIds.AU_SECONDARY:\n case HardCoded.PresentationIds.AU_PRIMARY:\n case HardCoded.PresentationIds.NZ_PRIMARY:\n case HardCoded.PresentationIds.NZ_SECONDARY:\n case HardCoded.PresentationIds.US_ELEMENTARY:\n case HardCoded.PresentationIds.CA_ELEMENTARY:\n case HardCoded.PresentationIds.STREAMABLE_LEARNING:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n mergedAudienceString = AudienceStringBuilders.yearsAndGradesBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INT_SECONDARY:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n // TODO: Implement this properly\n mergedAudienceString = AudienceStringBuilders.internationalSecondaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INT_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.internationalPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.SCT_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.scotlandPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.ENG_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.englandSecondaryBuilder(presentationAudiences);\n break;\n\n \n case HardCoded.PresentationIds.SCT_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.scotlandSecondaryBuilder(presentationAudiences);\n break;\n\n // Key Stage 1, Lower Key Stage 2, etc.\n case HardCoded.PresentationIds.ENG_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.englandPrimaryBuilder(presentationAudiences);\n break;\n\n // These presentations only have 1 audience mapped. These are never shown as badges in the product.\n case HardCoded.PresentationIds.US_MIDDLE:\n case HardCoded.PresentationIds.US_HIGH:\n case HardCoded.PresentationIds.CA_MIDDLE:\n case HardCoded.PresentationIds.CA_HIGH:\n case HardCoded.PresentationIds.AU_TERTIARY:\n case HardCoded.PresentationIds.UK_TERTIARY:\n default:\n break;\n }\n\n if (!mergedAudienceString)\n return null;\n\n return { name: mergedAudienceString } as PresentationAudience;\n },\n\n /**\n * This function assumes the members array passed in is ordered by `name`.\n */\n sortMembersWithDuplicateNamesByAudience(members: BaseObject[]): BaseObject[] {\n // Returns the lowest level audience out of an array of audience objects by looking at the name\n const getLowestAudience = (audiences: Audience[]) => {\n if (!audiences.length)\n return null;\n\n let lowestAudience: Audience;\n let lowestAudienceDigit: number;\n\n audiences.forEach(audience => {\n const digit = +ArrayHelper.first(audience.name.match(DIGIT_REGEX));\n\n if (!lowestAudience) {\n lowestAudience = audience;\n lowestAudienceDigit = digit;\n return;\n }\n\n if (digit < lowestAudienceDigit)\n lowestAudience = audience;\n });\n\n return lowestAudience;\n };\n\n // This is used to track how many times a member's name appears in the collection\n const nameCountMap: HashObject<number> = {};\n\n let sorted: BaseObject[] = [];\n\n members.forEach(member => {\n if (!nameCountMap[member.name]) {\n nameCountMap[member.name] = 1;\n sorted.push(member);\n return;\n }\n\n sorted.push(member);\n nameCountMap[member.name]++;\n\n // Take the slice of duplicates that we want to sort by audience\n const slice = sorted.splice(sorted.length - nameCountMap[member.name]);\n\n // Sort the slice by lowest audience\n const sortedSlice = slice.sort((a: any, b: any) => {\n const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);\n const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);\n\n if (!firstObjLowestAudience && secondObjLowestAudience)\n return 1;\n\n if (!secondObjLowestAudience)\n return -1;\n\n const comparison = firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);\n\n if (comparison === 0) return comparison;\n\n return comparison > 0 ? -1 : 1;\n });\n\n sorted = sorted.concat(sortedSlice);\n });\n\n return sorted;\n },\n\n getActiveAudiencesFromParams(audiences: PresentationAudience[], params: HashObject = {}): PresentationAudience[] {\n if (!ObjectHelper.isObject(params) || ObjectHelper.isEmpty(params))\n return;\n\n if (!audiences || !audiences.length)\n return;\n\n if (!AudienceHelper.shouldShowAudiences(audiences))\n return;\n\n // 'a' is shorthand for audience\n let { a } = params;\n\n if (!a)\n return;\n\n // Only a single query param was passed, we'll wrap it in an array\n if (typeof a === 'string')\n a = [a];\n\n const normalizeAudienceName = (audienceName: string) => {\n return audienceName.replace(SPACE_REGEX, '').toLowerCase();\n };\n\n // Build an audience lookup\n const audienceLookup = a.reduce((state: HashObject, audienceStr: string) => {\n state[normalizeAudienceName(audienceStr)] = audienceStr;\n return state;\n }, {});\n\n // Filter out our active audience based on whether their name matches the lookup object\n return audiences.filter((audience: PresentationAudience) => {\n return audienceLookup[normalizeAudienceName(audience.name)];\n });\n },\n\n getAudienceParams(audiences: PresentationAudience[]): AudienceFilterParams {\n if (!audiences?.length)\n return null;\n\n return { a: audiences.map(a => a.name) };\n },\n\n shouldShowAudiences(audiences: PresentationAudience[] = []): boolean {\n if (!audiences)\n return false;\n\n return audiences.length > MIN_AUDIENCE_THRESHOLD;\n }\n};\n"],"names":["HardCoded","HAS_NUMBER_REGEX","COUNT_OFFSET","AudienceStringBuilders","audiences","combinedNames","a","numberList","name","num","wordList","audienceWithoutNum","p","prefix","audienceRange","processAudienceRanges","firstAudience","ArrayHelper","lastAudience","firstAudienceLevel","lastAudienceLevel","level","firstAudienceFirstWord","lastAudienceFirstWord","firstAudienceNumber","word","lastAudienceNumber","firstAudienceString","lastAudienceString","audienceValues","offset","initialVal","nextVal","isContinguous","ranges","b","i","j","DIGIT_REGEX","SPACE_REGEX","MIN_AUDIENCE_THRESHOLD","AudienceHelper","objectAudiences","presentationAudiences","objectAudienceIds","v","audience","presAudience","presentationId","mergedAudienceString","members","getLowestAudience","lowestAudience","lowestAudienceDigit","digit","nameCountMap","sorted","member","sortedSlice","firstObjLowestAudience","secondObjLowestAudience","comparison","params","ObjectHelper","normalizeAudienceName","audienceName","audienceLookup","state","audienceStr"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{t as n,a6 as i,bb as o,ds as b}from"./app-C56EnOMP.js";import{P as f}from"./pkzD5BEm.chunk.js";var a=(e=>(e.Playlists="playlists",e.Series="series",e.Videos="videos",e.PinnedVideos="pinnedVideos",e))(a||{});const y=e=>`subjectpresentationaudiences.id:[${e.join(",")}]`,L={topicsFromAllAvailablePresentations(e){const s={filterType:"topics",presentationId:e};return{url:i.urlBuilder("{gateway}/v1/search/filters",s),publicUrl:i.urlBuilder("/api/search/filters",s),key:"classification:availableTopics",normalize:!1}},availablePresentations(e){const s={type:e==null?void 0:e.toLowerCase()};return{url:i.urlBuilder("{gateway}/v1/users/me/presentations/available",s),publicUrl:i.urlBuilder("/api/subjects/presentations/available",s),key:`available:presentations:${e}`,normalizeOptions:{namespace:"presentation"}}},topLevelTopics(e){const s={query:o.CLASSIFICATION_COLLECTION,sort:"alphabetical"};return{url:i.urlBuilder(`{gateway}/v1/subjects/presentations/${e}/classifications`,s),publicUrl:i.urlBuilder(`/api/subjects/presentations/${e}/classifications`,s),key:`presentation:${e}:classifications`}},presentationById(e){return{url:`{gateway}/v1/subjects/presentations/${e}`,publicUrl:`/api/subjects/presentations/${e}`,key:`presentation:${e}`}},presentationBySlug(e,s,r){const t={type:r.toLowerCase(),contentRegion:s};return{url:i.urlBuilder(`/api/subjects/presentations/${e}`,t),publicUrl:i.urlBuilder(`/api/subjects/presentations/${e}`,t),key:`current:presentation:${r.toLowerCase()}:${s}:${e??""}`,bootstrapName:"presentation",normalizeOptions:{namespace:"presentation"}}},presentation(e,s){const r={type:e==null?void 0:e.toLowerCase()};return{url:i.urlBuilder("{gateway}/v1/users/me/presentations",r),publicUrl:i.urlBuilder(`/api/subjects/presentations/${s}`,r),key:`current:presentation${e?`:${e.toLowerCase()}`:""}${s?`:${s}`:""}`,normalizeOptions:{namespace:"presentation"}}},classifications(){return{url:i.urlBuilder("{gateway}/v1/users/me/classifications",{query:o.CLASSIFICATION_COLLECTION,type:n.Subject.toLowerCase()}),publicUrl:i.urlBuilder("/api/subjects/classifications",{query:b.CLASSIFICATION_COLLECTION,type:n.Subject.toLowerCase()}),key:"classifications"}},classification(e,s,r){return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}`,{query:o.CLASSIFICATION(s)}),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}`,{query:b.CLASSIFICATION}),key:`classification:${e}`,error:r}},path(e,s){const r={type:s};return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}/path`,r),publicUrl:`/api/subjects/classifications/${e}/path`,key:`classification:${e}:path`}},paths(e){return{url:`/api/subjects/classifications/${e}/paths`,key:`classification:${e}:paths`}},children(e){return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}/children`,{query:o.CLASSIFICATION_COLLECTION}),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}/children`,{query:b.CLASSIFICATION_COLLECTION}),key:`classification:${e}:children`}},videos(e,s,r){if(!s)return;let t="limit:100,orderbydesc:timestamp";r.length&&(t+=`,${y(r)}`);const l={query:`{${t}}(videoCollection),subjectpresentationaudiences{presentationId:${s}}`,permissionFilterOption:f.StripMetadata};return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}/${a.PinnedVideos}`,l),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}/${a.PinnedVideos}`,l),key:`classification:${e}:${a.PinnedVideos}:${r.join(":")}`}},playlists(e,s,r){if(!s)return;let t="limit:100,orderby:name";r.length&&(t+=`,${y(r)}`);const l={query:`{${t}}${o.PLAYLIST_COLLECTION},subjectpresentationaudiences{presentationId:${s}}`,permissionFilterOption:f.StripMetadata};return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}/${a.Playlists}`,l),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}/${a.Playlists}`,l),key:`classification:${e}:${a.Playlists}:${r.join(":")}`,formatData:u=>{var c;if(u)return{...u,data:(c=u.data)==null?void 0:c.filter($=>{var p;return(p=$.cover)==null?void 0:p.url})}}}},series(e,s,r){if(!s)return;let t="limit:100";r.length&&(t+=`,${y(r)}`);const l={query:`{${t}}${o.SERIES},subjectpresentationaudiences{presentationId:${s}}`,permissionFilterOption:f.StripMetadata};return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}/${a.Series}`,l),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}/${a.Series}`,l),key:`classification:${e}:${a.Series}:${r.join(":")}`,formatData:u=>{var c;if(u)return{...u,data:(c=u.data)==null?void 0:c.filter($=>{var p;return(p=$.tallPoster)==null?void 0:p.url})}}}},curriculumLinks(e,s){return{url:i.urlBuilder(`/api/subjects/presentations/${s}/objects/${e}/classifications/paths`,{type:n.Curriculum.toLowerCase()}),publicUrl:i.urlBuilder(`/api/subjects/presentations/${s}/objects/${e}/classifications/paths`,{type:n.Curriculum.toLowerCase()}),key:`curriculum:links:${e}:${s}`,normalize:!1}},subjectLinks(e,s){const r=i.urlBuilder(`/api/subjects/presentations/${s}/objects/${e}/classifications/paths`,{type:n.Subject.toLowerCase()});return{url:r,publicUrl:r,key:`subject:links:${e}:${s}`,normalize:!1}},getMappedCurriculums(e,s){const r={type:n.Curriculum.toLowerCase()};return{url:i.urlBuilder(`{gateway}/v1/objects/${e}/presentations`,r),publicUrl:i.urlBuilder(`/api/subjects/${e}/presentations`,{...r,pid:s}),key:`mapped:curriculums:${e}:${s.join(",")}`,normalize:!1}},regionAlternatives(e,s,r,t){return{url:`/api/subjects/classifications/${e}/region-alternatives`,publicUrl:`/api/subjects/classifications/${e}/region-alternatives`,key:`classification:regionAlternatives:${e}`,normalize:!1,success:s,error:r,always:t}}};export{L as C};
2
+ //# sourceMappingURL=9NIa7Pi_.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"9NIa7Pi_.chunk.js","sources":["../../../../libs/shared/src/apps/subjects/enums/ClassificationMemberType.ts","../../../../libs/shared/src/flight-requests/ClassificationRequests.ts"],"sourcesContent":["export enum ClassificationMemberType {\n Playlists = 'playlists',\n Series = 'series',\n Videos = 'videos',\n PinnedVideos = 'pinnedVideos'\n}","import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { ClassificationMemberType } from 'libs/shared/apps/subjects/enums/ClassificationMemberType';\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { PlaylistCollection, RegionAlternative, SeriesCollection } from 'libs/shared/interfaces';\n\nconst getClassificationMemberFilter = (ids: string[]) => `subjectpresentationaudiences.id:[${ids.join(',')}]`;\n\nexport const ClassificationRequests = {\n topicsFromAllAvailablePresentations(ids: string[]): Flight.PublicRequest {\n const params = { filterType: 'topics', presentationId: ids };\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/search/filters', params),\n publicUrl: UrlHelper.urlBuilder('/api/search/filters', params),\n key: 'classification:availableTopics',\n normalize: false\n };\n },\n\n availablePresentations(type?: PresentationType): Flight.PublicRequest {\n const queryStringOpts = { type: type?.toLowerCase() };\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/users/me/presentations/available', queryStringOpts),\n publicUrl: UrlHelper.urlBuilder('/api/subjects/presentations/available', queryStringOpts),\n key: `available:presentations:${type}`,\n normalizeOptions: {\n namespace: 'presentation'\n }\n };\n },\n\n topLevelTopics(presentationId: string): Flight.PublicRequest {\n const params = {\n query: SharedWithStatements.CLASSIFICATION_COLLECTION,\n sort: 'alphabetical'\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/presentations/${presentationId}/classifications`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/presentations/${presentationId}/classifications`, params),\n key: `presentation:${presentationId}:classifications`\n };\n },\n\n presentationById(presentationId: string): Flight.PublicRequest {\n return {\n url: `{gateway}/v1/subjects/presentations/${presentationId}`,\n publicUrl: `/api/subjects/presentations/${presentationId}`,\n key: `presentation:${presentationId}`\n };\n },\n\n presentationBySlug(presentationSlug: string, contentRegion: string, type: PresentationType): Flight.PublicRequest {\n const params = {\n type: type.toLowerCase(),\n contentRegion: contentRegion\n };\n\n return {\n url: UrlHelper.urlBuilder(`/api/subjects/presentations/${presentationSlug}`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/presentations/${presentationSlug}`, params),\n key: `current:presentation:${type.toLowerCase()}:${contentRegion}:${presentationSlug ?? ''}`,\n bootstrapName: 'presentation',\n normalizeOptions: {\n namespace: 'presentation'\n }\n };\n },\n\n presentation(type: PresentationType, presentationId?: string): Flight.PublicRequest {\n const params = {\n type: type?.toLowerCase()\n };\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/users/me/presentations', params),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/presentations/${presentationId}`, params),\n key: `current:presentation${type ? `:${type.toLowerCase()}` : ''}${presentationId ? `:${presentationId}` : ''}`,\n normalizeOptions: {\n namespace: 'presentation'\n }\n };\n },\n\n classifications(): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/users/me/classifications', {\n query: SharedWithStatements.CLASSIFICATION_COLLECTION,\n type: PresentationType.Subject.toLowerCase()\n }),\n publicUrl: UrlHelper.urlBuilder('/api/subjects/classifications', {\n query: PublicWithStatement.CLASSIFICATION_COLLECTION,\n type: PresentationType.Subject.toLowerCase()\n }),\n key: `classifications`\n };\n },\n\n classification(id: string, userId?: string, error?: (xhr: Xhr) => void): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}`, {\n query: SharedWithStatements.CLASSIFICATION(userId)\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/classifications/${id}`, {\n query: PublicWithStatement.CLASSIFICATION\n }),\n key: `classification:${id}`,\n error\n };\n },\n\n path(id: string, presentationType?: PresentationType): Flight.PublicRequest {\n const params = { type: presentationType };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}/path`, params),\n publicUrl: `/api/subjects/classifications/${id}/path`,\n key: `classification:${id}:path`\n };\n },\n\n paths(id: string): Flight.Request {\n return {\n url: `/api/subjects/classifications/${id}/paths`,\n key: `classification:${id}:paths`\n };\n },\n\n children(id: string): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}/children`, {\n query: SharedWithStatements.CLASSIFICATION_COLLECTION\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/children`, {\n query: PublicWithStatement.CLASSIFICATION_COLLECTION\n }),\n key: `classification:${id}:children`\n };\n },\n\n videos(\n id: string,\n presentationId: string,\n activeAudiences: string[]\n ): Flight.PublicRequest {\n if (!presentationId)\n return;\n\n let filter = 'limit:100,orderbydesc:timestamp';\n\n if (activeAudiences.length)\n filter += `,${getClassificationMemberFilter(activeAudiences)}`;\n\n const query = `{${filter}}(videoCollection),subjectpresentationaudiences{presentationId:${presentationId}}`;\n\n // TODO (public): Remove this permissionFilterOpts\n const queryStringObj = {\n query,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}/${ClassificationMemberType.PinnedVideos}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/${ClassificationMemberType.PinnedVideos}`, queryStringObj),\n key: `classification:${id}:${ClassificationMemberType.PinnedVideos}:${activeAudiences.join(':')}`\n };\n },\n\n /**\n * This request should only be used when displaying the playlist widget within a classification/topic page.\n * The current behaviour is to filter out any playlist that don't yet have a poster, this will ensure that\n * all topic pages are only showed in a complete state.\n */\n playlists(id: string, presentationId: string, activeAudiences: string[]): Flight.PublicRequest {\n if (!presentationId)\n return;\n\n let filter = 'limit:100,orderby:name';\n\n if (activeAudiences.length)\n filter += `,${getClassificationMemberFilter(activeAudiences)}`;\n\n const query = `{${filter}}${SharedWithStatements.PLAYLIST_COLLECTION}` +\n `,subjectpresentationaudiences{presentationId:${presentationId}}`;\n\n // TODO (public): Remove this permissionFilterOpts\n const queryStringObj = {\n query,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}/${ClassificationMemberType.Playlists}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/${ClassificationMemberType.Playlists}`, queryStringObj),\n key: `classification:${id}:${ClassificationMemberType.Playlists}:${activeAudiences.join(':')}`,\n formatData: (playlist: PlaylistCollection): PlaylistCollection => {\n if (!playlist)\n return;\n\n return {\n ...playlist,\n data: playlist.data?.filter(p => p.cover?.url)\n };\n }\n };\n },\n\n /**\n * This request should only be used when displaying the series widget within a classification/topic page.\n * The current behaviour is to filter out any series that don't yet have a poster, this will ensure that\n * all topic pages are only showed in a complete state.\n */\n series(id: string, presentationId: string, activeAudiences: string[]): Flight.PublicRequest {\n if (!presentationId)\n return;\n\n let filter = 'limit:100';\n\n if (activeAudiences.length)\n filter += `,${getClassificationMemberFilter(activeAudiences)}`;\n\n const query = `{${filter}}${SharedWithStatements.SERIES}` +\n `,subjectpresentationaudiences{presentationId:${presentationId}}`;\n\n // TODO (public): Remove this permissionFilterOpts\n const queryStringObj = {\n query,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/subjects/classifications/${id}/${ClassificationMemberType.Series}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/${ClassificationMemberType.Series}`, queryStringObj),\n key: `classification:${id}:${ClassificationMemberType.Series}:${activeAudiences.join(':')}`,\n formatData: (series: SeriesCollection): SeriesCollection => {\n if (!series)\n return;\n\n return {\n ...series,\n data: series.data?.filter(s => s.tallPoster?.url)\n };\n }\n };\n },\n\n curriculumLinks(id: string, curriculumId: string): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`/api/subjects/presentations/${curriculumId}/objects/${id}/classifications/paths`, {\n type: PresentationType.Curriculum.toLowerCase()\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/presentations/${curriculumId}/objects/${id}/classifications/paths`, {\n type: PresentationType.Curriculum.toLowerCase()\n }),\n key: `curriculum:links:${id}:${curriculumId}`,\n normalize: false\n };\n },\n\n subjectLinks(id: string, presentationId: string): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder(`/api/subjects/presentations/${presentationId}/objects/${id}/classifications/paths`, {\n type: PresentationType.Subject.toLowerCase()\n });\n\n return {\n url,\n publicUrl: url,\n key: `subject:links:${id}:${presentationId}`,\n normalize: false\n };\n },\n\n getMappedCurriculums(\n id: string,\n pids: string[]\n ): Flight.PublicRequest {\n const params: HashObject = {\n type: PresentationType.Curriculum.toLowerCase()\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/presentations`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/${id}/presentations`, { ...params, pid: pids }),\n key: `mapped:curriculums:${id}:${pids.join(',')}`,\n normalize: false\n };\n },\n\n regionAlternatives(\n classificationId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/subjects/classifications/${classificationId}/region-alternatives`,\n publicUrl: `/api/subjects/classifications/${classificationId}/region-alternatives`,\n key: `classification:regionAlternatives:${classificationId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"names":["ClassificationMemberType","getClassificationMemberFilter","ids","ClassificationRequests","params","UrlHelper","type","queryStringOpts","presentationId","SharedWithStatements","presentationSlug","contentRegion","PresentationType","PublicWithStatement","id","userId","error","presentationType","activeAudiences","filter","queryStringObj","PermissionFilterOption","playlist","_a","p","series","s","curriculumId","url","pids","classificationId","success","always"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{ah as f,j as c}from"./app-C56EnOMP.js";import{u as E}from"./CU6iZ8MR.chunk.js";function w(n={}){const{prevent:t,rootMargin:a,triggerOnce:r=!0}=n;let[e,s,m]=E({triggerOnce:r,rootMargin:a});return(t===!0||typeof window.IntersectionObserver>"u")&&(s=!0,e=null),{ref:e,inView:s,initialized:!!m}}const C="_image_pp6me_1",L={image:C},I="500px",D="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",j=f.memo(function(n){const{forceLoad:t,extraClasses:a="",errorFallbackImageSrc:r,preventLoad:e=!1,errorFallbackImageClassName:s,src:m,alt:g,...l}=n,{ref:A,inView:u}=w({rootMargin:I}),[o,d]=f.useState(!1);f.useEffect(()=>{if(!t&&!u||e)return;const i=new Image;return i.onerror=()=>{d(!0),r&&(i.src=r)},i.src=m,()=>i.onerror=null},[u,e]);function p(){return o&&r?r:n.src}if(o&&!r)return c.jsx(c.Fragment,{});if(!A)return c.jsx("img",{className:`${L.image} ${a} ${o&&s||""}`,alt:g,src:p(),...l});const x={alt:g,...l,...(u||t)&&!e?{src:p()}:{src:D}};return t||(x.ref=A),c.jsx("img",{className:`${L.image} ${a} ${o&&s||""}`,...x})});export{j as L,w as u};
2
+ //# sourceMappingURL=B5OOLcT3.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"B5OOLcT3.chunk.js","sources":["../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["useLazyLoad","options","prevent","rootMargin","triggerOnce","ref","inView","entry","useInView","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"sFAyBO,SAASA,EAAYC,EAA8B,GAAe,CACvE,KAAM,CAAE,QAAAC,EAAS,WAAAC,EAAY,YAAAC,EAAc,IAASH,EAGpD,GAAI,CAAEI,EAAKC,EAAQC,CAAM,EAAIC,EAAU,CAAE,YAAAJ,EAAa,WAAAD,EAAwB,EAE9E,OAAID,IAAY,IAAQ,OAAQ,OAAe,qBAAyB,OACtEI,EAAS,GACTD,EAAM,MAGD,CAAE,IAAAA,EAAK,OAAAC,EAAQ,YAAa,CAAC,CAACC,CAAA,CACvC,sCC1BME,EAAmB,QAInBC,EAAkB,6DAUXC,EAAYC,EAAAA,KAAW,SAASC,EAA2C,CACtF,KAAM,CAAE,UAAAC,EAAW,aAAAC,EAAe,GAAI,sBAAAC,EAAuB,YAAAC,EAAc,GAAO,4BAAAC,EAA6B,IAAAC,EAAK,IAAAC,EAAK,GAAGC,CAAA,EAAoBR,EAE1I,CAAE,IAAAR,EAAK,OAAAC,CAAA,EAAWN,EAAY,CAAE,WAAYS,EAAkB,EAC9D,CAAEa,EAAOC,CAAS,EAAIC,EAAAA,SAAe,EAAK,EAEhDC,EAAAA,UAAgB,IAAM,CACpB,GAAK,CAACX,GAAa,CAACR,GAAWW,EAC7B,OAGF,MAAMS,EAAM,IAAI,MAEhB,OAAAA,EAAI,QAAU,IAAM,CAClBH,EAAS,EAAI,EAETP,IACFU,EAAI,IAAMV,EACd,EAEAU,EAAI,IAAMP,EACH,IAAMO,EAAI,QAAU,IAC7B,EAAG,CAAEpB,EAAQW,CAAY,CAAC,EAE1B,SAASU,GAAiB,CACxB,OAAIL,GAASN,EACJA,EAEFH,EAAM,GACf,CAEA,GAAIS,GAAS,CAACN,EACZ,OAAOY,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEX,GAAI,CAACxB,EACH,OACEuB,EAAAA,IAAC,MAAA,CACC,UAAW,GAAGE,EAAO,KAAK,IAAIf,CAAY,IAAIO,GAAQJ,GAA+B,EAAO,GAC5F,IAAAE,EACA,IAAKO,EAAA,EACJ,GAAGN,CAAA,CAAA,EAKV,MAAMU,EAAiG,CACrG,IAAAX,EACA,GAAGC,EACH,IAAMf,GAAUQ,IAAc,CAACG,EAAe,CAAE,IAAKU,EAAA,CAAO,EAAM,CAAE,IAAKjB,CAAA,CAAgB,EAG3F,OAAKI,IACHiB,EAAS,IAAM1B,GAGfuB,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,KAAK,IAAIf,CAAY,IAAIO,GAAQJ,GAA+B,EAAO,GAAK,GAAGa,EAAU,CAEvH,CAAC"}