@clickview/lite 0.73.1 → 0.74.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/{7122-lite-a094f8fe17.chunk.css → 7122-lite-e0652641e4.chunk.css} +1 -1
  3. package/dist/css/{4499-lite-c43d17524f.chunk.css → 7150-lite-60d455ba66.chunk.css} +1 -1
  4. package/dist/css/{lite-app-10d57977f3.css → lite-app-98b3200025.css} +1 -1
  5. package/dist/languages/en.json +1 -1
  6. package/dist/scripts/{1362-061cd588c0-lite.chunk.js → 1362-56810ef4c8-lite.chunk.js} +3 -3
  7. package/dist/scripts/1362-56810ef4c8-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{1367-12750422b0-lite.chunk.js → 1367-e0481edee3-lite.chunk.js} +2 -2
  9. package/dist/scripts/1367-e0481edee3-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{1735-c0f3f1238a-lite.chunk.js → 1735-e4cdbc46ed-lite.chunk.js} +3 -3
  11. package/dist/scripts/1735-e4cdbc46ed-lite.chunk.js.map +1 -0
  12. package/dist/scripts/{324-6d6ee95d5d-lite.chunk.js → 324-e7a99b7d52-lite.chunk.js} +2 -2
  13. package/dist/scripts/{324-6d6ee95d5d-lite.chunk.js.map → 324-e7a99b7d52-lite.chunk.js.map} +1 -1
  14. package/dist/scripts/{3252-22fac3da15-lite.chunk.js → 3252-50b5c19f19-lite.chunk.js} +1 -1
  15. package/dist/scripts/{3252-22fac3da15-lite.chunk.js.map → 3252-50b5c19f19-lite.chunk.js.map} +1 -1
  16. package/dist/scripts/3677-4904f30c6a-lite.chunk.js +2 -0
  17. package/dist/scripts/3677-4904f30c6a-lite.chunk.js.map +1 -0
  18. package/dist/scripts/{3781-7a9ddc7736-lite.chunk.js → 3781-e092f92668-lite.chunk.js} +2 -2
  19. package/dist/scripts/{3781-7a9ddc7736-lite.chunk.js.map → 3781-e092f92668-lite.chunk.js.map} +1 -1
  20. package/dist/scripts/{3823-e38a508a3c-lite.chunk.js → 3823-0dc1972eb2-lite.chunk.js} +2 -2
  21. package/dist/scripts/3823-0dc1972eb2-lite.chunk.js.map +1 -0
  22. package/dist/scripts/3915-abd9a65a08-lite.chunk.js +2 -0
  23. package/dist/scripts/3915-abd9a65a08-lite.chunk.js.map +1 -0
  24. package/dist/scripts/{3978-09fb1f250e-lite.chunk.js → 3978-a551dd2648-lite.chunk.js} +2 -2
  25. package/dist/scripts/3978-a551dd2648-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{4013-d31272b42a-lite.chunk.js → 4013-6f68d7031e-lite.chunk.js} +1 -1
  27. package/dist/scripts/{4013-d31272b42a-lite.chunk.js.map → 4013-6f68d7031e-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{4014-4225ce1eb6-lite.chunk.js → 4014-3eccce2f89-lite.chunk.js} +3 -3
  29. package/dist/scripts/4014-3eccce2f89-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js → 4050-ffe5b6ae6d-lite.chunk.js} +2 -2
  31. package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js.map → 4050-ffe5b6ae6d-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{4061-525ef00f69-lite.chunk.js → 4061-100002abf6-lite.chunk.js} +2 -2
  33. package/dist/scripts/4061-100002abf6-lite.chunk.js.map +1 -0
  34. package/dist/scripts/4191-9a08c4b205-lite.chunk.js +2 -0
  35. package/dist/scripts/4191-9a08c4b205-lite.chunk.js.map +1 -0
  36. package/dist/scripts/{4358-b21c24f96a-lite.chunk.js → 4358-a1bbca8249-lite.chunk.js} +1 -1
  37. package/dist/scripts/{4358-b21c24f96a-lite.chunk.js.map → 4358-a1bbca8249-lite.chunk.js.map} +1 -1
  38. package/dist/scripts/{4400-8c36fb4ab5-lite.chunk.js → 4400-755a158a52-lite.chunk.js} +2 -2
  39. package/dist/scripts/4400-755a158a52-lite.chunk.js.map +1 -0
  40. package/dist/scripts/4806-13c9302b2c-lite.chunk.js +2 -0
  41. package/dist/scripts/4806-13c9302b2c-lite.chunk.js.map +1 -0
  42. package/dist/scripts/{5135-864055ab0b-lite.chunk.js → 5135-166ec46620-lite.chunk.js} +2 -2
  43. package/dist/scripts/5135-166ec46620-lite.chunk.js.map +1 -0
  44. package/dist/scripts/{5143-286c66de2b-lite.chunk.js → 5143-d6c4a357ea-lite.chunk.js} +2 -2
  45. package/dist/scripts/5143-d6c4a357ea-lite.chunk.js.map +1 -0
  46. package/dist/scripts/{5743-a764171a6d-lite.chunk.js → 5743-14700e4f76-lite.chunk.js} +2 -2
  47. package/dist/scripts/5743-14700e4f76-lite.chunk.js.map +1 -0
  48. package/dist/scripts/{6030-5db8cc1bc4-lite.chunk.js → 6030-c2e07df714-lite.chunk.js} +2 -2
  49. package/dist/scripts/6030-c2e07df714-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{618-4334f9451b-lite.chunk.js → 618-996d8b560b-lite.chunk.js} +2 -2
  51. package/dist/scripts/618-996d8b560b-lite.chunk.js.map +1 -0
  52. package/dist/scripts/{6207-f444184025-lite.chunk.js → 6207-be843186e0-lite.chunk.js} +1 -1
  53. package/dist/scripts/{6207-f444184025-lite.chunk.js.map → 6207-be843186e0-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{6413-c4333e80d4-lite.chunk.js → 6413-caaae6a383-lite.chunk.js} +3 -3
  55. package/dist/scripts/{6413-c4333e80d4-lite.chunk.js.map → 6413-caaae6a383-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{6646-24a34f7d99-lite.chunk.js → 6646-c5775f6553-lite.chunk.js} +3 -3
  57. package/dist/scripts/6646-c5775f6553-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{6909-8a45942b63-lite.chunk.js → 6909-6805b6a0d9-lite.chunk.js} +2 -2
  59. package/dist/scripts/6909-6805b6a0d9-lite.chunk.js.map +1 -0
  60. package/dist/scripts/7064-b3bafc599f-lite.chunk.js +2 -0
  61. package/dist/scripts/7064-b3bafc599f-lite.chunk.js.map +1 -0
  62. package/dist/scripts/7122-dbf374af58-lite.chunk.js +2 -0
  63. package/dist/scripts/7122-dbf374af58-lite.chunk.js.map +1 -0
  64. package/dist/scripts/7150-93a205975c-lite.chunk.js +2 -0
  65. package/dist/scripts/7150-93a205975c-lite.chunk.js.map +1 -0
  66. package/dist/scripts/{7234-85d4acaa33-lite.chunk.js → 7234-bcddfe2112-lite.chunk.js} +2 -2
  67. package/dist/scripts/7234-bcddfe2112-lite.chunk.js.map +1 -0
  68. package/dist/scripts/{7383-690bc234f1-lite.chunk.js → 7383-02d4956304-lite.chunk.js} +2 -2
  69. package/dist/scripts/7383-02d4956304-lite.chunk.js.map +1 -0
  70. package/dist/scripts/{7873-2e64f4eb37-lite.chunk.js → 7873-0ce0523a28-lite.chunk.js} +2 -2
  71. package/dist/scripts/{7873-2e64f4eb37-lite.chunk.js.map → 7873-0ce0523a28-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/{8248-050265ed2d-lite.chunk.js → 8248-41dad9bf71-lite.chunk.js} +3 -3
  73. package/dist/scripts/8248-41dad9bf71-lite.chunk.js.map +1 -0
  74. package/dist/scripts/8385-6ef08fa319-lite.chunk.js +2 -0
  75. package/dist/scripts/8385-6ef08fa319-lite.chunk.js.map +1 -0
  76. package/dist/scripts/{8451-1cb649a3f3-lite.chunk.js → 8451-0103210a8f-lite.chunk.js} +2 -2
  77. package/dist/scripts/8451-0103210a8f-lite.chunk.js.map +1 -0
  78. package/dist/scripts/8630-80f676dcda-lite.chunk.js +2 -0
  79. package/dist/scripts/8630-80f676dcda-lite.chunk.js.map +1 -0
  80. package/dist/scripts/8891-5118c47b59-lite.chunk.js +2 -0
  81. package/dist/scripts/8891-5118c47b59-lite.chunk.js.map +1 -0
  82. package/dist/scripts/8982-b9e53e43ec-lite.chunk.js +2 -0
  83. package/dist/scripts/8982-b9e53e43ec-lite.chunk.js.map +1 -0
  84. package/dist/scripts/{9186-daf77d7174-lite.chunk.js → 9186-c1d2615458-lite.chunk.js} +2 -2
  85. package/dist/scripts/9186-c1d2615458-lite.chunk.js.map +1 -0
  86. package/dist/scripts/{9241-dbac9cb9f9-lite.chunk.js → 9241-2386134dd3-lite.chunk.js} +2 -2
  87. package/dist/scripts/9241-2386134dd3-lite.chunk.js.map +1 -0
  88. package/dist/scripts/{9345-30ccf524c5-lite.chunk.js → 9345-0a7f58bb53-lite.chunk.js} +3 -3
  89. package/dist/scripts/9345-0a7f58bb53-lite.chunk.js.map +1 -0
  90. package/dist/scripts/9352-d4b2dc16a8-lite.chunk.js +2 -0
  91. package/dist/scripts/9352-d4b2dc16a8-lite.chunk.js.map +1 -0
  92. package/dist/scripts/{9503-275c13891d-lite.chunk.js → 9503-715c46ecc1-lite.chunk.js} +2 -2
  93. package/dist/scripts/9503-715c46ecc1-lite.chunk.js.map +1 -0
  94. package/dist/scripts/9630-ca2a850260-lite.chunk.js +2 -0
  95. package/dist/scripts/9630-ca2a850260-lite.chunk.js.map +1 -0
  96. package/dist/scripts/{9767-d69fdc31b0-lite.chunk.js → 9767-1b583ceb6c-lite.chunk.js} +2 -2
  97. package/dist/scripts/9767-1b583ceb6c-lite.chunk.js.map +1 -0
  98. package/dist/scripts/9894-7c119a8fe3-lite.chunk.js +2 -0
  99. package/dist/scripts/9894-7c119a8fe3-lite.chunk.js.map +1 -0
  100. package/dist/scripts/bundle-5b65703152.min.js +3 -0
  101. package/dist/scripts/{bundle-0075afb6af.min.js.map → bundle-5b65703152.min.js.map} +1 -1
  102. package/package.json +1 -1
  103. package/dist/scripts/1362-061cd588c0-lite.chunk.js.map +0 -1
  104. package/dist/scripts/1367-12750422b0-lite.chunk.js.map +0 -1
  105. package/dist/scripts/1735-c0f3f1238a-lite.chunk.js.map +0 -1
  106. package/dist/scripts/3677-20958f59d3-lite.chunk.js +0 -2
  107. package/dist/scripts/3677-20958f59d3-lite.chunk.js.map +0 -1
  108. package/dist/scripts/3823-e38a508a3c-lite.chunk.js.map +0 -1
  109. package/dist/scripts/3915-a1f15d687a-lite.chunk.js +0 -2
  110. package/dist/scripts/3915-a1f15d687a-lite.chunk.js.map +0 -1
  111. package/dist/scripts/3978-09fb1f250e-lite.chunk.js.map +0 -1
  112. package/dist/scripts/4014-4225ce1eb6-lite.chunk.js.map +0 -1
  113. package/dist/scripts/4061-525ef00f69-lite.chunk.js.map +0 -1
  114. package/dist/scripts/4191-7612e1713c-lite.chunk.js +0 -2
  115. package/dist/scripts/4191-7612e1713c-lite.chunk.js.map +0 -1
  116. package/dist/scripts/4400-8c36fb4ab5-lite.chunk.js.map +0 -1
  117. package/dist/scripts/4499-1365934bf2-lite.chunk.js +0 -2
  118. package/dist/scripts/4499-1365934bf2-lite.chunk.js.map +0 -1
  119. package/dist/scripts/4806-384760d9c9-lite.chunk.js +0 -2
  120. package/dist/scripts/4806-384760d9c9-lite.chunk.js.map +0 -1
  121. package/dist/scripts/5135-864055ab0b-lite.chunk.js.map +0 -1
  122. package/dist/scripts/5143-286c66de2b-lite.chunk.js.map +0 -1
  123. package/dist/scripts/5743-a764171a6d-lite.chunk.js.map +0 -1
  124. package/dist/scripts/6030-5db8cc1bc4-lite.chunk.js.map +0 -1
  125. package/dist/scripts/618-4334f9451b-lite.chunk.js.map +0 -1
  126. package/dist/scripts/6646-24a34f7d99-lite.chunk.js.map +0 -1
  127. package/dist/scripts/6909-8a45942b63-lite.chunk.js.map +0 -1
  128. package/dist/scripts/7064-3ccf1b82d1-lite.chunk.js +0 -2
  129. package/dist/scripts/7064-3ccf1b82d1-lite.chunk.js.map +0 -1
  130. package/dist/scripts/7122-352fdd3516-lite.chunk.js +0 -2
  131. package/dist/scripts/7122-352fdd3516-lite.chunk.js.map +0 -1
  132. package/dist/scripts/7234-85d4acaa33-lite.chunk.js.map +0 -1
  133. package/dist/scripts/7383-690bc234f1-lite.chunk.js.map +0 -1
  134. package/dist/scripts/8248-050265ed2d-lite.chunk.js.map +0 -1
  135. package/dist/scripts/8385-083e882d77-lite.chunk.js +0 -2
  136. package/dist/scripts/8385-083e882d77-lite.chunk.js.map +0 -1
  137. package/dist/scripts/8451-1cb649a3f3-lite.chunk.js.map +0 -1
  138. package/dist/scripts/8630-0945271ea2-lite.chunk.js +0 -2
  139. package/dist/scripts/8630-0945271ea2-lite.chunk.js.map +0 -1
  140. package/dist/scripts/8891-393bb5bdaf-lite.chunk.js +0 -2
  141. package/dist/scripts/8891-393bb5bdaf-lite.chunk.js.map +0 -1
  142. package/dist/scripts/8982-8c21fab48a-lite.chunk.js +0 -2
  143. package/dist/scripts/8982-8c21fab48a-lite.chunk.js.map +0 -1
  144. package/dist/scripts/9186-daf77d7174-lite.chunk.js.map +0 -1
  145. package/dist/scripts/9241-dbac9cb9f9-lite.chunk.js.map +0 -1
  146. package/dist/scripts/9345-30ccf524c5-lite.chunk.js.map +0 -1
  147. package/dist/scripts/9352-04db4c533d-lite.chunk.js +0 -2
  148. package/dist/scripts/9352-04db4c533d-lite.chunk.js.map +0 -1
  149. package/dist/scripts/9503-275c13891d-lite.chunk.js.map +0 -1
  150. package/dist/scripts/9630-285237c980-lite.chunk.js +0 -2
  151. package/dist/scripts/9630-285237c980-lite.chunk.js.map +0 -1
  152. package/dist/scripts/9767-d69fdc31b0-lite.chunk.js.map +0 -1
  153. package/dist/scripts/9894-10943e41f7-lite.chunk.js +0 -2
  154. package/dist/scripts/9894-10943e41f7-lite.chunk.js.map +0 -1
  155. package/dist/scripts/bundle-0075afb6af.min.js +0 -3
  156. /package/dist/scripts/{1362-061cd588c0-lite.chunk.js.LICENSE.txt → 1362-56810ef4c8-lite.chunk.js.LICENSE.txt} +0 -0
  157. /package/dist/scripts/{1735-c0f3f1238a-lite.chunk.js.LICENSE.txt → 1735-e4cdbc46ed-lite.chunk.js.LICENSE.txt} +0 -0
  158. /package/dist/scripts/{4014-4225ce1eb6-lite.chunk.js.LICENSE.txt → 4014-3eccce2f89-lite.chunk.js.LICENSE.txt} +0 -0
  159. /package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js.LICENSE.txt → 4050-ffe5b6ae6d-lite.chunk.js.LICENSE.txt} +0 -0
  160. /package/dist/scripts/{6413-c4333e80d4-lite.chunk.js.LICENSE.txt → 6413-caaae6a383-lite.chunk.js.LICENSE.txt} +0 -0
  161. /package/dist/scripts/{6646-24a34f7d99-lite.chunk.js.LICENSE.txt → 6646-c5775f6553-lite.chunk.js.LICENSE.txt} +0 -0
  162. /package/dist/scripts/{8248-050265ed2d-lite.chunk.js.LICENSE.txt → 8248-41dad9bf71-lite.chunk.js.LICENSE.txt} +0 -0
  163. /package/dist/scripts/{9345-30ccf524c5-lite.chunk.js.LICENSE.txt → 9345-0a7f58bb53-lite.chunk.js.LICENSE.txt} +0 -0
  164. /package/dist/scripts/{bundle-0075afb6af.min.js.LICENSE.txt → bundle-5b65703152.min.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3823],{54135:(e,t,n)=>{n.d(t,{e:()=>o});var r=n(32735),a=n(23481),i=n(91967);const l={disabled:"pERi4",disabledHighlighted:"AxyWm",badge:"KmfP8"};var c=a.T.encloseNamespace("shared.audienceItem");function o(e){var t=e.audience,n=e.highlight,a=e.setAudience,o=e.isDisabled,s=e.extraClasses,u=function(e,t){return e?t?"".concat(l.disabledHighlighted," text-light"):"bg-gray-900 text-light":t?"".concat(l.disabled," text-secondary"):"bg-light"}(n,o),d=o?"cursor-default":"cursor-pointer",f="".concat(l.badge," lh-1 rounded-pill d-inline-block me-1 user-select-none ").concat(d," ").concat(u," ").concat(s);return r.createElement("button",{type:"button",className:f,onClick:function(){!o&&i.q.isFunction(a)&&a(t,!n)},role:"checkbox","aria-checked":n,"aria-label":"".concat(c("ariaFilter")," ").concat(t.name),disabled:o},t.name.split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.substring(1)})).join(" "))}o.defaultProps={extraClasses:""}},60836:(e,t,n)=>{n.d(t,{j:()=>i});var r=n(32735);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var i=function(e){var t,n,i=(t=r.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 r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return a(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)?a(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=i[0],c=i[1];return r.useEffect((function(){l>0||e()}),[l]),[function(){c((function(e){return e-1}))},c]}},61640:(e,t,n)=>{n.r(t),n.d(t,{AudiencePreferencesView:()=>D});var r=n(32735),a=n(70680),i=n(23481),l=n(81886),c=n(20354),o=n(65858),s=n(75896),u=n(54135);function d(e){var t=e.width,n=void 0===t?90:t,a=e.height,i=void 0===a?35:a,l=e.count,c=void 0===l?5:l,o=e.align,s="center"===(void 0===o?"left":o)?"justify-content-center":"justify-content-start";return r.createElement("ul",{className:"d-flex flex-wrap ps-0 m-0 ".concat(s)},Array(c).fill(null).map((function(e,t){return r.createElement("li",{key:t,className:"partial-loading-background mx-1 mb-1 rounded-pill list-unstyled",style:{height:"".concat(i,"px"),width:"".concat(n,"px")}})})))}var f=n(8835),m=n(49602),p=n(15611),v=n(2102),h=n(83345),b=n(83523),g=n(69883),y=n(60836);const k={audienceList:"gGUpk",imageContainer:"mLKC0"};function E(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||x(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 S(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 r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(e,t)||x(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 x(e,t){if(e){if("string"==typeof e)return A(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)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var w="subjects.audiencePreferences";function C(e){var t=S(r.useState([]),2),n=t[0],a=t[1],c=S(r.useState(!1),2),o=c[0],d=c[1],x=S(r.useState(e.bulkPreferencesState),2),A=x[0],C=x[1],I=m.b.hasBulkSelectedLevels(A),P=(0,g.Z)();r.useEffect((function(){var t;if(null===(t=e.preselections)||void 0===t?void 0:t.length){var r=e.preselections.map((function(e){return e.masterId}));a(s.m.uniq([].concat(E(n),E(r))))}else a([])}),[]);var L=S((0,y.j)((function(){d(!1),e.isOnboarding||P.success(i.T.getPhrase(w,"success")),e.nextAppLink&&l.Q.C$.trigger(e.nextAppLink)})),2),N=L[0],j=L[1];function O(t){return!!e.preselections&&e.preselections.map((function(e){return e.masterId})).sort().toString()!==t.sort().toString()}function T(){return e.bulkPreferencesState!==A}function B(){if(!n.length&&!I)return!1;var t=T()||O(n);return!(!e.isOnboarding&&!t)}function F(e){var t=s.m.addOrRemoveImmutable(n,e.masterId);a(t)}function U(){var e=m.b.getNextBulkState(A,"audiences");C(e),m.b.hasBulkSelectedLevels(e)&&a([])}return r.createElement(h.D.Provider,{value:w},r.createElement("form",{className:"p-3"},r.createElement("div",{className:"position-relative"},r.createElement("ul",{className:"d-flex flex-wrap justify-content-center mx-auto mb-0 ps-0 py-3 ".concat(k.audienceList)},e.options.map((function(e){return r.createElement(u.e,{key:e.masterId,audience:e,highlight:n.includes(e.masterId),setAudience:F,isDisabled:I})})))),r.createElement(f.e,{justify:e.backButtonAppLink?"between":"end"},r.createElement("div",null,!!e.backButtonAppLink&&r.createElement(p.F,{appLink:e.backButtonAppLink,className:"btn btn-outline-dark"},r.createElement(h.x,{phrase:"back"}))),r.createElement("div",{className:"d-flex align-items-center justify-content-end"},r.createElement("div",{className:"d-flex me-3"},r.createElement("p",{onClick:U,className:"me-2 mb-0 fw-bold"},r.createElement(h.x,{phrase:"allLevels"})),r.createElement(b.Z,{onClick:U,on:I,hideOutline:!0})),r.createElement(v.m,{variant:"dark",disabled:!B(),onClick:function(){var t;if(B())if(O(n)||T()){d(!0);var r=n.filter((function(t){var n;return!(null===(n=e.preselections)||void 0===n?void 0:n.find((function(e){return e.masterId===t})))})).map((function(t){var n;return null===(n=e.options)||void 0===n?void 0:n.find((function(e){return e.masterId===t}))})),a=null===(t=e.preselections)||void 0===t?void 0:t.filter((function(e){return!n.includes(e.masterId)})),c=0;(null==r?void 0:r.length)&&c++,(null==a?void 0:a.length)&&c++,T()&&c++,j(c),e.saveChanges(r,a,A,N,(function(){P.error(i.T.getPhrase(w,"error")),d(!1)}))}else e.nextAppLink&&l.Q.C$.trigger(e.nextAppLink)},showSpinner:o},r.createElement(h.x,{phrase:e.isOnboarding?"next":"save"}))))))}function I(){return r.createElement("div",{className:"p-3"},r.createElement("div",{className:"w-100 mx-auto py-3"},r.createElement(d,{align:"center"})))}var P=n(77963),L=n(65728),N=n(61699),j=n(31949),O=n(79612),T=n(37802),B=n(69454),F=n(14070),U=n(97291),$=n(330),_="settings.audiencePreferences",R=i.T.encloseNamespace(_);function D(){var e,t=c.a.useBasicFetch(j.N.currentUser());(0,O.M)({title:R("pageTitle")});var n=c.a.useBasicFetch(N.o.availablePresentations()),i=c.a.useBasicFetch(N.o.allLevelPreferences()),s=c.a.useBasicFetch(N.o.myLevelPreferences()),u=(0,T.r)(o.LZ.PreferencesSettings),d=u.bulkOnboardingPreferencesState,f=u.isLoadingSettings,m=u.updateSetting,p=!!(null===(e=i.data)||void 0===e?void 0:e.length)&&B.T.shouldShowAudiences(i.data);r.useEffect((function(){i.hasCompleted&&(p||l.Q.C$.trigger({application:U.O.SETTINGS,action:F.e.Settings.TOPIC_PREFERENCES},{replace:!0}))}),[i.hasCompleted]);var v=(0,a.I0)(),b=!!i.hasCompleted&&!!s.hasCompleted&&!f;return r.createElement($.T,{availablePresentations:n.data,audiences:i.data},r.createElement("p",{className:"mt-3"},r.createElement(h.x,{namespace:_,phrase:"info"})),b&&p?r.createElement(C,{options:i.data,preselections:s.data,bulkPreferencesState:d,saveChanges:function(e,n,r,a,i){if(r!==d){var l={name:L.E.BulkOnboardingPreferencesState,value:r,kind:P.g.Permanent};m(t.data.id,l,a,i)}(null==e?void 0:e.length)&&c.a.fetch(v,N.o.followLevels(e,a,i)),(null==n?void 0:n.length)&&c.a.fetch(v,N.o.unfollowLevels(n,a,i))}}):r.createElement(I,null))}}}]);
2
- //# sourceMappingURL=3823-e38a508a3c-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3823],{54135:(e,t,n)=>{n.d(t,{e:()=>o});var r=n(32735),a=n(23481),i=n(91967);const l={disabled:"pERi4",disabledHighlighted:"AxyWm",badge:"KmfP8"};var c=a.T.encloseNamespace("shared.audienceItem");function o(e){var t=e.audience,n=e.highlight,a=e.setAudience,o=e.isDisabled,s=e.extraClasses,u=function(e,t){return e?t?"".concat(l.disabledHighlighted," text-light"):"bg-gray-900 text-light":t?"".concat(l.disabled," text-secondary"):"bg-light"}(n,o),d=o?"cursor-default":"cursor-pointer",f="".concat(l.badge," lh-1 rounded-pill d-inline-block me-1 user-select-none ").concat(d," ").concat(u," ").concat(s);return r.createElement("button",{type:"button",className:f,onClick:function(){!o&&i.q.isFunction(a)&&a(t,!n)},role:"checkbox","aria-checked":n,"aria-label":"".concat(c("ariaFilter")," ").concat(t.name),disabled:o},t.name.split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.substring(1)})).join(" "))}o.defaultProps={extraClasses:""}},60836:(e,t,n)=>{n.d(t,{j:()=>i});var r=n(32735);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var i=function(e){var t,n,i=(t=r.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 r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return a(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)?a(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=i[0],c=i[1];return r.useEffect((function(){l>0||e()}),[l]),[function(){c((function(e){return e-1}))},c]}},61640:(e,t,n)=>{n.r(t),n.d(t,{AudiencePreferencesView:()=>D});var r=n(32735),a=n(70680),i=n(23481),l=n(81886),c=n(20354),o=n(65858),s=n(75896),u=n(54135);function d(e){var t=e.width,n=void 0===t?90:t,a=e.height,i=void 0===a?35:a,l=e.count,c=void 0===l?5:l,o=e.align,s="center"===(void 0===o?"left":o)?"justify-content-center":"justify-content-start";return r.createElement("ul",{className:"d-flex flex-wrap ps-0 m-0 ".concat(s)},Array(c).fill(null).map((function(e,t){return r.createElement("li",{key:t,className:"partial-loading-background mx-1 mb-1 rounded-pill list-unstyled",style:{height:"".concat(i,"px"),width:"".concat(n,"px")}})})))}var f=n(8835),m=n(49602),p=n(15611),v=n(2102),h=n(83345),b=n(83523),g=n(69883),y=n(60836);const k={audienceList:"gGUpk",imageContainer:"mLKC0"};function E(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||x(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 S(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 r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(e,t)||x(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 x(e,t){if(e){if("string"==typeof e)return A(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)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var w="subjects.audiencePreferences";function C(e){var t=S(r.useState([]),2),n=t[0],a=t[1],c=S(r.useState(!1),2),o=c[0],d=c[1],x=S(r.useState(e.bulkPreferencesState),2),A=x[0],C=x[1],I=m.b.hasBulkSelectedLevels(A),L=(0,g.Z)();r.useEffect((function(){var t;if(null===(t=e.preselections)||void 0===t?void 0:t.length){var r=e.preselections.map((function(e){return e.masterId}));a(s.m.uniq([].concat(E(n),E(r))))}else a([])}),[]);var P=S((0,y.j)((function(){d(!1),e.isOnboarding||L.success(i.T.getPhrase(w,"success")),e.nextAppLink&&l.Q.C$.trigger(e.nextAppLink)})),2),N=P[0],j=P[1];function O(t){return!!e.preselections&&e.preselections.map((function(e){return e.masterId})).sort().toString()!==t.sort().toString()}function T(){return e.bulkPreferencesState!==A}function B(){if(!n.length&&!I)return!1;var t=T()||O(n);return!(!e.isOnboarding&&!t)}function F(e){var t=s.m.addOrRemoveImmutable(n,e.masterId);a(t)}function U(){var e=m.b.getNextBulkState(A,"audiences");C(e),m.b.hasBulkSelectedLevels(e)&&a([])}return r.createElement(h.D.Provider,{value:w},r.createElement("form",{className:"p-3"},r.createElement("div",{className:"position-relative"},r.createElement("ul",{className:"d-flex flex-wrap justify-content-center mx-auto mb-0 ps-0 py-3 ".concat(k.audienceList)},e.options.map((function(e){return r.createElement(u.e,{key:e.masterId,audience:e,highlight:n.includes(e.masterId),setAudience:F,isDisabled:I})})))),r.createElement(f.e,{justify:e.backButtonAppLink?"between":"end"},r.createElement("div",null,!!e.backButtonAppLink&&r.createElement(p.F,{appLink:e.backButtonAppLink,className:"btn btn-outline-dark"},r.createElement(h.x,{phrase:"back"}))),r.createElement("div",{className:"d-flex align-items-center justify-content-end"},r.createElement("div",{className:"d-flex me-3"},r.createElement("p",{onClick:U,className:"me-2 mb-0 fw-bold"},r.createElement(h.x,{phrase:"allLevels"})),r.createElement(b.Z,{onClick:U,on:I,hideOutline:!0})),r.createElement(v.m,{variant:"dark",disabled:!B(),onClick:function(){var t;if(B())if(O(n)||T()){d(!0);var r=n.filter((function(t){var n;return!(null===(n=e.preselections)||void 0===n?void 0:n.find((function(e){return e.masterId===t})))})).map((function(t){var n;return null===(n=e.options)||void 0===n?void 0:n.find((function(e){return e.masterId===t}))})),a=null===(t=e.preselections)||void 0===t?void 0:t.filter((function(e){return!n.includes(e.masterId)})),c=0;(null==r?void 0:r.length)&&c++,(null==a?void 0:a.length)&&c++,T()&&c++,j(c),e.saveChanges(r,a,A,N,(function(){L.error(i.T.getPhrase(w,"error")),d(!1)}))}else e.nextAppLink&&l.Q.C$.trigger(e.nextAppLink)},showSpinner:o},r.createElement(h.x,{phrase:e.isOnboarding?"next":"save"}))))))}function I(){return r.createElement("div",{className:"p-3"},r.createElement("div",{className:"w-100 mx-auto py-3"},r.createElement(d,{align:"center"})))}var L=n(77963),P=n(65728),N=n(61699),j=n(31949),O=n(79612),T=n(37802),B=n(69454),F=n(14070),U=n(97291),$=n(330),_="settings.audiencePreferences",R=i.T.encloseNamespace(_);function D(){var e,t=c.a.useBasicFetch(j.N.currentUser());(0,O.M)({title:R("pageTitle")});var n=c.a.useBasicFetch(N.o.availablePresentations()),i=c.a.useBasicFetch(N.o.allLevelPreferences()),s=c.a.useBasicFetch(N.o.myLevelPreferences()),u=(0,T.r)(o.LZ.PreferencesSettings),d=u.bulkOnboardingPreferencesState,f=u.isLoadingSettings,m=u.updateSetting,p=!!(null===(e=i.data)||void 0===e?void 0:e.length)&&B.T.shouldShowAudiences(i.data);r.useEffect((function(){i.hasCompleted&&(p||l.Q.C$.trigger({application:U.O.SETTINGS,action:F.e.Settings.TOPIC_PREFERENCES},{replace:!0}))}),[i.hasCompleted]);var v=(0,a.I0)(),b=!!i.hasCompleted&&!!s.hasCompleted&&!f;return r.createElement($.T,{availablePresentations:n.data,audiences:i.data},r.createElement("p",{className:"mt-3"},r.createElement(h.x,{namespace:_,phrase:"info"})),b&&p?r.createElement(C,{options:i.data,preselections:s.data,bulkPreferencesState:d,saveChanges:function(e,n,r,a,i){if(r!==d){var l={name:P.E.BulkOnboardingPreferencesState,value:r,kind:L.g.Setting};m(t.data.id,l,a,i)}(null==e?void 0:e.length)&&c.a.fetch(v,N.o.followLevels(e,a,i)),(null==n?void 0:n.length)&&c.a.fetch(v,N.o.unfollowLevels(n,a,i))}}):r.createElement(I,null))}}}]);
2
+ //# sourceMappingURL=3823-0dc1972eb2-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3823-0dc1972eb2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/subjects/components/audience-item/audience-item.scss","file:///app/packages/libs/shared/src/apps/subjects/components/audience-item/AudienceItem.tsx","file:///app/packages/libs/shared/src/hooks/UseOnSaveAll.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/audience-item/partial-loading/PartialAudiences.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/audience-preferences/audience-preferences.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/audience-preferences/AudiencePreferences.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/audience-preferences/partial-loading/PartialAudiencePreferences.tsx","file:///app/packages/projects/lite/src/apps/settings/views/preferences/audiences/AudiencePreferencesView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"disabled\":\"pERi4\",\"disabledHighlighted\":\"AxyWm\",\"badge\":\"KmfP8\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport styles from './audience-item.scss';\n\nconst namespace = 'shared.audienceItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction lowerCaseToTitleCase(str: string): string {\n return str.split(' ').map((s: string) => s.charAt(0).toUpperCase() + s.substring(1)).join(' ');\n}\n\nfunction getColourClass(highlight: boolean, isDisabled: boolean): string {\n if (highlight) return isDisabled ? `${styles.disabledHighlighted} text-light` : 'bg-gray-900 text-light';\n if (isDisabled) return `${styles.disabled} text-secondary`;\n return 'bg-light';\n}\n\ninterface AudienceItemProps {\n audience: PresentationAudience;\n highlight: boolean;\n setAudience?: (audience: PresentationAudience, highlight: boolean) => void;\n isDisabled?: boolean;\n extraClasses?: string;\n}\n\nAudienceItem.defaultProps = {\n extraClasses: ''\n};\n\nexport function AudienceItem(props: AudienceItemProps): React.ReactElement {\n const { audience, highlight, setAudience, isDisabled, extraClasses } = props;\n\n const colourClass = getColourClass(highlight, isDisabled);\n const cursorClass = isDisabled ? 'cursor-default' : 'cursor-pointer';\n const className = `${styles.badge} lh-1 rounded-pill d-inline-block me-1 user-select-none ${cursorClass} ${colourClass} ${extraClasses}`;\n\n const onClick = () => {\n if (isDisabled || !FunctionHelper.isFunction(setAudience))\n return;\n\n setAudience(audience, !highlight);\n };\n\n return (\n <button\n type='button'\n className={className}\n onClick={onClick}\n role='checkbox'\n aria-checked={highlight}\n aria-label={`${getPhrase('ariaFilter')} ${audience.name}`}\n disabled={isDisabled}\n >\n {lowerCaseToTitleCase(audience.name)}\n </button>\n );\n}","import React from 'react';\n\ntype ReturnValue = [\n () => void,\n React.Dispatch<React.SetStateAction<number>>\n];\n\n/**\n * This hook solves a problem where you want to trigger an \"onSuccess\" callback function\n * only after the last of multiple API calls have completed.\n * \n * Example: the user clicks a \"Save\" button, which triggers 2 API calls. You have a callback function\n * that you want to run after both API calls have succeeded. This hook will help you do that of you pass it\n * the callback function and set the counter to 2.\n */\nexport const useOnSaveAll = (onDone: () => void): ReturnValue => {\n const [ counter, setCounter ] = React.useState(1);\n\n function onSave(): void {\n setCounter(val => val - 1);\n }\n\n React.useEffect(() => {\n if (counter > 0)\n return;\n \n onDone();\n }, [counter]);\n\n return [ onSave, setCounter ];\n};","import * as React from 'react';\n\ninterface PartialAudiencesProps {\n count?: number;\n width?: number;\n height?: number;\n align?: 'left' | 'center';\n}\n\nexport function PartialAudiences({ width = 90, height = 35, count = 5, align = 'left' }: PartialAudiencesProps): JSX.Element {\n const justifyClass = align === 'center' ? 'justify-content-center' : 'justify-content-start';\n\n return (\n <ul className={`d-flex flex-wrap ps-0 m-0 ${justifyClass}`}>\n {Array(count).fill(null).map((item, i) => (\n <li\n key={i}\n className='partial-loading-background mx-1 mb-1 rounded-pill list-unstyled'\n style={{ height: `${height}px`, width: `${width}px` }}\n />\n ))}\n </ul>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"audienceList\":\"gGUpk\",\"imageContainer\":\"mLKC0\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AudienceItem } from 'libs/shared/apps/subjects/components/audience-item';\nimport { OnboardingFooter } from 'libs/shared/apps/subjects/components/preferences/footer/OnboardingFooter';\nimport { OnboardingHelper } from 'libs/shared/apps/subjects/utils/OnboardingHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useOnSaveAll } from 'libs/shared/hooks/UseOnSaveAll';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport styles from './audience-preferences.scss';\n\nconst namespace = 'subjects.audiencePreferences';\n\ninterface AudiencePreferencesProps {\n options: PresentationAudience[];\n preselections: PresentationAudience[];\n bulkPreferencesState: BulkOnboardingPreferencesState;\n saveChanges: (\n newAudiences: PresentationAudience[],\n oldAudiences: PresentationAudience[],\n bulkState: BulkOnboardingPreferencesState,\n onSuccess: () => void,\n onError: () => void\n ) => void;\n \n isOnboarding?: boolean;\n backButtonAppLink?: Core.AppLink;\n nextAppLink?: Core.AppLink;\n}\n\nexport function AudiencePreferences(props: AudiencePreferencesProps): JSX.Element {\n const [ selectedAudiences, setSelectedAudiences ] = React.useState<string[]>([]);\n const [ showSpinner, setShowSpinner ] = React.useState<boolean>(false);\n\n const [ bulkPreferencesState, setBulkPreferencesState ] = React.useState<BulkOnboardingPreferencesState>(\n props.bulkPreferencesState\n );\n\n const hasBulkSelectedLevels = OnboardingHelper.hasBulkSelectedLevels(bulkPreferencesState);\n\n const alerts = useAlerts();\n\n /**\n * Set initial selections\n */\n React.useEffect(() => {\n if (!props.preselections?.length) {\n setSelectedAudiences([]);\n return;\n }\n\n const preselectedIds = props.preselections.map(audience => audience.masterId);\n setSelectedAudiences(ArrayHelper.uniq([ ...selectedAudiences, ...preselectedIds ]));\n }, []);\n\n const [ onSuccess, setCounter ] = useOnSaveAll(() => {\n setShowSpinner(false);\n\n if (!props.isOnboarding)\n alerts.success(LanguageService.getPhrase(namespace, 'success'));\n\n if (props.nextAppLink)\n Core.AppLinkHelper.trigger(props.nextAppLink);\n });\n\n function hasChangedAudiences(selectedAudiences: string[]): boolean {\n if (!props.preselections)\n return false;\n\n const preselectedIds = props.preselections.map(p => p.masterId);\n return preselectedIds.sort().toString() !== selectedAudiences.sort().toString();\n }\n\n function hasChangedBulkState(): boolean {\n return props.bulkPreferencesState !== bulkPreferencesState;\n }\n\n function isValid(): boolean {\n if (!selectedAudiences.length && !hasBulkSelectedLevels)\n return false;\n\n const hasChanged = hasChangedBulkState() || hasChangedAudiences(selectedAudiences);\n\n if (!props.isOnboarding && !hasChanged)\n return false;\n\n return true;\n }\n\n function onSave(): void {\n if (!isValid())\n return;\n\n // If they have selected the bulk option, we do not want to clear their preferences or save any changes.\n if (!hasChangedAudiences(selectedAudiences) && !hasChangedBulkState()) {\n if (props.nextAppLink) {\n Core.AppLinkHelper.trigger(props.nextAppLink);\n }\n\n return;\n }\n\n setShowSpinner(true);\n\n const newAudiences = selectedAudiences\n .filter(id => !props.preselections?.find(level => level.masterId === id))\n .map(id => props.options?.find(level => level.masterId === id));\n\n const oldAudiences = props.preselections?.filter(level => !selectedAudiences.includes(level.masterId));\n\n let onSaveCounter = 0;\n\n if (newAudiences?.length)\n onSaveCounter++;\n\n if (oldAudiences?.length)\n onSaveCounter++;\n\n if (hasChangedBulkState())\n onSaveCounter++;\n\n setCounter(onSaveCounter);\n\n props.saveChanges(\n newAudiences,\n oldAudiences,\n bulkPreferencesState,\n onSuccess,\n () => {\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n setShowSpinner(false);\n }\n );\n }\n\n function onSelectLevel(audience: PresentationAudience): void {\n const newSelections = ArrayHelper.addOrRemoveImmutable(selectedAudiences, audience.masterId);\n setSelectedAudiences(newSelections);\n }\n\n function onToggleSelectAll(): void {\n const newBulkState = OnboardingHelper.getNextBulkState(bulkPreferencesState, 'audiences');\n\n setBulkPreferencesState(newBulkState);\n\n const hasBulkSelectedLevels = OnboardingHelper.hasBulkSelectedLevels(newBulkState);\n\n if (hasBulkSelectedLevels)\n setSelectedAudiences([]);\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <form className='p-3'>\n <div className='position-relative'>\n <ul className={`d-flex flex-wrap justify-content-center mx-auto mb-0 ps-0 py-3 ${styles.audienceList}`}>\n {props.options.map(option => (\n <AudienceItem\n key={option.masterId}\n audience={option}\n highlight={selectedAudiences.includes(option.masterId)}\n setAudience={onSelectLevel}\n isDisabled={hasBulkSelectedLevels}\n />\n ))}\n </ul>\n </div>\n\n <OnboardingFooter justify={props.backButtonAppLink ? 'between' : 'end'}>\n <div>\n {!!props.backButtonAppLink && (\n <AppLink appLink={props.backButtonAppLink} className='btn btn-outline-dark'>\n <Text phrase='back' />\n </AppLink>\n )}\n </div>\n\n <div className='d-flex align-items-center justify-content-end'>\n <div className='d-flex me-3'>\n <p onClick={onToggleSelectAll} className='me-2 mb-0 fw-bold'>\n <Text phrase='allLevels' />\n </p>\n <ToggleSwitch\n onClick={onToggleSelectAll}\n on={hasBulkSelectedLevels}\n hideOutline\n />\n </div>\n\n <SpinnerButton\n variant='dark'\n disabled={!isValid()}\n onClick={onSave}\n showSpinner={showSpinner}\n >\n <Text phrase={props.isOnboarding ? 'next' : 'save'} />\n </SpinnerButton>\n </div>\n </OnboardingFooter>\n </form>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { PartialAudiences } from 'libs/shared/apps/subjects/components/audience-item';\n\nexport function PartialAudiencePreferences(): JSX.Element {\n return (\n <div className='p-3'>\n <div className='w-100 mx-auto py-3'>\n <PartialAudiences align='center' />\n </div>\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AudiencePreferences } from 'libs/shared/apps/subjects/components/preferences/audience-preferences/AudiencePreferences';\nimport { PartialAudiencePreferences } from 'libs/shared/apps/subjects/components/preferences/audience-preferences/partial-loading/PartialAudiencePreferences';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { PreferencesLayout } from 'apps/settings/components/preferences/PreferencesLayout';\n\nconst namespace = 'settings.audiencePreferences';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AudiencePreferencesView(): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n const availablePresentations = Flight.useBasicFetch<Presentation[]>(PreferenceRequests.availablePresentations());\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(PreferenceRequests.allLevelPreferences());\n const preselections = Flight.useBasicFetch<PresentationAudience[]>(\n PreferenceRequests.myLevelPreferences()\n );\n\n const {\n bulkOnboardingPreferencesState, isLoadingSettings, updateSetting\n } = useSettings(LocationContext.PreferencesSettings);\n\n const canAccess = !!audiences.data?.length && AudienceHelper.shouldShowAudiences(audiences.data);\n\n // Redirect away if the user's presentation does not have more than 1 audience\n React.useEffect(() => {\n if (!audiences.hasCompleted)\n return;\n\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.TOPIC_PREFERENCES\n }, { replace: true });\n }\n }, [audiences.hasCompleted]);\n\n const dispatch = useDispatch();\n\n function onSave(\n newAudiences: PresentationAudience[],\n oldAudiences: PresentationAudience[],\n bulkState: BulkOnboardingPreferencesState,\n onSuccess: () => void,\n onError: () => void\n ): void {\n if (bulkState !== bulkOnboardingPreferencesState) {\n const newSetting = {\n name: SettingName.BulkOnboardingPreferencesState,\n value: bulkState,\n kind: SettingKind.Setting\n };\n\n updateSetting(\n currentUser.data.id,\n newSetting,\n onSuccess,\n onError\n );\n }\n\n if (newAudiences?.length)\n Flight.fetch(dispatch, PreferenceRequests.followLevels(newAudiences, onSuccess, onError));\n\n if (oldAudiences?.length)\n Flight.fetch(dispatch, PreferenceRequests.unfollowLevels(oldAudiences, onSuccess, onError));\n }\n\n const dataLoaded = (\n !!audiences.hasCompleted &&\n !!preselections.hasCompleted &&\n !isLoadingSettings\n );\n\n return (\n <PreferencesLayout\n availablePresentations={availablePresentations.data}\n audiences={audiences.data}\n >\n <p className='mt-3'><Text namespace={namespace} phrase='info' /></p>\n\n {(dataLoaded && canAccess) ? (\n <AudiencePreferences\n options={audiences.data}\n preselections={preselections.data}\n bulkPreferencesState={bulkOnboardingPreferencesState}\n saveChanges={onSave}\n />\n ) : <PartialAudiencePreferences />}\n </PreferencesLayout>\n );\n}"],"names":["getPhrase","LanguageService","AudienceItem","props","audience","highlight","setAudience","isDisabled","extraClasses","colourClass","getColourClass","cursorClass","className","type","onClick","FunctionHelper","role","name","disabled","split","map","s","charAt","toUpperCase","substring","join","defaultProps","useOnSaveAll","onDone","counter","setCounter","val","PartialAudiences","width","height","count","align","justifyClass","Array","fill","item","i","key","style","namespace","AudiencePreferences","selectedAudiences","setSelectedAudiences","showSpinner","setShowSpinner","bulkPreferencesState","setBulkPreferencesState","hasBulkSelectedLevels","OnboardingHelper","alerts","preselections","length","preselectedIds","masterId","ArrayHelper","isOnboarding","success","nextAppLink","onSuccess","hasChangedAudiences","p","sort","toString","hasChangedBulkState","isValid","hasChanged","onSelectLevel","newSelections","onToggleSelectAll","newBulkState","value","options","option","includes","OnboardingFooter","justify","backButtonAppLink","AppLink","appLink","Text","phrase","ToggleSwitch","on","hideOutline","SpinnerButton","variant","newAudiences","filter","id","find","level","oldAudiences","onSaveCounter","saveChanges","error","PartialAudiencePreferences","AudiencePreferencesView","currentUser","UserRequests","useSetPageMetadata","title","availablePresentations","PreferenceRequests","audiences","useSettings","bulkOnboardingPreferencesState","isLoadingSettings","updateSetting","canAccess","data","AudienceHelper","hasCompleted","application","action","replace","dispatch","dataLoaded","PreferencesLayout","bulkState","onError","newSetting","SettingName","kind","SettingKind","Setting"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3915],{94644:(e,t,n)=>{n.d(t,{r:()=>u});var i=n(50242),r=n(81886),a=n(67058),o=n(14553),s=n(49267),l=n(49075),c={notFound:a.d,forbidden:{rating:o.q,yearLevel:o.q,region:s.a,privacy:o.q},badRequest:l._,internalServerError:l._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var a;a="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},c),t);a&&r.Q.Ry.isStatusCodeError(a)&&(a!==i.o.InternalServer?a!==i.o.NotFound?a!==i.o.Forbidden?n.badRequest||r.Q.Ry.throw(new o.badRequest):n.forbidden||r.Q.Ry.throw(new o.forbidden.privacy):n.notFound||r.Q.Ry.throw(new o.notFound):n.internalServerError||r.Q.Ry.throw(new l._))}}},60115:(e,t,n)=>{n.d(t,{K:()=>c});var i=n(32735),r=n(50242),a=n(91967),o=400,s=n(45719);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}function c(e,t,n,c,u,d){var v,m,p,h,f=(v=(0,i.useState)(0),m=2,function(e){if(Array.isArray(e))return e}(v)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(s.push(i.value),s.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return s}}(v,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}}(v,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.")}()),g=f[0],C=f[1],b=t,V=(0,s.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return p={fetchNextPage:function(){if(t&&e&&V)return C((function(e){return e+1})),b(V.nextCursor)},hasMore:!!(null==V?void 0:V.nextCursor),isFetching:null==V?void 0:V.isFetching,scrollContainer:d},h=function(){if(!p.isFetching){if(p.scrollContainer){var e=p.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-o)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-o)return;p.fetchNextPage()}},(0,i.useEffect)((function(){var e=a.q.throttle(h,200),t=p.scrollContainer||window;return p.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[p.hasMore,p.fetchNextPage,p.scrollContainer]),(0,i.useEffect)((function(){V&&V.shouldInitialFetch&&t&&(b(),C((function(e){return e+1})))}),[null==V?void 0:V.shouldInitialFetch,t]),(0,i.useEffect)((function(){var e,t;if((null==V?void 0:V.statusCode)&&a.q.isFunction(n)){var i=+(null===(t=null===(e=V.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));i!==r.k.ClientError&&i!==r.k.ServerError||n(g,V.statusCode)}}),[null==V?void 0:V.statusCode]),{items:null==V?void 0:V.items,hasMore:!!(null==V?void 0:V.nextCursor),nextCursor:null==V?void 0:V.nextCursor,isFetching:null==V?void 0:V.isFetching,totalItems:null==V?void 0:V.totalItems,hasFirstPageCompleted:null==V?void 0:V.hasFirstPageCompleted}}},58321:(e,t,n)=>{n.d(t,{U:()=>p});var i=n(20354),r=n(16714),a=n(39151),o=n(1666),s=n(31949),l=n(22902),c=n(37802),u=n(22490),d=n(82431),v=n(46390),m=n(27638);function p(e){var t,n,p,h=e||{},f=h.locationContext,g=h.mtv,C=h.flightNamespace,b=h.sharedPlaylist,V=(0,v.G)(),w=V.isPlugin,y=V.params,E=(0,m.u)(f,C),P=E.setFavourite,I=E.canFavourite,F=(0,c.r)(null),A=F.hasTopicDirectories,L=F.isLoadingSettings,k=(0,l.T)(),x=k.hasPermissions,O=k.isLoaded,S=x(r.C.StudentExperience),N=i.a.useBasicFetch(a.L.config()),T=i.a.useBasicFetch(s.N.currentUser()),R=i.a.useBasicFetch((null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(T.data.customerId));return{hasCommonVideoPropsCompleted:!L&&O&&N.hasCompleted&&T.hasCompleted&&(!(null===(n=T.data)||void 0===n?void 0:n.isAuthenticated)||R.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?b&&!(null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:g}):null},isPlugin:w,isPluginPopup:!!(null==y?void 0:y.popup),canFavourite:I,setFavourite:P,imageCdnUrl:null===(p=N.data)||void 0===p?void 0:p.imageCdnUrl,yearGroups:R.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:A,companyLogoFallbackUrl:null,hasStudentExperience:S}}}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var i=n(20354),r=n(89454),a=n(86698),o=function(){var e=(0,a.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return i.a.useBasicFetch(!!o&&r.O.presentationAudiences(o.id))}},35014:(e,t,n)=>{n.d(t,{I:()=>v});var i=n(20354),r=n(55171),a=n(16714),o=n(12754),s=n(31949),l=n(22902),c=n(15311),u=n(37802),d=n(11387);function v(e){var t=(0,l.T)(),n=t.hasPermissions,v=t.hasLocalPermissions,m=(0,c.r)().hasProduct,p=i.a.useBasicFetch(s.N.currentUser()),h=(0,u.r)(null).hasPlayPageTranscript,f=m(o.x.Primary);return{canViewGlance:n(a.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:f&&n(a.C.ViewVideoInteractives),canViewClips:f&&n(a.C.ViewVideoClips),canViewCurriculumLinks:n(a.C.ViewCurriculums),canUseActions:v(a.E.UseVideoActions),canViewPublicLayout:!v(a.E.WatchVideos)&&d.C.hasRegionPrefix(),canViewResourceItems:v(a.E.ViewVideoResourceItems),canNavigate:f,canViewTranscript:function(e){var t;return(null===(t=p.data)||void 0===t?void 0:t.isAuthenticated)?h:!!e&&r.e.PublicTranscriptVideoIds.includes(e)}(e)}}},33915:(e,t,n)=>{n.r(t),n.d(t,{VideoInteractivesView:()=>T});var i=n(32735),r=n(81886),a=n(23481),o=n(20354),s=n(28400),l=n(65858),c=n(49935),u=n(87801),d=n(75100),v=n(51365),m=n(183),p=n(94644),h=n(20768),f=n(31949),g=n(1575),C=n(69883),b=n(60115),V=n(22902),w=n(79612),y=n(14070),E=n(97291),P=n(10671),I=n(58321),F=n(44110),A=n(35014),L=n(10741),k=n(22490),x=n(9212),O=n(98620),S="shared.videoMedia",N=a.T.encloseNamespace(S);function T(e){var t,n,T,R,j=e.videoId,G=o.a.useGetFetch(),_=(0,C.Z)(),U=(0,I.U)({locationContext:l.LZ.VideoThumbnail}),M=U.commonVideoProps,Q=U.hasCommonVideoPropsCompleted,q=(0,P._)({location:P.i.VideoItem}),B=(0,A.I)(),H=(0,F.i)(),W=(0,V.T)().hasPermissions,D=o.a.useBasicFetch(f.N.currentUser()),Y=o.a.useBasicFetch(g.R.video(j));function K(e){return h.b.videoInteractives(j,null,e)}function Z(e){return G(K(e))}(0,w.M)({title:Y.data?N("videoInteractivesViewPageTitle",{video:null===(t=Y.data)||void 0===t?void 0:t.name}):""});var $=(0,b.K)(!!B.canViewInteractives&&K,Z,(function(e,t){if(1===e)return(0,p.r)(t);_.error(a.T.getPhrase(S,"errorInteractives"))})),z=$.items,J=$.hasMore,X=$.isFetching,ee=N("interactivesHeading"),te=[{name:null===(n=Y.data)||void 0===n?void 0:n.name,appLink:Object.assign(Object.assign({},O.Y.playVideo),{args:[j,s.m.slugify(null===(T=Y.data)||void 0===T?void 0:T.name)]})},{name:ee,appLink:{application:E.O.VIDEOS,action:y.e.Videos.VIDEO_INTERACTIVES,args:[j,s.m.slugify(null===(R=Y.data)||void 0===R?void 0:R.name)]},active:!0}];return i.useEffect((function(){B.canViewInteractives||function(){var e;r.Q.C$.trigger(Object.assign(Object.assign({},O.Y.playVideo),{args:[j,s.m.slugify(null===(e=Y.data)||void 0===e?void 0:e.name)]}),{replace:!0})}()}),[B.canViewInteractives]),Y.data&&(null==z?void 0:z.length)&&Q?i.createElement(v.M.Provider,{value:q},i.createElement("div",{className:"px-3"},i.createElement("h1",{className:"h2 mb-2"},ee),i.createElement("div",{className:"mb-2"},i.createElement(c.Oo,{breadcrumbs:te})),i.createElement(d.E4,{videos:z,getVideoAppLink:function(t,n){var i;return k.W.getAppLink(t,Object.assign(Object.assign({},n),{context:m.Q.Widget,contextId:e.videoId,includeContext:null===(i=D.data)||void 0===i?void 0:i.isAuthenticated}))},hasPermissions:W,presentationAudiences:H.data,getPreviewQuestionsAppLink:function(e){return L.j.getPreviewQuestionsAppLink(e)},showOwner:!0,commonVideoProps:M}),(J||X)&&i.createElement(u._,{isFetching:X,fetchNext:Z}))):i.createElement(x.l,null)}},98620:(e,t,n)=>{n.d(t,{Y:()=>a});var i=n(14070),r=n(97291),a={playVideo:{application:r.O.VIDEOS,action:i.e.Videos.PLAY_VIDEO},playClip:{application:r.O.CLIPS,action:i.e.Clips.PLAY_CLIP}}},9212:(e,t,n)=>{n.d(t,{l:()=>s});var i=n(32735),r=n(49935),a=n(1860);const o={partialHeading:"okxfx"};function s(){return i.createElement("div",{className:"px-3"},i.createElement("div",{className:"partial-loading-background mb-2 ".concat(o.partialHeading)}),i.createElement("div",{className:"mb-2"},i.createElement(r.b2,null)),i.createElement(a.S,null))}}}]);
2
+ //# sourceMappingURL=3915-abd9a65a08-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3915-abd9a65a08-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/views/video-media/VideoInteractivesView.tsx","file:///app/packages/projects/lite/src/shared/views/video-media/VideoMediaAppLinks.ts","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/partial-video-media-view.scss","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/PartialVideoMediaView.tsx"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/react/index';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canViewTranscript: boolean;\n}\n\nexport function useVideoFeatureAccess(videoId?: string) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { hasPlayPageTranscript } = useSettings(null);\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n function shouldShowTranscript(videoId: string): boolean {\n if (currentUser.data?.isAuthenticated)\n return hasPlayPageTranscript;\n\n if (!videoId)\n return false;\n\n return HardCoded.PublicTranscriptVideoIds.includes(videoId);\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP,\n canViewTranscript: shouldShowTranscript(videoId)\n };\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, InteractiveMetadata, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { PartialVideoMediaView } from 'shared/views/video-media/partial-loading/PartialVideoMediaView';\nimport { VideoMediaAppLinks } from 'shared/views/video-media/VideoMediaAppLinks';\n\nconst namespace = 'shared.videoMedia';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoInteractivesViewProps {\n videoId: string;\n}\n\nexport function VideoInteractivesView(props: VideoInteractivesViewProps): JSX.Element {\n const { videoId } = props;\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const featureAccess = useVideoFeatureAccess();\n const audiences = usePresentationAudiences();\n const { hasPermissions } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(videoId));\n\n useSetPageMetadata({\n title: video.data ? getPhrase('videoInteractivesViewPageTitle', { video: video.data?.name }) : ''\n });\n\n function getInteractivesRequest(cursor?: string) {\n return InteractiveRequests.videoInteractives(videoId, null, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return fetch(getInteractivesRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'errorInteractives'));\n }\n\n const { items: interactives, hasMore, isFetching } = useInfiniteList<InteractiveMetadata>(\n featureAccess.canViewInteractives ? getInteractivesRequest : false,\n fetchNext,\n onError\n );\n\n const title = getPhrase('interactivesHeading');\n\n const breadcrumbs: Breadcrumb[] = [{\n name: video.data?.name,\n appLink: {\n ...VideoMediaAppLinks.playVideo,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n }\n }, {\n name: title,\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.VIDEO_INTERACTIVES,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n },\n active: true\n }];\n\n function redirectToPlaypage(): void {\n Core.AppLinkHelper.trigger({\n ...VideoMediaAppLinks.playVideo,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n }, { replace: true });\n }\n\n React.useEffect(() => {\n if (!featureAccess.canViewInteractives) {\n redirectToPlaypage();\n }\n }, [featureAccess.canViewInteractives]);\n\n if (!video.data || !interactives?.length || !hasCommonVideoPropsCompleted)\n return <PartialVideoMediaView />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <h1 className='h2 mb-2'>{title}</h1>\n \n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={breadcrumbs}/>\n </div>\n\n <VideoList\n videos={interactives}\n getVideoAppLink={(video, opts) => VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n contextId: props.videoId,\n includeContext: currentUser.data?.isAuthenticated\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n showOwner\n commonVideoProps={commonVideoProps}\n />\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />\n )}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const VideoMediaAppLinks = {\n playVideo: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO\n },\n playClip: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"okxfx\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-video-media-view.scss';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function PartialVideoMediaView(): JSX.Element {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='mb-2'>\n <PartialBreadcrumbs/>\n </div>\n <PartialVideoList />\n </div>\n );\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","SCROLL_TOLERANCE","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","scrollContainer","options","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","key","fetchNextPage","currentVal","nextCursor","hasMore","isFetching","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","toString","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","params","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","config","currentUser","yearGroups","data","isAuthenticated","customerId","hasCommonVideoPropsCompleted","hasCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","useVideoFeatureAccess","videoId","hasLocalPermissions","hasProduct","hasPlayPageTranscript","hasNP","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","canViewTranscript","shouldShowTranscript","namespace","getPhrase","VideoInteractivesView","props","fetch","alerts","videoActions","location","featureAccess","audiences","getInteractivesRequest","title","name","pageNumber","httpStatus","error","interactives","breadcrumbs","appLink","args","application","action","active","replace","redirectToPlaypage","length","value","className","videos","getVideoAppLink","opts","context","contextId","includeContext","presentationAudiences","getPreviewQuestionsAppLink","interactive","showOwner","VideoMediaAppLinks","playVideo","playClip","PartialVideoMediaView","PartialVideoList"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3978],{39902:(e,t,r)=>{r.d(t,{F:()=>v,f:()=>f});var n=r(32735),i=r(20354),a=r(75896);function o(e){return function(e){if(Array.isArray(e))return s(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.")}()}function u(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function c(e){return c="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},c(e)}function l(e,t,r){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d=50;function f(e,t){var r=a.m.chunk(e,d).map((function(e){return t(a.m.uniq(e))})),n=i.a.useBasicFetchAll(r),o=a.m.flatten(n.data),u=n.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},t.id,t))}),{}):null;return{itemsArr:o,items:u,isFetching:n.isFetching}}function v(e,t,r){var s,f,v,m,p=r||function(e){return"object"===c(e)?e.id:e},h=n.useRef(new Set),b=(v=n.useState([]),m=2,function(e){if(Array.isArray(e))return e}(v)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return u}}(v,m)||u(v,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.")}()),y=b[0],g=b[1];n.useEffect((function(){if(null==e?void 0:e.length){var r=[];e.forEach((function(e){var t=p(e);h.current.has(t)||(r.push(e),h.current.add(t))})),r.length&&g((function(e){return[].concat(o(e),o(a.m.chunk(r,d).map(t)))}))}}),[null==e?void 0:e.length]);var A=i.a.useBasicFetchAll(y),I=a.m.flatten(A.data),V=A.data.length?I.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},p(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(f=null===(s=A.responses)||void 0===s?void 0:s[0])||void 0===f?void 0:f.hasCompleted),itemsArr:I,items:V,isFetching:A.isFetching}}},63719:(e,t,r)=>{r.d(t,{h:()=>u});var n=r(32735),i=r(77316);function a(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function u(e){var t,r,u=(t=n.useMemo((function(){return i.p.getBuilder()}),[]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return u}}(t,r)||a(t,r)||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.")}()),s=u[0],c=(0,u[1])(s);return c&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},93978:(e,t,r)=>{r.r(t),r.d(t,{PlaySharedVideoView:()=>x});var n=r(32735),i=r(20354),a=r(65858),o=r(16714),u=r(89454),s=r(43012),c=r(39151),l=r(20768),d=r(31949),f=r(1575),v=r(63719),m=r(26304),p=r(22902),h=r(79612),b=r(37802),y=r(76753),g=r(10094),A=r(58321),I=r(82817),V=r(7179),w=r(49948),C=r(36873),S=r(86698),P=r(35014),j=r(97816),F=r(33192),k=r(87026),T=r(91442),B=r(54301),O=r(16857);function x(e){var t,r,x,L,U,M,E,R,G,N=(0,A.U)({locationContext:a.LZ.VideoThumbnail}),q=N.commonVideoProps,_=N.hasCommonVideoPropsCompleted,W=(0,p.T)().hasPermissions,D=(0,P.I)(),$=(0,T.a)(),Z=(0,S.y)().activePresentation,z=(0,b.r)(null),H=z.hasPlayPageTranscript,J=z.hasNewSearch,K=i.a.useBasicFetch(d.N.currentUser()),Q=i.a.useBasicFetch(f.R.sharedVideo(e.objectId,e.shareId)),X=i.a.useBasicFetch(D.canViewClips&&s.e.videoClips(e.objectId)),Y=i.a.useBasicFetch(D.canViewInteractives&&l.b.videoInteractives(e.objectId)),ee=(0,C.k)({video:Q.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:K.data}),te=(0,w.l)(e.objectId),re=i.a.useBasicFetch(!!Z&&u.O.audiencesByPresentationId(Z.id)),ne=(0,B.l)(e.objectId,e.shareId),ie=i.a.useBasicFetch(ne&&(null===(t=K.data)||void 0===t?void 0:t.contentRegion)&&g.F.chaptersAndSubtitles(e.objectId,K.data.contentRegion)),ae=(null==ie?void 0:ie.data)||{},oe=ae.subtitles,ue=ae.chapters,se=null==oe?void 0:oe.filter((function(e){return!e.customer})),ce=se&&se.length>0?se.map((function(e){return g.F.subtitleVtt(e.url,e)})):[],le=i.a.useBasicFetchAll(ce),de=(null==se?void 0:se.filter((function(e){return le.data.find((function(t){return t.id===e.id}))})))||[],fe=i.a.useBasicFetch(c.L.config());(0,h.M)(y.CG.getVideoMetadata({content:Q.data,canonicalLink:F.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.V)(null!==(r=ee.videos)&&void 0!==r?r:[]),(0,m.b)(Q,{private:O.m}),(0,V.P)({id:e.objectId,app:"videos",shareId:e.shareId});var ve=(0,v.h)({name:null===(x=Q.data)||void 0===x?void 0:x.name}),me=(0,I.M)(e.objectId);return Q.data&&K.hasCompleted&&te.hasCompleted&&_?n.createElement("div",{className:"px-3"},n.createElement(k.j,{video:Q.data,clips:null===(L=X.data)||void 0===L?void 0:L.data,interactives:null===(U=Y.data)||void 0===U?void 0:U.data,curriculums:me,relatedVideos:ee,currentUser:K.data,pointsOfInterest:null==te?void 0:te.items,playNext:null===(M=e.queryParams)||void 0===M?void 0:M.playNext,shareId:e.shareId,featureAccess:D,audiences:re.data,params:e.queryParams,canManageVideoAccess:W(o.C.ManageVideoAccess),tableOfContentsId:null===(E=e.queryParams)||void 0===E?void 0:E.tocId,shouldShowSideTableOfContents:$,breadcrumbs:ve,commonVideoProps:q,hasTheatreMode:H,shouldShowTranscript:ne&&(null===(R=le.data)||void 0===R?void 0:R.length)>0,vttSubtitles:le.data||[],subtitles:de,chapters:ue,isBot:F.f.isBot(),playerApiUrl:null===(G=fe.data)||void 0===G?void 0:G.playerApiUrl,hasNewSearch:J})):n.createElement(n.Fragment,null)}},10094:(e,t,r)=>{r.d(t,{F:()=>a});var n=r(97395),i=r(78417),a={chaptersAndSubtitles:function(e,t){var r={query:"subtitles[customer],chapters",permissionFilterOption:i.r.StripMetadata,contentRegion:t};return{url:n._.urlBuilder("{gateway}/v1/objects/".concat(e),r),publicUrl:n._.urlBuilder("/api/objects/".concat(e,"/subtitles"),r),key:"videos:".concat(e,":subtitles:chapters:").concat(i.r.StripMetadata),formatData:function(e){return{subtitles:e.subtitles.data,chapters:e.chapters.data}}}},subtitleVtt:function(e,t){return{url:"{player}/srt-to-vtt?url=".concat(e),publicUrl:"/api/player/srt-to-vtt?url=".concat(e),key:"subtitle:".concat(e),formatData:function(e){return Object.assign(Object.assign({},t),{vtt:e})}}}}},58321:(e,t,r)=>{r.d(t,{U:()=>m});var n=r(20354),i=r(16714),a=r(39151),o=r(1666),u=r(31949),s=r(22902),c=r(37802),l=r(22490),d=r(82431),f=r(46390),v=r(27638);function m(e){var t,r,m,p=e||{},h=p.locationContext,b=p.mtv,y=p.flightNamespace,g=p.sharedPlaylist,A=(0,f.G)().isPlugin,I=(0,v.u)(h,y),V=I.setFavourite,w=I.canFavourite,C=(0,c.r)(null),S=C.hasTopicDirectories,P=C.isLoadingSettings,j=(0,s.T)(),F=j.hasPermissions,k=j.isLoaded,T=F(i.C.StudentExperience),B=n.a.useBasicFetch(a.L.config()),O=n.a.useBasicFetch(u.N.currentUser()),x=n.a.useBasicFetch((null===(t=O.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(O.data.customerId));return{hasCommonVideoPropsCompleted:!P&&k&&B.hasCompleted&&O.hasCompleted&&(!(null===(r=O.data)||void 0===r?void 0:r.isAuthenticated)||x.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=O.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:b}):null},isPlugin:A,canFavourite:w,setFavourite:V,imageCdnUrl:null===(m=B.data)||void 0===m?void 0:m.imageCdnUrl,yearGroups:x.data,getClassroomGuideAppLink:l.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:l.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:l.W.getResourceGuidanceAppLink,showNewVideoIndicator:S,companyLogoFallbackUrl:null,hasStudentExperience:T}}}},35014:(e,t,r)=>{r.d(t,{I:()=>f});var n=r(20354),i=r(55171),a=r(16714),o=r(12754),u=r(31949),s=r(22902),c=r(15311),l=r(37802),d=r(11387);function f(e){var t=(0,s.T)(),r=t.hasPermissions,f=t.hasLocalPermissions,v=(0,c.r)().hasProduct,m=n.a.useBasicFetch(u.N.currentUser()),p=(0,l.r)(null).hasPlayPageTranscript,h=v(o.x.Primary);return{canViewGlance:r(a.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:h&&r(a.C.ViewVideoInteractives),canViewClips:h&&r(a.C.ViewVideoClips),canViewCurriculumLinks:r(a.C.ViewCurriculums),canUseActions:f(a.E.UseVideoActions),canViewPublicLayout:!f(a.E.WatchVideos)&&d.C.hasRegionPrefix(),canViewResourceItems:f(a.E.ViewVideoResourceItems),canNavigate:h,canViewTranscript:function(e){var t;return(null===(t=m.data)||void 0===t?void 0:t.isAuthenticated)?p:!!e&&i.e.PublicTranscriptVideoIds.includes(e)}(e)}}},97816:(e,t,r)=>{r.d(t,{V:()=>o});var n=r(1575),i=r(39902),a=r(31908);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):[]:[]}(e).map((function(e){return e.id}));(0,i.F)(r,(function(e){return n.R.videoMixinAssocs(e,t.flightNamespace)}))}},54301:(e,t,r)=>{r.d(t,{l:()=>o});var n=r(20354),i=r(1575),a=r(35014);function o(e,t){var r,o,u=(0,a.I)(e).canViewTranscript,s=n.a.useBasicFetch(t?i.R.sharedVideo(e,t):i.R.video(e));return u&&!!(null===(o=null===(r=s.data)||void 0===r?void 0:r._isClickViewCurated)||void 0===o?void 0:o.value)}}}]);
2
- //# sourceMappingURL=3978-09fb1f250e-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3978],{39902:(e,t,r)=>{r.d(t,{F:()=>v,f:()=>f});var n=r(32735),i=r(20354),a=r(75896);function o(e){return function(e){if(Array.isArray(e))return s(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.")}()}function u(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function c(e){return c="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},c(e)}function l(e,t,r){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d=50;function f(e,t){var r=a.m.chunk(e,d).map((function(e){return t(a.m.uniq(e))})),n=i.a.useBasicFetchAll(r),o=a.m.flatten(n.data),u=n.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},t.id,t))}),{}):null;return{itemsArr:o,items:u,isFetching:n.isFetching}}function v(e,t,r){var s,f,v,p,m=r||function(e){return"object"===c(e)?e.id:e},h=n.useRef(new Set),b=(v=n.useState([]),p=2,function(e){if(Array.isArray(e))return e}(v)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return u}}(v,p)||u(v,p)||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.")}()),y=b[0],g=b[1];n.useEffect((function(){if(null==e?void 0:e.length){var r=[];e.forEach((function(e){var t=m(e);h.current.has(t)||(r.push(e),h.current.add(t))})),r.length&&g((function(e){return[].concat(o(e),o(a.m.chunk(r,d).map(t)))}))}}),[null==e?void 0:e.length]);var A=i.a.useBasicFetchAll(y),I=a.m.flatten(A.data),V=A.data.length?I.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},m(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(f=null===(s=A.responses)||void 0===s?void 0:s[0])||void 0===f?void 0:f.hasCompleted),itemsArr:I,items:V,isFetching:A.isFetching}}},63719:(e,t,r)=>{r.d(t,{h:()=>u});var n=r(32735),i=r(77316);function a(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function u(e){var t,r,u=(t=n.useMemo((function(){return i.p.getBuilder()}),[]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return u}}(t,r)||a(t,r)||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.")}()),s=u[0],c=(0,u[1])(s);return c&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},93978:(e,t,r)=>{r.r(t),r.d(t,{PlaySharedVideoView:()=>x});var n=r(32735),i=r(20354),a=r(65858),o=r(16714),u=r(89454),s=r(43012),c=r(39151),l=r(20768),d=r(31949),f=r(1575),v=r(63719),p=r(26304),m=r(22902),h=r(79612),b=r(37802),y=r(76753),g=r(10094),A=r(58321),I=r(82817),V=r(7179),w=r(49948),C=r(36873),S=r(86698),P=r(35014),j=r(97816),F=r(33192),k=r(87026),T=r(91442),B=r(54301),O=r(16857);function x(e){var t,r,x,L,U,M,E,R,G,N=(0,A.U)({locationContext:a.LZ.VideoThumbnail}),q=N.commonVideoProps,_=N.hasCommonVideoPropsCompleted,W=(0,m.T)().hasPermissions,D=(0,P.I)(),$=(0,T.a)(),Z=(0,S.y)().activePresentation,z=(0,b.r)(null),H=z.hasPlayPageTranscript,J=z.hasNewSearch,K=i.a.useBasicFetch(d.N.currentUser()),Q=i.a.useBasicFetch(f.R.sharedVideo(e.objectId,e.shareId)),X=i.a.useBasicFetch(D.canViewClips&&s.e.videoClips(e.objectId)),Y=i.a.useBasicFetch(D.canViewInteractives&&l.b.videoInteractives(e.objectId)),ee=(0,C.k)({video:Q.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:K.data}),te=(0,w.l)(e.objectId),re=i.a.useBasicFetch(!!Z&&u.O.audiencesByPresentationId(Z.id)),ne=(0,B.l)(e.objectId,e.shareId),ie=i.a.useBasicFetch(ne&&(null===(t=K.data)||void 0===t?void 0:t.contentRegion)&&g.F.chaptersAndSubtitles(e.objectId,K.data.contentRegion)),ae=(null==ie?void 0:ie.data)||{},oe=ae.subtitles,ue=ae.chapters,se=null==oe?void 0:oe.filter((function(e){return!e.customer})),ce=se&&se.length>0?se.map((function(e){return g.F.subtitleVtt(e.url,e)})):[],le=i.a.useBasicFetchAll(ce),de=(null==se?void 0:se.filter((function(e){return le.data.find((function(t){return t.id===e.id}))})))||[],fe=i.a.useBasicFetch(c.L.config());(0,h.M)(y.CG.getVideoMetadata({content:Q.data,canonicalLink:F.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.V)(null!==(r=ee.videos)&&void 0!==r?r:[]),(0,p.b)(Q,{private:O.m}),(0,V.P)({id:e.objectId,app:"videos",shareId:e.shareId});var ve=(0,v.h)({name:null===(x=Q.data)||void 0===x?void 0:x.name}),pe=(0,I.M)(e.objectId);return Q.data&&K.hasCompleted&&te.hasCompleted&&_?n.createElement("div",{className:"px-3"},n.createElement(k.j,{video:Q.data,clips:null===(L=X.data)||void 0===L?void 0:L.data,interactives:null===(U=Y.data)||void 0===U?void 0:U.data,curriculums:pe,relatedVideos:ee,currentUser:K.data,pointsOfInterest:null==te?void 0:te.items,playNext:null===(M=e.queryParams)||void 0===M?void 0:M.playNext,shareId:e.shareId,featureAccess:D,audiences:re.data,params:e.queryParams,canManageVideoAccess:W(o.C.ManageVideoAccess),tableOfContentsId:null===(E=e.queryParams)||void 0===E?void 0:E.tocId,shouldShowSideTableOfContents:$,breadcrumbs:ve,commonVideoProps:q,hasTheatreMode:H,shouldShowTranscript:ne&&(null===(R=le.data)||void 0===R?void 0:R.length)>0,vttSubtitles:le.data||[],subtitles:de,chapters:ue,isBot:F.f.isBot(),playerApiUrl:null===(G=fe.data)||void 0===G?void 0:G.playerApiUrl,hasNewSearch:J})):n.createElement(n.Fragment,null)}},10094:(e,t,r)=>{r.d(t,{F:()=>a});var n=r(97395),i=r(78417),a={chaptersAndSubtitles:function(e,t){var r={query:"subtitles[customer],chapters",permissionFilterOption:i.r.StripMetadata,contentRegion:t};return{url:n._.urlBuilder("{gateway}/v1/objects/".concat(e),r),publicUrl:n._.urlBuilder("/api/objects/".concat(e,"/subtitles"),r),key:"videos:".concat(e,":subtitles:chapters:").concat(i.r.StripMetadata),formatData:function(e){return{subtitles:e.subtitles.data,chapters:e.chapters.data}}}},subtitleVtt:function(e,t){return{url:"{player}/srt-to-vtt?url=".concat(e),publicUrl:"/api/player/srt-to-vtt?url=".concat(e),key:"subtitle:".concat(e),formatData:function(e){return Object.assign(Object.assign({},t),{vtt:e})}}}}},58321:(e,t,r)=>{r.d(t,{U:()=>p});var n=r(20354),i=r(16714),a=r(39151),o=r(1666),u=r(31949),s=r(22902),c=r(37802),l=r(22490),d=r(82431),f=r(46390),v=r(27638);function p(e){var t,r,p,m=e||{},h=m.locationContext,b=m.mtv,y=m.flightNamespace,g=m.sharedPlaylist,A=(0,f.G)(),I=A.isPlugin,V=A.params,w=(0,v.u)(h,y),C=w.setFavourite,S=w.canFavourite,P=(0,c.r)(null),j=P.hasTopicDirectories,F=P.isLoadingSettings,k=(0,s.T)(),T=k.hasPermissions,B=k.isLoaded,O=T(i.C.StudentExperience),x=n.a.useBasicFetch(a.L.config()),L=n.a.useBasicFetch(u.N.currentUser()),U=n.a.useBasicFetch((null===(t=L.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(L.data.customerId));return{hasCommonVideoPropsCompleted:!F&&B&&x.hasCompleted&&L.hasCompleted&&(!(null===(r=L.data)||void 0===r?void 0:r.isAuthenticated)||U.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=L.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:b}):null},isPlugin:I,isPluginPopup:!!(null==V?void 0:V.popup),canFavourite:S,setFavourite:C,imageCdnUrl:null===(p=x.data)||void 0===p?void 0:p.imageCdnUrl,yearGroups:U.data,getClassroomGuideAppLink:l.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:l.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:l.W.getResourceGuidanceAppLink,showNewVideoIndicator:j,companyLogoFallbackUrl:null,hasStudentExperience:O}}}},35014:(e,t,r)=>{r.d(t,{I:()=>f});var n=r(20354),i=r(55171),a=r(16714),o=r(12754),u=r(31949),s=r(22902),c=r(15311),l=r(37802),d=r(11387);function f(e){var t=(0,s.T)(),r=t.hasPermissions,f=t.hasLocalPermissions,v=(0,c.r)().hasProduct,p=n.a.useBasicFetch(u.N.currentUser()),m=(0,l.r)(null).hasPlayPageTranscript,h=v(o.x.Primary);return{canViewGlance:r(a.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:h&&r(a.C.ViewVideoInteractives),canViewClips:h&&r(a.C.ViewVideoClips),canViewCurriculumLinks:r(a.C.ViewCurriculums),canUseActions:f(a.E.UseVideoActions),canViewPublicLayout:!f(a.E.WatchVideos)&&d.C.hasRegionPrefix(),canViewResourceItems:f(a.E.ViewVideoResourceItems),canNavigate:h,canViewTranscript:function(e){var t;return(null===(t=p.data)||void 0===t?void 0:t.isAuthenticated)?m:!!e&&i.e.PublicTranscriptVideoIds.includes(e)}(e)}}},97816:(e,t,r)=>{r.d(t,{V:()=>o});var n=r(1575),i=r(39902),a=r(31908);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):[]:[]}(e).map((function(e){return e.id}));(0,i.F)(r,(function(e){return n.R.videoMixinAssocs(e,t.flightNamespace)}))}},54301:(e,t,r)=>{r.d(t,{l:()=>o});var n=r(20354),i=r(1575),a=r(35014);function o(e,t){var r,o,u=(0,a.I)(e).canViewTranscript,s=n.a.useBasicFetch(t?i.R.sharedVideo(e,t):i.R.video(e));return u&&!!(null===(o=null===(r=s.data)||void 0===r?void 0:r._isClickViewCurated)||void 0===o?void 0:o.value)}}}]);
2
+ //# sourceMappingURL=3978-a551dd2648-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3978-a551dd2648-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/share/views/play-shared-video/PlaySharedVideoView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/TranscriptRequests.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/play/hooks/useShowVideoTranscript.ts"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const getKey = _getKey || ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n\n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(getRequest) ]));\n }, [objs?.length]);\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { ClipCollection, Config, CurrentUser, InteractiveCollection, PresentationAudience, Video, VttSubtitleResponse } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { TranscriptRequests, TranscriptResponse } from 'shared/flight-requests/TranscriptRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { PlayPage } from 'shared/views/play/components/play-page/PlayPage';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\nimport { useShowTranscriptForVideo } from 'shared/views/play/hooks/useShowVideoTranscript';\n\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedVideoView(props: ShareLinkViewProps): React.ReactElement {\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n\n const { hasPermissions } = usePermissions();\n\n const featureAccess = useVideoFeatureAccess();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const { activePresentation } = usePresentation();\n const { hasPlayPageTranscript, hasNewSearch } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(\n VideoRequests.sharedVideo(props.objectId, props.shareId)\n );\n const clips = Flight.useBasicFetch<ClipCollection>(\n featureAccess.canViewClips && ClipRequests.videoClips(props.objectId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n \n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!activePresentation &&\n AudienceRequests.audiencesByPresentationId(activePresentation.id)\n );\n\n const shouldFetchTranscript = useShowTranscriptForVideo(props.objectId, props.shareId);\n const transcript = Flight.useBasicFetch<TranscriptResponse>(\n shouldFetchTranscript && currentUser.data?.contentRegion &&\n TranscriptRequests.chaptersAndSubtitles(props.objectId, currentUser.data.contentRegion)\n );\n const { subtitles: allSubtitles, chapters } = transcript?.data || {};\n // only show transcript for ClickView produced subtitle \n const subtitles = allSubtitles?.filter(subtitle => !subtitle.customer);\n \n const captionsRequests = (subtitles && subtitles.length > 0)\n ? subtitles.map(subtitle => TranscriptRequests.subtitleVtt(subtitle.url, subtitle))\n : [];\n const captions = Flight.useBasicFetchAll<VttSubtitleResponse>(captionsRequests);\n const filteredSubtitles = subtitles?.filter(\n subtitle => captions.data.find(caption => caption.id === subtitle.id)\n ) || [];\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(video, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'videos', shareId: props.shareId });\n\n const breadcrumbs = useBreadcrumbs({ name: video.data?.name });\n\n const curriculums = useCurriculums(props.objectId);\n\n const dataLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div className='px-3'>\n <PlayPage\n video={video.data}\n clips={clips.data?.data}\n interactives={interactives.data?.data}\n curriculums={curriculums}\n relatedVideos={relatedVideos}\n currentUser={currentUser.data}\n pointsOfInterest={pointsOfInterest?.items}\n playNext={props.queryParams?.playNext}\n shareId={props.shareId}\n featureAccess={featureAccess}\n audiences={audiences.data}\n params={props.queryParams}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTheatreMode={hasPlayPageTranscript}\n shouldShowTranscript={shouldFetchTranscript && captions.data?.length > 0}\n vttSubtitles={captions.data || []}\n subtitles={filteredSubtitles}\n chapters={chapters}\n isBot={SeoHelper.isBot()}\n playerApiUrl={config.data?.playerApiUrl}\n hasNewSearch={hasNewSearch}\n />\n </div>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { Chapter, Subtitle } from 'libs/shared/interfaces';\n\nexport interface TranscriptResponse {\n subtitles: Subtitle[];\n chapters: Chapter[];\n}\n\nexport const TranscriptRequests = {\n chaptersAndSubtitles(videoId: string, contentRegion?: string): Flight.PublicRequest {\n const queryStringObj = {\n query: 'subtitles[customer],chapters',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n contentRegion\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/subtitles`, queryStringObj),\n key: `videos:${videoId}:subtitles:chapters:${PermissionFilterOption.StripMetadata}`,\n formatData: (data: any) => {\n return { subtitles: data.subtitles.data, chapters: data.chapters.data };\n }\n };\n },\n\n subtitleVtt(url: string, subtitleObj: Subtitle): Flight.PublicRequest {\n return {\n url: `{player}/srt-to-vtt?url=${url}`,\n publicUrl: `/api/player/srt-to-vtt?url=${url}`,\n key: `subtitle:${url}`,\n formatData: (data: any) => {\n return {\n ...subtitleObj,\n vtt: data\n };\n }\n };\n }\n};","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canViewTranscript: boolean;\n}\n\nexport function useVideoFeatureAccess(videoId?: string) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { hasPlayPageTranscript } = useSettings(null);\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n function shouldShowTranscript(videoId: string): boolean {\n if (currentUser.data?.isAuthenticated)\n return hasPlayPageTranscript;\n\n if (!videoId)\n return false;\n\n return HardCoded.PublicTranscriptVideoIds.includes(videoId);\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP,\n canViewTranscript: shouldShowTranscript(videoId)\n };\n}","import { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(videoIds, ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace));\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\n\nexport function useShowTranscriptForVideo(videoId: string, shareId?: string) {\n const { canViewTranscript } = useVideoFeatureAccess(videoId);\n\n const video = Flight.useBasicFetch<Video>(\n shareId ? VideoRequests.sharedVideo(videoId, shareId) : VideoRequests.video(videoId)\n );\n\n return canViewTranscript && !!video.data?._isClickViewCurated?.value;\n}"],"names":["CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","length","reduce","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","getKey","obj","fetchedItems","Set","setRequests","unfetchedItems","forEach","key","current","has","push","add","r","hasFirstRequestCompleted","hasCompleted","useBreadcrumbs","match","breadcrumbs","useBuilder","active","PlaySharedVideoView","props","locationContext","commonVideoProps","hasCommonVideoPropsCompleted","hasPermissions","featureAccess","shouldShowSideTableOfContents","activePresentation","hasPlayPageTranscript","hasNewSearch","currentUser","video","objectId","shareId","clips","canViewClips","interactives","canViewInteractives","relatedVideos","context","queryParams","contextId","moviesAndTv","mtv","pointsOfInterest","audiences","shouldFetchTranscript","transcript","contentRegion","allSubtitles","subtitles","chapters","filter","subtitle","customer","captionsRequests","url","captions","filteredSubtitles","find","caption","config","content","canonicalLink","stripPresentationSlug","allowIndexing","videos","private","app","name","curriculums","className","playNext","params","canManageVideoAccess","tableOfContentsId","tocId","hasTheatreMode","shouldShowTranscript","vttSubtitles","isBot","playerApiUrl","TranscriptRequests","chaptersAndSubtitles","videoId","queryStringObj","query","permissionFilterOption","publicUrl","formatData","subtitleVtt","subtitleObj","vtt","useCommonVideoProps","options","flightNamespace","sharedPlaylist","isPlugin","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasLoadedPermissions","isLoaded","hasStudentExperience","yearGroups","isAuthenticated","customerId","subTextType","getSubTextAppLink","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","useVideoFeatureAccess","hasLocalPermissions","hasProduct","hasNP","canViewGlance","canViewResources","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","canViewTranscript","useVideoMixin","objects","videoIds","Array","isArray","o","getValidObjects","v","ids","useShowTranscriptForVideo","_isClickViewCurated","value"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4013],{71553:(e,t,r)=>{r.d(t,{I:()=>i});var n=r(99940),a=r(62875);function o(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:{start:t.start,end:t.end},userIds:t.userId,classroomsAndGroups:t.groupId}}var i={interactiveResultSet:function(e,t,r,i,c,s,u,l){return{url:c?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:(0,a.H)("interactive:result:set:".concat(e,":").concat(t),i),data:o(r,i),type:n.k.POST,normalize:!1,formatData:function(e){return Object.assign(Object.assign({},e),{students:e.students.map((function(e){return e.name&&e.profileId?Object.assign(Object.assign({},e),{publicUser:{profileId:e.profileId,name:e.name}}):e}))})},success:s,error:u,always:l}},mark:function(e,t,r,a,o,i,c){return{url:"/api/domain/v1/analytics/answers/".concat(r),key:"mark:answer:".concat(r,":").concat(a.resultId),type:n.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:o,error:i,always:c}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},41196:(e,t,r)=>{r.d(t,{W:()=>c});var n=r(20354),a=r(71553),o=r(20768),i=r(31949);function c(e,t,r){var c,s=n.a.useBasicFetch(i.N.currentUser()),u=n.a.useBasicFetch(!!e&&o.b.interactiveMetadata(e)),l=n.a.useBasicFetch(!!(null===(c=u.data)||void 0===c?void 0:c.interactiveId)&&o.b.interactive(u.data.interactiveId)),d=!!s.data&&!!l.data&&!!t;return n.a.useBasicFetch(d&&a.I.interactiveResultSet(u.data.interactiveId,u.data.id,s.data,t,r))}},26025:(e,t,r)=>{r.d(t,{B:()=>o});var n=r(1048),a=r(75795),o={getAudienceAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=n.t.isObject(e.params)?e.params:{},r=t.users,o=t.classrooms,i=t.classroomGroups,c=function(e){var r=t[e];if(r)return Array.isArray(r)?r:[r]},s={};return r&&(s.users=c("users")),o&&(s.classrooms=c("classrooms")),i&&(s.classroomGroups=c("classroomGroups")),s},getDateRangeAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=n.t.isObject(e.params)?e.params:{},r=t.from,o=t.to,i=t.rangeName,c={};return r&&(c.from=r),o&&(c.to=o),i&&(c.rangeName=i),c}}},26136:(e,t,r)=>{r.d(t,{B:()=>o});var n=r(76198),a=r(64818);function o(e,t){return e?t?(0,n._8)((r="profileId"in e?e.profileId:e.id,o=+"".concat(r).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[n.O9,n.yd],separator:" ",length:2,style:"capital",seed:o})):"profileId"in e?e.name:a.l.getFullName(e):"";var r,o}},74901:(e,t,r)=>{function n(e){return function(e){if(Array.isArray(e))return a(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 a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(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 a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{K:()=>o});var o=function(e){var t=[],r=[];return e.users&&t.push.apply(t,n(e.users)),e.classrooms&&r.push.apply(r,n(e.classrooms)),e.classroomGroups&&r.push.apply(r,n(e.classroomGroups)),{userId:t,groupId:r}}},40003:(e,t,r)=>{r.d(t,{Hb:()=>f,NG:()=>v,W5:()=>d,eO:()=>p,nG:()=>u,wO:()=>y,zn:()=>s});var n=r(23481),a=r(110),o=r(57266),i=n.T.encloseNamespace("shared.analyticsUtils");function c(e){var t=a.O.convertDateToUTC(e);return a.O.format(t,"YYYY-MM-DDTHH:mm:ss")}function s(){return new Date(2021,0,1)}function u(){return new Date}function l(e){return e.find((function(e){return!!e.default}))}function d(e,t){if(t)return e.find((function(e){return e.name===t}))}function f(){var e=s(),t=(new Date).getFullYear(),r=t===e.getFullYear();return[{name:i("today"),startDate:new Date,endDate:new Date},{name:i("thisMonth"),startDate:new Date(t,(new Date).getMonth(),1),endDate:new Date},{name:i("lastThreeMonths"),startDate:new Date(t,(new Date).getMonth()-2,1),endDate:new Date},{name:i("lastSixMonths"),startDate:new Date(t,(new Date).getMonth()-5,1),endDate:new Date},{name:i("thisYear"),startDate:new Date(t,0,1),endDate:new Date},{name:i("lastYear"),startDate:new Date(t-1,0,1),endDate:new Date(t,0,0),disabled:r,tooltip:r?i("lastYearDisabled"):""},{name:i("allTime"),startDate:a.O.subtract(new Date,5,"years"),endDate:new Date,default:!0}]}function m(e){return a.O.format(e,"YYYY-MM-DD")}function p(e){return e.name?{rangeName:e.name}:{from:m(e.startDate),to:m(e.endDate)}}function v(e,t){var r=t.to,n=t.from,i=t.rangeName,c=d(e,i);if(c)return n||r?void o.e.updateParams(p(c),{replace:!0,merge:!0,keysToRemove:["from","to"]}):c;var f=l(e);if(n&&r&&a.O.isValid(n)&&a.O.isValid(r)){var m=!0,v=a.O.convertDateToUTC(new Date(n)),y=a.O.convertDateToUTC(new Date(r));a.O.isBefore(v,s(),"day")&&(v=s(),m=!1),a.O.isAfter(y,u(),"day")&&(y=u(),m=!1),a.O.isAfter(v,y)&&(v=f.startDate,y=f.endDate,m=!1);var g={startDate:v,endDate:y,name:m?i||"custom":""};if(m)return g;o.e.updateParams(p(g),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}else o.e.updateParams(p(f),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}function y(e,t){var r=function(e){return c(a.O.startOf(e,"day"))},n=function(e){return c(a.O.endOf(e,"day"))},o=d(e,t.rangeName);if(o)return{start:r(m(o.startDate)),end:n(m(o.endDate))};if(t.from&&t.to)return{start:r(t.from),end:n(t.to)};var i=l(e);return{start:r(m(i.startDate)),end:n(m(i.endDate))}}},1568:(e,t,r)=>{r.r(t),r.d(t,{GenerateInteractiveResultsReportView:()=>N});var n=r(32735),a=r(23481),o=r(2948),i=r(20354),c=r(110),s=r(84806),u=r(71553),l=r(41196),d=r(26025),f=r(74901),m=r(40003),p=r(2606),v=r(9111),y=r(13876),g=r(83345),b=r(38143),h=r(28972),w=r(20768),D=r(31949),O=r(69883),E=r(91286),I=r(52921),S=r(83140),R=r(80845),k=r(64818);function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return C(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(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 C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var T="shared.generateReport",P=a.T.encloseNamespace(T);function j(e){var t=c.O.convertUTCToLocal(e).toString();return c.O.format(t,"Do MMMM YYYY")}function N(e){var t,r,a=A((0,o.D)(b.g.ANONYMISE_USERS),1)[0],c=(0,O.Z)(),C=i.a.useGetFetchAsync(),N=d.B.getAudienceAppLinkParams(),M=d.B.getDateRangeAppLinkParams(),L=(0,m.wO)((0,m.Hb)(),M),x=A(n.useState(!1),2),_=x[0],F=x[1],G=(0,I.b)(),B=G.loading,U=G.handleGenerateReportError,Y=i.a.useBasicFetch(D.N.currentUser()),z=i.a.useBasicFetch(w.b.interactiveMetadata(e.interactiveId)),H=i.a.useBasicFetch((null===(t=z.data)||void 0===t?void 0:t.interactiveId)?w.b.interactive(z.data.interactiveId):null),Z=(0,l.W)(e.interactiveId,Object.assign(Object.assign({},L),(0,f.K)(N)));(0,E.v)([H,z,Z]);var q=(0,R.Q)(H.data),V=(0,s.Fx)(H.data,Z.data,!1,a);return n.createElement(g.D.Provider,{value:T},n.createElement(v.G,{title:P("title"),showLoadingSpinner:!Y.hasCompleted||B,closePopup:e.closePopup},n.createElement(n.Fragment,null,n.createElement("p",null,n.createElement(g.x,{phrase:"description"})),n.createElement("p",null,n.createElement(g.x,{phrase:"dateRange",options:{dateFrom:j(L.start),dateTo:j(L.end)}})),n.createElement("p",null,n.createElement(g.x,{phrase:"emailDescription",options:{email:null===(r=Y.data)||void 0===r?void 0:r.email}})),n.createElement(y.u,null,n.createElement(y.u.Cancel,{onClick:e.closePopup}),n.createElement(y.u.Submit,{variant:"dark",onClick:function(){F(!0);var t={interactiveName:z.data.name,userId:Y.data.id,customerId:Y.data.customerId,questions:q.map((function(e){return e.name})),rows:V.map((function(e){return{name:k.l.getFullName(e.user),unanswered:e.summary.unanswered,percentage:(0,p.DV)((0,p.Ki)(e.summary.percentCorrect)),correct:e.summary.correct,totalQuestions:e.summary.answered+e.summary.unanswered,results:q.map((function(t){switch(S.A.isInteractionCorrect(t,(0,R.j_)(e))){case h.w.Correct:return P("correct");case h.w.Incorrect:return P("incorrect");case h.w.NotApplicable:return"-";case h.w.AwaitingMarking:return P("awaitingMarking");case h.w.UnAnswered:case h.w.Answered:default:return""}}))}}))};C(u.I.interactiveResultsReport(t)).then((function(){c.success(P("success"))})).catch((function(e){return U(e,P("error"),P("noEmailError"))})).finally(e.closePopup)},text:P("generateReport"),showSpinner:_})))))}},40782:(e,t,r)=>{r.d(t,{I:()=>n,O:()=>s});var n,a=r(32735),o=r(2606),i=r(362);function c(e){var t=a.useCallback((function(t){if(t){var r=t.r.baseVal.value,n=2*Math.PI*r,a=n-e.percentage*n;t.style.strokeDasharray="".concat(n," ").concat(n),t.style.strokeDashoffset=a.toString()}}),[e.percentage]);return a.createElement("svg",null,a.createElement("circle",{r:(0,o.pu)(e.size),className:i.Z.backgroundCircle}),!(0,o.zR)(e.percentage)&&a.createElement("circle",{ref:t,r:(0,o.pu)(e.size),className:(0,o.V4)(e.percentage,e.scoreThresholds)}))}function s(e){var t,r=(0,o.Ki)(e.percentage),s=e.size||(e.layout===n.LabelInside?o.Mk.Large:o.Mk.Small),u=e.customLabel||(0,o.DV)(r);return e.layout===n.LabelOnly?a.createElement("span",{className:(0,o.IA)(r)},u):a.createElement("div",{className:"d-flex align-items-center justify-content-between ".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.layout===n.LabelBefore&&a.createElement("span",{className:"me-2"},u),a.createElement("div",{className:(0,o.tw)(s,r)},a.createElement(c,{percentage:r,size:s,scoreThresholds:e.scoreThresholds}),e.layout===n.LabelInside&&a.createElement("span",{className:i.Z.centredPercentageText},u)))}!function(e){e.CircleOnly="circle_only",e.LabelOnly="label_only",e.LabelBefore="label_before",e.LabelInside="label_inside"}(n||(n={})),s.defaultProps={layout:n.CircleOnly}},2606:(e,t,r)=>{r.d(t,{DV:()=>y,IA:()=>m,Ki:()=>v,Mk:()=>c,V4:()=>f,pu:()=>d,tw:()=>p,zR:()=>g});var n=r(94892),a=r(362);function o(e){return o="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},o(e)}function i(e,t,r){return(t=function(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c,s=.2,u=.36;!function(e){e.Small="small",e.Large="large",e.ExtraSmall="extraSmall"}(c||(c={}));var l=i(i(i({},c.ExtraSmall,{size:2}),c.Small,{size:2}),c.Large,{size:5.8});function d(e){var t=l[e].size,r=e===c.Large?u:s;return"".concat(t/2-2*r,"rem")}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?a.Z.circleSuccess:e>=t.MODERATE?a.Z.circleWarning:a.Z.circleDanger}function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?"text-success":e>=t.MODERATE?"text-warning":"text-danger"}function p(e,t){var r="d-inline-block ".concat(a.Z.circleContainer);return e===c.Large&&(r+=" ".concat(a.Z.lgCircleContainer)),e===c.ExtraSmall&&(r+=" ".concat(a.Z.xsCircleContainer)),g(t)&&(r+=" ".concat(a.Z.pendingCircle)),r}function v(e){if(!g(e))return+e.toFixed(2)}function y(e){return g(e)?"--%":"".concat(Math.round(100*e),"%")}function g(e){return"number"!=typeof e}},94892:(e,t,r)=>{r.d(t,{T:()=>a,i:()=>n});var n={HIGH:.75,MODERATE:.5},a={HIGH:.7,MODERATE:.7}},94644:(e,t,r)=>{r.d(t,{r:()=>l});var n=r(50242),a=r(81886),o=r(67058),i=r(14553),c=r(49267),s=r(49075),u={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:c.a,privacy:i.q},badRequest:s._,internalServerError:s._};function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},u),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==n.o.InternalServer?o!==n.o.NotFound?o!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new i.badRequest):r.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):r.notFound||a.Q.Ry.throw(new i.notFound):r.internalServerError||a.Q.Ry.throw(new s._))}}},91286:(e,t,r)=>{r.d(t,{v:()=>i});var n=r(32735),a=r(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function i(e,t,r){var i=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){i.forEach((function(e){(0,a.r)(e.statusCode,t,r)}))}),[o(i),t,r])}},52921:(e,t,r)=>{r.d(t,{b:()=>w});var n=r(81886),a=r(20354),o=r(12754),i=r(23481),c=r(97395),s=r(47663);function u(e){return u="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},u(e)}function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,d(n.key),n)}}function d(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}var v="shared.verifiedEmailError",y=function(e){function t(e,r,n){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=function(e,t,r){return t=m(t),function(e,t){if(t&&("object"==u(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,f()?Reflect.construct(t,r||[],m(e).constructor):t.apply(e,r))}(this,t,["VerifiedEmailRequiredError"])).message=e,a.liteUrl=r,a.hasLite=n,a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),r=t,(n=[{key:"name",get:function(){return"VerifiedEmailRequiredError"}},{key:"dialogOptions",get:function(){var e=c._.safeUrlConcat(this.liteUrl,"settings/account");return{title:i.T.getPhrase(v,"heading"),text:this.hasLite?"".concat(this.message," ").concat(i.T.getPhrase(v,"visitSettings",{href:e})):this.message,buttons:[{text:i.T.getPhrase(v,"close"),className:"btn btn-dark",success:!0}]}}}])&&l(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(s.S),g=r(39151),b=r(69883),h=r(15311);function w(){var e=(0,b.Z)(),t=(0,h.r)(),r=t.hasProduct,i=t.isLoadingProducts,c=a.a.useBasicFetch(g.L.config());return{handleGenerateReportError:function(t,a,i){var s;t.responseJSON&&"no-email"===(null===(s=t.responseJSON)||void 0===s?void 0:s.type)?n.Q.Ry.throw(new y(i,c.data.liteUrl,r(o.x.Primary))):e.error(a)},loading:!c.hasCompleted||i}}},62875:(e,t,r)=>{function n(e,t,r){var n="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,o=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return a&&(n+=":".concat(a)),o&&(n+=":".concat(o)),r&&(n+=":".concat(r)),n}r.d(t,{H:()=>n})},57266:(e,t,r)=>{r.d(t,{e:()=>i});var n=r(81886),a=r(1048),o=r(75795),i={updateParams:function(e,t){var r=o.O.getCurrentRoute().appLink,i="string"==typeof r.params?n.Q.Ab.DeserializeQueryParams(r.params):r.params;t.keysToRemove&&(i=a.t.omit(i,t.keysToRemove));var c=(null==t?void 0:t.merge)?Object.assign(Object.assign({},i),e):e,s=Object.assign(Object.assign({},r),{params:c});a.t.isEqual(r,s)||n.Q.C$.trigger(s,a.t.omit(t,["merge","keysToRemove"]))}}},362:(e,t,r)=>{r.d(t,{Z:()=>n});const n={circleContainer:"p8Vgz",backgroundCircle:"asGGE",circleSuccess:"PXLNj",circleWarning:"ZckRN",circleDanger:"slBRg",lgCircleContainer:"N8KCI",xsCircleContainer:"RPqZ2",pendingCircle:"DKrcq",centredPercentageText:"tpmLR"}}}]);
2
- //# sourceMappingURL=4013-d31272b42a-lite.chunk.js.map
2
+ //# sourceMappingURL=4013-6f68d7031e-lite.chunk.js.map