@clickview/reports 0.72.0 → 0.73.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 (418) 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 -3
  61. package/dist/css/1VpVng8x.chunk.css +1 -0
  62. package/dist/css/BDijM1kt.chunk.css +1 -0
  63. package/dist/css/BMPwvOki.chunk.css +1 -0
  64. package/dist/css/BNt45Kgy.chunk.css +1 -0
  65. package/dist/css/BSGhUWzl.chunk.css +1 -0
  66. package/dist/css/BZ3_uhDP.chunk.css +1 -0
  67. package/dist/css/BaadNO4A.chunk.css +1 -0
  68. package/dist/css/BdUNjJqp.chunk.css +1 -0
  69. package/dist/css/BdeI0FAV.chunk.css +1 -0
  70. package/dist/css/BxcMGr8Y.chunk.css +1 -0
  71. package/dist/css/ByuL_xKJ.chunk.css +1 -0
  72. package/dist/css/C-A0Pj_7.chunk.css +1 -0
  73. package/dist/css/C4jMfPWU.chunk.css +1 -0
  74. package/dist/css/C7XoyEPr.chunk.css +1 -0
  75. package/dist/css/C8sxda3R.chunk.css +1 -0
  76. package/dist/css/CD1qrI1T.chunk.css +1 -0
  77. package/dist/css/CFO--d_R.chunk.css +1 -0
  78. package/dist/css/CX9nw8t8.chunk.css +1 -0
  79. package/dist/css/C_qGRdC2.chunk.css +1 -0
  80. package/dist/css/CdC6ugQR.chunk.css +1 -0
  81. package/dist/css/ClRRGXPb.chunk.css +1 -0
  82. package/dist/css/Cr1bwtZG.chunk.css +1 -0
  83. package/dist/css/DBlPz5Fw.chunk.css +1 -0
  84. package/dist/css/DDnpOnVB.chunk.css +1 -0
  85. package/dist/css/DFZQCLLg.chunk.css +1 -0
  86. package/dist/css/DJwAbl6l.chunk.css +1 -0
  87. package/dist/css/DWjg_0sz.chunk.css +1 -0
  88. package/dist/css/DYV9jjVn.chunk.css +1 -0
  89. package/dist/css/Dgeh4AqU.chunk.css +9 -0
  90. package/dist/css/DlOtoSz0.chunk.css +1 -0
  91. package/dist/css/DlxOgKUu.chunk.css +1 -0
  92. package/dist/css/Dp3arkyy.chunk.css +1 -0
  93. package/dist/css/DwgaDUzz.chunk.css +1 -0
  94. package/dist/css/FPQ_LmXH.chunk.css +1 -0
  95. package/dist/css/H09rC9gw.chunk.css +1 -0
  96. package/dist/css/LAFr2dPT.chunk.css +1 -0
  97. package/dist/css/Pg1TlYG6.chunk.css +1 -0
  98. package/dist/css/PsQn3-kb.chunk.css +1 -0
  99. package/dist/css/alkEuPrr.chunk.css +1 -0
  100. package/dist/css/k4DgCj_g.chunk.css +1 -0
  101. package/dist/en.json +1 -0
  102. package/dist/scripts/2nrjFQG6.chunk.js +2 -0
  103. package/dist/scripts/2nrjFQG6.chunk.js.map +1 -0
  104. package/dist/scripts/5O9SdVRZ.chunk.js +2 -0
  105. package/dist/scripts/5O9SdVRZ.chunk.js.map +1 -0
  106. package/dist/scripts/6SDR31f9.chunk.js +15 -0
  107. package/dist/scripts/6SDR31f9.chunk.js.map +1 -0
  108. package/dist/scripts/6bLX1DNm.chunk.js +2 -0
  109. package/dist/scripts/6bLX1DNm.chunk.js.map +1 -0
  110. package/dist/scripts/AhdqfBDC.chunk.js +2 -0
  111. package/dist/scripts/AhdqfBDC.chunk.js.map +1 -0
  112. package/dist/scripts/B-PpJIqi.chunk.js +6 -0
  113. package/dist/scripts/B-PpJIqi.chunk.js.map +1 -0
  114. package/dist/scripts/B-ZRPp91.chunk.js +2 -0
  115. package/dist/scripts/B-ZRPp91.chunk.js.map +1 -0
  116. package/dist/scripts/B0keXzHm.chunk.js +2 -0
  117. package/dist/scripts/B0keXzHm.chunk.js.map +1 -0
  118. package/dist/scripts/B17N2umP.chunk.js +2 -0
  119. package/dist/scripts/B17N2umP.chunk.js.map +1 -0
  120. package/dist/scripts/B2Eafs31.chunk.js +2 -0
  121. package/dist/scripts/B2Eafs31.chunk.js.map +1 -0
  122. package/dist/scripts/B5Y7eket.chunk.js +2 -0
  123. package/dist/scripts/B5Y7eket.chunk.js.map +1 -0
  124. package/dist/scripts/B7E0FLQT.chunk.js +2 -0
  125. package/dist/scripts/B7E0FLQT.chunk.js.map +1 -0
  126. package/dist/scripts/B7fZs_l2.chunk.js +2 -0
  127. package/dist/scripts/B7fZs_l2.chunk.js.map +1 -0
  128. package/dist/scripts/B8DfvvPE.chunk.js +2 -0
  129. package/dist/scripts/B8DfvvPE.chunk.js.map +1 -0
  130. package/dist/scripts/B8dw4aip.chunk.js +2 -0
  131. package/dist/scripts/B8dw4aip.chunk.js.map +1 -0
  132. package/dist/scripts/BAaa7KIR.chunk.js +2 -0
  133. package/dist/scripts/BAaa7KIR.chunk.js.map +1 -0
  134. package/dist/scripts/BBmrqSNv.chunk.js +2 -0
  135. package/dist/scripts/BBmrqSNv.chunk.js.map +1 -0
  136. package/dist/scripts/BGX0h6W4.chunk.js +2 -0
  137. package/dist/scripts/BGX0h6W4.chunk.js.map +1 -0
  138. package/dist/scripts/BOeg7AfB.chunk.js +2 -0
  139. package/dist/scripts/BOeg7AfB.chunk.js.map +1 -0
  140. package/dist/scripts/BOeiDHFY.chunk.js +2 -0
  141. package/dist/scripts/BOeiDHFY.chunk.js.map +1 -0
  142. package/dist/scripts/BRRS4PKg.chunk.js +2 -0
  143. package/dist/scripts/BRRS4PKg.chunk.js.map +1 -0
  144. package/dist/scripts/BRV-uFtb.chunk.js +2 -0
  145. package/dist/scripts/BRV-uFtb.chunk.js.map +1 -0
  146. package/dist/scripts/BZfWKvo2.chunk.js +42 -0
  147. package/dist/scripts/BZfWKvo2.chunk.js.map +1 -0
  148. package/dist/scripts/B_rCaFK4.chunk.js +2 -0
  149. package/dist/scripts/B_rCaFK4.chunk.js.map +1 -0
  150. package/dist/scripts/BiFq1JkI.chunk.js +2 -0
  151. package/dist/scripts/BiFq1JkI.chunk.js.map +1 -0
  152. package/dist/scripts/BmX8J1Ve.chunk.js +2 -0
  153. package/dist/scripts/BmX8J1Ve.chunk.js.map +1 -0
  154. package/dist/scripts/Bn0dkU5Y.chunk.js +2 -0
  155. package/dist/scripts/Bn0dkU5Y.chunk.js.map +1 -0
  156. package/dist/scripts/BncpEV2O.chunk.js +2 -0
  157. package/dist/scripts/BncpEV2O.chunk.js.map +1 -0
  158. package/dist/scripts/Bodl5h9Z.chunk.js +2 -0
  159. package/dist/scripts/Bodl5h9Z.chunk.js.map +1 -0
  160. package/dist/scripts/Br5YjgjU.chunk.js +2 -0
  161. package/dist/scripts/Br5YjgjU.chunk.js.map +1 -0
  162. package/dist/scripts/Br_GRaAX.chunk.js +2 -0
  163. package/dist/scripts/Br_GRaAX.chunk.js.map +1 -0
  164. package/dist/scripts/C-A1kCBK.chunk.js +2 -0
  165. package/dist/scripts/C-A1kCBK.chunk.js.map +1 -0
  166. package/dist/scripts/C-Bnglks.chunk.js +2 -0
  167. package/dist/scripts/C-Bnglks.chunk.js.map +1 -0
  168. package/dist/scripts/C3KFo3Z8.chunk.js +2 -0
  169. package/dist/scripts/C3KFo3Z8.chunk.js.map +1 -0
  170. package/dist/scripts/C9tiioy8.chunk.js +2 -0
  171. package/dist/scripts/C9tiioy8.chunk.js.map +1 -0
  172. package/dist/scripts/CAfDUf5-.chunk.js +2 -0
  173. package/dist/scripts/CAfDUf5-.chunk.js.map +1 -0
  174. package/dist/scripts/CEPQucRi.chunk.js +2 -0
  175. package/dist/scripts/CEPQucRi.chunk.js.map +1 -0
  176. package/dist/scripts/CFprhMg1.chunk.js +10 -0
  177. package/dist/scripts/CFprhMg1.chunk.js.map +1 -0
  178. package/dist/scripts/CHlm4fQa.chunk.js +4 -0
  179. package/dist/scripts/CHlm4fQa.chunk.js.map +1 -0
  180. package/dist/scripts/CHqxDe0w.chunk.js +2 -0
  181. package/dist/scripts/CHqxDe0w.chunk.js.map +1 -0
  182. package/dist/scripts/CIb-6ujT.chunk.js +2 -0
  183. package/dist/scripts/CIb-6ujT.chunk.js.map +1 -0
  184. package/dist/scripts/CNA329cN.chunk.js +2 -0
  185. package/dist/scripts/CNA329cN.chunk.js.map +1 -0
  186. package/dist/scripts/CObSk_oj.chunk.js +2 -0
  187. package/dist/scripts/CObSk_oj.chunk.js.map +1 -0
  188. package/dist/scripts/CSdY8TC0.chunk.js +10 -0
  189. package/dist/scripts/CSdY8TC0.chunk.js.map +1 -0
  190. package/dist/scripts/CT2oDRt5.chunk.js +2 -0
  191. package/dist/scripts/CT2oDRt5.chunk.js.map +1 -0
  192. package/dist/scripts/CTdrOjLq.chunk.js +2 -0
  193. package/dist/scripts/CTdrOjLq.chunk.js.map +1 -0
  194. package/dist/scripts/CW7x8M-z.chunk.js +2 -0
  195. package/dist/scripts/CW7x8M-z.chunk.js.map +1 -0
  196. package/dist/scripts/CX5q-0jT.chunk.js +2 -0
  197. package/dist/scripts/CX5q-0jT.chunk.js.map +1 -0
  198. package/dist/scripts/CcURCjqv.chunk.js +3 -0
  199. package/dist/scripts/CcURCjqv.chunk.js.map +1 -0
  200. package/dist/scripts/Cg_qt_Rk.chunk.js +2 -0
  201. package/dist/scripts/Cg_qt_Rk.chunk.js.map +1 -0
  202. package/dist/scripts/Cmu1J2M7.chunk.js +262 -0
  203. package/dist/scripts/Cmu1J2M7.chunk.js.map +1 -0
  204. package/dist/scripts/CpDqrbAS.chunk.js +2 -0
  205. package/dist/scripts/CpDqrbAS.chunk.js.map +1 -0
  206. package/dist/scripts/Cr_-BIsS.chunk.js +2 -0
  207. package/dist/scripts/Cr_-BIsS.chunk.js.map +1 -0
  208. package/dist/scripts/CsmuPVPc.chunk.js +2 -0
  209. package/dist/scripts/CsmuPVPc.chunk.js.map +1 -0
  210. package/dist/scripts/Cvic0YnD.chunk.js +2 -0
  211. package/dist/scripts/Cvic0YnD.chunk.js.map +1 -0
  212. package/dist/scripts/CySrdBwK.chunk.js +2 -0
  213. package/dist/scripts/CySrdBwK.chunk.js.map +1 -0
  214. package/dist/scripts/Cyyw1SCS.chunk.js +3 -0
  215. package/dist/scripts/Cyyw1SCS.chunk.js.map +1 -0
  216. package/dist/scripts/CztNQjFH.chunk.js +2 -0
  217. package/dist/scripts/CztNQjFH.chunk.js.map +1 -0
  218. package/dist/scripts/D-6R65i0.chunk.js +2 -0
  219. package/dist/scripts/D-6R65i0.chunk.js.map +1 -0
  220. package/dist/scripts/D-LQhb27.chunk.js +2 -0
  221. package/dist/scripts/D-LQhb27.chunk.js.map +1 -0
  222. package/dist/scripts/D-uzbGYL.chunk.js +2 -0
  223. package/dist/scripts/D-uzbGYL.chunk.js.map +1 -0
  224. package/dist/scripts/D2zM4Kzz.chunk.js +2 -0
  225. package/dist/scripts/D2zM4Kzz.chunk.js.map +1 -0
  226. package/dist/scripts/D7o6GeeF.chunk.js +2 -0
  227. package/dist/scripts/D7o6GeeF.chunk.js.map +1 -0
  228. package/dist/scripts/DA9TJjID.chunk.js +2 -0
  229. package/dist/scripts/DA9TJjID.chunk.js.map +1 -0
  230. package/dist/scripts/DBskBTCv.chunk.js +4 -0
  231. package/dist/scripts/DBskBTCv.chunk.js.map +1 -0
  232. package/dist/scripts/DDeXXa-Z.chunk.js +2 -0
  233. package/dist/scripts/DDeXXa-Z.chunk.js.map +1 -0
  234. package/dist/scripts/DEFJUMtW.chunk.js +2 -0
  235. package/dist/scripts/DEFJUMtW.chunk.js.map +1 -0
  236. package/dist/scripts/DEgmC0Yv.chunk.js +2 -0
  237. package/dist/scripts/DEgmC0Yv.chunk.js.map +1 -0
  238. package/dist/scripts/DFFdinDv.chunk.js +2 -0
  239. package/dist/scripts/DFFdinDv.chunk.js.map +1 -0
  240. package/dist/scripts/DGgXamq8.chunk.js +2 -0
  241. package/dist/scripts/DGgXamq8.chunk.js.map +1 -0
  242. package/dist/scripts/DIQhtsg6.chunk.js +2 -0
  243. package/dist/scripts/DIQhtsg6.chunk.js.map +1 -0
  244. package/dist/scripts/DJcBw7EJ.chunk.js +2 -0
  245. package/dist/scripts/DJcBw7EJ.chunk.js.map +1 -0
  246. package/dist/scripts/DLmWeya6.chunk.js +2 -0
  247. package/dist/scripts/DLmWeya6.chunk.js.map +1 -0
  248. package/dist/scripts/DNEgb5v1.chunk.js +2 -0
  249. package/dist/scripts/DNEgb5v1.chunk.js.map +1 -0
  250. package/dist/scripts/DNODoEV9.chunk.js +2 -0
  251. package/dist/scripts/DNODoEV9.chunk.js.map +1 -0
  252. package/dist/scripts/DNRcL1e9.chunk.js +2 -0
  253. package/dist/scripts/DNRcL1e9.chunk.js.map +1 -0
  254. package/dist/scripts/DUnqV5wd.chunk.js +2 -0
  255. package/dist/scripts/DUnqV5wd.chunk.js.map +1 -0
  256. package/dist/scripts/DW5KxGbM.chunk.js +380 -0
  257. package/dist/scripts/DW5KxGbM.chunk.js.map +1 -0
  258. package/dist/scripts/D_WfHgZP.chunk.js +2 -0
  259. package/dist/scripts/D_WfHgZP.chunk.js.map +1 -0
  260. package/dist/scripts/DbBlo1x3.chunk.js +34 -0
  261. package/dist/scripts/DbBlo1x3.chunk.js.map +1 -0
  262. package/dist/scripts/DbxJfn_n.chunk.js +2 -0
  263. package/dist/scripts/DbxJfn_n.chunk.js.map +1 -0
  264. package/dist/scripts/DePDakSd.chunk.js +2 -0
  265. package/dist/scripts/DePDakSd.chunk.js.map +1 -0
  266. package/dist/scripts/DeoNhQh0.chunk.js +3 -0
  267. package/dist/scripts/DeoNhQh0.chunk.js.map +1 -0
  268. package/dist/scripts/DsbeU03P.chunk.js +2 -0
  269. package/dist/scripts/DsbeU03P.chunk.js.map +1 -0
  270. package/dist/scripts/DtbthThZ.chunk.js +2 -0
  271. package/dist/scripts/DtbthThZ.chunk.js.map +1 -0
  272. package/dist/scripts/Dtv-7Q3n.chunk.js +2 -0
  273. package/dist/scripts/Dtv-7Q3n.chunk.js.map +1 -0
  274. package/dist/scripts/Dvas_dD0.chunk.js +2 -0
  275. package/dist/scripts/Dvas_dD0.chunk.js.map +1 -0
  276. package/dist/scripts/HCxw4efP.chunk.js +2 -0
  277. package/dist/scripts/HCxw4efP.chunk.js.map +1 -0
  278. package/dist/scripts/J7X3wFpY.chunk.js +2 -0
  279. package/dist/scripts/J7X3wFpY.chunk.js.map +1 -0
  280. package/dist/scripts/JUNXcGbu.chunk.js +2 -0
  281. package/dist/scripts/JUNXcGbu.chunk.js.map +1 -0
  282. package/dist/scripts/LS1BGGIr.chunk.js +2 -0
  283. package/dist/scripts/LS1BGGIr.chunk.js.map +1 -0
  284. package/dist/scripts/MqKLZ7-F.chunk.js +2 -0
  285. package/dist/scripts/MqKLZ7-F.chunk.js.map +1 -0
  286. package/dist/scripts/NRnV1wHl.chunk.js +2 -0
  287. package/dist/scripts/NRnV1wHl.chunk.js.map +1 -0
  288. package/dist/scripts/QDAMoZNu.chunk.js +2 -0
  289. package/dist/scripts/QDAMoZNu.chunk.js.map +1 -0
  290. package/dist/scripts/RoUeokG0.chunk.js +2 -0
  291. package/dist/scripts/RoUeokG0.chunk.js.map +1 -0
  292. package/dist/scripts/Tgco-VxU.chunk.js +2 -0
  293. package/dist/scripts/Tgco-VxU.chunk.js.map +1 -0
  294. package/dist/scripts/_KIo6cb1.chunk.js +2 -0
  295. package/dist/scripts/_KIo6cb1.chunk.js.map +1 -0
  296. package/dist/scripts/aRYKkB2W.chunk.js +2 -0
  297. package/dist/scripts/aRYKkB2W.chunk.js.map +1 -0
  298. package/dist/scripts/app-DhPN-zNB.js +228 -0
  299. package/dist/scripts/app-DhPN-zNB.js.map +1 -0
  300. package/dist/scripts/daCZeWsQ.chunk.js +2 -0
  301. package/dist/scripts/daCZeWsQ.chunk.js.map +1 -0
  302. package/dist/scripts/hqhdC5CE.chunk.js +2 -0
  303. package/dist/scripts/hqhdC5CE.chunk.js.map +1 -0
  304. package/dist/scripts/kuc-jC8N.chunk.js +6 -0
  305. package/dist/scripts/kuc-jC8N.chunk.js.map +1 -0
  306. package/dist/scripts/mjKop7CA.chunk.js +2 -0
  307. package/dist/scripts/mjKop7CA.chunk.js.map +1 -0
  308. package/dist/scripts/nIjQqCoO.chunk.js +2 -0
  309. package/dist/scripts/nIjQqCoO.chunk.js.map +1 -0
  310. package/dist/scripts/rLITk9YY.chunk.js +3 -0
  311. package/dist/scripts/rLITk9YY.chunk.js.map +1 -0
  312. package/dist/scripts/rMiqL-Tq.chunk.js +2 -0
  313. package/dist/scripts/rMiqL-Tq.chunk.js.map +1 -0
  314. package/dist/scripts/sFV5nxD4.chunk.js +2 -0
  315. package/dist/scripts/sFV5nxD4.chunk.js.map +1 -0
  316. package/dist/scripts/u3riYA0x.chunk.js +2 -0
  317. package/dist/scripts/u3riYA0x.chunk.js.map +1 -0
  318. package/dist/scripts/wnQZ7WYP.chunk.js +8 -0
  319. package/dist/scripts/wnQZ7WYP.chunk.js.map +1 -0
  320. package/package.json +5 -3
  321. package/typings/utils/env.d.ts +3 -0
  322. package/typings/utils/imports.d.ts +1 -1
  323. package/dist/css/1103-reports-d3d5cc00db.chunk.css +0 -31
  324. package/dist/css/1456-reports-4a5871a275.chunk.css +0 -9
  325. package/dist/css/1648-reports-012456ba48.chunk.css +0 -2
  326. package/dist/css/209-reports-c33663a53e.chunk.css +0 -11
  327. package/dist/css/2150-reports-84ec0e9770.chunk.css +0 -4
  328. package/dist/css/2217-reports-74dec0a3fe.chunk.css +0 -32
  329. package/dist/css/2997-reports-e08318f14b.chunk.css +0 -9
  330. package/dist/css/2999-reports-f190450b10.chunk.css +0 -60
  331. package/dist/css/4582-reports-d3d5cc00db.chunk.css +0 -31
  332. package/dist/css/5304-reports-22c2d8d635.chunk.css +0 -9
  333. package/dist/css/6007-reports-5ba77c55a3.chunk.css +0 -8
  334. package/dist/css/6031-reports-d558076846.chunk.css +0 -6
  335. package/dist/css/6356-reports-8c5b220bf6.chunk.css +0 -1
  336. package/dist/css/6811-reports-baf2e97e71.chunk.css +0 -35
  337. package/dist/css/7723-reports-8c6d3c414b.chunk.css +0 -4
  338. package/dist/css/7747-reports-2d9e191b5a.chunk.css +0 -12
  339. package/dist/css/8087-reports-cfe23ba648.chunk.css +0 -10
  340. package/dist/css/8294-reports-c797263ac2.chunk.css +0 -1
  341. package/dist/css/8418-reports-0ada3f3ce2.chunk.css +0 -29
  342. package/dist/css/8450-reports-06493dfde5.chunk.css +0 -9
  343. package/dist/css/8622-reports-9e8970cc7f.chunk.css +0 -8
  344. package/dist/css/8839-reports-8e46644943.chunk.css +0 -1
  345. package/dist/css/8989-reports-92b4f1dde8.chunk.css +0 -8
  346. package/dist/css/9059-reports-a2ac630ebc.chunk.css +0 -35
  347. package/dist/css/9285-reports-5b9af8380f.chunk.css +0 -13
  348. package/dist/css/9661-reports-7435e94a85.chunk.css +0 -4
  349. package/dist/css/9822-reports-a1db1900c7.chunk.css +0 -8
  350. package/dist/css/9949-reports-f22fa2b407.chunk.css +0 -15
  351. package/dist/css/reports-app-b4c4ec5632.css +0 -32
  352. package/dist/languages/en.json +0 -1
  353. package/dist/scripts/1103-d77d388f5b-reports.chunk.js +0 -1
  354. package/dist/scripts/1177-7cf7817e74-reports.chunk.js +0 -1
  355. package/dist/scripts/1456-b7f437ef87-reports.chunk.js +0 -1
  356. package/dist/scripts/1648-e892604f5a-reports.chunk.js +0 -1
  357. package/dist/scripts/1934-ca8497c768-reports.chunk.js +0 -2
  358. package/dist/scripts/1934-ca8497c768-reports.chunk.js.LICENSE.txt +0 -9
  359. package/dist/scripts/2087-e0ef668e1f-reports.chunk.js +0 -1
  360. package/dist/scripts/209-72e77f375e-reports.chunk.js +0 -1
  361. package/dist/scripts/2150-4e9e1fb433-reports.chunk.js +0 -1
  362. package/dist/scripts/2217-15fa35197a-reports.chunk.js +0 -1
  363. package/dist/scripts/2476-a700f69dc4-reports.chunk.js +0 -1
  364. package/dist/scripts/2539-04dfb4f4f1-reports.chunk.js +0 -1
  365. package/dist/scripts/2997-444b5bdaf0-reports.chunk.js +0 -1
  366. package/dist/scripts/2999-f5ee243b25-reports.chunk.js +0 -2
  367. package/dist/scripts/2999-f5ee243b25-reports.chunk.js.LICENSE.txt +0 -1
  368. package/dist/scripts/312-8b006e92ff-reports.chunk.js +0 -1
  369. package/dist/scripts/4234-e3c04f41eb-reports.chunk.js +0 -1
  370. package/dist/scripts/4372-26474a3318-reports.chunk.js +0 -1
  371. package/dist/scripts/438-b444dfb8c6-reports.chunk.js +0 -1
  372. package/dist/scripts/4582-230f130f41-reports.chunk.js +0 -1
  373. package/dist/scripts/4752-db4247883d-reports.chunk.js +0 -2
  374. package/dist/scripts/4752-db4247883d-reports.chunk.js.LICENSE.txt +0 -118
  375. package/dist/scripts/4979-7e14b09f33-reports.chunk.js +0 -1
  376. package/dist/scripts/5051-ff0ec9348d-reports.chunk.js +0 -1
  377. package/dist/scripts/5091-ddd6f61b55-reports.chunk.js +0 -1
  378. package/dist/scripts/5173-cce3b37672-reports.chunk.js +0 -1
  379. package/dist/scripts/5177-a7372e7b8d-reports.chunk.js +0 -1
  380. package/dist/scripts/5304-d5674b32b4-reports.chunk.js +0 -1
  381. package/dist/scripts/5802-2125536755-reports.chunk.js +0 -1
  382. package/dist/scripts/6007-42edca6bba-reports.chunk.js +0 -1
  383. package/dist/scripts/6031-b1c60cc409-reports.chunk.js +0 -1
  384. package/dist/scripts/6081-2bbda6cac3-reports.chunk.js +0 -1
  385. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js +0 -2
  386. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js.LICENSE.txt +0 -1
  387. package/dist/scripts/6198-189ddde870-reports.chunk.js +0 -1
  388. package/dist/scripts/6356-a1b313c73e-reports.chunk.js +0 -1
  389. package/dist/scripts/645-e8b19128e5-reports.chunk.js +0 -1
  390. package/dist/scripts/6545-eadce8e749-reports.chunk.js +0 -1
  391. package/dist/scripts/6811-40ded4c089-reports.chunk.js +0 -1
  392. package/dist/scripts/7238-de5ef0ebfb-reports.chunk.js +0 -1
  393. package/dist/scripts/7562-748e60c3fc-reports.chunk.js +0 -1
  394. package/dist/scripts/7709-82750ee317-reports.chunk.js +0 -1
  395. package/dist/scripts/7723-1799f5aa26-reports.chunk.js +0 -1
  396. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js +0 -2
  397. package/dist/scripts/7747-bc33e51d7b-reports.chunk.js.LICENSE.txt +0 -1
  398. package/dist/scripts/7925-c6c532c9c4-reports.chunk.js +0 -1
  399. package/dist/scripts/8087-1d9e9701e5-reports.chunk.js +0 -1
  400. package/dist/scripts/8393-c37cc22b4c-reports.chunk.js +0 -1
  401. package/dist/scripts/8418-9f96caf039-reports.chunk.js +0 -1
  402. package/dist/scripts/8450-f2d5d99614-reports.chunk.js +0 -1
  403. package/dist/scripts/8591-4811082ab0-reports.chunk.js +0 -1
  404. package/dist/scripts/8622-a422eff0c4-reports.chunk.js +0 -1
  405. package/dist/scripts/8839-711793a97f-reports.chunk.js +0 -1
  406. package/dist/scripts/8989-ca5cab7f45-reports.chunk.js +0 -1
  407. package/dist/scripts/9059-b2dcf3cdb2-reports.chunk.js +0 -1
  408. package/dist/scripts/9162-7ffc692736-reports.chunk.js +0 -1
  409. package/dist/scripts/9285-ecddd01efb-reports.chunk.js +0 -1
  410. package/dist/scripts/9590-41bb23ae71-reports.chunk.js +0 -1
  411. package/dist/scripts/9647-f0c111d3f0-reports.chunk.js +0 -1
  412. package/dist/scripts/9661-2dee4c3417-reports.chunk.js +0 -1
  413. package/dist/scripts/9822-1b202f9d49-reports.chunk.js +0 -1
  414. package/dist/scripts/9895-3b3feb12b9-reports.chunk.js +0 -1
  415. package/dist/scripts/9949-63e32c6733-reports.chunk.js +0 -1
  416. package/dist/scripts/bundle-8754f0e6b8.min.js +0 -2
  417. package/dist/scripts/bundle-8754f0e6b8.min.js.LICENSE.txt +0 -108
  418. package/dist/scripts/polyfills-3db3f009d4.min.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DePDakSd.chunk.js","sources":["../../../../../node_modules/can-use-dom/index.js","../../../../../node_modules/lodash.throttle/index.js","../../../../../node_modules/lodash.debounce/index.js","../../../../../node_modules/lodash.memoize/index.js","../../../../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourcesContent":["var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n"],"names":["canUseDOM","canUseDom","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectProto","objectToString","nativeMax","nativeMin","now","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","isObject","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","throttle","value","type","isObjectLike","isSymbol","other","isBinary","lodash_throttle","lodash_debounce","HASH_UNDEFINED","funcTag","genTag","reRegExpChar","reIsHostCtor","getValue","object","key","isHostObject","arrayProto","funcProto","coreJsData","maskSrcKey","uid","funcToString","hasOwnProperty","reIsNative","splice","Map","getNative","nativeCreate","Hash","entries","index","length","entry","hashClear","hashDelete","hashGet","data","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","array","eq","baseIsNative","isMasked","pattern","isFunction","toSource","map","isKeyable","memoize","resolver","memoized","cache","tag","lodash_memoize","MapShim","getIndex","arr","class_1","callback","ctx","_i","_a","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","ResizeObserverController","observer","observers","changesDetected","activeObservers","_b","propertyName","isReflowProperty","defineConfigurable","target","props","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","size","position","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getHTMLElementContentRect","clientWidth","clientHeight","horizPad","vertPad","width","height","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","getContentRect","createReadOnlyRect","x","y","Constr","rect","ResizeObservation","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","observations","_this","observation","ResizeObserver","method"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -0,0 +1,3 @@
1
+ import{j as e,d as x,e as h,u as l,U as j,L as f}from"./app-DhPN-zNB.js";import{P as g,a as d}from"./DDeXXa-Z.chunk.js";import{V as m}from"./CcURCjqv.chunk.js";import{u as y}from"./NRnV1wHl.chunk.js";function v(a){return e.jsx(g,{layout:a.layout,className:a.className,percentage:0,customLabel:"--%"})}const b="shared.engagementOverviewCard",r=f.encloseNamespace(b);function E(a){var i;const s=x(),n=h(),u=!s.users&&!s.classrooms&&!s.classroomGroups,c=l(!!a.useSharerId&&j.currentUser()),t=l(!!n&&(a.useSharerId?!!c.data&&m.aggregateEngagement(a.objectId,n,c.data.id):m.aggregateEngagement(a.objectId,n)));y(t);const o=((i=t.data)==null?void 0:i.engagementRate)>0?t.data.engagementRate:null;return e.jsxs("div",{className:`d-flex flex-column rounded bg-white p-3 ${a.className??""}`,children:[e.jsx("h3",{className:"h6 mb-2",children:r("heading")}),e.jsxs("div",{className:`d-flex align-items-center flex-grow-1
2
+ ${a.layout==="vertical"?" flex-column justify-content-center text-center":""}`,children:[!!t.data&&e.jsxs(e.Fragment,{children:[e.jsx(g,{percentage:o,layout:d.LabelInside}),e.jsx("p",{className:a.layout==="horizontal"?"ms-2":"",children:typeof o=="number"?r(u?"descriptionEveryone":"descriptionSome",{percentage:Math.round(t.data.engagementRate*100)}):r("descriptionNoData")})]}),!t.data&&e.jsxs(e.Fragment,{children:[e.jsx(v,{layout:d.LabelInside}),a.layout==="vertical"&&e.jsx("p",{children:" "})]})]})]})}export{E,v as P};
3
+ //# sourceMappingURL=DeoNhQh0.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeoNhQh0.chunk.js","sources":["../../../../libs/shared/src/components/percentage-indicator/PartialPercentageIndicator.tsx","../../src/shared/views/overview-cards/engagement-overview-card/EngagementOverviewCardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { PercentageIndicator, PercentageIndicatorLayout } from './PercentageIndicator';\n\ninterface PartialPercentageIndicatorProps {\n layout: PercentageIndicatorLayout;\n className?: string;\n}\n\nexport function PartialPercentageIndicator(props: PartialPercentageIndicatorProps): JSX.Element {\n return (\n <PercentageIndicator\n layout={props.layout}\n className={props.className}\n percentage={0}\n customLabel='--%'\n />\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { PartialPercentageIndicator } from 'libs/shared/components/percentage-indicator/PartialPercentageIndicator';\nimport { PercentageIndicator, PercentageIndicatorLayout } from 'libs/shared/components/percentage-indicator/PercentageIndicator';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { CurrentUser, Engagement } from 'libs/shared/interfaces';\n\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\nconst namespace = 'shared.engagementOverviewCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EngagementOverviewCardViewProps {\n objectId: string | null; // Passing `null` will trigger partial loading\n layout: 'vertical' | 'horizontal';\n className?: string;\n useSharerId?: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function EngagementOverviewCardView(props: EngagementOverviewCardViewProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter();\n\n const everyoneSelected = !filterQueryParams.users\n && !filterQueryParams.classrooms\n && !filterQueryParams.classroomGroups;\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(!!props.useSharerId && UserRequests.currentUser());\n\n const engagement = Flight.useBasicFetch<Engagement>(!!requestFilter && (props.useSharerId\n ? !!currentUser.data && VideoViewRequests.aggregateEngagement(props.objectId, requestFilter, currentUser.data.id)\n : VideoViewRequests.aggregateEngagement(props.objectId, requestFilter)\n ));\n\n useHandleObjectError(engagement);\n\n const engagementRate = engagement.data?.engagementRate > 0 ? engagement.data.engagementRate : null;\n\n return (\n <div className={`d-flex flex-column rounded bg-white p-3 ${props.className ?? ''}`}>\n <h3 className='h6 mb-2'>{getPhrase('heading')}</h3>\n <div\n className={\n `d-flex align-items-center flex-grow-1\n ${props.layout === 'vertical' ? ' flex-column justify-content-center text-center' : ''}`\n }\n >\n {!!engagement.data &&\n <>\n <PercentageIndicator\n percentage={engagementRate}\n layout={PercentageIndicatorLayout.LabelInside}\n />\n <p className={props.layout === 'horizontal' ? 'ms-2' : ''}>\n {typeof engagementRate === 'number'\n ? getPhrase(everyoneSelected ? 'descriptionEveryone' : 'descriptionSome', {\n percentage: Math.round(engagement.data.engagementRate * 100)\n })\n : getPhrase('descriptionNoData')\n }\n </p>\n </>\n }\n {!engagement.data &&\n <>\n <PartialPercentageIndicator layout={PercentageIndicatorLayout.LabelInside} />\n {props.layout === 'vertical' && <p>&nbsp;</p>}\n </>\n }\n </div>\n </div>\n );\n}"],"names":["PartialPercentageIndicator","props","jsx","PercentageIndicator","namespace","getPhrase","LanguageService","EngagementOverviewCardView","filterQueryParams","useGetAppLinkFilterParams","requestFilter","useGetRequestFilter","everyoneSelected","currentUser","Flight.useBasicFetch","UserRequests","engagement","VideoViewRequests","useHandleObjectError","engagementRate","_a","jsxs","Fragment","PercentageIndicatorLayout"],"mappings":"wMASO,SAASA,EAA2BC,EAAqD,CAC9F,OACEC,EAAAA,IAACC,EAAA,CACC,OAAQF,EAAM,OACd,UAAWA,EAAM,UACjB,WAAY,EACZ,YAAY,KAAA,CAAA,CAGlB,CCJA,MAAMG,EAAY,gCACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAUrD,SAASG,EAA2BN,EAAqD,OAC9F,MAAMO,EAAoBC,EAAA,EACpBC,EAAgBC,EAAA,EAEhBC,EAAmB,CAACJ,EAAkB,OACvC,CAACA,EAAkB,YACnB,CAACA,EAAkB,gBAElBK,EAAcC,EAAkC,CAAC,CAACb,EAAM,aAAec,EAAa,aAAa,EAEjGC,EAAaF,EAAiC,CAAC,CAACJ,IAAkBT,EAAM,YAC1E,CAAC,CAACY,EAAY,MAAQI,EAAkB,oBAAoBhB,EAAM,SAAUS,EAAeG,EAAY,KAAK,EAAE,EAC9GI,EAAkB,oBAAoBhB,EAAM,SAAUS,CAAa,EACtE,EAEDQ,EAAqBF,CAAU,EAE/B,MAAMG,IAAiBC,EAAAJ,EAAW,OAAX,YAAAI,EAAiB,gBAAiB,EAAIJ,EAAW,KAAK,eAAiB,KAE9F,cACG,MAAA,CAAI,UAAW,2CAA2Cf,EAAM,WAAa,EAAE,GAC9E,SAAA,CAAAC,MAAC,KAAA,CAAG,UAAU,UAAW,SAAAG,EAAU,SAAS,EAAE,EAC9CgB,EAAAA,KAAC,MAAA,CACC,UACE;AAAA,YACEpB,EAAM,SAAW,WAAa,kDAAoD,EAAE,GAGvF,SAAA,CAAA,CAAC,CAACe,EAAW,MACZK,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAApB,EAAAA,IAACC,EAAA,CACC,WAAYgB,EACZ,OAAQI,EAA0B,WAAA,CAAA,EAEpCrB,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAM,SAAW,aAAe,OAAS,GACpD,SAAA,OAAOkB,GAAmB,SACvBd,EAAUO,EAAmB,sBAAwB,kBAAmB,CACxE,WAAY,KAAK,MAAMI,EAAW,KAAK,eAAiB,GAAG,CAAA,CAC5D,EACCX,EAAU,mBAAmB,CAAA,CAEnC,CAAA,EACF,EAED,CAACW,EAAW,MACXK,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAApB,EAAAA,IAACF,EAAA,CAA2B,OAAQuB,EAA0B,WAAA,CAAa,EAC1EtB,EAAM,SAAW,YAAcC,EAAAA,IAAC,KAAE,SAAA,GAAA,CAAM,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,CAEJ,EACF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{aW as s}from"./app-DhPN-zNB.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
2
+ //# sourceMappingURL=DsbeU03P.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DsbeU03P.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"uCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
@@ -0,0 +1,2 @@
1
+ import{cM as a,L as i,cN as T,cO as I,cp as R,l as r,u as V,U as N,p as b,az as L,cP as x}from"./app-DhPN-zNB.js";import{R as S}from"./NRnV1wHl.chunk.js";const p="shared.restrictedLibraryError";class A extends a{constructor(){super(i.getPhrase(p,"title"))}get name(){return"RestrictedLibraryError"}get heading(){return i.getPhrase(p,"heading")}get description(){return i.getPhrase(p,"description")}get cta(){return{text:i.getPhrase(p,"cta"),url:T.getLiteArticle(I.StudentSharingGuide),openInNewTab:!0}}}const w="shared.loginRequired",u=i.encloseNamespace(w);function q(e){return r.isClip(e)?u("clipDescription"):r.isInteractive(e)?u("interactiveDescription"):u("videoDescription")}class g extends R{constructor(t){super(u("title")),this.video=t}get name(){return"LoginRequiredError"}get heading(){return u("title")}get description(){return q(this.video)}}const U="shared.videoNotInSubscriptionError",h=i.encloseNamespace(U);class y extends a{constructor(t){super("VideoNotInSubscriptionError"),this.video=t}get name(){return"VideoNotInSubscriptionError"}get heading(){return h("title")}get description(){return h("description")}}const k="shared.parentVideoDeletedError",n=i.encloseNamespace(k);function v(e){return r.isClip(e)?n("clipTitle"):r.isInteractive(e)?n("interactiveTitle"):n("videoTitle")}function H(e){return r.isClip(e)?n("clipDescription"):r.isInteractive(e)?n("interactiveDescription"):n("videoDescription")}class M extends a{constructor(t){super(v(t)),this.video=t}get name(){return"ParentVideoDeletedError"}get heading(){return v(this.video)}get description(){return H(this.video)}}const B="shared.videoPrivateError",s=i.encloseNamespace(B);function f(e){return r.isClip(e)?s("clipTitle"):r.isInteractive(e)?s("interactiveTitle"):s("videoTitle")}function z(e){return r.isClip(e)?s("clipDescription"):r.isInteractive(e)?s("interactiveDescription"):s("videoDescription")}class F extends a{constructor(t){super(f(t)),this.video=t}get name(){return"VideoPrivateError"}get heading(){return f(this.video)}get description(){return z(this.video)}}const G="shared.videoRatingAccess",o=i.encloseNamespace(G);function m(e){return r.isClip(e)?o("clipTitle"):r.isInteractive(e)?o("interactiveTitle"):o("videoTitle")}function O(e){return r.isClip(e)?o("clipDescription"):r.isInteractive(e)?o("interactiveDescription"):o("videoDescription")}class j extends a{constructor(t){super(m(t)),this.video=t}get name(){return"VideoRatingAccessError"}get heading(){return m(this.video)}get description(){return O(this.video)}}const J="shared.videoRestrictedError",c=i.encloseNamespace(J);function E(e){return r.isClip(e)?c("clipTitle"):r.isInteractive(e)?c("interactiveTitle"):c("videoTitle")}function K(e){return r.isClip(e)?c("clipDescription"):r.isInteractive(e)?c("interactiveDescription"):c("videoDescription")}class Q extends a{constructor(t){super(E(t)),this.video=t}get name(){return"VideoRestrictedError"}get heading(){return E(this.video)}get description(){return K(this.video)}}const D={"rating-not-allowed":j,"video-deleted":M,private:F,"clickview-private":y,"login-required":g,"restricted-access":Q,"content-region-violated":S,"restricted-library":A},W={...D,private:g,"clickview-private":g},_=(e,t={})=>{const d=V(N.currentUser());b.useEffect(()=>{if(!e.hasCompleted||!d.hasCompleted)return;const l=e.data;if(!l)return;const{canConsume:C,reason:$}=r.getCanBeConsumed(l);if(C)return;const P={...d.data.isAuthenticated?D:W,...t}[$??"private"]??x;L.throw(new P(l))},[e.hasCompleted,d.hasCompleted])};export{_ as u};
2
+ //# sourceMappingURL=DtbthThZ.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DtbthThZ.chunk.js","sources":["../../../../libs/shared/src/errors/general/library-restricted/RestrictedLibraryError.ts","../../../../libs/shared/src/errors/videos/login-required/LoginRequiredError.ts","../../../../libs/shared/src/errors/videos/not-in-subscription-error/VideoNotInSubscriptionError.ts","../../../../libs/shared/src/errors/videos/parent-video-deleted/ParentVideoDeletedError.ts","../../../../libs/shared/src/errors/videos/video-private/VideoPrivateError.ts","../../../../libs/shared/src/errors/videos/video-rating-access/VideoRatingAccessError.ts","../../../../libs/shared/src/errors/videos/video-restricted/VideoRestrictedError.ts","../../../../libs/shared/src/hooks/useCannotConsumeError.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nconst namespace = 'shared.restrictedLibraryError';\n\nexport class RestrictedLibraryError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RestrictedLibraryError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n\n // @ts-ignore\n public get cta(): ErrorCta {\n return {\n text: LanguageService.getPhrase(namespace, 'cta'),\n url: ArticleHelper.getLiteArticle(LiteSupportArticle.StudentSharingGuide),\n openInNewTab: true\n };\n }\n}\n","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.loginRequired';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDescription(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipDescription');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveDescription');\n\n return getPhrase('videoDescription');\n}\n\nexport class LoginRequiredError extends Core.SilentError {\n public video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super(getPhrase('title'));\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'LoginRequiredError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getPhrase('title');\n }\n\n // @ts-ignore\n public get description(): string {\n return getDescription(this.video);\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.videoNotInSubscriptionError';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport class VideoNotInSubscriptionError extends ErrorPageError {\n private video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super('VideoNotInSubscriptionError');\n\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VideoNotInSubscriptionError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getPhrase('title');\n }\n\n // @ts-ignore\n public get description(): string {\n return getPhrase('description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.parentVideoDeletedError';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getTitle(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipTitle');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveTitle');\n\n return getPhrase('videoTitle');\n}\n\nfunction getDescription(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipDescription');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveDescription');\n\n return getPhrase('videoDescription');\n}\n\nexport class ParentVideoDeletedError extends ErrorPageError {\n private video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super(getTitle(video));\n\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'ParentVideoDeletedError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getTitle(this.video);\n }\n\n // @ts-ignore\n public get description(): string {\n return getDescription(this.video);\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.videoPrivateError';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getTitle(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipTitle');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveTitle');\n\n return getPhrase('videoTitle');\n}\n\nfunction getDescription(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipDescription');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveDescription');\n\n return getPhrase('videoDescription');\n}\n\nexport class VideoPrivateError extends ErrorPageError {\n private video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super(getTitle(video));\n\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VideoPrivateError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getTitle(this.video);\n }\n\n // @ts-ignore\n public get description(): string {\n return getDescription(this.video);\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.videoRatingAccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getTitle(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipTitle');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveTitle');\n\n return getPhrase('videoTitle');\n}\n\nfunction getDescription(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipDescription');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveDescription');\n\n return getPhrase('videoDescription');\n}\n\nexport class VideoRatingAccessError extends ErrorPageError {\n private video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super(getTitle(video));\n\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VideoRatingAccessError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getTitle(this.video);\n }\n\n // @ts-ignore\n public get description(): string {\n return getDescription(this.video);\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.videoRestrictedError';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getTitle(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipTitle');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveTitle');\n\n return getPhrase('videoTitle');\n}\n\nfunction getDescription(video: VideoTypes): string {\n if (VideoHelper.isClip(video))\n return getPhrase('clipDescription');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveDescription');\n\n return getPhrase('videoDescription');\n}\n\nexport class VideoRestrictedError extends ErrorPageError {\n private video: VideoTypes;\n\n constructor(video: VideoTypes) {\n super(getTitle(video));\n\n this.video = video;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VideoRestrictedError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return getTitle(this.video);\n }\n\n // @ts-ignore\n public get description(): string {\n return getDescription(this.video);\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { RestrictedLibraryError } from 'libs/shared/errors/general/library-restricted/RestrictedLibraryError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { LoginRequiredError } from 'libs/shared/errors/videos/login-required/LoginRequiredError';\nimport { VideoNotInSubscriptionError } from 'libs/shared/errors/videos/not-in-subscription-error/VideoNotInSubscriptionError';\nimport { ParentVideoDeletedError } from 'libs/shared/errors/videos/parent-video-deleted/ParentVideoDeletedError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { VideoRatingAccessError } from 'libs/shared/errors/videos/video-rating-access/VideoRatingAccessError';\nimport { VideoRestrictedError } from 'libs/shared/errors/videos/video-restricted/VideoRestrictedError';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\n/**\n * NOTE: The logic for these errors is similar to logic in `ShareLinkFilter`.\n * If you update this, please also update `ShareLinkFilter`\n */\ntype ErrorReason =\n | 'rating-not-allowed'\n | 'video-deleted'\n | 'private'\n | 'clickview-private'\n | 'login-required'\n | 'restricted-access'\n | 'content-region-violated'\n | 'restricted-library';\n\ntype ErrorMap = Partial<Record<\n ErrorReason,\n new (video?: VideoTypes) => Core.Error\n>>;\n\nconst signedInErrorMap: ErrorMap = {\n 'rating-not-allowed': VideoRatingAccessError,\n 'video-deleted': ParentVideoDeletedError,\n 'private': VideoPrivateError,\n 'clickview-private': VideoNotInSubscriptionError,\n 'login-required': LoginRequiredError,\n 'restricted-access': VideoRestrictedError,\n 'content-region-violated': RegionLockedResourceError,\n 'restricted-library': RestrictedLibraryError\n};\n\nconst publicErrorMap: ErrorMap = {\n ...signedInErrorMap,\n 'private': LoginRequiredError,\n 'clickview-private': LoginRequiredError\n};\n\nexport const useCannotConsumeError = (\n videoResponse: Flight.Response<VideoTypes>,\n customErrorHandlers: ErrorMap = {}\n) => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n React.useEffect(() => {\n if (!videoResponse.hasCompleted || !currentUser.hasCompleted)\n return;\n\n const video = videoResponse.data;\n\n if (!video)\n return;\n\n const { canConsume, reason } = VideoHelper.getCanBeConsumed(video);\n\n if (canConsume)\n return;\n\n const errors = {\n ...(currentUser.data.isAuthenticated ? signedInErrorMap : publicErrorMap),\n ...customErrorHandlers\n };\n\n const errorCtor = errors[reason ?? 'private'] ?? UnspecifiedError;\n\n Core.ErrorHelper.throw(new errorCtor(video));\n }, [ videoResponse.hasCompleted, currentUser.hasCompleted ]);\n};"],"names":["namespace","RestrictedLibraryError","ErrorPageError","LanguageService","ArticleHelper","LiteSupportArticle","getPhrase","getDescription","video","VideoHelper","LoginRequiredError","Core.SilentError","VideoNotInSubscriptionError","getTitle","ParentVideoDeletedError","VideoPrivateError","VideoRatingAccessError","VideoRestrictedError","signedInErrorMap","RegionLockedResourceError","publicErrorMap","useCannotConsumeError","videoResponse","customErrorHandlers","currentUser","Flight.useBasicFetch","UserRequests","React","canConsume","reason","errorCtor","UnspecifiedError","Core.ErrorHelper"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{c as N,d as U,e as _,b as R,P as A,u as s,f as T,a as I,L as O,j as e,V as q,U as G,C as M}from"./app-DhPN-zNB.js";import{P as F,M as K,V as L,a as H,E as $}from"./DW5KxGbM.chunk.js";import{g as h}from"./CX5q-0jT.chunk.js";import{V as d}from"./CcURCjqv.chunk.js";import{u as k}from"./NRnV1wHl.chunk.js";import{P as B}from"./DUnqV5wd.chunk.js";import{C as D,a as Q}from"./Br5YjgjU.chunk.js";import{u as Y}from"./BncpEV2O.chunk.js";import{u as z}from"./DFFdinDv.chunk.js";import{u as J}from"./2nrjFQG6.chunk.js";import{u as W,a as X}from"./mjKop7CA.chunk.js";import{u as Z}from"./HCxw4efP.chunk.js";import{E as ee}from"./DeoNhQh0.chunk.js";import{V as ae}from"./MqKLZ7-F.chunk.js";import"./wnQZ7WYP.chunk.js";import"./Cyyw1SCS.chunk.js";import"./DDeXXa-Z.chunk.js";import"./5O9SdVRZ.chunk.js";import"./CW7x8M-z.chunk.js";import"./DePDakSd.chunk.js";import"./B8dw4aip.chunk.js";import"./DNEgb5v1.chunk.js";import"./Bn0dkU5Y.chunk.js";import"./DIQhtsg6.chunk.js";import"./Cg_qt_Rk.chunk.js";import"./C-Bnglks.chunk.js";import"./hqhdC5CE.chunk.js";import"./rLITk9YY.chunk.js";import"./BZfWKvo2.chunk.js";import"./sFV5nxD4.chunk.js";import"./Br_GRaAX.chunk.js";import"./6bLX1DNm.chunk.js";import"./DsbeU03P.chunk.js";import"./6SDR31f9.chunk.js";import"./CztNQjFH.chunk.js";import"./DtbthThZ.chunk.js";import"./DNRcL1e9.chunk.js";import"./aRYKkB2W.chunk.js";import"./CpDqrbAS.chunk.js";import"./CEPQucRi.chunk.js";import"./CObSk_oj.chunk.js";const te="_viewCountContainer_8jne3_1",ie="_engagementPercentageContainer_8jne3_4",se="_engagementGraphContainer_8jne3_7",ne="_partialTable_8jne3_10",g={viewCountContainer:te,engagementPercentageContainer:ie,engagementGraphContainer:se,partialTable:ne},re="reportsClips.clipEngagement",oe=O.encloseNamespace(re);function ze(a){var u,C,j,v,f;const[E]=N(q.ANONYMISE_USERS),p=U(),t=_(),{hasPermissions:y}=R(),n=!y(A.ViewCustomerAnalytics),o=s(n&&G.currentUser()),r=s(D.clip(a.id)),l=s(!!t&&(n?!!o.data&&d.aggregateEngagement(a.id,t,o.data.id):d.aggregateEngagement(a.id,t))),i=s(!!t&&(n?!!o.data&&d.individualEngagement(a.id,t,o.data.id):d.individualEngagement(a.id,t))),{users:P,isLoading:w,usersResponse:x}=T((C=(u=i.data)==null?void 0:u.data)==null?void 0:C.map(S=>S.userId)),c=s(F.createViewKey(a.id,K.MasterObject)),m=s(M.config());I({title:oe("pageTitle",{clip:(j=r.data)==null?void 0:j.name})}),Z((v=r.data)==null?void 0:v.name),W(X(r.data)),J(a.id),z(i),Y(r),k([c,l,i,...x.responses]);const V=!!r.data&&!!l.data&&!!c.data&&!!m.data,b=!!i.data&&(!i.data.data.length||!w);return e.jsxs("div",{className:"pb-3",children:[e.jsx(Q,{id:a.id}),e.jsxs("div",{className:"d-flex pb-3",children:[e.jsx("div",{className:`pe-2 ${g.viewCountContainer}`,children:e.jsx(ae,{useSharerId:n,objectId:a.id,className:"h-100"})}),e.jsx("div",{className:`px-2 ${g.engagementPercentageContainer}`,children:e.jsx(ee,{objectId:a.id,useSharerId:n,className:"h-100",layout:"vertical"})}),e.jsx("div",{className:`ps-2 ${g.engagementGraphContainer}`,children:V?e.jsx(L,{engagement:l.data,viewKey:c.data.viewKey,imageCdnUrl:m.data.imageCdnUrl,playerApiUrl:m.data.playerApiUrl},h(p)):e.jsx(H,{})})]}),b?e.jsx($,{engagement:i.data.data,users:P,imageCdnUrl:(f=m.data)==null?void 0:f.imageCdnUrl,anonymiseUsers:E,enableSort:!0},h(p)):e.jsx(B,{className:g.partialTable})]})}export{ze as ClipEngagementView};
2
+ //# sourceMappingURL=Dtv-7Q3n.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dtv-7Q3n.chunk.js","sources":["../../src/apps/clips/views/clip-engagement/ClipEngagementView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { EngagementTable } from 'libs/shared/apps/analytics/components/engagement-table/EngagementTable';\nimport { useChunkedUsersResponse } from 'libs/shared/apps/analytics/hooks/UseEngagementUsers';\nimport { getFilterParamsKey } from 'libs/shared/apps/analytics/utils/FilterParamUtils';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests as SharedUserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, PlayerViewKey, Video } from 'libs/shared/interfaces';\nimport { Engagement, IndividualEngagementResponse } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialVideoEngagementOverlay } from 'shared/components/video-engagement-overlay/PartialVideoEngagementOverlay';\nimport { VideoEngagementOverlay } from 'shared/components/video-engagement-overlay/VideoEngagementOverlay';\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\nimport { ClipRequests } from 'shared/flight-requests/ClipRequests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useHandleVideoError } from 'shared/hooks/UseHandleVideoError';\nimport { useSetAudienceFilterCount } from 'shared/hooks/UseSetAudienceFilterCount';\nimport { useSetEngagementAudienceSuggestions } from 'shared/hooks/UseSetEngagementAudienceSuggestions';\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { useGetObjectHeaderActions } from 'shared/utils/HeaderActionUtils';\nimport { EngagementOverviewCardView } from 'shared/views/overview-cards/engagement-overview-card/EngagementOverviewCardView';\nimport { ViewCountPieChartCardView } from 'shared/views/overview-cards/view-count-pie-chart-card/ViewCountPieChartCardView';\n\nimport { ClipNav } from 'apps/clips/components/clip-nav/ClipNav';\n\nimport styles from './clip-engagement.module.scss';\n\nconst namespace = 'reportsClips.clipEngagement';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClipEngagementViewProps {\n id: string;\n}\n\nexport function ClipEngagementView(props: ClipEngagementViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter();\n\n const { hasPermissions } = usePermissions();\n\n const scopeBySharerId = !hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(scopeBySharerId && SharedUserRequests.currentUser());\n\n const clip = Flight.useBasicFetch<Video>(ClipRequests.clip(props.id));\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(!!requestFilter && (scopeBySharerId\n ? !!currentUser.data && VideoViewRequests.aggregateEngagement(props.id, requestFilter, currentUser.data.id)\n : VideoViewRequests.aggregateEngagement(props.id, requestFilter)\n ));\n\n const individualEngagement = Flight.useBasicFetch<IndividualEngagementResponse>(!!requestFilter && (scopeBySharerId\n ? !!currentUser.data && VideoViewRequests.individualEngagement(props.id, requestFilter, currentUser.data.id)\n : VideoViewRequests.individualEngagement(props.id, requestFilter)\n ));\n\n const { users, isLoading, usersResponse } = useChunkedUsersResponse(\n individualEngagement.data?.data?.map(d => d.userId)\n );\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject)\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata({ title: getPhrase('pageTitle', { clip: clip.data?.name }) });\n useSetHeaderTitle(clip.data?.name);\n useSetHeaderActions(useGetObjectHeaderActions(clip.data));\n useSetEngagementAudienceSuggestions(props.id);\n useSetAudienceFilterCount(individualEngagement);\n\n useHandleVideoError(clip);\n useHandleObjectError([ viewKey, aggregateEngagement, individualEngagement, ...usersResponse.responses ]);\n\n const engagementOverlayDataLoaded = !!clip.data\n && !!aggregateEngagement.data\n && !!viewKey.data\n && !!config.data;\n\n const tableDataLoaded = !!individualEngagement.data && (!individualEngagement.data.data.length || !isLoading);\n\n return (\n <div className='pb-3'>\n <ClipNav id={props.id} />\n <div className='d-flex pb-3'>\n <div className={`pe-2 ${styles.viewCountContainer}`}>\n <ViewCountPieChartCardView\n useSharerId={scopeBySharerId}\n objectId={props.id}\n className='h-100'\n />\n </div>\n <div className={`px-2 ${styles.engagementPercentageContainer}`}>\n <EngagementOverviewCardView\n objectId={props.id}\n useSharerId={scopeBySharerId}\n className='h-100'\n layout='vertical'\n />\n </div>\n <div className={`ps-2 ${styles.engagementGraphContainer}`}>\n {engagementOverlayDataLoaded\n ? <VideoEngagementOverlay\n // key is used to trigger player re-render\n key={getFilterParamsKey(filterQueryParams)}\n engagement={aggregateEngagement.data}\n viewKey={viewKey.data.viewKey}\n imageCdnUrl={config.data.imageCdnUrl}\n playerApiUrl={config.data.playerApiUrl}\n />\n : <PartialVideoEngagementOverlay />\n }\n </div>\n </div>\n {tableDataLoaded\n ? <EngagementTable\n key={getFilterParamsKey(filterQueryParams)}\n engagement={individualEngagement.data.data}\n users={users}\n imageCdnUrl={config.data?.imageCdnUrl}\n anonymiseUsers={anonymiseUsers}\n enableSort\n />\n : <PartialTable className={styles.partialTable} />\n }\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ClipEngagementView","props","anonymiseUsers","useViewModel","ViewModelKeys","filterQueryParams","useGetAppLinkFilterParams","requestFilter","useGetRequestFilter","hasPermissions","usePermissions","scopeBySharerId","PermissionName","currentUser","Flight.useBasicFetch","SharedUserRequests","clip","ClipRequests","aggregateEngagement","VideoViewRequests","individualEngagement","users","isLoading","usersResponse","useChunkedUsersResponse","_b","_a","d","viewKey","PlayerRequests","MediaIdType","config","ConfigRequests","useSetPageMetadata","_c","useSetHeaderTitle","_d","useSetHeaderActions","useGetObjectHeaderActions","useSetEngagementAudienceSuggestions","useSetAudienceFilterCount","useHandleVideoError","useHandleObjectError","engagementOverlayDataLoaded","tableDataLoaded","jsxs","jsx","ClipNav","styles","ViewCountPieChartCardView","EngagementOverviewCardView","VideoEngagementOverlay","getFilterParamsKey","PartialVideoEngagementOverlay","EngagementTable","_e","PartialTable"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{ar as A,e as g,p as k,u as o,bO as h,j as t,$ as E,w as G,L as U,T as i,a4 as u,aV as N,U as T}from"./app-DhPN-zNB.js";import{u as D,I as L}from"./DEFJUMtW.chunk.js";import{g as M,b as H}from"./DDeXXa-Z.chunk.js";import{a as V,I as B,e as Q,f as s}from"./Bodl5h9Z.chunk.js";import{u as O}from"./hqhdC5CE.chunk.js";import{u as $,g as v}from"./aRYKkB2W.chunk.js";import{b as z}from"./CHlm4fQa.chunk.js";import"./sFV5nxD4.chunk.js";import"./5O9SdVRZ.chunk.js";import"./BZfWKvo2.chunk.js";import"./Cr_-BIsS.chunk.js";import"./Cyyw1SCS.chunk.js";import"./C-Bnglks.chunk.js";const R="interactives.generateReport",r=U.encloseNamespace(R);function oe(a){var d;const x=O(),I=A(),l=g(),[f,j]=k.useState(!1),{loading:y,handleGenerateReportError:C}=$(),n=o(T.currentUser()),c=o(h.interactiveMetadata(a.interactiveId)),m=o((d=c.data)!=null&&d.interactiveId?h.interactive(c.data.interactiveId):null),P=g(),w=D(a.interactiveId,P),p=V(m.data),F=z(m.data,w.data,!1);function S(){j(!0);const b={interactiveName:c.data.name,userId:n.data.id,customerId:n.data.customerId,questions:p.map(e=>e.name),rows:F.map(e=>({name:N.getFullName(e.user),unanswered:e.summary.unanswered,percentage:M(H(e.summary.percentCorrect)),correct:e.summary.correct,totalQuestions:e.summary.answered+e.summary.unanswered,results:p.map(q=>{switch(B.isInteractionCorrect(q,Q(e))){case s.Correct:return r("correct");case s.Incorrect:return r("incorrect");case s.NotApplicable:return"-";case s.AwaitingMarking:return r("awaitingMarking");case s.UnAnswered:case s.Answered:default:return""}})}))};I(L.interactiveResultsReport(b)).then(()=>{x.success(r("success"))}).catch(e=>C(e,r("error"),r("noEmailError"))).finally(a.closePopup)}return t.jsx(E.Provider,{value:R,children:t.jsxs(G,{title:r("title"),showLoadingSpinner:!n.hasCompleted||y,closePopup:a.closePopup,children:[t.jsx("p",{children:t.jsx(i,{phrase:"description"})}),t.jsx("p",{children:t.jsx(i,{phrase:"dateRange",options:{dateFrom:v(l.start),dateTo:v(l.end)}})}),t.jsx("p",{children:t.jsx(i,{phrase:"emailDescription"})}),t.jsxs(u,{children:[t.jsx(u.Cancel,{onClick:a.closePopup}),t.jsx(u.Submit,{variant:"dark",onClick:S,text:r("generateReport"),showSpinner:f})]})]})})}export{oe as GenerateInteractiveResultsReportView};
2
+ //# sourceMappingURL=Dvas_dD0.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dvas_dD0.chunk.js","sources":["../../src/apps/interactives/views/generate-report/GenerateInteractiveResultsReportView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { getFormattedPercentage, getPercentageToFixed } from 'libs/shared/components/percentage-indicator/PercentageIndicatorUtils';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { CurrentUser, Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getInteractions, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { getReportFriendlyDate } from 'shared/views/generate-report/GenerateReportView';\n\nimport { useGetResultsTableData } from 'apps/interactives/views/interactive-student-results-list/components/student-results-table/StudentResultsTableUtils';\n\nconst namespace = 'interactives.generateReport';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GenerateInteractiveResultsReportViewProps extends PopupViewProps {\n interactiveId: string;\n}\n\nexport function GenerateInteractiveResultsReportView(props: GenerateInteractiveResultsReportViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n const filterQueryParams = useGetRequestFilter();\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.interactiveId)\n );\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data?.interactiveId ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n const requestFilter = useGetRequestFilter();\n const results = useFetchInteractiveResults(props.interactiveId, requestFilter);\n\n const interactions = getInteractions(interactive.data);\n\n const answerData = useGetResultsTableData(interactive.data, results.data, false);\n\n function onClickGenerate(): void {\n setShowSpinner(true);\n\n const body: InteractiveResultsReport = {\n interactiveName: interactiveMetadata.data.name,\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n questions: interactions.map(i => i.name),\n rows: answerData.map(answer => {\n return {\n name: UserHelper.getFullName(answer.user),\n unanswered: answer.summary.unanswered,\n percentage: getFormattedPercentage(getPercentageToFixed(answer.summary.percentCorrect)),\n correct: answer.summary.correct,\n totalQuestions: answer.summary.answered + answer.summary.unanswered,\n results: interactions.map(interaction => {\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(\n interaction,\n getStudentResult(answer)\n );\n\n switch (correctness) {\n case InteractionCorrectness.Correct:\n return getPhrase('correct');\n\n case InteractionCorrectness.Incorrect:\n return getPhrase('incorrect');\n\n case InteractionCorrectness.NotApplicable:\n return '-';\n\n case InteractionCorrectness.AwaitingMarking:\n return getPhrase('awaitingMarking');\n\n case InteractionCorrectness.UnAnswered:\n case InteractionCorrectness.Answered:\n default:\n return '';\n }\n })\n };\n })\n };\n\n fetchAsync(InteractiveResultsRequests.interactiveResultsReport(body))\n .then(() => {\n alerts.success(getPhrase('success'));\n })\n .catch((xhr: Xhr) => handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError')))\n .finally(props.closePopup);\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={!currentUser.hasCompleted || loading}\n closePopup={props.closePopup}\n >\n <p>\n <Text phrase='description' />\n </p>\n <p>\n <Text phrase='dateRange' options={({\n dateFrom: getReportFriendlyDate(filterQueryParams.start),\n dateTo: getReportFriendlyDate(filterQueryParams.end)\n })} />\n </p>\n <p>\n <Text phrase='emailDescription' />\n </p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n variant='dark'\n onClick={onClickGenerate}\n text={getPhrase('generateReport')}\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </Popup>\n </LanguageNamespaceContext.Provider>\n );\n}"],"names":["namespace","getPhrase","LanguageService","GenerateInteractiveResultsReportView","props","alerts","useAlerts","fetchAsync","Flight.useGetFetchAsync","filterQueryParams","useGetRequestFilter","showSpinner","setShowSpinner","React","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","currentUser","Flight.useBasicFetch","UserRequests","interactiveMetadata","InteractiveRequests","interactive","_a","requestFilter","results","useFetchInteractiveResults","interactions","getInteractions","answerData","useGetResultsTableData","onClickGenerate","body","i","answer","UserHelper","getFormattedPercentage","getPercentageToFixed","interaction","InteractiveCorrectnessHelper","getStudentResult","InteractionCorrectness","InteractiveResultsRequests","xhr","jsx","LanguageNamespaceContext","jsxs","Popup","Text","getReportFriendlyDate","PopupButtons"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{c as t,r,V as o}from"./app-DhPN-zNB.js";function a(e){const[,s]=t(o.HEADER_TITLE);r.useEffect(()=>(s(e),()=>{s(null)}),[e])}export{a as u};
2
+ //# sourceMappingURL=HCxw4efP.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HCxw4efP.chunk.js","sources":["../../src/shared/hooks/UseSetHeaderTitle.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport function useSetHeaderTitle(title?: string): void {\n const [ , setTitle ] = useViewModel<string>(ViewModelKeys.HEADER_TITLE);\n\n useEffect(() => {\n setTitle(title);\n\n return () => {\n setTitle(null);\n };\n }, [title]);\n}"],"names":["useSetHeaderTitle","title","setTitle","useViewModel","ViewModelKeys","useEffect"],"mappings":"+CAMO,SAASA,EAAkBC,EAAsB,CACtD,KAAM,CAAA,CAAIC,CAAS,EAAIC,EAAqBC,EAAc,YAAY,EAEtEC,EAAAA,UAAU,KACRH,EAASD,CAAK,EAEP,IAAM,CACXC,EAAS,IAAI,CACf,GACC,CAACD,CAAK,CAAC,CACZ"}
@@ -0,0 +1,2 @@
1
+ import{j as a,c6 as s}from"./app-DhPN-zNB.js";import{R as t,s as e}from"./DUnqV5wd.chunk.js";function r(){return a.jsxs(t,{className:`py-1 ${e.videoItemContainer}`,children:[a.jsx(s,{xs:1,className:"d-flex align-items-center justify-content-center",children:a.jsx("div",{className:`partial-loading-background ${e.partialNumber}`})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:"d-block",children:a.jsx("div",{className:`partial-loading-background rounded ${e.partialThumbnail}`})})}),a.jsx(s,{xs:3,className:"d-flex align-items-center",children:a.jsx("div",{className:`partial-loading-background ms-n2 ${e.partialLongText}`})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background mx-4 ${e.partialShortText}`})}),a.jsx(s,{xs:4,className:"d-flex align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background mx-4 ${e.partialNumber}`})})]})}function c(){return a.jsxs(t,{className:`py-1 ${e.interactiveItemContainer}`,children:[a.jsx(s,{xs:1,className:"d-flex align-items-center justify-content-center",children:a.jsx("div",{className:`partial-loading-background ${e.partialNumber}`})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:"d-block",children:a.jsx("div",{className:`partial-loading-background rounded ${e.partialThumbnail}`})})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:`partial-loading-background ms-n2 ${e.partialMediumText}`})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background mx-4 ${e.partialAvatar}`})}),a.jsx(s,{xs:2,className:"d-flex align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background mx-4 ${e.partialMediumText}`})}),a.jsx(s,{xs:3,className:"d-flex align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background mx-4 ${e.partialNumber}`})})]})}function d(){return a.jsxs(t,{className:`my-2 ${e.userItemContainer}`,children:[a.jsxs(s,{xs:2,className:"d-flex align-items-center ",children:[a.jsx("div",{className:`partial-loading-background ms-3 ${e.partialAvatar}`}),a.jsx("div",{className:`partial-loading-background mx-2 ${e.partialShortText}`})]}),a.jsx(s,{xs:2,className:"d-flex justify-content-center align-items-center",children:a.jsx("div",{className:`d-block partial-loading-background ${e.partialShortText}`})}),a.jsx(s,{xs:2,className:"d-flex justify-content-center align-items-center",children:a.jsx("div",{className:`partial-loading-background ${e.partialShortText}`})}),a.jsx(s,{xs:6,className:"d-flex justify-content-between align-items-center",children:a.jsx("div",{className:`partial-loading-background ${e.heatMapItemContainer} ${e.partialHeatMap}`})})]})}function m(l,i){switch(l){case"video-views":return a.jsx(r,{},i);case"interactives":return a.jsx(c,{},i);case"engagement-users":return a.jsx(d,{},i);default:return a.jsx(a.Fragment,{})}}x.defaultProps={itemCount:7};function x(l){return a.jsx("div",{className:"my-1",children:Array(l.itemCount).fill(null).map((i,n)=>m(l.variant,n))})}export{x as P};
2
+ //# sourceMappingURL=J7X3wFpY.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"J7X3wFpY.chunk.js","sources":["../../src/shared/components/partial-loading/PartialTableContent.tsx"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}"],"names":["VideoItem","Row","styles","jsx","Col","InteractiveItem","EngagementUserItem","jsxs","getPartialItem","type","key","Fragment","PartialTableContent","props","_","i"],"mappings":"6FAOA,SAASA,GAAyB,CAChC,cACGC,EAAA,CAAI,UAAW,QAAQC,EAAO,kBAAkB,GAC/C,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,mDACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,8BAA8BD,EAAO,aAAa,EAAA,CAAI,EACxE,QACCE,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,eAAC,MAAA,CAAI,UAAU,UACb,SAAAD,MAAC,OAAI,UAAW,sCAAsCD,EAAO,gBAAgB,GAAI,EACnF,CAAA,CACF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,oCAAoCD,EAAO,eAAe,GAAI,EAChF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,2CAA2CD,EAAO,gBAAgB,GAAI,EACxF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,2CAA2CD,EAAO,aAAa,GAAI,CAAA,CACrF,CAAA,EACF,CAEJ,CAEA,SAASG,GAA+B,CACtC,cACGJ,EAAA,CAAI,UAAW,QAAQC,EAAO,wBAAwB,GACrD,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,mDACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,8BAA8BD,EAAO,aAAa,EAAA,CAAI,EACxE,QACCE,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,eAAC,MAAA,CAAI,UAAU,UACb,SAAAD,MAAC,OAAI,UAAW,sCAAsCD,EAAO,gBAAgB,GAAI,EACnF,CAAA,CACF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,oCAAoCD,EAAO,iBAAiB,GAAI,EAClF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,2CAA2CD,EAAO,aAAa,GAAI,EACrF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,2CAA2CD,EAAO,iBAAiB,GAAI,EACzF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,4BACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,2CAA2CD,EAAO,aAAa,GAAI,CAAA,CACrF,CAAA,EACF,CAEJ,CAEA,SAASI,GAAkC,CACzC,cACGL,EAAA,CAAI,UAAW,QAAQC,EAAO,iBAAiB,GAC9C,SAAA,CAAAK,EAAAA,KAACH,EAAA,CAAI,GAAI,EAAG,UAAU,6BACpB,SAAA,CAAAD,MAAC,MAAA,CAAI,UAAW,mCAAmCD,EAAO,aAAa,GAAI,QAC1E,MAAA,CAAI,UAAW,mCAAmCA,EAAO,gBAAgB,EAAA,CAAI,CAAA,EAChF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,mDACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,sCAAsCD,EAAO,gBAAgB,GAAI,EACnF,EACAC,EAAAA,IAACC,EAAA,CAAI,GAAI,EAAG,UAAU,mDACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,8BAA8BD,EAAO,gBAAgB,GAAI,EAC3E,QACCE,EAAA,CAAI,GAAI,EAAG,UAAU,oDACpB,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAW,8BAA8BD,EAAO,oBAAoB,IAAIA,EAAO,cAAc,GAAI,CAAA,CACxG,CAAA,EACF,CAEJ,CAEA,SAASM,EAAeC,EAAoBC,EAA0B,CACpE,OAAQD,EAAA,CACN,IAAK,cACH,OAAON,MAACH,KAAeU,CAAK,EAE9B,IAAK,eACH,OAAOP,MAACE,KAAqBK,CAAK,EAEpC,IAAK,mBACH,OAAOP,MAACG,KAAwBI,CAAK,EAEvC,QACE,OAAOP,EAAAA,IAAAQ,EAAAA,SAAA,EAAE,CAAA,CAEf,CAOAC,EAAoB,aAAe,CACjC,UAAW,CACb,EAEO,SAASA,EAAoBC,EAA8C,CAChF,OACEV,EAAAA,IAAC,OAAI,UAAU,OACZ,eAAMU,EAAM,SAAS,EAAE,KAAK,IAAI,EAAE,IAAI,CAACC,EAAGC,IAAMP,EAAeK,EAAM,QAASE,CAAC,CAAC,EACnF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{v as c,j as n,w as i,x as a,F as l}from"./app-DhPN-zNB.js";function x(t){let s=t.buttons.map(e=>{const o=()=>{e.success?l.isFunction(t.onDone)&&t.onDone():l.isFunction(t.onFail)&&t.onFail(),t.closePopup()};return{buttonText:e.text,className:e.className,onClick:o,type:e.type,close:e.close}});return s=c.sortBy(s,"close"),n.jsxs(i,{title:t.title,closePopup:t.closePopup,children:[n.jsx("p",{dangerouslySetInnerHTML:{__html:a.sanitize(t.text)}}),n.jsx("div",{className:"d-flex justify-content-end border-top pt-3 px-3 mx-n3",children:s.map((e,o)=>n.jsx("button",{className:e.className,onClick:e.onClick,type:e.type,children:e.buttonText},o))})]})}export{x as DialogView};
2
+ //# sourceMappingURL=JUNXcGbu.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JUNXcGbu.chunk.js","sources":["../../../../libs/shared/src/views/dialog/DialogView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { DialogOptions, PopupViewProps } from 'libs/shared/interfaces';\n\ninterface DialogViewProps extends DialogOptions {\n onDone?: () => void;\n onFail?: () => void;\n}\n\ntype PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;\n\nexport function DialogView(props: PropTypes): React.ReactElement {\n let buttons = props.buttons.map(b => {\n const onClick = () => {\n if (b.success)\n FunctionHelper.isFunction(props.onDone) && props.onDone();\n else\n FunctionHelper.isFunction(props.onFail) && props.onFail();\n\n props.closePopup();\n };\n\n return {\n buttonText: b.text,\n className: b.className,\n onClick,\n type: b.type,\n close: b.close\n };\n });\n\n /**\n * The dismiss action should always be on the left side of the popup\n */\n buttons = ArrayHelper.sortBy(buttons, 'close');\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <p dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(props.text) }} />\n <div className='d-flex justify-content-end border-top pt-3 px-3 mx-n3'>\n {buttons.map((b, idx) => (\n <button key={idx} className={b.className} onClick={b.onClick} type={b.type}>\n {b.buttonText}\n </button>\n ))}\n </div>\n </Popup>\n );\n}"],"names":["DialogView","props","buttons","b","onClick","FunctionHelper","ArrayHelper","Popup","jsx","TextHelper","idx"],"mappings":"kEAgBO,SAASA,EAAWC,EAAsC,CAC/D,IAAIC,EAAUD,EAAM,QAAQ,IAAIE,GAAK,CACnC,MAAMC,EAAU,IAAM,CAChBD,EAAE,QACJE,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEjDI,EAAe,WAAWJ,EAAM,MAAM,GAAKA,EAAM,OAAA,EAEnDA,EAAM,WAAA,CACR,EAEA,MAAO,CACL,WAAYE,EAAE,KACd,UAAWA,EAAE,UACb,QAAAC,EACA,KAAMD,EAAE,KACR,MAAOA,EAAE,KAAA,CAEb,CAAC,EAKD,OAAAD,EAAUI,EAAY,OAAOJ,EAAS,OAAO,SAG1CK,EAAA,CAAM,MAAON,EAAM,MAAO,WAAYA,EAAM,WAC3C,SAAA,CAAAO,EAAAA,IAAC,IAAA,CAAE,wBAAyB,CAAE,OAAQC,EAAW,SAASR,EAAM,IAAI,CAAA,EAAK,EACzEO,EAAAA,IAAC,MAAA,CAAI,UAAU,wDACZ,SAAAN,EAAQ,IAAI,CAACC,EAAGO,IACfF,EAAAA,IAAC,SAAA,CAAiB,UAAWL,EAAE,UAAW,QAASA,EAAE,QAAS,KAAMA,EAAE,KACnE,SAAAA,EAAE,UAAA,EADQO,CAEb,CACD,CAAA,CACH,CAAA,EACF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{s as i,bJ as f,bK as c,bM as j,j as o}from"./app-DhPN-zNB.js";var a=(e=>(e.Playlists="playlists",e.Series="series",e.Videos="videos",e.PinnedVideos="pinnedVideos",e))(a||{}),n=(e=>(e.Subject="Subject",e.Curriculum="Curriculum",e.StreamableLearning="StreamableLearning",e))(n||{});const m=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:c.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:c.CLASSIFICATION_COLLECTION,type:n.Subject.toLowerCase()}),publicUrl:i.urlBuilder("/api/subjects/classifications",{query:j.CLASSIFICATION_COLLECTION,type:n.Subject.toLowerCase()}),key:"classifications"}},classification(e,s,r){return{url:i.urlBuilder(`{gateway}/v1/subjects/classifications/${e}`,{query:c.CLASSIFICATION(s)}),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}`,{query:j.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:c.CLASSIFICATION_COLLECTION}),publicUrl:i.urlBuilder(`/api/subjects/classifications/${e}/children`,{query:j.CLASSIFICATION_COLLECTION}),key:`classification:${e}:children`}},videos(e,s,r){if(!s)return;let t="limit:100,orderbydesc:timestamp";r.length&&(t+=`,${m(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+=`,${m(r)}`);const l={query:`{${t}}${c.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 p;if(u)return{...u,data:(p=u.data)==null?void 0:p.filter($=>{var b;return(b=$.cover)==null?void 0:b.url})}}}},series(e,s,r){if(!s)return;let t="limit:100";r.length&&(t+=`,${m(r)}`);const l={query:`{${t}}${c.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 p;if(u)return{...u,data:(p=u.data)==null?void 0:p.filter($=>{var b;return(b=$.tallPoster)==null?void 0:b.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}}};function S(e){return o.jsxs("svg",{...e,children:[o.jsx("defs",{children:o.jsx("path",{id:"a",d:"M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6",fill:"currentColor"})}),o.jsx("use",{xlinkHref:"#a",fill:"#333"})]})}function d(e){return o.jsx("svg",{...e,children:o.jsx("path",{fill:"currentColor",d:"M17.834 5.916a2.5 2.5 0 0 0-3.536 0L12.53 7.684a.5.5 0 0 1-.707-.707l1.768-1.768a3.5 3.5 0 1 1 4.95 4.95l-3.687 3.687a3.786 3.786 0 0 1-5.354 0l-.152-.152a.5.5 0 0 1 .707-.707l.152.152a2.786 2.786 0 0 0 3.94 0l3.687-3.687a2.5 2.5 0 0 0 0-3.536m-8.94 3.99a3.643 3.643 0 0 1 5.152 0l.606.607a.5.5 0 1 1-.707.707l-.607-.606a2.643 2.643 0 0 0-3.737 0l-3.435 3.434a2.5 2.5 0 1 0 3.536 3.536l1.414-1.415a.5.5 0 0 1 .707.707l-1.414 1.415a3.5 3.5 0 1 1-4.95-4.95z"})})}export{L as C,d as L,n as P,S as V};
2
+ //# sourceMappingURL=LS1BGGIr.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LS1BGGIr.chunk.js","sources":["../../../../libs/shared/src/apps/subjects/enums/ClassificationMemberType.ts","../../../../libs/shared/src/enums/PresentationType.ts","../../../../libs/shared/src/flight-requests/ClassificationRequests.ts","../../../../libs/shared/src/images/svg/actions/VisibleOnSvg.tsx","../../../../libs/shared/src/images/svg/objects/LinkSvg.tsx"],"sourcesContent":["export enum ClassificationMemberType {\n Playlists = 'playlists',\n Series = 'series',\n Videos = 'videos',\n PinnedVideos = 'pinnedVideos'\n}","export enum PresentationType {\n Subject = 'Subject',\n Curriculum = 'Curriculum',\n StreamableLearning = 'StreamableLearning'\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","import React from 'react';\n\nexport function VisibleOnSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M3 12c0-2.44 4.5-6.025 9.003-6C16.494 6.025 21 9.614 21 12c0 2.45-4.504 6-9 6-4.466 0-9-3.586-9-6m1 0c0 1.804 4.042 5 8 5 3.989 0 8-3.161 8-5 0-1.778-4.017-4.977-8.003-5C8.006 6.978 4 10.17 4 12m8 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6'\n fill='currentColor'\n />\n </defs>\n <use xlinkHref='#a' fill='#333' />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function LinkSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M17.834 5.916a2.5 2.5 0 0 0-3.536 0L12.53 7.684a.5.5 0 0 1-.707-.707l1.768-1.768a3.5 3.5 0 1 1 4.95 4.95l-3.687 3.687a3.786 3.786 0 0 1-5.354 0l-.152-.152a.5.5 0 0 1 .707-.707l.152.152a2.786 2.786 0 0 0 3.94 0l3.687-3.687a2.5 2.5 0 0 0 0-3.536m-8.94 3.99a3.643 3.643 0 0 1 5.152 0l.606.607a.5.5 0 1 1-.707.707l-.607-.606a2.643 2.643 0 0 0-3.737 0l-3.435 3.434a2.5 2.5 0 1 0 3.536 3.536l1.414-1.415a.5.5 0 0 1 .707.707l-1.414 1.415a3.5 3.5 0 1 1-4.95-4.95z'\n />\n </svg>\n );\n}\n"],"names":["ClassificationMemberType","PresentationType","getClassificationMemberFilter","ids","ClassificationRequests","params","UrlHelper","type","queryStringOpts","presentationId","SharedWithStatements","presentationSlug","contentRegion","PublicWithStatement","id","userId","error","presentationType","activeAudiences","filter","queryStringObj","PermissionFilterOption","playlist","_a","p","series","s","curriculumId","url","pids","classificationId","success","always","VisibleOnSvg","props","jsxs","jsx","LinkSvg"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as e,O as o,bF as C,L as j,e as x,u as l,o as g,a7 as w,U as f}from"./app-DhPN-zNB.js";import{M as v,V as d}from"./CcURCjqv.chunk.js";import{u as T}from"./NRnV1wHl.chunk.js";import{U as N,V as u,E as S,P as b}from"./CpDqrbAS.chunk.js";import{a as V,T as c}from"./CObSk_oj.chunk.js";import{u as I}from"./DFFdinDv.chunk.js";const E="reportsShared.viewCountPieChartEmptyState",m=j.encloseNamespace(E);function y(t){return e.jsxs(o,{className:"flex-grow-1 justify-content-center",children:[e.jsx(o.Image,{src:C.EmptyStates.Shared.ViewCount,className:"w-75 h-auto pb-0"}),e.jsx(o.Heading,{children:m("heading")}),e.jsx(o.Info,{className:"w-100",children:m(t.singular?"descriptionSingular":"descriptionMultiple")})]})}const P="_topicColumn_yyw9h_1",p={topicColumn:P},F="reportsShared.viewCountByTopicCard",n=j.encloseNamespace(F);function h(t){const a=x(),i=l(!!a&&V.viewsByTopic(a,t.type));return i.data?i.data.length?e.jsx("div",{className:"h-100 me-n2",children:e.jsxs(g.Scrollbars,{height:"100%",className:"mt-2",children:[e.jsxs("div",{className:"d-flex align-items-center pe-1",children:[e.jsxs("div",{className:`d-flex flex-wrap pe-2 ${p.topicColumn}`,children:[e.jsx("strong",{className:"me-1",children:n(t.type===c.RootTopic?"subject":"topic")}),e.jsx("span",{className:"text-secondary",children:n(t.type===c.RootTopic?"multipleSubjects":"multipleTopics")})]}),e.jsx("strong",{children:n("views")})]}),e.jsx("ul",{className:"list-unstyled",children:i.data.map((s,r)=>e.jsx("li",{children:e.jsxs(w,{title:s.collection.name,spanHack:!0,spanHackClassName:"d-flex align-items-center pe-1",children:[e.jsx("div",{className:`py-2 pe-2 ${p.topicColumn}`,children:e.jsx(v,{data:s.collection})}),e.jsx("strong",{children:n("viewCount",{smartCount:s.count})})]})},r))})]})}):e.jsx(y,{}):e.jsx(e.Fragment,{})}function H(t){const a=x(),i=l(!!t.useSharerId&&f.currentUser()),s=l(!!a&&(t.useSharerId?i.hasCompleted&&d.views(a,t.objectId,i.data.id):d.views(a,t.objectId)));T(s),I(s);const r=!t.objectId;return e.jsx("div",{className:`bg-white rounded p-3 position-relative d-flex flex-column ${t.className??""}`,children:s.data?e.jsx(N,{eventType:S.VideoView,events:s.data,objectId:t.objectId,emptyStateComponent:e.jsx(y,{singular:!!t.objectId}),customGroupBy:r?[{type:u.Subject,getComponent:()=>e.jsx(h,{type:c.RootTopic})},{type:u.Topic,getComponent:()=>e.jsx(h,{type:c.ChildTopic})}]:null}):e.jsx(b,{})})}export{H as V};
2
+ //# sourceMappingURL=MqKLZ7-F.chunk.js.map