@clickview/lite 0.64.0-rc.0 → 0.64.0-rc.2

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 (147) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{7153-lite-0cc5db0db7.chunk.css → 2962-lite-2002c62a24.chunk.css} +0 -1
  3. package/dist/css/{1857-lite-324255d395.chunk.css → 6173-lite-911f35513f.chunk.css} +0 -1
  4. package/dist/css/{2083-lite-6cb1775e12.chunk.css → 7324-lite-238bd550b7.chunk.css} +0 -1
  5. package/dist/css/{9013-lite-620f218839.chunk.css → 9013-lite-3c31b606c5.chunk.css} +2 -2
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/1216-899540dc73-lite.chunk.js +2 -0
  8. package/dist/scripts/1216-899540dc73-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1820-b572681b3a-lite.chunk.js +2 -0
  10. package/dist/scripts/1820-b572681b3a-lite.chunk.js.map +1 -0
  11. package/dist/scripts/{2056-84f388df20-lite.chunk.js → 2056-a9e8d17a46-lite.chunk.js} +3 -3
  12. package/dist/scripts/2056-a9e8d17a46-lite.chunk.js.map +1 -0
  13. package/dist/scripts/229-ac9f12e165-lite.chunk.js +2 -0
  14. package/dist/scripts/229-ac9f12e165-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{2564-65e3fc9619-lite.chunk.js → 2564-f5628d4e56-lite.chunk.js} +3 -3
  16. package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.map → 2564-f5628d4e56-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/2712-a851ddc3c3-lite.chunk.js +2 -0
  18. package/dist/scripts/2712-a851ddc3c3-lite.chunk.js.map +1 -0
  19. package/dist/scripts/{2788-eca70707c6-lite.chunk.js → 2788-c8ae3be73f-lite.chunk.js} +1 -1
  20. package/dist/scripts/2788-c8ae3be73f-lite.chunk.js.map +1 -0
  21. package/dist/scripts/{7153-0ed8513e59-lite.chunk.js → 2962-7f2e4412f0-lite.chunk.js} +2 -2
  22. package/dist/scripts/{7153-0ed8513e59-lite.chunk.js.map → 2962-7f2e4412f0-lite.chunk.js.map} +1 -1
  23. package/dist/scripts/2988-b602b64344-lite.chunk.js +2 -0
  24. package/dist/scripts/2988-b602b64344-lite.chunk.js.map +1 -0
  25. package/dist/scripts/3180-c1f065183d-lite.chunk.js +2 -0
  26. package/dist/scripts/3180-c1f065183d-lite.chunk.js.map +1 -0
  27. package/dist/scripts/3549-111225ff0e-lite.chunk.js +2 -0
  28. package/dist/scripts/3549-111225ff0e-lite.chunk.js.map +1 -0
  29. package/dist/scripts/4591-f78fa6c784-lite.chunk.js +2 -0
  30. package/dist/scripts/4591-f78fa6c784-lite.chunk.js.map +1 -0
  31. package/dist/scripts/4667-5101904582-lite.chunk.js +2 -0
  32. package/dist/scripts/4667-5101904582-lite.chunk.js.map +1 -0
  33. package/dist/scripts/{5056-6057435479-lite.chunk.js → 5056-65c739468f-lite.chunk.js} +1 -1
  34. package/dist/scripts/5056-65c739468f-lite.chunk.js.map +1 -0
  35. package/dist/scripts/5157-e38b666fce-lite.chunk.js +2 -0
  36. package/dist/scripts/5157-e38b666fce-lite.chunk.js.map +1 -0
  37. package/dist/scripts/5201-98ee21febb-lite.chunk.js +2 -0
  38. package/dist/scripts/5201-98ee21febb-lite.chunk.js.map +1 -0
  39. package/dist/scripts/5595-79068997ce-lite.chunk.js +2 -0
  40. package/dist/scripts/5595-79068997ce-lite.chunk.js.map +1 -0
  41. package/dist/scripts/5770-f88f6d9c00-lite.chunk.js +2 -0
  42. package/dist/scripts/5770-f88f6d9c00-lite.chunk.js.map +1 -0
  43. package/dist/scripts/5896-60133bfdad-lite.chunk.js +3 -0
  44. package/dist/scripts/5896-60133bfdad-lite.chunk.js.map +1 -0
  45. package/dist/scripts/6173-7f9939c29e-lite.chunk.js +3 -0
  46. package/dist/scripts/6173-7f9939c29e-lite.chunk.js.map +1 -0
  47. package/dist/scripts/6181-9d7668c9e4-lite.chunk.js +3 -0
  48. package/dist/scripts/6181-9d7668c9e4-lite.chunk.js.map +1 -0
  49. package/dist/scripts/6455-37039eb687-lite.chunk.js +2 -0
  50. package/dist/scripts/6455-37039eb687-lite.chunk.js.map +1 -0
  51. package/dist/scripts/6623-84b33c6856-lite.chunk.js +3 -0
  52. package/dist/scripts/6623-84b33c6856-lite.chunk.js.map +1 -0
  53. package/dist/scripts/6919-0f2cef64e5-lite.chunk.js +2 -0
  54. package/dist/scripts/6919-0f2cef64e5-lite.chunk.js.map +1 -0
  55. package/dist/scripts/7267-1f5006c9c5-lite.chunk.js +2 -0
  56. package/dist/scripts/7267-1f5006c9c5-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{2083-7daacf0112-lite.chunk.js → 7324-ee20e73ac1-lite.chunk.js} +2 -2
  58. package/dist/scripts/{2083-7daacf0112-lite.chunk.js.map → 7324-ee20e73ac1-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/7434-fef3ea4e89-lite.chunk.js +2 -0
  60. package/dist/scripts/7434-fef3ea4e89-lite.chunk.js.map +1 -0
  61. package/dist/scripts/7443-4866d0c9ab-lite.chunk.js +3 -0
  62. package/dist/scripts/7443-4866d0c9ab-lite.chunk.js.map +1 -0
  63. package/dist/scripts/8416-7d71a55a14-lite.chunk.js +2 -0
  64. package/dist/scripts/8416-7d71a55a14-lite.chunk.js.map +1 -0
  65. package/dist/scripts/8465-01b0f72699-lite.chunk.js +2 -0
  66. package/dist/scripts/8465-01b0f72699-lite.chunk.js.map +1 -0
  67. package/dist/scripts/8722-a9eac1941c-lite.chunk.js +2 -0
  68. package/dist/scripts/8722-a9eac1941c-lite.chunk.js.map +1 -0
  69. package/dist/scripts/9013-6fcc58f028-lite.chunk.js +2 -0
  70. package/dist/scripts/9013-6fcc58f028-lite.chunk.js.map +1 -0
  71. package/dist/scripts/9264-998d93d1c2-lite.chunk.js +2 -0
  72. package/dist/scripts/9264-998d93d1c2-lite.chunk.js.map +1 -0
  73. package/dist/scripts/9894-0fba5cf702-lite.chunk.js +3 -0
  74. package/dist/scripts/9894-0fba5cf702-lite.chunk.js.map +1 -0
  75. package/dist/scripts/bundle-2e839958ca.min.js +3 -0
  76. package/dist/scripts/bundle-2e839958ca.min.js.map +1 -0
  77. package/package.json +1 -1
  78. package/dist/scripts/1755-462bcd99e9-lite.chunk.js +0 -2
  79. package/dist/scripts/1755-462bcd99e9-lite.chunk.js.map +0 -1
  80. package/dist/scripts/180-6c4779f6ab-lite.chunk.js +0 -2
  81. package/dist/scripts/180-6c4779f6ab-lite.chunk.js.map +0 -1
  82. package/dist/scripts/1820-3b5d0a340d-lite.chunk.js +0 -2
  83. package/dist/scripts/1820-3b5d0a340d-lite.chunk.js.map +0 -1
  84. package/dist/scripts/1857-d3af9d98eb-lite.chunk.js +0 -3
  85. package/dist/scripts/1857-d3af9d98eb-lite.chunk.js.map +0 -1
  86. package/dist/scripts/2056-84f388df20-lite.chunk.js.map +0 -1
  87. package/dist/scripts/229-900e650427-lite.chunk.js +0 -2
  88. package/dist/scripts/229-900e650427-lite.chunk.js.map +0 -1
  89. package/dist/scripts/2788-eca70707c6-lite.chunk.js.map +0 -1
  90. package/dist/scripts/3180-22edf4c9fc-lite.chunk.js +0 -2
  91. package/dist/scripts/3180-22edf4c9fc-lite.chunk.js.map +0 -1
  92. package/dist/scripts/3549-30d3b1cd05-lite.chunk.js +0 -2
  93. package/dist/scripts/3549-30d3b1cd05-lite.chunk.js.map +0 -1
  94. package/dist/scripts/3776-0027340c98-lite.chunk.js +0 -2
  95. package/dist/scripts/3776-0027340c98-lite.chunk.js.map +0 -1
  96. package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js +0 -2
  97. package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js.map +0 -1
  98. package/dist/scripts/4667-f3882f2379-lite.chunk.js +0 -2
  99. package/dist/scripts/4667-f3882f2379-lite.chunk.js.map +0 -1
  100. package/dist/scripts/5056-6057435479-lite.chunk.js.map +0 -1
  101. package/dist/scripts/5157-ad13101a6e-lite.chunk.js +0 -2
  102. package/dist/scripts/5157-ad13101a6e-lite.chunk.js.map +0 -1
  103. package/dist/scripts/5201-7d3867d027-lite.chunk.js +0 -2
  104. package/dist/scripts/5201-7d3867d027-lite.chunk.js.map +0 -1
  105. package/dist/scripts/5595-10e586779d-lite.chunk.js +0 -2
  106. package/dist/scripts/5595-10e586779d-lite.chunk.js.map +0 -1
  107. package/dist/scripts/5896-5d2f32c59e-lite.chunk.js +0 -3
  108. package/dist/scripts/5896-5d2f32c59e-lite.chunk.js.map +0 -1
  109. package/dist/scripts/6181-50a39979ec-lite.chunk.js +0 -3
  110. package/dist/scripts/6181-50a39979ec-lite.chunk.js.map +0 -1
  111. package/dist/scripts/6455-2f45be17cf-lite.chunk.js +0 -2
  112. package/dist/scripts/6455-2f45be17cf-lite.chunk.js.map +0 -1
  113. package/dist/scripts/6623-ebbffb59b3-lite.chunk.js +0 -3
  114. package/dist/scripts/6623-ebbffb59b3-lite.chunk.js.map +0 -1
  115. package/dist/scripts/6919-cb2de57c2e-lite.chunk.js +0 -2
  116. package/dist/scripts/6919-cb2de57c2e-lite.chunk.js.map +0 -1
  117. package/dist/scripts/7267-c2d30dd339-lite.chunk.js +0 -2
  118. package/dist/scripts/7267-c2d30dd339-lite.chunk.js.map +0 -1
  119. package/dist/scripts/7434-c34ca23a21-lite.chunk.js +0 -2
  120. package/dist/scripts/7434-c34ca23a21-lite.chunk.js.map +0 -1
  121. package/dist/scripts/7443-7c72de0cb9-lite.chunk.js +0 -3
  122. package/dist/scripts/7443-7c72de0cb9-lite.chunk.js.map +0 -1
  123. package/dist/scripts/8022-0656cce655-lite.chunk.js +0 -2
  124. package/dist/scripts/8022-0656cce655-lite.chunk.js.map +0 -1
  125. package/dist/scripts/8722-69c1c7a24f-lite.chunk.js +0 -2
  126. package/dist/scripts/8722-69c1c7a24f-lite.chunk.js.map +0 -1
  127. package/dist/scripts/9013-adc5d3517a-lite.chunk.js +0 -2
  128. package/dist/scripts/9013-adc5d3517a-lite.chunk.js.map +0 -1
  129. package/dist/scripts/9155-87c9030ce9-lite.chunk.js +0 -2
  130. package/dist/scripts/9155-87c9030ce9-lite.chunk.js.map +0 -1
  131. package/dist/scripts/9264-750b3d6ea0-lite.chunk.js +0 -2
  132. package/dist/scripts/9264-750b3d6ea0-lite.chunk.js.map +0 -1
  133. package/dist/scripts/9894-bc34edcd67-lite.chunk.js +0 -3
  134. package/dist/scripts/9894-bc34edcd67-lite.chunk.js.map +0 -1
  135. package/dist/scripts/bundle-3d3d127d98.min.js +0 -3
  136. package/dist/scripts/bundle-3d3d127d98.min.js.map +0 -1
  137. package/dist/css/{6455-lite-fe0bc6d95f.chunk.css → 6455-lite-c07987d46c.chunk.css} +1 -1
  138. /package/dist/css/{9155-lite-447d345417.chunk.css → 8465-lite-447d345417.chunk.css} +0 -0
  139. /package/dist/scripts/{1857-d3af9d98eb-lite.chunk.js.LICENSE.txt → 2056-a9e8d17a46-lite.chunk.js.LICENSE.txt} +0 -0
  140. /package/dist/scripts/{2056-84f388df20-lite.chunk.js.LICENSE.txt → 2564-f5628d4e56-lite.chunk.js.LICENSE.txt} +0 -0
  141. /package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.LICENSE.txt → 5896-60133bfdad-lite.chunk.js.LICENSE.txt} +0 -0
  142. /package/dist/scripts/{5896-5d2f32c59e-lite.chunk.js.LICENSE.txt → 6173-7f9939c29e-lite.chunk.js.LICENSE.txt} +0 -0
  143. /package/dist/scripts/{6181-50a39979ec-lite.chunk.js.LICENSE.txt → 6181-9d7668c9e4-lite.chunk.js.LICENSE.txt} +0 -0
  144. /package/dist/scripts/{6623-ebbffb59b3-lite.chunk.js.LICENSE.txt → 6623-84b33c6856-lite.chunk.js.LICENSE.txt} +0 -0
  145. /package/dist/scripts/{7443-7c72de0cb9-lite.chunk.js.LICENSE.txt → 7443-4866d0c9ab-lite.chunk.js.LICENSE.txt} +0 -0
  146. /package/dist/scripts/{9894-bc34edcd67-lite.chunk.js.LICENSE.txt → 9894-0fba5cf702-lite.chunk.js.LICENSE.txt} +0 -0
  147. /package/dist/scripts/{bundle-3d3d127d98.min.js.LICENSE.txt → bundle-2e839958ca.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/4667-f3882f2379-lite.chunk.js","mappings":"mJAGaA,EAAe,CAC1BC,uBAAsB,SAACC,EAA+BC,GACpD,OAAIA,GACK,IAAAC,cAAaF,EAAWC,GAE1BD,CACT,E,yGCuCI,SAAUG,EAAQC,GACtB,IAAMC,EAAiB,WAAc,kBAAMD,EAAME,QAAQC,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAEE,MAAQD,EAAEC,KAAK,GAAC,GAAE,CAACN,EAAME,UAE7FK,EAAiC,GACjCC,EAA+B,GAErCP,EAAeQ,SAAQ,SAAAL,GACjBA,EAAEM,OACJH,EAAcI,KAAKP,GAEnBI,EAAYG,KAAKP,EACrB,IAEA,IAAIQ,EAAY,SAKhB,OAHIZ,EAAMY,YACRA,GAAa,IAAJ,OAAQZ,EAAMY,YAEpBL,EAAcM,QAAWL,EAAYK,OAIxC,uBAAKD,UAAWA,GACbL,EAAcM,OAASN,EAAcO,KAAI,SAACV,EAAGW,GAAG,OAC/C,gBAAC,WAAc,CAACC,IAAKD,GACjB,WACA,GAAIX,EAAEa,MAAO,CACX,IAAMA,EAAQ,eAA0Bb,EAAEa,OACtCb,EAAEa,MACF,kBAAM,gCAAGb,EAAEa,MAAS,EAExB,OACE,gBAAC,IAAY,CACXC,QAASd,EAAEc,QACXC,KAAMf,EAAEe,KACRC,QAAShB,EAAEgB,QACXC,QAASjB,EAAEiB,QACXC,QAAStB,EAAMuB,sBACfX,UAAWR,EAAEQ,UACbY,QAASpB,EAAEoB,QACXC,YAAarB,EAAEqB,YACfC,cAAetB,EAAEsB,cACjBC,iBAAkBvB,EAAEuB,iBACpBC,aAAcxB,EAAEwB,aAChBC,SAAUzB,EAAEyB,UAEXZ,IAGN,CAED,IAAMa,EACJ,gBAAC,IAAU,CACTZ,QAASd,EAAEc,QACXC,KAAMf,EAAEe,KACRC,QAAShB,EAAEgB,QACXC,QAASjB,EAAEiB,QACXT,UAAWR,EAAEQ,UACbc,cAAetB,EAAEsB,cACjBC,iBAAkBvB,EAAEuB,iBACpBC,aAAcxB,EAAEwB,aAChBC,SAAUzB,EAAEyB,SACZE,WAAY3B,EAAE2B,WACdC,WAAYhC,EAAMgC,WAClBC,UAAW7B,EAAEoB,UAIjB,OAAOpB,EAAEoB,QACL,gBAAC,IAAO,CAACU,MAAO9B,EAAEoB,QAASW,UAAQ,GAAEL,GACrCA,CACN,CA9CE,GA+Ca,IACd,iCACJ9B,EAAMoC,eAAiBpC,EAAMoC,cAC7B5B,EAAYK,OACX,gBAAC,IAAe,CACdX,QAASM,EACT6B,wBAAyBrC,EAAMsC,yBAC/Bf,sBAAuBvB,EAAMuB,sBAC7BgB,UAAWvC,EAAMuC,YAEjB,kCA/DC,gCAkEX,C,0ICpIA,SAAgB,eAAiB,SCgBjC,SAASC,IACP,OACE,gCACE,uBAAKC,MAAO,CAAEC,QAAS,oBACrB,uBAAK9B,UAAU,6BAA6B6B,MAAO,CAAEE,OAAQ,YAAaC,MAAO,WAEnF,uBAAKH,MAAO,CAAEC,QAAS,oBACrB,uBAAK9B,UAAU,6BAA6B6B,MAAO,CAAEE,OAAQ,YAAaC,MAAO,YAEnF,uBAAKH,MAAO,CAAEC,QAAS,oBACrB,uBAAK9B,UAAU,6BAA6B6B,MAAO,CAAEE,OAAQ,YAAaC,MAAO,YAEnF,uBAAKH,MAAO,CAAEC,QAAS,oBACrB,uBAAK9B,UAAU,6BAA6B6B,MAAO,CAAEE,OAAQ,YAAaC,MAAO,WAIzF,CAEA,SAASC,EAAyBC,GAChC,IAAIlC,EAAY,gBAKhB,OAHIkC,IACFlC,GAAa,IAAJ,OAAQkC,IAEZlC,CACT,CAQA,SAASmC,EAAoB/C,GAC3B,IAAMiB,EAAQ+B,EAAA,aAA0BhD,EAAMiD,OAAOhC,OACjDjB,EAAMiD,OAAOhC,MACb,kBAAM,gCAAGjB,EAAMiD,OAAOhC,MAAS,EAEnC,GAAIjB,EAAMiD,OAAO/B,QACf,OACE,gBAACgC,EAAA,EAAO,CACNhC,QAASlB,EAAMiD,OAAO/B,QACtBE,QAASpB,EAAMiD,OAAO7B,QACtBR,UAAWiC,EAAyB7C,EAAMiD,OAAOrC,WACjDc,cAAe1B,EAAMiD,OAAOvB,cAC5BC,iBAAkB3B,EAAMiD,OAAOtB,iBAC/BC,aAAc5B,EAAMiD,OAAOrB,aAC3BC,SAAU7B,EAAMiD,OAAOpB,UAEtB7B,EAAMiD,OAAO5B,SAAW,gBAAC8B,EAAA,EAAY,CAAC9B,QAASrB,EAAMiD,OAAO5B,QAAST,UAAU,mDAChF,wBAAMA,UAAU,gBAAgBK,MAItC,SAASG,EAAQgC,GACfA,EAAEC,iBAEErD,EAAMiD,OAAOvB,eAAiB1B,EAAMiD,OAAOtB,kBAC7C2B,EAAA,gBAA8BtD,EAAMiD,OAAOvB,cAAe1B,EAAMiD,OAAOtB,kBAErEqB,EAAA,aAA0BhD,EAAMiD,OAAO7B,UACzCpB,EAAMiD,OAAO7B,UAEXpB,EAAMiD,OAAO9B,MACf,gBAA4BnB,EAAMiD,OAAO9B,KAAMnB,EAAMiD,OAAOrB,aAChE,CAEA,OAAI5B,EAAMiD,OAAO9B,KAEb,qBACEP,UAAWiC,EAAyB7C,EAAMiD,OAAOrC,WACjDQ,QAASA,EACTD,KAAMnB,EAAMiD,OAAO9B,MAElBnB,EAAMiD,OAAO5B,SAAW,gBAAC8B,EAAA,EAAY,CAAC9B,QAASrB,EAAMiD,OAAO5B,QAAST,UAAU,mDAChF,wBAAMA,UAAU,gBAAgBK,MAMpC,wBACEL,UAAS,yBAAoBiC,EAAyB7C,EAAMiD,OAAOrC,YACnEQ,QAASA,EACTmC,KAAK,SACLC,SAAU,EACVC,UAAW,SAACL,GAAsB,MAAe,UAAVA,EAAEpC,KAAmBI,EAAQgC,EAAE,GAErEpD,EAAMiD,OAAO5B,SAAW,gBAAC8B,EAAA,EAAY,CAAC9B,QAASrB,EAAMiD,OAAO5B,QAAST,UAAU,sCAC/EK,IAGP,CAeM,SAAUyC,EAAgB1D,GAC9B,IAAKA,EAAME,UAAYF,EAAME,QAAQW,OACnC,OAAO,iCAET,IAAM8C,EAAS3D,EAAME,QAAQ0D,MAAK,SAAAxD,GAAC,OAAIA,EAAEyD,eAAe,IAEpDjD,EAAY,WAEZZ,EAAMY,YACRA,GAAa,IAAJ,OAAQZ,EAAMY,YAGzB,IAOIkD,EAPEC,EAAmB,oBAAH,OAAuBC,EAAA,kBAEzC3B,EAA0B,wBAAH,OAA2B,kBAOtD,OALIrC,EAAMqC,0BACRA,GAA2B,IAAJ,OAAQrC,EAAMqC,0BAKrC,uBAAKzB,UAAWA,GACd,0BACEA,UAAWyB,EACX4B,KAAK,SACLC,GAAIH,EAAgB,iBACL,WAAU,cACb,WAAU,gBACR,OAAM,gBACN,QAAO,aACT,wBACZ3C,QAASuC,EAAS3D,EAAMuC,UAAY,MAEpC,gBAACY,EAAA,EAAY,CAAC9B,QAAS,UAAmB8C,KAAMnE,EAAMuB,yBAExD,sBAAIX,UAAU,uEAAsE,kBAAkBmD,GACnGJ,EACC,gBAACnB,EAAiB,MAClBxC,EAAME,QAAQY,KAAI,SAACV,EAAGW,GACpB,IAAMqD,OAA+BC,IAAjBP,GAA8BA,IAAiB1D,EAAEkE,MAGrE,OAFAR,EAAe1D,EAAEkE,MAEblE,EAAEoB,QAEF,sBAAIR,IAAKD,GACNqD,GAAe,sBAAIxD,UAAU,mBAAmB2C,KAAK,cACtD,gBAACgB,EAAA,EAAO,CAACrC,MAAO9B,EAAEoB,QAASW,UAAQ,GACjC,gBAACY,EAAmB,CAACE,OAAQ7C,MAQnC,sBAAIY,IAAKD,GACNqD,GAAe,sBAAIxD,UAAU,mBAAmB2C,KAAK,cACtD,gBAACR,EAAmB,CAACE,OAAQ7C,IAGnC,KAKV,CAvEAsD,EAAgBc,aAAe,CAC7BnC,wBAAyB,gBACzBd,sBAAuB4B,EAAAsB,EAAA,M,2JCjHnBC,EAAY,oBAkBZ,SAAUC,EAAW3E,GACzB,MAA8D,eAC5D4E,YAAY,GACT5E,GAFG6E,EAAU,EAAVA,WAAY3D,EAAO,EAAPA,QAAS4D,EAAK,EAALA,MAAOC,EAAY,EAAZA,aAAcH,EAAU,EAAVA,WAK5CI,EAAaH,EACfI,EAAA,YAA0BP,EAAW,SAAU,CAAEG,WAAAA,IACjDI,EAAA,YAA0BP,EAAW,QAEnCQ,EAAuB,UAAVJ,EAAoB,GAAK,aACtCK,EAAkBP,EAAa,cAAgB,GAErD,OACE,gBAAC1B,EAAA,EAAO,CACNhC,QAASA,EACTN,UAAS,mDAA8CmE,EAAY,YAAIG,EAAU,YAAIC,IAErF,gBAAChC,EAAA,EAAY,CAAC9B,QAAS,iBAA0B8C,KAAMhB,EAAAsB,EAAA,SACvD,wBAAM7D,UAAU,QAAQoE,GAG9B,CA3BAL,EAAWH,aAAe,CACxBM,MAAO,QACPC,aAAc,I,iFCvBhB,SAAgB,cAAgB,QAAQ,iBAAmB,QAAQ,sBAAwB,QAAQ,UAAY,QAAQ,cAAgB,QAAQ,kBAAoB,QAAQ,YAAc,QAAQ,sBAAwB,QAAQ,aAAe,QAAQ,QAAU,SCqBlQ,IAAMK,EAAQ,GAAH,OAAM,IAAmB,cAAmBxC,MAAK,YAAI,IAAmB,cAAmBD,QAatG,SAAS0C,EAAaC,GACpB,OAAIA,EAAQzE,OAAS,IACZ,KAEF,cACT,CAuBA,IAEa0E,EAAe,QAAW,SAASvF,G,YACtCsF,EAAyFtF,EAAzFsF,QAASE,EAAgFxF,EAAhFwF,OAAQC,EAAwEzF,EAAxEyF,YAAavF,EAA2DF,EAA3DE,QAASkC,EAAkDpC,EAAlDoC,cAAesD,EAAmC1F,EAAnC0F,iBAAkBC,EAAiB3F,EAAjB2F,aAE1EC,EAAyB,aAAiBC,EAAA,GAE1CC,GA3Cc,EAAAC,EAAA,KAEJC,IALS,KADL,KAiDdC,EAAsB,WAAc,WACxC,IAAKN,GAAgB3F,EAAMkG,eACzB,OAAO,EAET,IAAMC,EAAQC,EAAA,SAAkB,IAAIC,KAAQ,cAE5C,OAAKV,EAAaW,QAGXX,EAAaY,WAAaJ,GAASR,EAAaW,SAAWH,EAFzDR,EAAaY,YAAcJ,CAGtC,GAAG,CAACR,IAYEa,EAAexG,EAAMwG,cAAgB,CACzC5D,MAAOkD,EACPW,MAAOrB,EACPsB,WAAY,YAGRC,IAAQnB,KAAYC,GAAemB,EAAA,kBAA4BpB,EAAQ,CAC3EqB,gBAAiBpB,EACjBqB,qBAAsBxB,EACtBrB,KAAM,cACLuC,GAEGO,EAAgG,CACpGnG,UAAW,wBAAF,OAA0BZ,EAAMgH,iBACzCvE,MAAOkE,EAAM,CAAEM,gBAAiB,QAAF,OAAUN,EAAG,OAAS,CAAC,IAGlDnB,GAAUE,WACNqB,EAAetE,MACtBsE,EAAenG,WAAa,IAAJ,OAAQ8E,IAGlC,IAAMwB,EAAmBlH,EAAMmH,iBAE/B,OAAOzH,EAAA,yBAEL,0CAAYqH,GACV,uBAAKnG,UAAS,oBAAe,YAAgB,oCAC1CZ,EAAMoH,mBACL,uBAAKxG,UAAU,QACb,gBAAC+D,EAAU,CACTzD,QAASlB,EAAMoH,kBACfvC,WAAY7E,EAAMqH,eAClBtC,aAAc/E,EAAMsH,kBACpBxC,MAAM,WAKZ,uBAAKlE,UAAS,UAAKZ,EAAMuH,cAAgB,iEAAmE,GAAH,OAAM,gBAAoB,kBAAmB,QAAV,EAAAvH,EAAMwH,YAAI,eAAEb,KAAM,wBAA+B,QACxLhB,GACD,uBAAK/E,UAAS,4BAAuB,0BACnC,gBAAC6G,EAAA,EAAmB,CAClBC,KAAM,CACJzD,KAAM0B,EAAaW,QAAU,QAAU,MACvCqB,KAAMhC,EAAaW,QAAO,UACnBF,EAAA,SAAkBT,EAAaY,UAAW,MAAK,YAAIH,EAAA,SAAkBT,EAAaW,QAAS,OAC9FF,EAAA,SAAkBT,EAAaY,UAAW,OAEhDqB,MA3Dd,SAAkCjC,GAChC,OAAKA,EAAaW,QAGdF,EAAA,SAAkBT,EAAaY,UAAWZ,EAAaW,QAAS,SAC3DF,EAAA,SAAkBT,EAAaY,UAAW,QAE5C,GAAP,OAAUH,EAAA,SAAkBT,EAAaY,UAAW,OAAM,cAAMH,EAAA,SAAkBT,EAAaW,QAAS,QAL/FF,EAAA,SAAkBT,EAAaY,UAAW,OAMrD,CAmDqBsB,CAAyBlC,GAChCmC,MAAO9H,EAAM+H,iBAInB,2BACG9B,GACC,uBAAKrF,UAAU,kFACb,gBAACoH,EAAA,EAAI,CAACtD,UAxFJ,sBAwF0BuD,OAAO,aAGtCjI,EAAMkG,gBACL,gBAACgC,EAAA,EAAa,CAACtH,UAAU,yEAE3B,uBAAKA,UAAU,6BACZZ,EAAMuH,eACL,uBAAK3G,UAAS,UAAK,oBAAwB,uFAC9B,QAAV,EAAAZ,EAAMwH,YAAI,eAAEb,MACX,gBAACwB,EAAA,EAAS,CAACC,IAAKxB,EAAA,YAAgC,QAAV,EAAA5G,EAAMwH,YAAI,eAAEb,IAAK,CAAExC,KAAM,iBAGrE,sBAAIvD,UAAS,sDAAiD,UAAc,YAAIyE,EAAaC,GAAQ,YAAItF,EAAMuH,cAAgB,OAAS,KACrIjC,EACA4B,GAAoB,gBAACA,EAAgB,WAIzChH,GACD,uBAAKU,UAAW,oBACd,gBAACb,EAAA,EAAO,CACNG,QAASA,EACTkC,cAAeA,EACfE,yBAA0BtC,EAAMsC,8BAKtCtC,EAAMuH,kBAA6B,QAAV,EAAAvH,EAAMwH,YAAI,eAAEb,MACrC,uBAAK/F,UAAW,iBACd,uBACEwH,IAAKxB,EAAA,YAAsB5G,EAAMwH,KAAKb,IAAK,CAAExC,KAAM,aACnDvD,UAAU,sBAMpBgF,aAAsB,EAAtBA,EAAwByC,UAE5B,IAAG,SAACC,EAAWC,G,QAAuB,OACpCD,EAAUpI,UAAYqI,EAAUrI,SAC7BoI,EAAUhD,UAAYiD,EAAUjD,UAClB,QAAd,EAAAgD,EAAUd,YAAI,eAAEb,QAAsB,QAAd,EAAA4B,EAAUf,YAAI,eAAEb,I,IAGvC,SAAU6B,IACd,IAAM5C,EAAyB,aAAiBC,EAAA,GAEhD,OAAOnG,EAAA,yBACL,uBAAKkB,UAAS,oDAA+C,YAC7DgF,aAAsB,EAAtBA,EAAwByC,UAE5B,C,uoCChMA,IACMI,EAAY,qBADA,8BAiBLC,EAAiB,cAAiB,SAC7C1I,EACA2I,GAEA,MAAgE3I,EAAxD4I,WAAcC,EAAI,EAAJA,KAAM3H,EAAO,EAAPA,QAAS4H,EAAM,EAANA,OAAUC,EAAiB/I,EAAjB+I,aAE3CC,EAAcH,EACd3G,EAAgB,KASpB,OAPI8G,EAAYnI,OAtBS,KAuBvBmI,EAAcH,EAAKI,MAAM,EAvBF,IAuB2B,MAGlD/G,EAAQ2G,GAIR,sBACEjI,UAAS,yBAAoBkI,EAAS,UAAY,IAClD5G,MAAOA,GAEN4G,EACG,8BAASE,GACT,gBAAC,IAAO,CAAC9H,QAASA,EAASyH,IAAKA,GAC/BI,GAAgB,gBAAC,IAAY,CAAC1H,QAAS,iBAA0B8C,KAAM,EAAAM,EAAA,QACxE,wBAAM7D,UAAWmI,EAAe,OAAS,IAAKC,IAKxD,IAMaE,EAAc,SAAH,GAAyC,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzBvI,GAASsI,aAAW,EAAXA,EAAatI,SAAU,EAEiB,IAArB,YAAe,GAAM,GAA/CwI,EAAQ,KAAEC,EAAW,KACgC,IAArB,YAAe,GAAM,GAArDC,EAAW,KAAEC,EAAc,KAC7BC,EAAY,WAsBlB,GApBA,aAAgB,W,MACRC,EAAiF,QAA/D,EAAAP,aAAW,EAAXA,EAAaQ,QAAO,SAACC,EAAMC,GAAI,OAAKD,EAAOC,EAAKhB,KAAKhI,MAAM,GAAE,UAAE,QAAI,EAEvFA,EAAS,GAAK6I,EA9DW,IA+D3BJ,GAAY,EAChB,GAAG,CAACH,aAAW,EAAXA,EAAatI,SAKjB,mBAAsB,W,MAChB0I,IACe,QAAjB,EAAAE,EAAUK,eAAO,SAAEC,QACvB,GAAG,CAAEN,EAAUK,QAASP,KAOnB1I,GAAWuI,GAAYvI,EAAS,EACnC,OAAO,iCAET,GAAIuI,EACF,OACE,oCAAgB,cACd,sBAAIxI,UAAU,sBACZ,gBAAC8H,EAAc,CAACE,WAAYO,EAAYtI,EAAS,GAAIkI,cAAY,MAKzE,IAAMiB,EAAQ,gBAACtB,EAAc,CAACE,WAAYO,EAAY,KAChDc,EAASpJ,EAAS,EAAI,gBAAC6H,EAAc,CAACE,WAAYO,EAAY,KAAS,iCACvEe,EAAarJ,EAAS,EAAI,gBAAC6H,EAAc,CAACE,WAAYO,EAAYtI,EAAS,KAAS,iCACpFsJ,EAAOtJ,EAAS,EAAI,gBAAC6H,EAAc,CAACE,WAAYO,EAAYtI,EAAS,KAAS,iCAC9EuJ,EAAOjB,EAAYF,MAAM,EAAGpI,EAAS,GAE3C,OACE,oCAAgB,cACd,sBAAID,UAAU,sBACXoJ,EACAC,EACAZ,EACC,sBAAIzI,UAAU,mBACZ,0BACEA,UAAU,WACVQ,QAhCZ,WACEkI,GAAY,GACZE,GAAe,EACjB,EA6BkC,aACVf,EAAU,WAAS,QAKnC2B,EAAKtJ,KAAI,SAAC8H,EAAY7H,GAAG,OACvB,gBAAC2H,EAAc,CACb1H,IAAKD,EACL6H,WAAYA,EACZD,IAAa,IAAR5H,EAAY0I,EAAY,MAC7B,IAGLS,EACAC,GAIT,EAEaE,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAK1J,UAAU,6BAA6B6B,MAAO,CAAEE,OAAQ,YAAaC,MAAO,UAKnF,oCAAgB,cACd,sBAAIhC,UAAU,sBACX,2BAA4C,CAAE0J,SAAAA,IAAYxJ,KAAI,WAAYC,GAAG,IAAZ6B,EAAK,EAALA,MAAK,OACrE,sBAAI5B,IAAKD,EAAKH,UAAU,mBACtB,wBAAMA,UAAU,4CAA4C6B,MAAO,CAAEG,MAAAA,GAAS2H,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,+HClKA,SAAgB,QAAU,SCgB1B,IACM/B,EAAYxD,EAAA,mBADA,uBAmBlB,SAASwF,EAAQzK,GACf,OACE,uBAAKY,UAAS,eAAU,YACtB,gBAACsC,EAAA,EAAO,CACNhC,QAASlB,EAAMkB,QACfQ,cAAe1B,EAAM0B,cACrBC,iBAAgB,6BACd+I,SAAU,kBACP1K,EAAM2B,kBAAgB,CACzBgJ,WAAY,eAEd/J,UAAS,+BAA0BZ,EAAMkB,QAAU,sBAAwB,KAE3E,qBAAGN,UAAU,yDAAyD6H,EAAU,YAIxF,CAEM,SAAUmC,EAAa5K,G,QACrB6K,IAAmB7K,EAAM8K,YAE/B,IAAK9K,EAAM6I,OAAS7I,EAAM8K,YACxB,OAAO,iCAET,IAAMC,EAAiBC,EAAA,wBAAmChL,EAAMiL,QAASjL,EAAMkL,cACzEC,EAA+D,QAAlD,EAAsC,QAAtC,EAAAC,EAAA,EAAmBpL,EAAMkL,qBAAa,eAAEC,kBAAU,QAAI,EAEzE,OACE,uBAAKvK,UAAU,yBACb,uBAAKA,UAAU,oCACVZ,EAAM6I,MACP,uBAAKjI,UAAU,6BACb,gBAACsC,EAAA,EAAO,CACNhC,QAASlB,EAAMkB,QACfQ,cAAe1B,EAAM0B,cACrBd,UAAS,+BAA0BZ,EAAMkB,QAAU,iCAAmC,IACtFE,QAASpB,EAAMoB,SAEf,sBAAIR,UAAU,6BACXZ,EAAMqL,cAAgBN,GACrB,gBAAC5H,EAAA,EAAY,CACX9B,QAAS,oBACTa,MAAK,2DAAsDiJ,EAAU,4BACrEG,iBAAe,EACfC,yBAAyB,8BAG5BvL,EAAM6I,SAGR,iBAAqB7I,EAAMwL,iBAAmBxL,EAAMwL,kBAGxDxL,EAAMkB,UAAY2J,KAAoB7K,EAAMyL,iBAAmB,gBAAChB,EAAO,iBAAKzK,KAGhF6K,GACC,uBAAKjK,UAAU,kDACb,qBAAGA,UAAS,0CACV,4BAAOZ,EAAM8K,gBAEZ9K,EAAMkB,WAAalB,EAAMyL,iBAAmB,gBAAChB,EAAO,iBAAKzK,KAKtE,C,myCC9FA,IAAM0L,EAAwB,IAkBxB,SAAUC,EAAkBC,GAChC,IAAQ3H,EAA0C2H,EAA1C3H,KAAM4H,EAAoCD,EAApCC,MAAOC,EAA6BF,EAA7BE,aAAcC,EAAeH,EAAfG,WAEsB,IAArB,YAAe,GAAM,GAAjDC,EAAS,KAAEC,EAAY,KACmD,IAA9B,WAA2B,CAAC,GAAE,GAA1EC,EAAiB,KAAEC,EAAoB,KAC2B,IAApB,WAAe,MAAK,GAAlEC,EAAkB,KAAEC,EAAqB,KAE3CC,EAAU,WAAc,kBAAM,mBAA+B,GAAE,IAiIrE,OA5HA,aAAgB,WACD,YAATrI,GAAuB6H,EAAahC,SAAa+B,EAA6BU,wBAAyBD,GAE3GE,YAAW,kBAQb,W,MACQC,EAAqBZ,EAE3B,GAAyB,QAApB,EAAAC,EAAahC,eAAO,eAAE4C,SAA3B,CAGA,IAAMC,EAAiBC,MAAMC,KAAKf,EAAahC,QAAQ4C,UAAU/C,QAAO,SAACmD,EAAKC,GAC5E,I,MAAMC,EAAOD,aAAI,EAAJA,EAAME,wBAMbC,EACJF,EAAKG,KAAOV,EAAmBW,wBAC/BJ,EAAKK,MAAQZ,EAAmBF,sBAElC,OAAO,OAAP,wBACKO,I,EAAG,G,EACLC,EAAK7I,G,EAAKgJ,EACP,CACA,eAAe,GACb,CACF,eAAe,EACf,MAAS,S,qXAGjB,GAAG,CAAC,GAEJf,EAAqBQ,EAzBb,CA0BV,CAtCmBW,EAAsB,GAAE5B,EAAwB,GACnE,GAAG,CACDI,EAAahC,QACbiC,EACCF,EAA6B0B,OAC7B1B,EAA6BU,wBAoHzB,CACLP,UAAAA,EACAwB,cAhBF,SAAuBC,GACjBC,SAASC,cAAc,sBACzB1B,GAAa,GACbI,EAAsBoB,GAE1B,EAYEG,aAVF,WACOF,SAASC,cAAc,sBAC1B1B,GAAa,GACbI,EAAsB,MAE1B,EAMEwB,mBAlFF,SAA4BJ,GAC1B,IAAMK,EAAmBjC,EAMzB,OAHES,GACAmB,GAAUK,EAAiBP,OAASO,EAAiBC,eACrDN,EAAQK,EAAiBP,OAElB,CACL,eAAe,GAIZ,CACL,MAAS,OACT,eAAe,EAEnB,EAkEErB,kBAAAA,EACA8B,UA7DF,WACExB,YAAW,WACT,GAAKV,EAAahC,QAAlB,CAOA,IAJA,IAAMmE,EAAQnC,EAAahC,QAAQoE,iBAAiB,mBAEhDC,EAAoC,KAE/BC,EAAKhC,EAAqB,EAAIgC,EAAIH,EAAMpN,SAC3CsN,EADmDC,IAIvDD,EAAuBF,EAAMG,GAAGT,cAAc,mBAG5CQ,GACFA,EAAqBpE,OAdf,CAeV,GAAG2B,EAAwB,IAC7B,EA2CE2C,UAzCF,WACE7B,YAAW,WACT,GAAKV,EAAahC,QAAlB,CAMA,IAHA,IAAMmE,EAAQnC,EAAahC,QAAQoE,iBAAiB,mBAEhDI,EAAoC,KAC/BF,EAAIhC,EAAqB,EAAGgC,GAAK,IACpCE,EADuCF,IAI3CE,EADaL,EAAMG,GACST,cAAc,mBAGxCW,GACFA,EAAqBvE,OAbf,CAcV,GAAG2B,EAAwB,IAC7B,EAyBF,C,mFC1KM6C,EAAa,IAAIC,MACvBD,EAAWnG,IAAM,yEAEV,IAAMqG,EAEE,SAACC,GACPA,EAAMC,aAAaC,cAAiB5L,EAAA,aAA0B0L,EAAMC,aAAaC,eAGtFF,EAAMC,aAAaC,aAAaL,EAAY,EAAG,EACjD,ECJIM,EAAgBC,EAAA,kBA2BTC,EAAuB,cAAiB,SACnD/O,EACA2I,GAEA,IAGQqG,EAhCkBC,EAAmBC,EAA6BC,EA6BlEzC,EAAwG1M,EAAxG0M,SAAU0C,EAA8FpP,EAA9FoP,aAAcC,EAAgFrP,EAAhFqP,OAAQC,EAAwEtP,EAAxEsP,UAAWC,EAA6DvP,EAA7DuP,YAAaC,EAAgDxP,EAAhDwP,WAAYC,EAAoCzP,EAApCyP,kBAAiB,EAAmBzP,EAAjB0P,SAAAA,OAAQ,IAAG,IAAC,EAoB3G,OACE,oCACE9O,UAAU,gEACV6B,OApDsBwM,EAoDIS,EApDeR,EAoDLE,EApDkCD,EAoDpBM,EAlDlDP,IAAgBS,EAAAC,EAAA,YAA6BT,IAC/CF,GAAwBE,GAEnB,CACLU,UAAW,eAAF,OAAiBZ,GAAS,OAAGC,EAAW,eAEjDY,WAAY,8BA6CVnH,IAAKA,IArBDqG,EAA4B,CAAC,EAE/BK,GAAUC,IACZN,EAAce,WAAY,EAC1Bf,EAAcM,UAAYA,EAC1BN,EAAcgB,YAAcvB,EAC5BO,EAAciB,WAAaZ,GAGzBE,GAAeC,GAAcX,IAC/BG,EAAckB,mBAAqBX,EACnCP,EAAcmB,kBAAoBX,GAG7BR,IAUJtC,EAGP,G,2FCpEA,QAAiD,QAAjD,EAAiE,QCUjE,IAGY0D,EAFN3H,EAAYxD,EAAA,mBADA,wBAGlB,SAAYmL,GACV,mBACA,oBACD,CAHD,CAAYA,IAAAA,EAAqB,KAuB1B,IAAMC,EAAe,QAAW,SAASrQ,GAC9C,IAKMY,E,IALA0P,EAAStQ,EAAMuQ,YAAcH,EAAsBI,KAEnDC,EAAWH,EAAS,iBAA2B,kBAqBrD,OAAItQ,EAAM0Q,KACD,iCAGP,uBAAK9P,UAAS,UDhEgB,QCgEW,YAAIZ,EAAM2Q,mBAAqB3Q,EAAM2Q,mBAAqB,IAAMlO,MAV3E,YAAf,QAAX,EAAAzC,EAAM6L,aAAK,eAAE+E,UACR,CAAEC,cAAgB,OAAmB,QAAX,EAAA7Q,EAAM6L,aAAK,eAAEkC,eAAiB,KAE1D,CAAEpL,OAAQ,SAQd3C,EAAM8Q,qBACL,uBAAKlQ,UAAW0P,EAAS,GAAH,ODlE+L,QCkEtK,YAAItQ,EAAM+Q,uBAAqB,UDlEgH,QCkEpF,YAAI/Q,EAAMgR,2BAGpHhR,EAAMiR,2BACN,0BACE7P,QAASpB,EAAMoB,QACfR,UAAS,UDxE2J,QCwE1H,YAAI0P,EAAS,EAAc,GACrE9M,UAAW,IAIf,0BACE5C,UAAS,WApCTA,ED1CsO,QC8CxOA,GADE0P,EACW,IAAJ,OAAQ,EAAW,YAAItQ,EAAMkR,qBAEzB,IAAJ,OAAQ,EAAY,YAAIlR,EAAMmR,uBA8BL,YD9E0C,QC8EzB,YAAInR,EAAMY,WAAa,IACxEQ,QAASpB,EAAMoB,QAAO,aACDqH,EAAT6H,EAAmB,WAAwB,SAEtDtQ,EAAMoR,WACL,wBAAMxQ,UAAS,oBDnF6E,UCmFzCZ,EAAMoR,WAE3D,gBAACjO,EAAA,EAAY,CACX9B,QAASoP,EACTtM,KAAMhB,EAAAsB,EAAA,OACN7D,UAAS,uCDxF2H,YC6F9I,G,kBC9FA,IAAY+O,E,iBAAZ,SAAYA,GACV,iBACA,aACD,CAHD,CAAYA,IAAAA,EAAc,I,kBCA1B,IAAY0B,E,iBAAZ,SAAYA,GACV,cACA,cACA,sBACA,kBACA,cACA,kBACA,6BACD,CARD,CAAYA,IAAAA,EAAiB,I,4DCOvB,SAAUC,IACd,IAAMC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAQ,OAAc,SAExBC,EAAgB,OAQpB,OAPIN,IAAMM,EAAgB,QACtBL,IAAMK,EAAgB,QACtBJ,IAAMI,EAAgB,QACtBH,IAAMG,EAAgB,QACtBF,IAAME,EAAgB,QACtBD,IAAOC,EAAgB,SAEpBA,CACT,C,kaCdaC,EAA2B,SAACC,GAAmB,OAC1D,SAACC,GACC,OAAKA,aAAc,EAAdA,EAAgB9N,IAGd+N,EAAA,aAAuCD,EAAgBD,GAAU,CAAC,GAFhE,IAGX,CAAC,ECfH,SAAgB,mBAAqB,SCuCrC,IAAMrN,EAAY,8BACZ+D,EAAYxD,EAAA,mBAAiCP,GAU7C,SAAUwN,EAAuBlS,G,sBAC7BmS,GAAwB,EAAAC,EAAA,GAAY,MAApCD,oBACFE,GAAc,EAAAtM,EAAA,KAKduM,EAAS,kBAA6BC,EAAA,YAE5C,GAKI,EAAAC,EAAA,KAJFC,EAAsB,EAAtBA,uBACAC,EAAkB,EAAlBA,mBACAC,EAAsB,EAAtBA,uBACAC,EAAqB,EAArBA,sBAGIC,GAAa,EAAAC,EAAA,KACbC,GAAW,SAMXC,EAAwBhT,EAAMiT,YAAYC,iBAAkBR,aAAkB,EAAlBA,EAAoBxO,IAEhFiP,GAAsB,kBAC1BH,GACAI,EAAA,mBAAwCJ,IAGpCK,GAAYF,GAAoBG,cAAgBX,EAEhDX,GAAiB,CACrBnJ,KAAM0K,EAAA,2BAA8D,QAAxB,EAAAJ,GAAoBK,YAAI,eAAE3K,KAAM4J,aAAsB,EAAtBA,EAAwB5R,QACpG2E,OAAQ,CACNmB,IAAK4M,EAAA,4BAA+D,QAAxB,EAAAJ,GAAoBK,YAAI,eAAEC,cAAe,kBAInF/G,GAAW,kBACf2G,IACAD,EAAA,iBAAsCJ,IAAiD,QAAxB,EAAAG,GAAoBK,YAAI,eAAEtP,MAGrFhC,GAAQuG,EAAU,mBAAoB,CAAEvG,MAA+B,QAAxB,EAAAiR,GAAoBK,YAAI,eAAE3K,QAE/E,EAAA6K,EAAA,GAAmB,CACjBxR,MAAAA,GACA4I,YAAarC,EAAU,kBAAmB,CAAEvG,MAA+B,QAAxB,EAAAiR,GAAoBK,YAAI,eAAE3K,OAC7E8K,cAAeC,EAAA,qBACfC,cAAeD,EAAA,oBAGjB,IAAME,GAA0BhC,IAkBhC,IAAMiC,KAAezB,EAAOkB,QAAUf,GAA0B/F,GAAS8G,KACnEQ,GAAqBpB,EAA8C,QAAxB,EAAAO,GAAoBK,YAAI,eAAEtP,IAKrExC,GAAgB,CACpBwR,eAAwC,QAAxB,EAAAC,GAAoBK,YAAI,eAAEtP,GAC1C+P,iBAA0C,QAAxB,EAAAd,GAAoBK,YAAI,eAAE3K,KAC5CqL,SAAUC,EAAA,kBACVC,WAAYC,EAAA,2BAGRC,GAAoBnC,EACtBoC,EAAA,EACAC,EAAA,EAEJ,OACE,wBAAM5T,UAAU,iBACbmT,GAEG,gBAACxO,EAAA,EAAY,CACXD,QAAS0M,cAAc,EAAdA,GAAgBnJ,KACzBrD,OAAQwM,cAAc,EAAdA,GAAgBxM,OACxBC,YAAa6M,EAAOkB,KAAK/N,YACzBe,aAAc,CAAErC,KAAM,cAEtB,gBAAC,IAAmB,MAE1B,uBAAKvD,UAAS,oBAAeoT,GAAqB,gBAAkB,KAE3DA,GAGAD,GAGE,gBAAC7K,EAAA,GAAW,CAACC,YArD5B,W,MACE,MAAO,CAAC,CACNN,KAAMJ,EAAU,YAChBvH,QAAS,CACPuT,YAAa,cACbxR,OAAQ,qBAET,CACD4F,KAAM0K,EAAA,gCAAmE,QAAxB,EAAAJ,GAAoBK,YAAI,eAAE3K,KAAM4J,aAAsB,EAAtBA,EAAwB5R,QACzGiI,QAAQ,GAEZ,CA0CyC4L,KAFxB,gBAAC,KAAkB,MAHnB,kCAQb,uBAAK9T,UAAW,sBACbmT,GACC,gBAACO,GAAiB,CAChBpQ,GAA4B,QAAxB,EAAAiP,GAAoBK,YAAI,eAAEtP,GAC9B2E,KAAK,GACLiC,YAAY,GACZpJ,cAAeA,GACfuJ,QAASyB,cAAQ,EAARA,GAAU8G,KACnBmB,SAAU,CAAE3C,eAAgB8B,IAC5Bc,oBAAoB,EACpBC,SAAU,CAAE1C,oBAAAA,GACZ2C,kCAAmCjC,KAAeE,aAAQ,EAARA,EAAUgC,WAAWC,EAAA,aAEvEC,6BAA8B,WAAO,IAGvC,gBAAC,KAAoB,CAACC,wBAAyB,OAGhDnB,IAAc5B,IAAuBM,aAAsB,EAAtBA,EAAwB5R,QAAS,GACrE,sBAAID,UAAU,sBACX6R,EAAuB0C,QAAO,SAAAC,GAAI,MAAC,OAAAA,EAAElR,MAA+B,QAAxB,EAAAiP,GAAoBK,YAAI,eAAEtP,GAAE,IAAEpD,KAAI,SAAAuU,G,UAC7E,OACE,sBAAIrU,IAAKqU,EAAanR,IACpB,gBAAChB,EAAA,EAAO,CACNtC,UAAS,0FAAqF,OAAW,YAAI2S,EAAA,6CAAwD8B,aAAY,EAAZA,EAAc5B,gBACnLvS,QAAS,CACPuT,YAAa,YACbxR,OAAQ,iCACR8O,OAAQ,CAAEmB,eAAgBmC,EAAanR,KAEzCoR,eAAgB,CAAEC,kBAAmB,CAAEC,iBAAkBH,EAAaI,aACtE/T,cAAe,CACbwC,GAAImR,EAAanR,GACjB2E,KAAMwM,EAAaxM,KACnBiC,YAAauK,EAAavK,YAC1B4K,sBAA+C,QAAxB,EAAAvC,GAAoBK,YAAI,eAAEtP,GACjDyR,wBAAiD,QAAxB,EAAAxC,GAAoBK,YAAI,eAAE3K,KACnD+M,+BAAwD,QAAxB,EAAAzC,GAAoBK,YAAI,eAAE1I,aAE5DnJ,iBAAkB,CAChBkU,OAAQ,kBACRC,WAAY,WACZpL,SAAU,mCAGZ,uBAAK9J,UAAU,uBACX6R,EAAuB5R,OAAS,GAAKwR,EAAY0D,IAAM1D,EAAY2D,GACnE,gBAAChO,EAAA,EAAI,CAACtD,UAAWA,EAAWuD,OAAO,0BAA0B2D,QAAS,CAAE/C,KAAMwM,EAAaxM,QAE3F,gBAACb,EAAA,EAAI,CAACtD,UAAWA,EAAWuD,OAAO,2BAA2B2D,QAAS,CAAE/C,KAAMwM,EAAaxM,SAGhG,gBAACoN,EAAA,EAAU,CACT5U,QAASgR,EAAY2D,GAAK,aAAuB,YACjDpU,cAAY,EACZhB,UAAU,uBACVQ,QAAS,MAET,gBAAC4G,EAAA,EAAI,CACHtD,UAAWA,EACXuD,OAAQoK,EAAY2D,GAAK,UAAY,WACrCpK,QAAS,CAAE/C,KAAMwM,EAAaxM,UAM1C,MAMZ,C","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/hooks/useWidgetKeyboard.ts","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/apps/subjects/utils/ClassificationAppLinks.ts","file:///app/packages/projects/lite/src/apps/subjects/views/presentation-topics/presentation-topics.scss","file:///app/packages/projects/lite/src/apps/subjects/views/presentation-topics/PresentationTopicsView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const second = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} /> : <></>;\n const secondLast = length > 3 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = length > 1 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} /> : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor, LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetTypeIdConfig } from 'libs/shared/constants/WidgetTypeIdConfig';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string | JSX.Element;\n isPreviewing?: boolean;\n content?: any[];\n widgetTypeId?: WidgetTypeId;\n badgeComponent?: JSX.Element;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n \n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{\n location: LocationContext.SlidingList,\n ...props.analyticsOptions,\n descriptor: ClickDescriptor.SeeMore\n }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeAll')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n const isBelowMinimum = WidgetHelper.isBelowContentMinimum(props.content, props.widgetTypeId);\n const minContent = WidgetTypeIdConfig[props.widgetTypeId]?.minContent ?? 0;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className='d-flex align-items-center'>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link text-reset' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.isPreviewing && isBelowMinimum && (\n <SvgContainer\n svgName={cvSvgLibrary.WarningOutline}\n title={`Widget is below the minimum content threshold of ${minContent} and won't be displayed.`}\n tooltipSpanHack\n tooltipSpanHackClassName='d-inline text-danger me-1'\n />\n )}\n {props.name}\n </h2>\n </AppLink>\n {!!React.isValidElement(props.badgeComponent) && props.badgeComponent}\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DynamicWidgetState } from 'libs/shared/components/widgets/dynamic-widget';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\n\n// Sync with transition time in SlidingListContainer.tsx\nconst SLIDER_ANIMATION_TIME = 400;\n\ntype FixedWidgetKeyboardOptions = {\n type: 'fixed',\n state: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery?: never;\n}\n\ntype DynamicWidgetKeyboardOptions = {\n type: 'dynamic',\n state: DynamicWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery: string\n}\n\ntype UseWidgetKeyboard = FixedWidgetKeyboardOptions | DynamicWidgetKeyboardOptions\n\nexport function useWidgetKeyboard(options: UseWidgetKeyboard) {\n const { type, state, containerRef, mediaQuery } = options;\n\n const [ isTabbing, setIsTabbing ] = React.useState(false);\n const [ dynamicAttributes, setDynamicAttributes ] = React.useState<HashObject>({});\n const [ focusedWidgetIndex, setFocusedWidgetIndex ] = React.useState(null);\n\n const isTouch = React.useMemo(() => UserAgentHelper.isTouchScreen(), []);\n\n /**\n * Get accessibility attributes for dynamic widget items\n * */\n React.useEffect(() => {\n if (type !== 'dynamic' || !containerRef.current || !(state as DynamicWidgetState).containerLeftPosition || isTouch) return;\n\n setTimeout(() => getDynamicAttributes(), SLIDER_ANIMATION_TIME + 50);\n }, [\n containerRef.current,\n mediaQuery,\n (state as DynamicWidgetState).offset,\n (state as DynamicWidgetState).containerLeftPosition\n ]);\n\n function getDynamicAttributes() {\n const dynamicWidgetState = state as DynamicWidgetState;\n\n if (!containerRef.current?.children)\n return;\n\n const focusableItems = Array.from(containerRef.current.children).reduce((acc, item) => {\n const rect = item?.getBoundingClientRect();\n\n /**\n * When any part of the widget item is visible it should be focusable,\n * otherwise prevent interaction and the slider should be the next focusable element\n * */\n const isItemVisable =\n rect.left < dynamicWidgetState.containerRightPosition &&\n rect.right > dynamicWidgetState.containerLeftPosition;\n\n return {\n ...acc,\n [item.id]: isItemVisable\n ? {\n 'aria-hidden': false\n } : {\n 'aria-hidden': true,\n 'inert': 'true'\n }\n };\n }, {});\n\n setDynamicAttributes(focusableItems);\n }\n\n /**\n * Get accessibility attributes for fixed widget items\n * */\n function getFixedAttributes(index?: number) {\n const fixedWidgetState = state as FixedWidgetState;\n\n const isItemVisible =\n isTouch ||\n index >= (fixedWidgetState.offset - fixedWidgetState.viewableItems) &&\n index < fixedWidgetState.offset;\n if (isItemVisible) {\n return {\n 'aria-hidden': false\n };\n }\n\n return {\n 'inert': 'true',\n 'aria-hidden': true\n };\n }\n\n /**\n * When the user is not signed in, there may be videos which are not focusable.\n * setTimeout is required because the transition time is 400ms\n */\n function focusNext() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let nextFocusableElement: HTMLElement = null;\n\n for (let i = (focusedWidgetIndex + 1); i < items.length; i++) {\n if (nextFocusableElement)\n break;\n\n nextFocusableElement = items[i].querySelector('a[tabindex=\"0\"]');\n }\n\n if (nextFocusableElement)\n nextFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function focusPrev() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let prevFocusableElement: HTMLElement = null;\n for (let i = focusedWidgetIndex - 1; i >= 0; i--) {\n if (prevFocusableElement) break;\n\n const item = items[i];\n prevFocusableElement = item.querySelector('a[tabindex=\"0\"]');\n }\n\n if (prevFocusableElement)\n prevFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function onFocusWidget(index: number) {\n if (document.querySelector('.user-is-tabbing')) {\n setIsTabbing(true);\n setFocusedWidgetIndex(index);\n }\n }\n\n function onBlurWidget() {\n if (!document.querySelector('.user-is-tabbing')) {\n setIsTabbing(false);\n setFocusedWidgetIndex(null);\n }\n }\n\n return {\n isTabbing,\n onFocusWidget,\n onBlurWidget,\n getFixedAttributes,\n dynamicAttributes,\n focusNext,\n focusPrev\n };\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n \n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n // Sync with transition time in useWidgetKeyboard.ts\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLUListElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLUListElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLUListElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <ul\n className='list-unstyled d-flex flex-nowrap position-relative w-100 mb-0'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </ul>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nconst namespace = 'shared.widgetButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n containerClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={`${styles.buttonContainer} ${props.containerClassName ? props.containerClassName : ''}`} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <button\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n tabIndex={-1}\n />\n )}\n\n <button\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n aria-label={isLeft ? getPhrase('previous') : getPhrase('next')}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </button>\n </div>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Classification, Playlist } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\n\nexport const getClassificationAppLink = (params?: HashObject) =>\n (classification?: Classification): Core.AppLink => {\n if (!classification?.id)\n return null;\n\n return ClassificationAppLinkHelper.getAppLink(classification, params || {});\n };\n\nexport const getPlaylistAppLink = (playlist: Playlist, classificationId: string): Core.AppLink => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ],\n params: { classificationId }\n});\n\nexport const getAllTopicsAppLink = (presentationId?: string): Core.AppLink => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.PRESENTATION_TOPICS,\n params: presentationId ? { presentationId } : {}\n});","// extracted by mini-css-extract-plugin\nexport default {\"classificationPane\":\"ftCMX\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CoverFixedPillListLargeWidgetTemplate } from 'libs/shared/components/widgets/curated-widgets/templates/cover-fixed-pill-list-large/CoverFixedPillListLargeWidgetTemplate';\nimport { StatsCoverFixedPillListLargeWidgetTemplate } from 'libs/shared/components/widgets/curated-widgets/templates/stats-cover-fixed-pill-list-large/StatsCoverFixedPillListLargeWidgetTemplate';\nimport { PartialDynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { PartialSubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classification, Config, Presentation } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { getClassificationAppLink } from 'apps/subjects/utils/ClassificationAppLinks';\n\nimport styles from './presentation-topics.scss';\n\nconst namespace = 'subjects.presentationTopics';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface PresentationTopicsViewQueryParams {\n presentationId?: string;\n}\n\ninterface PresentationTopicsViewProps {\n queryParams: PresentationTopicsViewQueryParams;\n}\n\nexport function PresentationTopicsView(props: PresentationTopicsViewProps): React.ReactElement {\n const { hasTopicDirectories } = useSettings(null);\n const breakpoints = useBreakpoints();\n\n /**\n * Data fetching\n */\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const {\n availablePresentations,\n activePresentation,\n hasPresentationsLoaded,\n canAccessPresentation\n } = usePresentation();\n\n const isTertiary = useIsTertiary();\n const products = useProducts();\n\n /**\n * We'll prefer the presentationId query param, but fallback to the\n * user's activePresentation where the queryParam doesn't exist.\n */\n const initialPresentationId = props.queryParams.presentationId || activePresentation?.id;\n\n const currentPresentation = Flight.useBasicFetch<Presentation>(\n initialPresentationId &&\n ClassificationRequests.presentationById(initialPresentationId)\n );\n\n const hasLoaded = currentPresentation.hasCompleted && hasPresentationsLoaded;\n\n const classification = {\n name: TopicsHelper.getExploreAllTopicsTitle(currentPresentation.data?.name, availablePresentations?.length),\n banner: {\n url: TopicsHelper.getPresentationLevelImage(currentPresentation.data?.learningLevel, 'topic-banner')\n }\n } as Classification;\n\n const children = Flight.useBasicFetch<Classification[]>(\n hasLoaded &&\n ClassificationRequests.topLevelTopics(initialPresentationId || currentPresentation.data?.id)\n );\n\n const title = getPhrase('pageTitleSubject', { title: currentPresentation.data?.name });\n\n useSetPageMetadata({\n title,\n description: getPhrase('pageDescription', { title: currentPresentation.data?.name }),\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing()\n });\n\n const classificationAppLinkFn = getClassificationAppLink();\n\n function getBreadcrumbs(): Breadcrumb[] {\n return [{\n name: getPhrase('discover'),\n appLink: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }\n }, {\n name: TopicsHelper.getExploreAllTopicsBreadcrumb(currentPresentation.data?.name, availablePresentations?.length),\n active: true\n }];\n }\n\n /**\n * Render Variable\n */\n const dataLoaded = !!config.data && !!availablePresentations && children.data;\n const canViewBreadcrumbs = canAccessPresentation(currentPresentation.data?.id);\n\n /**\n * Additional subjects data to be mixed in with lower-level component analytics collection\n */\n const analyticsData = {\n presentationId: currentPresentation.data?.id,\n presentationName: currentPresentation.data?.name,\n widgetId: WidgetTypeId.Classifications,\n templateId: WidgetTemplate.CoverFixedPillListLarge\n };\n\n const TemplateComponent = hasTopicDirectories\n ? StatsCoverFixedPillListLargeWidgetTemplate\n : CoverFixedPillListLargeWidgetTemplate;\n \n return (\n <main className='bg-white px-4'>\n {dataLoaded\n ? (\n <BannerHeader\n heading={classification?.name}\n banner={classification?.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n imageOptions={{ size: ImageSize.Large }}\n />\n ) : <PartialBannerHeader />\n }\n <div className={`py-3 mb-3 ${canViewBreadcrumbs ? 'border-bottom' : ''}`}>\n {(() => {\n if (!canViewBreadcrumbs)\n return <></>;\n\n if (!dataLoaded)\n return <PartialBreadcrumbs />;\n\n return <Breadcrumbs breadcrumbs={getBreadcrumbs()} />;\n })()}\n </div>\n <div className={styles.classificationPane}>\n {dataLoaded ? (\n <TemplateComponent\n id={currentPresentation.data?.id}\n name=''\n description=''\n analyticsData={analyticsData}\n content={children?.data}\n appLinks={{ classification: classificationAppLinkFn }}\n hasTableOfContents={false}\n settings={{ hasTopicDirectories }}\n isTertiaryCustomerWithoutExchange={isTertiary && !products?.hasProduct(ProductId.Exchange)}\n // TODO: Should this be optional?\n onToggleFollowClassification={() => {}}\n />\n ) : (\n <PartialDynamicWidget partialLoadingComponent={PartialSubjectWidgetItem} />\n )}\n\n {dataLoaded && hasTopicDirectories && availablePresentations?.length > 1 && (\n <ul className='pt-3 list-unstyled'>\n {availablePresentations.filter(p => p.id !== currentPresentation.data?.id).map(presentation => {\n return (\n <li key={presentation.id}>\n <AppLink\n className={`d-flex justify-content-between align-items-center text-white p-3 mb-3 rounded-3 ${styles.link} ${TopicsHelper.getMappedPresentationBackgroundColourClass(presentation?.learningLevel)}`}\n appLink={{\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.PRESENTATION_TOPICS,\n params: { presentationId: presentation.id }\n }}\n appLinkOptions={{ middlewareOptions: { presentationSlug: presentation.vanitySlug } }}\n analyticsData={{\n id: presentation.id,\n name: presentation.name,\n description: presentation.description,\n currentPresentationId: currentPresentation.data?.id,\n currentPresentationName: currentPresentation.data?.name,\n currentPresentationDescription: currentPresentation.data?.description\n }}\n analyticsOptions={{\n entity: EntityType.Presentation,\n actionType: UserAction.Click,\n location: LocationContext.PresentationClassifications\n }}\n >\n <div className='h4 text-shadow mb-0'>\n {(availablePresentations.length > 2 || breakpoints.sm || breakpoints.xs) ? (\n <Text namespace={namespace} phrase='multiPresentationBanner' options={{ name: presentation.name }} />\n ) : (\n <Text namespace={namespace} phrase='singlePresentationBanner' options={{ name: presentation.name }} />\n )}\n </div>\n <IconButton\n svgName={breakpoints.xs ? cvSvgLibrary.Sparkle : cvSvgLibrary.School}\n openInNewTab\n className='btn btn-outline-dark'\n onClick={null}\n >\n <Text\n namespace={namespace}\n phrase={breakpoints.xs ? 'explore' : 'changeTo'}\n options={{ name: presentation.name }}\n />\n </IconButton>\n </AppLink>\n </li>\n );\n })}\n </ul>\n )}\n </div>\n </main>\n );\n}\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","ariaLabel","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","namespace","BackButton","textShadow","backToName","color","extraClasses","backPhrase","LanguageService","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","GenericCalendarDate","body","text","month","getSpecialEventMonthText","theme","calendarTheme","Text","phrase","ComingSoonTag","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getPhrase","BreadcrumbItem","ref","breadcrumb","name","active","withBackIcon","trimmedName","slice","Breadcrumbs","breadcrumbs","isMobile","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","second","secondLast","last","rest","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","SeeMore","location","descriptor","WidgetHeader","hasDescription","description","isBelowMinimum","WidgetHelper","content","widgetTypeId","minContent","WidgetTypeIdConfig","isPreviewing","tooltipSpanHack","tooltipSpanHackClassName","badgeComponent","showSeeMoreLink","SLIDER_ANIMATION_TIME","useWidgetKeyboard","options","state","containerRef","mediaQuery","isTabbing","setIsTabbing","dynamicAttributes","setDynamicAttributes","focusedWidgetIndex","setFocusedWidgetIndex","isTouch","containerLeftPosition","setTimeout","dynamicWidgetState","children","focusableItems","Array","from","acc","item","rect","getBoundingClientRect","isItemVisable","left","containerRightPosition","right","getDynamicAttributes","offset","onFocusWidget","index","document","querySelector","onBlurWidget","getFixedAttributes","fixedWidgetState","viewableItems","focusNext","items","querySelectorAll","nextFocusableElement","i","focusPrev","prevFocusableElement","blankImage","Image","DragHelper","event","dataTransfer","setDragImage","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","containerClassName","contents","paddingBottom","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","leftButtonClassName","rightButtonClassName","hoverText","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","getClassificationAppLink","params","classification","ClassificationAppLinkHelper","PresentationTopicsView","hasTopicDirectories","useSettings","breakpoints","config","ConfigRequests","usePresentation","availablePresentations","activePresentation","hasPresentationsLoaded","canAccessPresentation","isTertiary","useIsTertiary","products","initialPresentationId","queryParams","presentationId","currentPresentation","ClassificationRequests","hasLoaded","hasCompleted","TopicsHelper","data","learningLevel","useSetPageMetadata","canonicalLink","SeoHelper","allowIndexing","classificationAppLinkFn","dataLoaded","canViewBreadcrumbs","presentationName","widgetId","WidgetTypeId","templateId","WidgetTemplate","TemplateComponent","StatsCoverFixedPillListLargeWidgetTemplate","CoverFixedPillListLargeWidgetTemplate","application","getBreadcrumbs","appLinks","hasTableOfContents","settings","isTertiaryCustomerWithoutExchange","hasProduct","ProductId","onToggleFollowClassification","partialLoadingComponent","filter","p","presentation","appLinkOptions","middlewareOptions","presentationSlug","vanitySlug","currentPresentationId","currentPresentationName","currentPresentationDescription","entity","actionType","sm","xs","IconButton"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/5056-6057435479-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/DateRangeUtils.ts","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListFooter.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListHeader.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/student-response-list.scss","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseList.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/interactive-student-results/InteractiveStudentResultsView.tsx","file:///app/packages/libs/shared/src/constants/ScoreThresholds.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/AppRouteHelper.ts"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { animals, colors, Config as UniqueNamesConfig, uniqueNamesGenerator } from 'unique-names-generator';\n\nimport { User } from 'libs/shared/interfaces';\nimport { PublicInteractiveUser } from 'libs/shared/interfaces/models/interactive-results/PublicInteractiveUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\n\nfunction getUniqueNamesConfig(id: string): UniqueNamesConfig {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n * \n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n * \n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const seed = +`${id}${Math.floor((new Date()).getMinutes() / 5)}`;\n\n return {\n dictionaries: [ colors, animals ],\n separator: ' ',\n length: 2,\n style: 'capital',\n seed\n };\n}\n\nexport function anonymiseUserName(user: User | PublicInteractiveUser, shouldAnonymise: boolean): string {\n if (!user)\n return '';\n\n if (!shouldAnonymise)\n return 'profileId' in user ? user.name : UserHelper.getFullName(user);\n\n return uniqueNamesGenerator(getUniqueNamesConfig('profileId' in user ? user.profileId : user.id));\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { DateRange } from 'libs/shared/interfaces';\nimport { AppRouteHelper } from 'libs/shared/utils/AppRouteHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function convertDateToUtcDateTimeString(date: Date): string {\n const utc = DateHelper.convertDateToUTC(date);\n return DateHelper.format(utc, 'YYYY-MM-DDTHH:mm:ss');\n}\n\nexport function getMinDate(): Date {\n return new Date(2021, 0, 1);\n}\n\nexport function getMaxDate(): Date {\n return new Date();\n}\n\nexport function getDefaultDateRange(dateRangePresets: DateRange[]): DateRange {\n return dateRangePresets.find(range => !!range.default);\n}\n\nexport function getPresetRangeByName(dateRangePresetss: DateRange[], rangeName: string): DateRange | undefined {\n if (!rangeName)\n return;\n\n const presets = dateRangePresetss;\n \n return presets.find(p => p.name === rangeName);\n}\n\nexport function getGenericDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date(),\n default: true\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n }\n ];\n}\n\nexport function getInsightsDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n },\n {\n name: getPhrase('allTime'),\n startDate: DateHelper.subtract(new Date(), 5, 'years'),\n endDate: new Date(),\n default: true\n }\n ];\n}\n\nexport function formatDateQueryParam(date: Date): string {\n return DateHelper.format(date, 'YYYY-MM-DD');\n}\n\nexport function getRouteQueryParams(dateRange: DateRange): DateRangeQueryParams {\n if (dateRange.name)\n return { rangeName: dateRange.name };\n\n return {\n from: formatDateQueryParam(dateRange.startDate),\n to: formatDateQueryParam(dateRange.endDate)\n };\n}\n\nexport function useGetDateRangeFromQueryParams(\n dateRangePresets: DateRange[],\n dateRangeQueryParams: DateRangeQueryParams\n): DateRange | null {\n const { to, from, rangeName } = dateRangeQueryParams;\n \n const presetRange = getPresetRangeByName(dateRangePresets, rangeName);\n\n if (presetRange) {\n if (!from && !to)\n return presetRange;\n\n /**\n * If a rangeName has been set, we don't use to and from so we remove them from the url params.\n */\n AppRouteHelper.updateParams(\n getRouteQueryParams(presetRange),\n { replace: true, merge: true, keysToRemove: [ 'from', 'to' ]}\n );\n return;\n }\n\n const defaultDateRange = getDefaultDateRange(dateRangePresets);\n\n /**\n * If a param is missing, or one of them isn't a valid date, short-circuit the logic below.\n */\n if (!from || !to || !DateHelper.isValid(from) || !DateHelper.isValid(to)) {\n AppRouteHelper.updateParams(\n getRouteQueryParams(defaultDateRange),\n { replace: true, merge: true, keysToRemove: ['rangeName']}\n );\n return;\n }\n\n let initialDateRangeValid = true;\n\n let startDate = DateHelper.convertDateToUTC(new Date(from));\n let endDate = DateHelper.convertDateToUTC(new Date(to));\n\n if (DateHelper.isBefore(startDate, getMinDate(), 'day')) {\n startDate = getMinDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(endDate, getMaxDate(), 'day')) {\n endDate = getMaxDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(startDate, endDate)) {\n startDate = defaultDateRange.startDate;\n endDate = defaultDateRange.endDate;\n initialDateRangeValid = false;\n }\n\n const dateRange: DateRange = { startDate, endDate, name: initialDateRangeValid ? rangeName : '' };\n\n if (initialDateRangeValid)\n return dateRange;\n\n /**\n * If one or both of the date params were invalid, we trigger a route update.\n */\n AppRouteHelper.updateParams(getRouteQueryParams(dateRange), { replace: true, merge: true, keysToRemove: ['rangeName']});\n}\n\nexport function getStartEndParams(\n dateRangePresetss: DateRange[],\n filterParams: FilterQueryParams\n): { start: string; end: string } {\n const getStartDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.startOf(date, 'day'));\n const getEndDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.endOf(date, 'day'));\n\n const presetRange = getPresetRangeByName(dateRangePresetss, filterParams.rangeName);\n\n /**\n * If the user has chosen a preset range, lookup the start and end dates as they won't be\n * in the query params.\n */\n if (presetRange)\n return {\n start: getStartDate(formatDateQueryParam(presetRange.startDate)),\n end: getEndDate(formatDateQueryParam(presetRange.endDate))\n };\n\n /**\n * If they have chosen a custom date range, use their chosen start and end dates.\n */\n if (filterParams.from && filterParams.to)\n return {\n start: getStartDate(filterParams.from),\n end: getEndDate(filterParams.to)\n };\n\n /**\n * The below should never be hit\n */\n const defaultRange = getDefaultDateRange(dateRangePresetss);\n\n return {\n start: getStartDate(formatDateQueryParam(defaultRange.startDate)),\n end: getEndDate(formatDateQueryParam(defaultRange.endDate))\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListFooterProps {\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n onClickClose: () => void;\n showSubmitButtonSpinner: boolean;\n}\n\nexport function StudentResponseListFooter(props: StudentResponseListFooterProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-end pt-3'>\n <div>\n {!props.showSubmitButtonSpinner &&\n <button className='btn btn-link' onClick={props.onClickClose}>\n {getPhrase('close')}\n </button>\n }\n {!!props.interactionsToMark.length &&\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { ResultsSummary } from 'libs/shared/apps/analytics/interfaces/ResultsSummary';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListHeaderProps {\n summary: ResultsSummary;\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n showSubmitButtonSpinner: boolean;\n}\n\nexport function StudentResponseListHeader(props: StudentResponseListHeaderProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-between pb-3'>\n <div className='d-flex'>\n {!!props.summary.unanswered &&\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('unanswered')}</strong>\n {props.summary.unanswered}\n </div>\n }\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('score')}</strong>\n {props.summary.awaitingMarking\n ? <em>{getPhrase('pending')}</em>\n : `${Math.round(props.summary.percentCorrect * 100)}%`\n }\n </div>\n </div>\n <div>\n {!!props.interactionsToMark.length &&\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"awaitingMarking\":\"MvGb5\"};","import React from 'react';\n\nimport { InteractionResponseItem } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/InteractionResponseItem';\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { anonymiseUserName } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getMarkedStatus, getStudentResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractionResponse } from 'libs/shared/components/interaction-response/InteractionResponse';\nimport { InteractionLabel } from 'libs/shared/components/interactive-questions/InteractionLabel';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, Interactive, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getInteractions, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\n\nimport { StudentResponseListFooter } from './StudentResponseListFooter';\nimport { StudentResponseListHeader } from './StudentResponseListHeader';\n\nimport styles from './student-response-list.scss';\n\nfunction getInteractionsToMark(\n interactions: Interaction[],\n studentResults: StudentResults\n): Interaction[] {\n return interactions.filter(i => {\n return InteractiveCorrectnessHelper.isInteractionCorrect(\n i,\n getStudentResult(studentResults)\n ) === InteractionCorrectness.AwaitingMarking;\n });\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nfunction useScrollSelectedInteractionIntoView(): React.MutableRefObject<HTMLLIElement> {\n const ref = React.useRef<HTMLLIElement>();\n const [ scrolled, setScrolled ] = React.useState(false);\n\n // Only scroll once\n React.useEffect(() => {\n if (!ref.current || scrolled)\n return;\n\n setScrolled(true);\n ref.current.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, [ ref.current, scrolled ]);\n\n return ref;\n}\n\ninterface StudentResponseListProps {\n interactive: Interactive;\n markedAnswers: MarkedAnswerHash;\n studentResults: StudentResults;\n addMarkedAnswers: (answer: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n submitMarkedAnswers: () => void;\n onClickClose: () => void;\n imageCdnUrl: string;\n selectedInteractionId?: string;\n anonymiseUsers: boolean;\n reportsStyling?: boolean;\n}\n\nexport function StudentResponseList(props: StudentResponseListProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n const selectedInteractionRef = useScrollSelectedInteractionIntoView();\n\n const summary = getStudentResultsSummary(props.interactive, props.studentResults);\n const interactions = getInteractions(props.interactive);\n const questionsToMark = getInteractionsToMark(interactions, props.studentResults);\n\n function onClickSubmit(): void {\n setShowSpinner(true);\n props.submitMarkedAnswers();\n }\n\n return (\n <>\n <StudentResponseListHeader\n summary={summary}\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n showSubmitButtonSpinner={showSpinner}\n />\n <ul className='list-unstyled'>\n {interactions.map((interaction, idx) => {\n const isSelected = interaction.id.toString() === props.selectedInteractionId?.toString();\n const markingRequired = questionsToMark.some(q => q.id === interaction.id);\n const anonymisedUserName = anonymiseUserName(\n props.studentResults.user || props.studentResults.publicUser,\n props.anonymiseUsers\n );\n\n let className = 'p-2 mb-3 rounded';\n\n if (isSelected)\n className += ' border-2 border-info shadow';\n\n if (markingRequired)\n className += ` ${styles.awaitingMarking}`;\n else\n className += ' border';\n\n return (\n <li key={idx} className={className} ref={isSelected ? selectedInteractionRef : null}>\n <div className='d-flex mb-2'>\n <InteractionLabel\n interaction={interaction}\n iconClassName='flex-shrink-0'\n />\n </div>\n {props.reportsStyling ? (\n <InteractionResponse\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n className='bg-light ps-2'\n showFeedback\n reportsStyling\n responseComponentClass='mx-n2'\n />\n ) : (\n <InteractionResponseItem\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n showFeedback\n />\n )}\n </li>\n );\n })}\n </ul>\n <StudentResponseListFooter\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n onClickClose={props.onClickClose}\n showSubmitButtonSpinner={showSpinner}\n />\n </>\n );\n}","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 { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { useMarkAnswers } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { anonymiseUserName } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { StudentResponseList } from 'libs/shared/apps/student-response-list/StudentResponseList';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { Config, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveStudentResults';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveStudentResultsViewProps extends PopupViewProps {\n userId: string;\n interactiveId: string;\n interactionId?: string;\n reportsStyling?: boolean;\n profileId?: string;\n}\n\nexport function InteractiveStudentResultsView(props: InteractiveStudentResultsViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\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));\n\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const results = useFetchInteractiveResults(\n props.interactiveId,\n getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useHandleObjectError([ interactiveMetadata, results ]);\n useCannotConsumeError(interactiveMetadata);\n\n const { markedAnswers, addMarkedAnswers, submitMarkedAnswers } = useMarkAnswers(\n interactive.data?.id,\n interactiveMetadata.data?.id,\n props.closePopup\n );\n\n const studentResults = results.data?.students.find(s => {\n if (props.userId)\n return s.user?.id?.toString() === props.userId?.toString();\n\n if (props.profileId)\n return s.publicUser?.profileId?.toString() === props.profileId?.toString();\n\n return false;\n });\n\n const popupTitle = studentResults\n ? getPhrase('heading', { studentName: anonymiseUserName(studentResults.user || studentResults.publicUser, anonymiseUsers) })\n : '';\n const dataLoaded = !!interactive.data && !!results.data && !!config.data;\n\n return (\n <Popup\n title={popupTitle}\n showLoadingSpinner={!dataLoaded}\n closePopup={props.closePopup}\n size='lg'\n >\n {dataLoaded &&\n <StudentResponseList\n interactive={interactive.data}\n studentResults={studentResults}\n markedAnswers={markedAnswers}\n addMarkedAnswers={addMarkedAnswers}\n submitMarkedAnswers={submitMarkedAnswers}\n imageCdnUrl={config.data.imageCdnUrl}\n selectedInteractionId={props.interactionId}\n onClickClose={props.closePopup}\n anonymiseUsers={anonymiseUsers}\n reportsStyling={props.reportsStyling}\n />\n }\n </Popup>\n );\n}\n","export interface ScoreThresholds {\n HIGH: number;\n MODERATE: number;\n}\n\nexport const ScoreThresholdDefaults: ScoreThresholds = {\n HIGH: 0.75,\n MODERATE: 0.5\n};\n\nexport const ScoreThresholdInsights: ScoreThresholds = {\n HIGH: 0.7,\n MODERATE: 0.7\n};","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface UpdateParamsOptions extends Core.AppLinkOptions {\n merge?: boolean;\n keysToRemove?: string[]\n}\n\nexport const AppRouteHelper = {\n /**\n * Utility to update the params on the current appRoute.\n * \n * This is built on top of ContextService rather than build into AppLink\n * as we will generally only want to update params on appRoutes, not appLinks.\n */\n updateParams(params: HashObject, options?: UpdateParamsOptions): void {\n const { appLink } = ContextService.getCurrentRoute();\n\n let currentParams = typeof(appLink.params) === 'string'\n ? Core.LocationUtils.DeserializeQueryParams(appLink.params)\n : appLink.params as HashObject;\n\n if (options.keysToRemove)\n currentParams = ObjectHelper.omit(currentParams, options.keysToRemove);\n\n const updatedParams = options?.merge\n ? { ...currentParams, ...params }\n : params;\n\n const updatedAppLink = {\n ...appLink,\n params: updatedParams\n };\n\n /**\n * This prevents us pointlessly re-triggering if we're already on the right applink.\n */\n if (ObjectHelper.isEqual(appLink, updatedAppLink))\n return;\n \n Core.AppLinkHelper.trigger(updatedAppLink, ObjectHelper.omit(options, [ 'merge', 'keysToRemove' ]));\n }\n};"],"names":["AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","users","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","anonymiseUserName","user","shouldAnonymise","id","profileId","seed","Math","floor","Date","getMinutes","dictionaries","separator","length","style","name","getPhrase","convertDateToUtcDateTimeString","date","utc","getMinDate","getMaxDate","getDefaultDateRange","dateRangePresets","find","range","getPresetRangeByName","dateRangePresetss","p","getInsightsDateRangePresets","minDate","currentYear","getFullYear","isMinDateThisYear","startDate","endDate","getMonth","disabled","tooltip","default","formatDateQueryParam","getRouteQueryParams","dateRange","useGetDateRangeFromQueryParams","dateRangeQueryParams","presetRange","replace","merge","keysToRemove","defaultDateRange","initialDateRangeValid","getStartEndParams","filterParams","getStartDate","getEndDate","start","end","defaultRange","LanguageService","StudentResponseListFooter","props","numMarkedAnswers","Object","keys","markedAnswers","className","showSubmitButtonSpinner","onClick","onClickClose","interactionsToMark","SpinnerButton","variant","onClickSubmit","showSpinner","StudentResponseListHeader","summary","unanswered","awaitingMarking","round","percentCorrect","StudentResponseList","ref","scrolled","setScrolled","setShowSpinner","selectedInteractionRef","current","scrollIntoView","behavior","block","interactive","studentResults","interactions","questionsToMark","filter","i","InteractiveCorrectnessHelper","InteractionCorrectness","getInteractionsToMark","submitMarkedAnswers","map","interaction","idx","isSelected","toString","selectedInteractionId","markingRequired","some","q","anonymisedUserName","publicUser","anonymiseUsers","InteractionLabel","iconClassName","reportsStyling","InteractionResponse","markedStatus","markInteraction","addMarkedAnswers","imageCdnUrl","showFeedback","responseComponentClass","InteractionResponseItem","InteractiveStudentResultsView","SharedViewModelKeys","useLockContentWidth","interactiveMetadata","InteractiveRequests","interactiveId","data","dateRangeAppLinkParams","results","config","ConfigRequests","useCannotConsumeError","closePopup","students","s","userId","popupTitle","studentName","dataLoaded","Popup","title","showLoadingSpinner","size","interactionId","ScoreThresholdDefaults","HIGH","MODERATE","ScoreThresholdInsights","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","sort","join","groupIdKey","groupId","AppRouteHelper","updateParams","options","currentParams","updatedParams","updatedAppLink"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5157],{97535:(e,t,n)=>{n.r(t),n.d(t,{SignUpView:()=>O});var a=n(32735),r=n(23481),l=n(81886),i=n(20354),c=n(70624),o=n(65858),u=n(97947),s=n(83529),m=n(84789),f=n(60735),g=n(12754),d=n(53475),h=n(39151),b=n(31949),p=n(48015),v=n(79612),y=n(83421),U=n(14070),C=n(97291);const E={left:"CJBwn",imageContainer:"r6On_",imagePosition:"ebaoC",image:"XQMl0"};function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function L(e){var t,n,r=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=l.call(n)).done)&&(c.push(a.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return P(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=r[0],i=r[1];return a.useEffect((function(){if(e.imageUrl){var t=new Image;return t.onload=function(){return i(!0)},t.src=e.imageUrl,function(){return t.onload=null}}}),[]),a.createElement("div",{className:E.left},l&&a.createElement(a.Fragment,null,a.createElement("div",{className:E.imageContainer},a.createElement("div",{className:E.imagePosition},a.createElement("img",{className:E.image,src:e.imageUrl,alt:e.title})))))}var A=n(48456),S=n(63643),N=r.T.encloseNamespace("launchpad.signUp");function O(e){var t,n=(0,c.G)(f.D.BrazeClient),r=i.a.useBasicFetch(b.N.currentUser()),E=i.a.useBasicFetch(h.L.config());(0,v.M)({title:N("title")});var P=(0,p.M)(),O=i.a.useBasicFetch((null==P?void 0:P.countryCode)&&d.N.globalIdps(P.countryCode,g.x.Primary)),k=(0,S.c)();return a.useEffect((function(){r.hasCompleted&&r.data.isAuthenticated&&l.Q.C$.trigger({action:U.e.Dashboard.HOME,application:C.O.DASHBOARD})}),[r]),r.hasCompleted&&!(null===(t=r.data)||void 0===t?void 0:t.isAuthenticated)&&E.hasCompleted&&P&&k&&O.hasCompleted?a.createElement(y.Zf,{leftComponent:function(){return a.createElement(L,{title:"Sign Up",imageUrl:"/images/sign-up/fullscreen-dashboard.png"})}},a.createElement(u.h,{brazeClient:n.clientInstance,type:s.c.FullPage,initialValues:{email:e.email},location:o.LZ.SignUpPage,googleMapsApiKey:E.data.googleMapsApiKey,geoLocation:P,imageUrls:A.v,ajaxUrls:k,productName:m.X.Lite,pageAppLinkString:e.pageAppLinkString,getSignInUrl:function(e){return l.Q.C$.getHref({application:C.O.DEFAULT,action:U.e.Default.CHALLENGE,params:e})},globalIdps:O.data})):a.createElement(a.Fragment,null)}},83421:(e,t,n)=>{n.d(t,{Hq:()=>m,Zf:()=>d});var a=n(32735),r=n(54610),l=n(4594),i=n(67453),c=n(99742);const o={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=l.call(n)).done)&&(c.push(a.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=[{bgUrl:c.W.LaunchPad.BG_1},{bgUrl:c.W.LaunchPad.BG_2},{bgUrl:c.W.LaunchPad.BG_3},{bgUrl:c.W.LaunchPad.BG_4},{bgUrl:c.W.LaunchPad.BG_5}],f=[{bgUrl:c.W.LaunchPad.PRODUCT.BG_1},{bgUrl:c.W.LaunchPad.PRODUCT.BG_2},{bgUrl:c.W.LaunchPad.PRODUCT.BG_3},{bgUrl:c.W.LaunchPad.PRODUCT.BG_4},{bgUrl:c.W.LaunchPad.PRODUCT.BG_5},{bgUrl:c.W.LaunchPad.PRODUCT.BG_6},{bgUrl:c.W.LaunchPad.PRODUCT.BG_7},{bgUrl:c.W.LaunchPad.PRODUCT.BG_8},{bgUrl:c.W.LaunchPad.PRODUCT.BG_9}];function g(e){switch(e){case l.E.Video:case l.E.Interactive:case l.E.Clip:return o.thumbnail;case l.E.Subject:case l.E.Playlist:return o.cover;case l.E.Series:return o.tallposter;default:return""}}function d(e){var t,n=u(a.useState(!1),2),l=n[0],c=n[1],s=u(a.useState(""),2),m=s[0],d=s[1],h=i.j.createUrl(e.imageUrl,{size:r.h2.Large}),b=f;return a.useEffect((function(){if(!h&&b&&0!==b.length){var e,t=(e=b)[Math.floor(Math.random()*e.length)];t.bgUrl&&d(t.bgUrl)}}),[]),a.useEffect((function(){if(h){var e=new Image;return e.onload=function(){return c(!0)},e.src=h,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(o.left," ").concat(m?"bg-blue d-flex align-items-center":"bg-light")},m?a.createElement("img",{className:"img-fluid",src:m,draggable:!1}):l&&a.createElement(a.Fragment,null,a.createElement("div",{className:o.blur,style:{backgroundImage:"url('".concat(h,"')")}}),a.createElement("div",{className:"".concat(o.imageContainer," ").concat(g(e.objectType))},a.createElement("div",{className:o.imagePosition},a.createElement("img",{className:o.image,src:h,alt:e.title}))))),a.createElement("div",{className:"".concat(o.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(o.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?a.createElement(a.Fragment,{key:t}):a.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
- //# sourceMappingURL=5157-ad13101a6e-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/5157-ad13101a6e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/launchpad/views/sign-up/sign-up.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/sign-up/SignUpLeftSide.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/sign-up/SignUpView.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"left\":\"CJBwn\",\"imageContainer\":\"r6On_\",\"imagePosition\":\"ebaoC\",\"image\":\"XQMl0\"};","import React from 'react';\n\nimport styles from 'apps/launchpad/views/sign-up/sign-up.scss';\n\ninterface SignUpLeftSideProps {\n title: string;\n imageUrl: string;\n}\n\nexport function SignUpLeftSide(props: SignUpLeftSideProps): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n\n React.useEffect(() => {\n if (!props.imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = props.imageUrl;\n return () => img.onload = null;\n }, []);\n \n return (\n <div className={styles.left}>\n {showImage &&\n <>\n <div className={styles.imageContainer}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={props.imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { useInstanceSafe } from 'libs/common/react/hooks/UseInstance';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { MultiStepForm } from 'libs/shared/apps/sign-up/components/multi-step-form/MultiStepForm';\nimport { MultiStepFormTypes } from 'libs/shared/apps/sign-up/enums/MultiStepFormTypes';\nimport { SignUpProduct } from 'libs/shared/apps/sign-up/enums/SignUpProduct';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { AuthRequests } from 'libs/shared/flight-requests/AuthRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\nimport { BrazeClientService } from 'libs/shared/services/BrazeClientService';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SignUpLeftSide } from 'apps/launchpad/views/sign-up/SignUpLeftSide';\nimport { SignUpImages } from 'apps/sign-up/helpers/SignUpImages';\nimport { useGetSignUpAjaxUrls } from 'apps/sign-up/hooks/useGetSignUpAjaxUrls';\n\nconst namespace = 'launchpad.signUp';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface SignUpViewProps {\n email?: string;\n pageAppLinkString?: string;\n}\n\nexport function SignUpView(props: SignUpViewProps): JSX.Element {\n const brazeClientService = useInstanceSafe<BrazeClientService>(SharedServices.BrazeClient);\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const geoLocation = useGeoLocation();\n const globalIdps = Flight.useBasicFetch<IdentityProvider[]>(\n geoLocation?.countryCode && AuthRequests.globalIdps(geoLocation.countryCode, ProductId.Primary)\n );\n\n const ajaxUrls = useGetSignUpAjaxUrls();\n\n React.useEffect(() => {\n if (!currentUser.hasCompleted)\n return;\n\n if (currentUser.data.isAuthenticated) {\n Core.AppLinkHelper.trigger({\n action: Actions.Dashboard.HOME,\n application: AppChannels.DASHBOARD\n });\n return;\n }\n }, [currentUser]);\n\n const hasLoaded = (\n currentUser.hasCompleted &&\n !currentUser.data?.isAuthenticated &&\n config.hasCompleted &&\n geoLocation &&\n ajaxUrls &&\n globalIdps.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n \n return (\n <Launchpad\n leftComponent={() => (\n <SignUpLeftSide\n title='Sign Up'\n imageUrl='/images/sign-up/fullscreen-dashboard.png'\n />\n )}\n >\n <MultiStepForm\n brazeClient={brazeClientService.clientInstance}\n type={MultiStepFormTypes.FullPage}\n initialValues={{ email: props.email }}\n location={LocationContext.SignUpPage}\n googleMapsApiKey={config.data.googleMapsApiKey}\n geoLocation={geoLocation}\n imageUrls={SignUpImages}\n ajaxUrls={ajaxUrls}\n productName={SignUpProduct.Lite}\n pageAppLinkString={props.pageAppLinkString}\n getSignInUrl={options => Core.AppLinkHelper.getHref({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params: options\n })}\n globalIdps={globalIdps.data}\n />\n </Launchpad>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.BG_5 }\n];\n\nexport const LAUNCHPAD_PRODUCT_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_5 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_6 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_7 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_8 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_9 }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n { bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png' }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_PRODUCT_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div\n className={`${styles.left} ${image ? 'bg-blue d-flex align-items-center' : 'bg-light'}`}\n >\n {image ?\n <img className='img-fluid' src={image} draggable={false} /> :\n (showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n )\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["SignUpLeftSide","props","showImage","setShowImage","imageUrl","img","Image","onload","src","className","alt","title","getPhrase","LanguageService","SignUpView","brazeClientService","SharedServices","currentUser","UserRequests","config","ConfigRequests","useSetPageMetadata","geoLocation","useGeoLocation","globalIdps","countryCode","AuthRequests","ProductId","ajaxUrls","useGetSignUpAjaxUrls","hasCompleted","data","isAuthenticated","action","application","Launchpad","leftComponent","MultiStepForm","brazeClient","clientInstance","type","MultiStepFormTypes","initialValues","email","location","googleMapsApiKey","imageUrls","SignUpImages","productName","SignUpProduct","pageAppLinkString","getSignInUrl","options","params","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","ImageUrls","LAUNCHPAD_PRODUCT_FALLBACK_IMAGES","mapObjectTypeToImageClass","objectType","MasterType","image","setImage","ImageHelper","size","IMAGE_URLS","length","urlLists","Math","floor","random","draggable","style","backgroundImage","links","map","link","key","hide","href","url","onClick","text","children"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5201],{71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),r=n(80247),i=n(34152),s=n(83914),o=n(35223);const l={container:"VwD1b",spinner:"eJ85e"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,i.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],p=u[1];return a.useEffect((function(){var t;e.fetchOnScroll&&p&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[p,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(l.container),ref:d},e.isFetching?a.createElement(r.Z,{as:"span",animation:"border",role:"status",className:l.spinner}):a.createElement(s.x,{svgName:o.vn.ChevronDown,className:"svg-container cursor-pointer",size:s.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},60115:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),r=n(50242),i=n(91967),s=400,o=n(45719);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function c(e,t,n,c,u,d){var p,m,v,y,g=(p=(0,a.useState)(0),m=2,function(e){if(Array.isArray(e))return e}(p)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(p,m)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(p,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],f=g[1],b=t,S=(0,o.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return v={fetchNextPage:function(){if(t&&e&&S)return f((function(e){return e+1})),b(S.nextCursor)},hasMore:!!(null==S?void 0:S.nextCursor),isFetching:null==S?void 0:S.isFetching,scrollContainer:d},y=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-s)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-s)return;v.fetchNextPage()}},(0,a.useEffect)((function(){var e=i.q.throttle(y,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,a.useEffect)((function(){S&&S.shouldInitialFetch&&t&&(b(),f((function(e){return e+1})))}),[null==S?void 0:S.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==S?void 0:S.statusCode)&&i.q.isFunction(n)){var a=+(null===(t=null===(e=S.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(h,S.statusCode)}}),[null==S?void 0:S.statusCode]),{items:null==S?void 0:S.items,hasMore:!!(null==S?void 0:S.nextCursor),nextCursor:null==S?void 0:S.nextCursor,isFetching:null==S?void 0:S.isFetching,totalItems:null==S?void 0:S.totalItems,hasFirstPageCompleted:null==S?void 0:S.hasFirstPageCompleted}}},8406:(e,t,n)=>{n.d(t,{W:()=>l,a:()=>o});var a=n(28400),r=n(7733),i=n(14070),s=n(97291);function o(e,t,n){return e&&t?{application:s.O.LIBRARIES,action:i.e.Libraries.FOLDER,args:[e,t.id,a.m.slugify(t.name)],params:{sort:n}}:null}function l(e){for(var t,n,a=0,i=0;null!==(n=i<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==n&&n;i++)a+=e.name.charCodeAt(i);return r.o[a%r.o.length]}},57859:(e,t,n)=>{n.r(t),n.d(t,{LiteSearchResultsView:()=>tn});var a=n(32735),r=n(37802),i=n(23481),s=n(65858),o=n(68050),l=n(83345),c=n(79967),u=n(31908),d=n(69111),p=n(2192);function m(e){var t,n,r,i=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(n=e.data)||void 0===n?void 0:n.name}),o=Object.assign(Object.assign({location:s.LZ.ClassificationListItem},e.analyticsOptions),{actionType:s.Vw.Click,entity:s.py.Company,descriptor:s._S.Cover});return a.createElement(p.Q,Object.assign({},e,{analyticsData:i,analyticsOptions:o,coverUrl:null===(r=e.data.logo)||void 0===r?void 0:r.url}))}function v(e){return a.createElement(d.Z,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3},a.createElement("div",{className:"position-relative px-1 mb-2"},a.createElement(m,{data:e.item,getChildAppLink:e.appLinks.getCompanyAppLink,getChildAppLinkOptions:function(){var t,n;return null===(n=(t=e.appLinks).getCompanyAppLinkOptions)||void 0===n?void 0:n.call(t,e.item)},analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle})))}var y=n(81886),g=n(43500),h=n(36848),f=n(82072);const b="ZhLPS";function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var L="search.exchangeVideoGroup";function A(e){var t,n,r=e.item.showCount>=3?3:e.item.showCount,i=y.Q.C$.getCurrentAppLink(),o=null!==(t=i.params)&&void 0!==t?t:{},c=null!==(n=null==o?void 0:o.source)&&void 0!==n?n:[];c&&!Array.isArray(c)&&(c=[c]);var u,d=Object.assign(Object.assign({},i),{params:Object.assign(Object.assign({},o),{source:[].concat((u=c,function(e){if(Array.isArray(e))return S(e)}(u)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||function(e,t){if(e){if("string"==typeof e)return S(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?S(e,t):void 0}}(u)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[g.fi.ExchangeArchive])})}),p={query:e.queryParams.query,itemIndex:e.itemIndex,pagePositionIndex:e.pagePositionIndex},m={entity:s.py.SearchResults,location:s.LZ.ExchangeSearchGroupItem,actionType:s.Vw.Click,descriptor:s.Bk.ExchangeArchive};return a.createElement("div",{className:0===e.pagePositionIndex?"border-bottom pb-1 mb-3":"border-top border-bottom pt-3 mt-2 pb-1 mb-3"},a.createElement(h.F,{appLink:d,analyticsData:p,analyticsOptions:m},a.createElement("h2",{className:"h4"},a.createElement(l.x,{namespace:L,phrase:"heading"}))),a.createElement("p",null,a.createElement(l.x,{namespace:L,phrase:"message"})," ",a.createElement(h.F,{appLink:e.appLinks.searchSettings,className:"text-info",analyticsData:p,analyticsOptions:Object.assign(Object.assign({},m),{descriptor:s._S.Settings})},a.createElement(l.x,{namespace:L,phrase:"searchSettings"})),"."),a.createElement("div",{className:"position-relative ".concat(b)},e.item.videos.slice(0,r).map((function(t,n){return a.createElement(f.m,{key:n,video:t,yearGroups:e.yearGroups,getVideoAppLink:e.appLinks.getVideoAppLink,getSubTextAppLink:e.appLinks.getSubTextAppLink,presentationAudiences:e.audiences,setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:t._score,maxScore:t._maxScore,featured:t._featured},pagePositionIndex:e.pagePositionIndex},companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink,isPlugin:e.isPlugin})}))),a.createElement("div",{className:"text-center py-2"},a.createElement(h.F,{className:"text-secondary",appLink:d,analyticsData:p,analyticsOptions:m},a.createElement(l.x,{namespace:L,phrase:"seeMore"}))))}var E=n(3626);function k(e){return a.createElement("div",{className:"pb-3"},a.createElement(E.J,{video:e.item,presentationAudiences:e.audiences,getVideoAppLink:function(t,n){return e.appLinks.getVideoAppLink(t,n)},subTextAppLink:e.appLinks.getSubTextAppLink(e.item),setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hideInteractiveBadge:!0,yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,showVideoGuidance:u.M.showVideoGuidance(e.hasPermissions),imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,showNewVideoIndicator:e.hasTopicDirectories,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink}))}var x=n(98981),P=n(7733);function O(e){var t,n=(t=(0,c.k)()).xl||t.xxl?3:2,r=e.playlist.videos.data.slice(0,n),i={actionType:s.Vw.Click,entity:s.py.Playlist,location:s.LZ.PlaylistWithVideos},u=Object.assign(Object.assign({},e.analyticsData),{id:e.playlist.id,name:e.playlist.name});return a.createElement("div",{className:"ps-2 py-2"},a.createElement(o.Z,{className:"g-0 border border-light rounded-3"},a.createElement(d.Z,{xs:4,lg:3,className:"pe-3"},a.createElement(x.tN,{appLink:e.playlistAppLink,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},i),{descriptor:s._S.Cover}),data:e.playlist,presentationAudiences:e.presentationAudiences,bgColourClassNames:P.o,itemStyle:"round-left",imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,showCount:!1,showOwner:!0})),a.createElement(d.Z,{xs:8,lg:9},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("div",{className:"pt-3 mb-n2 ".concat("eEZEe")},null==r?void 0:r.map((function(t){var n=Object.assign(Object.assign({},u),{videoId:t.id,videoName:t.name});return a.createElement("div",{key:t.id,className:"mb-2"},a.createElement(f.m,{video:t,getSubTextAppLink:e.getSubTextAppLink,canFavourite:function(){return!1},setFavourite:null,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:s.py.Video,location:s.LZ.PlaylistWithVideos},size:"sm",yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin,hideVideoGuidance:!0}))}))),a.createElement("div",{className:"text-end pt-3 pe-3"},a.createElement(h.F,{className:"info-link fw-semibold",appLink:e.playlistAppLink,analyticsData:u,analyticsOptions:Object.assign(Object.assign({},i),{descriptor:s._S.Link})},a.createElement(l.x,{namespace:"search.playlistWithVideos",phrase:"seeAllVideos"})))))))}function I(e){return a.createElement("div",{className:"mx-n2"},a.createElement(O,{playlist:e.item,yearGroups:e.yearGroups,playlistAppLink:e.appLinks.getPlaylistAppLink(e.item),presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,preloadImage:!0,getSubTextAppLink:e.appLinks.getSubTextAppLink,getVideoAppLink:e.appLinks.getVideoAppLink,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin}))}var C=n(34004);function T(e){var t,n=(t=(0,c.k)()).xl||t.xxl?5:t.lg||t.md?4:3,r=e.series.videos.data.slice(0,n),i={actionType:s.Vw.Click,entity:s.py.Series,location:s.LZ.SeriesWithVideos},u=Object.assign(Object.assign({},e.analyticsData),{id:e.series.id,name:e.series.name});return a.createElement("div",{className:"ps-2 py-2"},a.createElement(o.Z,{className:"g-0 border border-light rounded-3"},a.createElement(d.Z,{xs:4,lg:3,className:"pe-3"},a.createElement(h.F,{appLink:e.seriesAppLink,className:"position-relative",analyticsData:u,analyticsOptions:Object.assign(Object.assign({},i),{descriptor:s._S.TallPoster})},a.createElement(C.r,{series:e.series,presentationAudiences:e.presentationAudiences,preloadImage:e.preloadImage,imageClass:"rounded-start-lg"}))),a.createElement(d.Z,{xs:8,lg:9},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("div",{className:"pt-3 mb-n2 ".concat("UT8bc")},null==r?void 0:r.map((function(t){var n=Object.assign(Object.assign({},u),{videoId:t.id,videoName:t.name});return t=Object.assign(Object.assign({},t),{series:e.series}),a.createElement("div",{key:t.id,className:"mb-2"},a.createElement(f.m,{video:t,getSubTextAppLink:e.subTextAppLink,canFavourite:function(){return!1},setFavourite:null,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:s.py.Video,location:s.LZ.SeriesWithVideos},size:"sm",yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin,hideVideoGuidance:!0}))}))),a.createElement("div",{className:"text-end pt-3 pe-3"},a.createElement(h.F,{className:"info-link fw-semibold",appLink:e.seriesAppLink,analyticsData:u,analyticsOptions:Object.assign(Object.assign({},i),{descriptor:s._S.Link})},a.createElement(l.x,{namespace:"search.seriesWithVideos",phrase:"seeAllVideos"})))))))}function w(e){return a.createElement("div",{className:"mx-n2"},a.createElement(T,{yearGroups:e.yearGroups,presentationAudiences:e.audiences,series:e.item,seriesAppLink:e.appLinks.getSeriesAppLink(e.item),subTextAppLink:e.appLinks.getSubTextAppLink,getVideoAppLink:e.appLinks.getVideoAppLink,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},preloadImage:!0,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin}))}var F=n(5465),j=n(24900),N=n(11882);function _(e){var t,n=(t=(0,c.k)()).xs?2:t.sm?1:3,r={analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions};return a.createElement(a.Fragment,null,a.createElement("ul",{className:"list-unstyled my-1"},e.videos.slice(0,n).map((function(t){var n,i=!!t.episodeNumber&&!!(null===(n=t.season)||void 0===n?void 0:n.id);return a.createElement("li",{key:"".concat(e.collectionId,":").concat(t.id),className:"d-flex align-items-center"},a.createElement(h.F,Object.assign({},r,{className:"clamp-1",appLink:e.getVideoAppLink(t)}),i&&a.createElement(a.Fragment,null,a.createElement(N.Q,{video:t})," "),t.name))}))),a.createElement(h.F,Object.assign({},r,{className:"info-link",appLink:e.appLink}),a.createElement(l.x,{namespace:"search.collectionVideoList",phrase:"seeAll"})))}var q=n(83657),V=n(18559),R=n(17464),M=n(75163),D=n(9977),U=n(54610);function G(e){var t,n,r,i,o=(0,c.k)(),u="sm"===D.O.getSize(o,"md"),p=!!(null===(n=null===(t=e.collection.videos)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length),m=p&&e.collection.videos.data.find((function(e){var t;return!!(null===(t=e.thumbnail)||void 0===t?void 0:t.url)})),v=(i=Object.assign(Object.assign({},e.analyticsData),{id:e.collection.id,name:e.collection.name}),m&&(i.videoId=m.id,i.videoName=m.name),i),y="series"===e.collectionType;return a.createElement("div",{className:"row g-0 ".concat(u?"":"py-2")},a.createElement(d.Z,Object.assign({},D.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(u?"pb-2 pe-2":"mb-1 px-2")}),a.createElement("div",{className:"position-relative overflow-hidden ".concat(u?"rounded":"rounded-3")},a.createElement(M.Z,{data:null==m?void 0:m.thumbnail,appLink:e.appLink,imageType:U.__.Thumbnails,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:s._S.Thumbnail})},a.createElement(j.z,{type:e.maskType}),a.createElement(F.oy,{type:e.imageFallbackType}),a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center text-white h-100 ".concat("AZSmh")},a.createElement(l.x,{namespace:"search.collectionThumbnail",phrase:"seeAll"}))))),a.createElement(d.Z,Object.assign({},D.O.getDetailsColumns(),{className:u?"pb-2":"px-2"}),!e.isPlugin&&a.createElement(q.e,{actions:e.getCollectionActions(e.collection,e.showActions,e.collectionType,e.analyticsOptions),className:"float-end mt-n1",actionsDropdownClassName:"btn btn-link ms-1"}),a.createElement(h.F,{appLink:e.appLink,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:s._S.Title})},a.createElement("h5",{className:"m-0 mb-1"},a.createElement("span",{className:"clamp-1"},e.collection.name))),y&&!e.hideBadges&&a.createElement(R.c,null,a.createElement(V.C,{type:V.g.Rating,data:e.collection.rating}),a.createElement(V.C,{type:V.g.ProductionYear,data:null===(r=e.collection.metadata)||void 0===r?void 0:r.year})),p&&a.createElement(_,{collectionId:e.collection.id,videos:e.collection.videos.data,appLink:e.appLink,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:s._S.Link}),getVideoAppLink:e.getVideoAppLink})))}function B(e){return a.createElement("div",{className:"position-relative ".concat(b)},a.createElement(G,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:s.py.Playlist,actionType:s.Vw.Click,location:s.LZ.PlaylistListItem},appLink:e.appLinks.getPlaylistAppLink(e.item),showActions:e.showActions,collection:e.item,collectionType:"playlist",maskType:j.O.Playlist,imageFallbackType:F.mS.PlaylistThumbnail,isPlugin:e.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions}))}function Z(e){return a.createElement("div",{className:"position-relative ".concat(b)},a.createElement(G,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:s.py.Series,actionType:s.Vw.Click,location:s.LZ.SeriesListItem},appLink:e.appLinks.getSeriesAppLink(e.item),collectionType:"series",collection:e.item,showActions:e.showActions,maskType:j.O.Series,imageFallbackType:F.mS.SeriesThumbnail,hideBadges:!0,isPlugin:e.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions}))}var z=n(9513);function W(e){return a.createElement(d.Z,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3},a.createElement("div",{className:"position-relative px-1 mb-2"},a.createElement(z.Vz,{data:e.item,getChildAppLink:e.appLinks.getClassificationAppLink,getChildAppLinkOptions:function(){var t,n;return null===(n=(t=e.appLinks).getClassificationAppLinkOptions)||void 0===n?void 0:n.call(t,e.item)},availablePresentations:e.availablePresentations,analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle,highlightOnHover:e.hasTopicDirectories})))}var H=n(34550),Q=n(66133);function $(e){var t,n=(t=e.item,u.M.isClip(t)?H.I:u.M.isInteractive(t)?Q.H:f.m);return a.createElement("div",{className:"position-relative ".concat(b)},a.createElement(n,{video:e.item,yearGroups:e.yearGroups,getVideoAppLink:e.appLinks.getVideoAppLink,getSubTextAppLink:e.appLinks.getSubTextAppLink,getPreviewQuestionsAppLink:e.appLinks.getPreviewQuestionsAppLink,presentationAudiences:e.audiences,setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,showNewVideoIndicator:e.hasTopicDirectories,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink}))}function J(e){return function(e){if(Array.isArray(e))return Y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var X=a.memo((function(e){var t,n,r,i,s,d,p,m,y=(0,c.k)(),g=y.xs||y.sm;if(!(null===(t=e.results)||void 0===t?void 0:t.length)&&!(null===(n=e.topics)||void 0===n?void 0:n.totalResults)&&!(null===(r=e.companies)||void 0===r?void 0:r.totalResults))return a.createElement(a.Fragment,null);var h=[].concat(J(null!==(s=null===(i=e.companies)||void 0===i?void 0:i.results)&&void 0!==s?s:[]),J(null!==(p=null===(d=e.topics)||void 0===d?void 0:d.results)&&void 0!==p?p:[])),f=Object.assign({useLargeStyle:h.length<4},e);return a.createElement("div",{className:"position-relative"},a.createElement("p",{role:"status",className:"visually-hidden"},a.createElement(l.x,{namespace:"shared.mixedSearchResults",phrase:"ariaSearch"})),!!h.length&&a.createElement(o.Z,{as:"ul",className:"list-unstyled g-0 pb-3 mx-n1"},h.slice(0,8).map((function(e,t){switch(e.type.toLowerCase()){case"company":return a.createElement(v,Object.assign({key:t,item:e,itemIndex:t},f));case"subject":return a.createElement(W,Object.assign({key:t,item:e,itemIndex:t},f))}}))),null===(m=e.results)||void 0===m?void 0:m.map((function(e,t){var n,r,i=h.length?t+1:t;if("isExchangeVideoGroup"in e&&e.isExchangeVideoGroup)return a.createElement(A,Object.assign({key:t,item:e,pagePositionIndex:i},f));switch(null===(n=e.type)||void 0===n?void 0:n.toLowerCase()){case"interactive":case"clip":case"video":return 0===t&&e._featured&&u.M.isVideo(e)?a.createElement(k,Object.assign({key:t,item:e,pagePositionIndex:i},f)):a.createElement($,Object.assign({key:t,item:e,pagePositionIndex:i},f));case"playlist":return g?a.createElement(B,Object.assign({key:t,item:e,pagePositionIndex:i},f)):a.createElement(I,Object.assign({key:t,item:e,pagePositionIndex:i},f));case"series":return g||!(null===(r=e.tallPoster)||void 0===r?void 0:r.id)?a.createElement(Z,Object.assign({key:t,item:e,pagePositionIndex:i},f)):a.createElement(w,Object.assign({key:t,item:e,pagePositionIndex:i},f))}})))})),K=n(93659),ee="search.searchSubstitute";function te(e){return e.substitute?a.createElement("div",{className:"pb-3"},a.createElement("p",{className:"mb-1 h6"},a.createElement(l.x,{namespace:ee,phrase:"showingFor"})," ",a.createElement(h.F,{className:"info-link",appLink:e.getAppLink(e.substitute,e.queryParams),appLinkOptions:{replace:!0}},e.substitute)),a.createElement("p",{className:"mb-0 h6 fw-normal"},a.createElement(l.x,{namespace:ee,phrase:"searchInsteadFor"}),a.createElement(h.F,{className:"info-link",appLink:e.getAppLink(e.queryParams.query,Object.assign(Object.assign({},e.queryParams),{allowSubstitute:"false"}))},e.queryParams.query),a.createElement(l.x,{namespace:ee,phrase:"endOriginal"}))):a.createElement(a.Fragment,null)}var ne="search.searchSuggestions";function ae(e){var t;return(null===(t=e.suggestions)||void 0===t?void 0:t.length)?a.createElement("div",{className:"d-flex align-items-center mb-3"},a.createElement(l.x,{namespace:ne,phrase:"didYouMean"})," ",e.suggestions.map((function(t,n){return a.createElement(a.Fragment,{key:"".concat(t,":").concat(n)},0!==n&&a.createElement("span",{className:"mx-1"},"•"),a.createElement(h.F,{className:"info-link",appLink:e.getAppLink(t,e.queryParams),appLinkOptions:{replace:!0}},t))}))):a.createElement(a.Fragment,null)}ae.defaultProps={suggestions:[],queryParams:{}};var re=n(71020),ie=n(51365),se=n(79612),oe=n(76753),le=n(14070),ce=n(97291),ue=n(51855),de=n(10671),pe=n(27638),me=n(20354),ve=n(96560),ye=n(16714),ge=n(72639),he=n(12754),fe=n(21750),be=n(39151),Se=n(1666),Le=n(98064),Ae=n(31949),Ee=n(22902),ke=n(15311),xe=n(40424),Pe=n(87114),Oe=n(24965),Ie=n(82817),Ce=n(86698),Te=n(44110),we=n(23737),Fe=n(1211);function je(e){var t=(0,(0,Ee.T)().hasPermissions)(ye.C.StudentExperience),n=(0,Ce.y)(),a=n.availablePresentations,r=n.hasPresentationsLoaded,i=t?e?[null==e?void 0:e.id]:null:null==a?void 0:a.map((function(e){return e.id}));return me.a.useBasicFetch(r&&i&&Fe.J.schoolLevels(i))}var Ne=n(99940),_e=n(97395),qe=n(2997),Ve={video:"series,season,thumbnail,_videoProgress,_canBeConsumed,_restrictions,_isClickViewCurated,resources[count()]",series:"rating",playlist:"videos[count(),thumbnail]{limit:1},interactives[count(),_thumbnail]{limit:1},clips[count(),_thumbnail]{limit:1}",classification:"cover,thumbnail",clip:"_canBeConsumed,_restrictions,_thumbnail,_isClickViewCurated",interactive:"_thumbnail,_timepoints,_isClickViewCurated,_canBeConsumed,_restrictions",company:"logo",category:"libraries,thumbnail"},Re=n(27898);function Me(e,t,n){return(t=function(e){var t=function(e){if("object"!=De(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=De(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==De(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Ue(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ge(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ge(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Be=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function Ze(e){var t,n,a,r=e.totalResults,i=null!==(n=null===(t=null==e?void 0:e.results)||void 0===t?void 0:t.filter((function(e){var t,n,a,i,s,o,l,c;if("series"!==e._index&&"playlist"!==e._index)return!0;if("playlist"===e._index){var u=e;return!!((null===(n=null===(t=u.clips)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length)||(null===(i=null===(a=u.interactives)||void 0===a?void 0:a.data)||void 0===i?void 0:i.length)||(null===(o=null===(s=u.videos)||void 0===s?void 0:s.data)||void 0===o?void 0:o.length))||(r--,!1)}return 0!==(null===(c=null===(l=e.videos)||void 0===l?void 0:l.data)||void 0===c?void 0:c.length)||(r--,!1)})))&&void 0!==n?n:[];e.results=i,e.totalResults=r;var s=null===(a=i[0])||void 0===a?void 0:a._score;return Object.assign(Object.assign({},e),{results:Re.Q.mapMaxScoreToSearchResults(i,s)})}function ze(e){return Object.entries(e).reduce((function(e,t){var n=Ue(t,2)[1],a=n;return"object"===De(n)?a=ze(n):["number","boolean","string"].includes(De(n))&&(a=n.toString()),e.length?"".concat(e,",").concat(a):a}),"")}var We={searchV5:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=n.map((function(e){return[e.id,null==e?void 0:e.cursor]})),r=ze(t),i="search:v5:".concat(e,":").concat(a,":").concat(r),s=t,o="".concat(qe.w.FILTER_PARAM_PREFIX,"indicesFilters"),l=s[o],c=s.isLearner,u=Be(s,["symbol"===De(o)?o:o+"","isLearner"]),d={widgets:n,indices:l,filters:Object.entries(u).reduce((function(e,t){var n=Ue(t,2),a=n[0],r=n[1];return Object.assign(Object.assign({},e),Me({},a.replace("filters.",""),r))}),{}),query:e,includeAllIndices:!1,isLearner:!!c,ogql:Ve};return{url:"{gateway}/v5/search",type:Ne.k.POST,data:d,key:i}},searchV4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,s="search:v4:".concat(e,":").concat(a,":").concat(t,":").concat(r);s+=Object.keys(n).map((function(e){var t=n[e];return Array.isArray(t)?t.join(";"):t})).join(";");var o=n,l="".concat(qe.w.FILTER_PARAM_PREFIX,"excludeLibraryExclusive"),c=o[l],u=o.isLearner,d=Be(o,["symbol"===De(l)?l:l+"","isLearner"]),p={searchType:"content",indices:t.map((function(e){return"video"===e&&c?{index:e,filters:{excludeLibraryExclusive:c}}:{index:e}})),filters:Object.entries(d).reduce((function(e,t){var n=Ue(t,2),a=n[0],r=n[1];return Object.assign(Object.assign({},e),Me({},a.replace("filters.",""),r))}),{}),query:e,allowSubstitute:a,cursor:null!=r?r:void 0,isLearner:!!u,limit:i};return{url:"{gateway}/v4/search",publicUrl:"/api/search/v4",type:Ne.k.POST,data:p,key:s,formatData:Ze}},search:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,s=arguments.length>6?arguments[6]:void 0,o=arguments.length>7?arguments[7]:void 0,l="search:".concat(e,":").concat(a,":").concat(t,":").concat(r);l+=Object.keys(n).map((function(e){var t=n[e];return Array.isArray(t)?t.join(";"):t})).join(";");var c=Object.assign({},Object.assign({index:t,cursor:null!=r?r:void 0,query:e,allowSubstitute:a,limit:i},n));return{url:_e._.urlBuilder("{gateway}/v3/search",c),publicUrl:_e._.urlBuilder("/api/search",c),key:l,formatData:Ze,success:s,error:o}},tagsAndClassifications:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,s=Object.assign({},Object.assign({index:t,cursor:a,query:e},n));return{url:_e._.urlBuilder("{gateway}/v3/search/tags-and-classifications",s),publicUrl:_e._.urlBuilder("/api/search/tags-and-classifications",s),key:"filter:options:".concat(e,":").concat(t.join(":"),":").concat(a),success:r,error:i,normalize:!1}}},He=n(97514),Qe=n(4499);function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Je=n(1048),Ye=n(2284),Xe=n(85594),Ke=n(24598);function et(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var tt=["filters.classification","filters.presentation"],nt=["filters.classification","filters.presentation","isLearner"];function at(e){return function(e){if(Array.isArray(e))return rt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return rt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?rt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function it(){var e,t,n,a,i,s=me.a.useBasicFetch(Ae.N.currentUser()),o=(0,ke.r)(),l=(0,r.r)(null),c=me.a.useBasicFetch(Le.D.streamableLearning()),u=null===(e=c.data)||void 0===e?void 0:e.objectId,d=o.hasProduct(he.x.Exchange)&&l.showExchangeSearchResults,p=me.a.useBasicFetch((null===(t=s.data)||void 0===t?void 0:t.isAuthenticated)&&Le.D.domainLibraries(["sharedLibrary","customLibrary","workspace","hostedLibrary","exchange"])),m=null!==(n=p.data)&&void 0!==n?n:[],v=null==m?void 0:m.findIndex((function(e){return e.type===ve.r.Exchange})),y=null===(a=m[v])||void 0===a?void 0:a.id;if(d||(m=[].concat(at(m.slice(0,v)),at(m.slice(v+1)))),u){var g=null==m?void 0:m.findIndex((function(e){return e.id.toString()===u.toString()}));m=[].concat(at(m.slice(0,g)),at(m.slice(g+1)))}return{hasLibrariesCompleted:c.hasCompleted&&(!(null===(i=s.data)||void 0===i?void 0:i.isAuthenticated)||p.hasCompleted),libraries:m,exchangeLibraryId:y,streamableLibraryId:u,showExchangeSearchResults:d}}function st(){var e,t,n=me.a.useBasicFetch(Ae.N.currentUser()),a=me.a.useBasicFetch(Oe.Z.ratings(null===(e=n.data)||void 0===e?void 0:e.countryCode)),r=(0,Ce.y)(),i=r.activePresentation,s=r.availablePresentations,o=r.getFallbackPresentation,l=r.hasPresentationsLoaded,c=i||o();return l?(null==s?void 0:s.length)>1||!c||Pe.i.getMappedPresentationLevel(c.learningLevel)!==ge.p.Level_1?a:Object.assign(Object.assign({},a),{data:null===(t=a.data)||void 0===t?void 0:t.filter((function(e){return e.code&&e.value<64}))}):a}function ot(e){var t,n,a,i,s,o,l=me.a.useBasicFetch(Ae.N.currentUser()),c=me.a.useBasicFetch((null===(t=l.data)||void 0===t?void 0:t.id)&&Ae.N.user(l.data.id)),u=me.a.useBasicFetch(be.L.config()),d=me.a.useBasicFetch((null===(n=l.data)||void 0===n?void 0:n.isAuthenticated)&&Se.h.yearGroups(l.data.customerId)),p=(0,ke.r)(),m=(0,r.r)(null),v=it(),y=v.hasLibrariesCompleted,g=v.libraries,h=v.exchangeLibraryId,f=v.streamableLibraryId,b=v.showExchangeSearchResults,S=(0,Ce.y)(),L=S.activePresentation,A=S.availablePresentations,E=S.getFallbackPresentation,k=S.hasPresentationsLoaded,x=L||E(),P=null==x?void 0:x.id,O=(0,Ie.M)(),I=(0,Te.i)(),C=je(x),T=null===(i=null===(a=C.data)||void 0===a?void 0:a.schoolLevels)||void 0===i?void 0:i.map((function(e){return e.id})),w=me.a.useBasicFetch((null==C?void 0:C.data)&&fe.x.topicsFromAllAvailablePresentations(T)),F=st(),j=(0,Ee.T)(),N=j.hasPermissions,_=j.hasLocalPermissions,q=N(ye.C.StudentExperience),V=N(ye.C.ViewCurriculums),R=_(ye.E.UseSeriesActions),M=N(ye.C.ViewLibraries),D=N(ye.C.ViewMoviesTv),U=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,s=(null==n?void 0:n.length)&&He.qr.buildBackendFilterParams(e,n,[a],i,[]),o=Je.t.pick(s,i?nt:tt);o["filters.classificationType"]=Xe.A.Subject,o["filters.status"]=Ye.W.Published,(null==e?void 0:e.moviesAndTv)&&(o["filters.curationTag"]=Ke.b.MOVIES_AND_TV),r.length&&(o["filters.presentation"]=r.map((function(e){return e.id})));var l=null!==(t=null==r?void 0:r.reduce((function(e,t){return e[t.id]=t,e}),{}))&&void 0!==t?t:{},c=!He.qr.getAppliedIndices(e).includes("classification"),u=We.search(Qe.y.getQuery(e),["classification"],o,"false"!==e.allowSubstitute),d=!c,p=me.a.useBasicFetch(d&&u);if(!d)return null;if(!p.data)return p;if(!r||(null==r?void 0:r.length)<2)return p;var m,v=(m=p.data.results,function(e){if(Array.isArray(e))return et(e)}(m)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(m)||function(e,t){if(e){if("string"==typeof e)return et(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?et(e,t):void 0}}(m)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort((function(e,t){if(e._score!==t._score)return 0;var n=l[e.presentationId],a=l[t.presentationId];return n?a?n.value-a.value:-1:1}));return Object.assign(Object.assign({},p),{data:Object.assign(Object.assign({},p.data),{results:v})})}(e,F.data,P,A,q),G=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>3?arguments[3]:void 0,a=(arguments.length>2?arguments[2]:void 0).map((function(e){return e.id})),r=(null==t?void 0:t.length)&&He.qr.buildBackendFilterParams(e,t,a,!1,[])||{};(null==a?void 0:a.length)&&(r["filters.presentation"]=a);var i,s=!He.qr.getAppliedIndices(e).includes("company"),o=We.search(Qe.y.getQuery(e),["company"],r,"false"!==e.allowSubstitute),l=!s&&n,c=me.a.useBasicFetch(l&&o);return l?c.data?Object.assign(Object.assign({},c),{data:Object.assign(Object.assign({},c.data),{results:(i=c.data.results,function(e){if(Array.isArray(e))return $e(e)}(i)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return $e(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$e(e,t):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})}):c:null}(e,F.data,A,D);return{queryParams:e,currentUser:l,userDetails:c,config:u,yearGroups:d,products:p,settings:m,curriculums:O,audiences:I,schoolLevels:C,currentPresentation:x,availablePresentations:A,availableTopics:w,ratings:F,topics:U,companies:G,moviesAndTvDashboard:(0,we.y)({targetType:xe.ku.MoviesAndTv,queryParams:e}).dashboard,currentPresentationId:P,isLearner:q,canViewCurriculums:V,canUseSeriesActions:R,libraries:g,hasDataLoaded:I.hasCompleted&&k&&l.hasCompleted&&(!(null===(s=l.data)||void 0===s?void 0:s.isAuthenticated)||c.hasCompleted)&&F.hasCompleted&&u.hasCompleted&&A&&(!(null===(o=l.data)||void 0===o?void 0:o.isAuthenticated)||!p.isLoadingProducts)&&!m.isLoadingSettings&&y,exchangeLibraryId:h,streamableLibraryId:f,showExchangeSearchResults:b,hasPermissions:N,hasLocalPermissions:_,hasCustomLibraries:M,hasMoviesAndTv:D}}var lt=n(94644),ct=n(69883),ut=n(60115),dt=n(97816),pt=n(4594);function mt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}function yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var gt="search.utils";function ht(e){var t,n,r,s,o,l,c=e.queryParams,d=e.appliedIndices,p=e.backendFilters,m=(0,ct.Z)(),v=me.a.useGetFetch(),y=me.a.useGetResponse(null===(t=b())||void 0===t?void 0:t.key),g=function(t){var n,a,r;return!!t&&(null===(r=null===(a=null===(n=e.backendFilters)||void 0===n?void 0:n["".concat(qe.w.FILTER_PARAM_PREFIX,"library")])||void 0===a?void 0:a.some)||void 0===r?void 0:r.call(a,(function(e){return e.toString()===t})))}(null===(n=e.exchangeLibraryId)||void 0===n?void 0:n.toString()),h=e.hasDataLoaded&&(null==d?void 0:d.length)&&e.showExchangeSearchResults&&!g,f=me.a.useBasicFetch(h&&We.searchV4(c.query,d,p,"false"!==c.allowSubstitute,null,10));function b(t){if(e.hasDataLoaded&&(null==d?void 0:d.length)){var n=Object.assign({},e.backendFilters);if(e.showExchangeSearchResults&&!g){var a="".concat(qe.w.FILTER_PARAM_PREFIX,"excludeLibraryExclusive");n=Object.assign(Object.assign({},n),function(e,t,n){return(t=function(e){var t=function(e){if("object"!=vt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=vt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==vt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},a,[].concat(function(e){if(Array.isArray(e))return yt(e)}(r=n[a])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return yt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yt(e,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[e.exchangeLibraryId])))}return We.searchV4(c.query,d,n,"false"!==c.allowSubstitute,t)}var r}function S(e){v(b(e))}var L=(0,ut.K)(b,S,(function(e,t){if(1===e)return(0,lt.r)(t);m.error(i.T.getPhrase(gt,"error"))}),(function(e){return e.results})),A=null===(r=L.items)||void 0===r?void 0:r.filter((function(e){return"video"===e._index||"clip"===e._index}));(0,dt.V)(A);var E=function(e){var t;return a.useMemo((function(){var t,n;if(!(null===(t=e.searchResults)||void 0===t?void 0:t.length)||!(null===(n=e.mixedExchangeSearchResults)||void 0===n?void 0:n.length)||"untouched"===e.groupingType)return e.searchResults;var a,r,i,s=function(e){if(Array.isArray(e))return mt(e)}(i=e.searchResults)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return mt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mt(e,t):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=[],l=!1;e.mixedExchangeSearchResults.forEach((function(e,t){var n,i,s;if(3!==o.length){if(u.M.isVideo(e)&&1===(null===(n=e.libraries.data)||void 0===n?void 0:n.length)&&(null===(s=null===(i=e.libraries.data)||void 0===i?void 0:i[0])||void 0===s?void 0:s.typeId)===pt.E.ExchangeCollection)return void 0===a&&(a=t,r=0,l=!0),l&&r++,void o.push(e);l=!1}}));var c={id:null,type:null,name:null,videos:o,showCount:0===a?1:r,isExchangeVideoGroup:!0,_index:null};return"group"===e.groupingType&&o.length&&s.splice(a,0,c),s}),[e.searchResultsResponse,null===(t=e.searchResults)||void 0===t?void 0:t.length,e.mixedExchangeSearchResults,e.groupingType])}({searchResults:L.items,mixedExchangeSearchResults:null===(s=f.data)||void 0===s?void 0:s.results,searchResultsResponse:y.data,groupingType:e.showExchangeSearchResults?g?"untouched":"group":"omit"});return Object.assign(Object.assign({},L),{hasFirstPageCompleted:L.hasFirstPageCompleted||!e.hasDataLoaded||!(null==d?void 0:d.length),items:E,fetchNext:S,substituteQuery:null===(o=y.data)||void 0===o?void 0:o.substituteQuery,suggestions:null===(l=y.data)||void 0===l?void 0:l.suggestions})}"".concat(qe.w.FILTER_PARAM_PREFIX,"indicesFilters");var ft=n(2948),bt=n(86702);function St(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Lt(e){var t,n,r=(t=(0,ft.D)(bt.y.SHOW_SEARCH_MASK,!0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return St(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?St(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=r[0],s=r[1];a.useEffect((function(){i&&e&&s(!1)}),[e])}var At=n(23232),Et=n(99742),kt="search.searchResultsEmptyState";function xt(e){var t,n,r=e.scotland&&"nessie"===(null===(n=null===(t=e.query)||void 0===t?void 0:t.trim())||void 0===n?void 0:n.toLowerCase())?Et.W.EmptyStates.Search.RESULTS_SCOTLAND:Et.W.EmptyStates.Search.RESULTS;return a.createElement(l.D.Provider,{value:kt},a.createElement(At.u,null,a.createElement(At.u.Image,{src:r}),a.createElement(At.u.Heading,null,e.query?a.createElement(l.x,{phrase:"headingWithQuery",options:{query:e.query}}):a.createElement(l.x,{phrase:"headingWithoutQuery"})),a.createElement(At.u.Info,null,a.createElement(l.x,{phrase:"info"}),a.createElement(h.F,{className:"info-link",appLink:{application:ce.O.SUBJECT,action:le.e.Subjects.PRESENTATION_TOPICS}},a.createElement(l.x,{phrase:"topicsAppLink"})))))}var Pt=i.T.encloseNamespace("search.searchResults");function Ot(e){var t,n,i,o,l,c,u,d,p,m,v,y,g=e.queryParams,h=void 0===g?{}:g,f=(0,de._)({location:de.i.VideoItem}),b=(0,pe.u)(s.LZ.VideoThumbnail),S=b.setFavourite,L=b.canFavourite,A=(0,ue.G)().isPlugin,E=(0,r.r)(null).hasTopicDirectories,k=ot(h),x=Qe.y.getBackendFilters(k),P=!!(null==x?void 0:x.appliedIndices.length),O=(y=P&&x,me.a.useBasicFetch(y&&We.tagsAndClassifications(y.queryParams.query,y.appliedIndices,y.backendFilters))),I=ht(Object.assign(Object.assign({},x),k)),C=Qe.y.getFilters(k,null==x?void 0:x.inaccessibleIndices,P&&O);(0,se.M)(oe.CG.getDefaultMetadata({title:null!==(t=h.query)&&void 0!==t?t:"",phraseContext:{phraseHandler:Pt,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},allowIndexing:!1}));var T=k.hasDataLoaded&&C,w=I.hasFirstPageCompleted&&(!k.topics||k.topics.hasCompleted)&&(!k.companies||k.companies.hasCompleted)&&(!P||O.hasCompleted)&&!!C,F=(null===(n=I.items)||void 0===n?void 0:n.length)||(null===(o=null===(i=k.topics)||void 0===i?void 0:i.data)||void 0===o?void 0:o.totalResults)||(null===(c=null===(l=k.companies)||void 0===l?void 0:l.data)||void 0===c?void 0:c.totalResults);return Lt(w),T?a.createElement("div",{className:"px-4"},a.createElement(te,{substitute:I.substituteQuery,queryParams:h,getAppLink:Qe.y.getSearchAppLink}),!I.substituteQuery&&a.createElement(ae,{suggestions:I.suggestions,queryParams:h,getAppLink:Qe.y.getSearchAppLink}),!!k.audiences.data&&!!k.ratings.data&&!!k.availableTopics.data&&a.createElement(K.J,{queryParams:h,mainFilters:null==C?void 0:C.mainFilters,moreFilters:null==C?void 0:C.moreFilters,analyticsOptions:{entity:s.py.SearchResults,location:s.LZ.SearchFilters},appLink:{application:ce.O.SEARCH,action:le.e.Search.HOME},isFetchingOptions:O.isFetching}),w&&a.createElement("section",null,F?a.createElement(ie.M.Provider,{value:f},a.createElement(X,{queryParams:h,results:I.items,topics:null===(u=k.topics)||void 0===u?void 0:u.data,companies:null===(d=k.companies)||void 0===d?void 0:d.data,setFavourite:S,canFavourite:L,audiences:!h.moviesAndTv&&k.audiences.data,currentUser:k.currentUser.data,imageCdnUrl:k.config.data.imageCdnUrl,availablePresentations:k.availablePresentations,showActions:!k.isLearner&&k.canUseSeriesActions,hasPermissions:k.hasPermissions,yearGroups:k.yearGroups.data,isPlugin:A,appLinks:Qe.y.getAppLinks(k.currentPresentation,k.availablePresentations,h.moviesAndTv),hasTopicDirectories:E,subTextType:"series"})):a.createElement(xt,{query:h.query,scotland:null!==(v=!!(null===(m=null===(p=k.currentPresentation)||void 0===p?void 0:p.description)||void 0===m?void 0:m.toLowerCase().includes("scotland")))&&void 0!==v&&v}),(I.hasMore||I.isFetching)&&a.createElement(re._,{isFetching:I.isFetching,fetchNext:I.fetchNext,nextCursor:I.nextCursor,fetchOnScroll:!0}))):a.createElement(a.Fragment,null)}var It=n(57900),Ct=n(68383);function Tt(e){return e.data&&e.data.length?a.createElement(a.Fragment,null,e.data.map((function(t,n){return a.createElement(Ct.L,{widgetCollection:xe.ku.Search,key:n,widgetIndex:n,id:n.toString(),name:t.name,content:t.content.data,templateId:t.templateId,widgetTypeId:t.widgetId,isPlugin:e.isPlugin,audiences:e.audiences,currentUser:e.currentUser,appLinks:e.widgetAppLinks,subTextType:e.subTextType,availablePresentations:e.availablePresentations,hasPermissions:e.hasPermissions,canFavourite:e.canFavourite,setFavourite:e.setFavourite,seeMoreLink:e.getSeeMoreLink(t),description:"",metadata:{},isPreviewing:!1,settings:void 0})}))):a.createElement(a.Fragment,null)}var wt=n(38143),Ft=n(27022),jt=n(69454),Nt="search.searchResultsEmptyState";function _t(e){var t,n,r=e.scotland&&"nessie"===(null===(n=null===(t=e.query)||void 0===t?void 0:t.trim())||void 0===n?void 0:n.toLowerCase())?Et.W.EmptyStates.Search.RESULTS_SCOTLAND:Et.W.EmptyStates.Search.RESULTS;return a.createElement(l.D.Provider,{value:Nt},a.createElement(At.u,null,a.createElement(At.u.Image,{src:r}),a.createElement(At.u.Heading,null,e.query?a.createElement(l.x,{phrase:"headingWithQuery",options:{query:e.query}}):a.createElement(l.x,{phrase:"headingWithoutQuery"})),a.createElement(At.u.Info,null,a.createElement(l.x,{phrase:"info"}),a.createElement(h.F,{className:"info-link",appLink:{application:ce.O.SUBJECT,action:le.e.Subjects.PRESENTATION_TOPICS}},a.createElement(l.x,{phrase:"topicsAppLink"})))))}var qt=n(75896),Vt=n(42308),Rt=n(45778),Mt=[Vt.z.SearchRelevantTopics,Vt.z.SearchCompanies,Vt.z.SearchPlaylists,Vt.z.SearchSeries,Vt.z.SearchTopResults,Vt.z.SearchMyVideos,Vt.z.SearchMyVideosFolder,Vt.z.SearchMySchoolLibraryVideos,Vt.z.SearchMySchoolLibraryFolder,Vt.z.SearchExchangeArchive,Vt.z.SearchRelatedResults];function Dt(e){var t,n=null===(t=e.queryParams)||void 0===t?void 0:t[e.key];return"string"==typeof n?n===e.value:!!Array.isArray(n)&&n.includes(e.value)}var Ut={isOnlyActiveWidget:function(e,t){var n=null==t?void 0:t.focus;return"string"==typeof n?n.toLowerCase()===e.toLowerCase():!!Array.isArray(n)&&1===n.length&&!!n.find((function(t){return t.toLowerCase()===e.toLowerCase()}))},getActiveWidgetFilters:function(e,t){var n=function(e){if(e&&e.length){var t;try{var n=JSON.parse(e);if(!n.cursor||!n.widgetTypeId)return;if(!Mt.includes(n.widgetTypeId))return;t=n}catch(e){return}return t}}(t);return n?[{id:n.widgetTypeId,cursor:n.cursor}]:function(e){var t=[],n=function(e){if(null==e?void 0:e.focus)return"string"==typeof e.focus?Mt.find((function(t){return t===e.focus})):Array.isArray(e.focus)&&1===e.focus.length?Mt.find((function(t){return t===e.focus[0]})):void 0}(e);return n?[n]:(Dt({key:"type",value:g.ZE.Classification,queryParams:e})&&t.push(Vt.z.SearchRelevantTopics),Dt({key:"type",value:g.ZE.Company,queryParams:e})&&t.push(Vt.z.SearchCompanies),Dt({key:"type",value:g.ZE.Series,queryParams:e})&&t.push(Vt.z.SearchSeries),Dt({key:"type",value:g.ZE.Playlist,queryParams:e})&&t.push(Vt.z.SearchPlaylists),Dt({key:"type",value:g.ZE.Category,queryParams:e})&&t.push(Vt.z.SearchMySchoolLibraryFolder,Vt.z.SearchMyVideosFolder),Dt({key:"source",value:g.fi.ExchangeArchive,queryParams:e})&&t.push(Vt.z.SearchExchangeArchive),Dt({key:"source",value:g.fi.MyVideos,queryParams:e})&&t.push(Vt.z.SearchMyVideos,Vt.z.SearchMyVideosFolder),Dt({key:"source",value:g.fi.ClickView,queryParams:e})&&t.push(Vt.z.SearchTopResults,Vt.z.SearchRelatedResults),Dt({key:"source",value:g.fi.School,queryParams:e})&&t.push(Vt.z.SearchMySchoolLibraryVideos,Vt.z.SearchMySchoolLibraryFolder),(Dt({key:"type",value:g.ZE.Video,queryParams:e})||Dt({key:"type",value:g.ZE.Clip,queryParams:e})||Dt({key:"type",value:g.ZE.Interactive,queryParams:e}))&&t.push(Vt.z.SearchTopResults,Vt.z.SearchRelatedResults,Vt.z.SearchMySchoolLibraryVideos,Vt.z.SearchMyVideos,Vt.z.SearchExchangeArchive),qt.m.uniq(t))}(e).map((function(e){return{id:e}}))}};function Gt(e){return function(e){if(Array.isArray(e))return Bt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Bt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Zt=i.T.encloseNamespace("search.useGetSearchResultsV2"),zt=n(28400),Wt=n(17082),Ht=n(34181),Qt=n(22490),$t=n(8406),Jt=n(82431),Yt={getSearchWidgetAppLinks:function(e,t,n){return{classification:function(t){return Ht.L.getAppLink(t,e||{})},videoType:function(e,t){return Qt.W.getAppLink(e,Object.assign(Object.assign({},t),{includeContext:null==n?void 0:n.isAuthenticated}))},series:Jt.j.getSeriesAppLink,playlist:function(e){return{application:ce.O.PLAYLISTS,action:le.e.Playlists.PLAYLIST,args:[e.id,zt.m.slugify(e.name)]}},company:function(e){return{application:ce.O.MOVIES_AND_TV,action:le.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,zt.m.slugify(e.name)]}},folder:function(e,t){return(null==t?void 0:t.libraryId)?(0,$t.a)(null==t?void 0:t.libraryId,e,null):{application:ce.O.MY_VIDEOS,action:le.e.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,zt.m.slugify(e.name)]}},searchSettings:function(){return{application:ce.O.SETTINGS,action:le.e.Settings.SEARCH_SETTINGS}},searchHome:function(e){return{application:ce.O.SEARCH,action:le.e.Search.HOME,params:Object.assign(Object.assign({},t),e)}},classroomGuide:Qt.W.getClassroomGuideAppLink,interactiveGuidance:Qt.W.getInteractiveGuidanceAppLink,resourceGuidance:Qt.W.getResourceGuidanceAppLink}},getSeeMoreAppLink:function(e){var t;if(e.widget.content.cursor){var n=null===(t=Wt.u[e.widget.widgetId])||void 0===t?void 0:t.getCollectionAppLink;if(n&&!Ut.isOnlyActiveWidget(e.widget.widgetId,e.queryParams)&&(1!==e.data.length||e.data[0].widgetId!==e.widget.widgetId))return n(e.appLinks)}}};function Xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Kt=i.T.encloseNamespace("search.searchResultsV2");function en(e){var t,n,i,o,l=e.queryParams,c=void 0===l?{}:l;(0,se.M)(oe.CG.getDefaultMetadata({title:null!==(t=c.query)&&void 0!==t?t:"",phraseContext:{phraseHandler:Kt,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},allowIndexing:!1}));var u,d,p=(u=(0,ft.D)(wt.g.AUDIENCE_FILTER,void 0,{storage:It.Z1.SessionStorage}),d=1,function(e){if(Array.isArray(e))return e}(u)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(u,d)||function(e,t){if(e){if("string"==typeof e)return Xt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Xt(e,t):void 0}}(u,d)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],m=(0,de._)({location:de.i.VideoItem}),v=(0,pe.u)(s.LZ.VideoThumbnail),y=v.setFavourite,g=v.canFavourite,h=(0,ue.G)().isPlugin,f=function(e){var t,n,a,i,s,o,l=me.a.useBasicFetch(Ae.N.currentUser()),c=me.a.useBasicFetch((null===(t=l.data)||void 0===t?void 0:t.id)&&Ae.N.user(l.data.id)),u=me.a.useBasicFetch(be.L.config()),d=me.a.useBasicFetch((null===(n=l.data)||void 0===n?void 0:n.isAuthenticated)&&Se.h.yearGroups(l.data.customerId)),p=(0,ke.r)(),m=(0,r.r)(null),v=it(),y=v.hasLibrariesCompleted,g=v.libraries,h=v.exchangeLibraryId,f=v.streamableLibraryId,b=v.showExchangeSearchResults,S=(0,Ce.y)(),L=S.activePresentation,A=S.availablePresentations,E=S.getFallbackPresentation,k=S.hasPresentationsLoaded,x=L||E(),P=null==x?void 0:x.id,O=(0,Te.i)(),I=je(x),C=null===(i=null===(a=I.data)||void 0===a?void 0:a.schoolLevels)||void 0===i?void 0:i.map((function(e){return e.id})),T=me.a.useBasicFetch((null==I?void 0:I.data)&&fe.x.topicsFromAllAvailablePresentations(C)),w=st(),F=(0,Ee.T)(),j=F.hasPermissions,N=F.hasLocalPermissions,_=j(ye.C.StudentExperience),q=j(ye.C.ViewLibraries),V=j(ye.C.ViewMoviesTv);return{queryParams:e,currentUser:l,userDetails:c,yearGroups:d,products:p,settings:m,audiences:O,schoolLevels:I,currentPresentation:x,availablePresentations:A,availableTopics:T,ratings:w,moviesAndTvDashboard:(0,we.y)({targetType:xe.ku.MoviesAndTv,queryParams:e}).dashboard,currentPresentationId:P,isLearner:_,libraries:g,hasDataLoaded:O.hasCompleted&&k&&l.hasCompleted&&(!(null===(s=l.data)||void 0===s?void 0:s.isAuthenticated)||c.hasCompleted)&&w.hasCompleted&&u.hasCompleted&&A&&(!(null===(o=l.data)||void 0===o?void 0:o.isAuthenticated)||!p.isLoadingProducts)&&!m.isLoadingSettings&&y,exchangeLibraryId:h,streamableLibraryId:f,showExchangeSearchResults:b,hasPermissions:j,hasLocalPermissions:N,hasCustomLibraries:q,hasMoviesAndTv:V}}(c),b=Qe.y.getBackendFiltersV2(f),S=function(e){var t=e.queryParams,n=e.appliedIndices,a=e.backendFilters,r=me.a.useGetFetch(),i=(0,ct.Z)();function s(r){if(e.hasDataLoaded&&(null==n?void 0:n.length)){var i=Ut.getActiveWidgetFilters(t,r);return We.searchV5(t.query,a,i)}}function o(e){return r(s(e))}var l=(0,ut.K)(s,o,(function(e,t){if(1===e)return(0,lt.r)(t);i.error(Zt("error"))}),(function(e){return e.widgets}),(function(e){var t,n,a=Gt(e.widgets);if(a.length){var r=qt.m.last(a);if(null===(t=null==r?void 0:r.content)||void 0===t?void 0:t.cursor){var i={widgetTypeId:r.widgetId,cursor:null===(n=null==r?void 0:r.content)||void 0===n?void 0:n.cursor};return JSON.stringify(i)}}}));function c(t,n){return Pe.i.sortByLearningLevel(t,n,e.availablePresentations)}var u,d=(u=function(e){if(e){var t=Gt(e),n=qt.m.groupBy(t,"widgetId");return Object.keys(n).map((function(e){var t;return n[e].forEach((function(e){var n;t=Object.assign(Object.assign({},e),{content:Object.assign(Object.assign({},e.content),{data:[].concat(Gt((null===(n=null==t?void 0:t.content)||void 0===n?void 0:n.data)?t.content.data:[]),Gt(e.content.data))})})})),t}))}}(l.items),u&&u.length?u.map((function(e){if(e.widgetId!==Vt.z.SearchRelevantTopics)return e;var n=e.content.data.slice(0,6),a=e.content.data.slice(6),r=[],i=[];return n.forEach((function(e){var n,a;Rt.G.isClassification(e)&&((null===(n=null==e?void 0:e.name)||void 0===n?void 0:n.toLowerCase())!==(null===(a=null==t?void 0:t.query)||void 0===a?void 0:a.toLowerCase())?i.push(e):r.push(e))})),r.sort(c),i.sort(c),Object.assign(Object.assign({},e),{content:Object.assign(Object.assign({},e.content),{data:[].concat(r,i,Gt(a))})})}),[]):u);return Object.assign(Object.assign({},l),{items:d,fetchNext:o})}(Object.assign(Object.assign({},b),f)),L=Qe.y.getFilters(f,null==b?void 0:b.inaccessibleIndices,null,!0),A=f.hasDataLoaded&&L,E=S.hasFirstPageCompleted&&!!L,k=null===(n=S.items)||void 0===n?void 0:n.length,x=Yt.getSearchWidgetAppLinks(jt.T.getAudienceParams(p),c,null===(i=f.currentUser)||void 0===i?void 0:i.data);return Lt(E),A?a.createElement("div",{className:"px-4"},!!f.audiences.data&&!!f.ratings.data&&!!f.availableTopics.data&&a.createElement(K.J,{queryParams:c,mainFilters:null==L?void 0:L.mainFilters,moreFilters:null==L?void 0:L.moreFilters,analyticsOptions:{entity:s.py.SearchResults,location:s.LZ.SearchFilters},appLink:{application:ce.O.SEARCH,action:le.e.Search.HOME},_hasNewSearch:!0}),E&&a.createElement("section",null,k?a.createElement(ie.M.Provider,{value:m},a.createElement(Tt,{data:S.items,widgetAppLinks:x,audiences:f.audiences.data,isPlugin:h,subTextType:"series",availablePresentations:f.availablePresentations,yearGroups:f.yearGroups.data,currentUser:f.currentUser.data,getSeeMoreLink:function(e){return Yt.getSeeMoreAppLink({widget:e,queryParams:c,data:S.items,appLinks:x})},setFavourite:y,canFavourite:g,hasPermissions:f.hasPermissions,hasLocalPermissions:f.hasLocalPermissions}),(S.isFetching||S.nextCursor)&&a.createElement(re._,{isFetching:S.isFetching,fetchNext:S.fetchNext,nextCursor:S.nextCursor,fetchOnScroll:!0})):a.createElement(_t,{query:c.query,scotland:(null===(o=f.currentUser.data)||void 0===o?void 0:o.contentRegion)===Ft.t.SCOT}))):a.createElement(a.Fragment,null)}function tn(e){var t=e.queryParams,n=void 0===t?{}:t;return(0,r.r)(null).hasNewSearch?a.createElement(en,{queryParams:n}):a.createElement(Ot,{queryParams:n})}},24965:(e,t,n)=>{n.d(t,{Z:()=>r});var a=n(97395),r={ratings:function(e){return{url:"/api/domain/v2/me/ratings",publicUrl:a._.urlBuilder("/api/domain/v2/me/ratings",{countryCode:e}),key:"ratings",formatData:function(e){return e.sort((function(e,t){return e.value-t.value}))}}}}},44110:(e,t,n)=>{n.d(t,{i:()=>s});var a=n(20354),r=n(89454),i=n(86698),s=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,s=t||n();return a.a.useBasicFetch(!!s&&r.O.presentationAudiences(s.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>m});var a=n(32735),r=n(20354),i=n(75896),s=n(21750),o=n(31949),l=n(1575),c=n(31908);function u(e,t){if(e){if("string"==typeof e)return d(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var p=50;function m(e){var t,n,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},v=r.a.useBasicFetch(o.N.currentUser()),y=a.useRef(new Set),g=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),h=g.map((function(e){return e.id})),f=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,n)||u(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=f[0],S=f[1];a.useEffect((function(){if((null==h?void 0:h.length)&&v.hasCompleted){var e=[];h.forEach((function(t){y.current.has(t)||(e.push(t),y.current.add(t))})),e.length&&S((function(t){var n=function(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t);return i.m.chunk(e,p).forEach((function(e){var t;n.push(l.R.videoMixinAssocs(e,m.flightNamespace)),(null===(t=v.data)||void 0===t?void 0:t.isAuthenticated)&&n.push(s.x.hasCurriculumLinks(e,null,m.flightNamespace))})),n}))}}),[null==h?void 0:h.length,v.hasCompleted]),r.a.useBasicFetchAll(b)}}}]);
2
- //# sourceMappingURL=5201-7d3867d027-lite.chunk.js.map