@clickview/lite 0.53.4 → 0.53.6-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 (188) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{6094-lite-bcd14ea6d2.chunk.css → 1019-lite-bbcf2bff27.chunk.css} +3 -2
  3. package/dist/css/{1329-lite-be86e46c78.chunk.css → 1329-lite-458183b24f.chunk.css} +2 -2
  4. package/dist/css/{1838-lite-e6a28b84ed.chunk.css → 1838-lite-981a5e0783.chunk.css} +1 -1
  5. package/dist/css/{1760-lite-bcd14ea6d2.chunk.css → 2548-lite-bbcf2bff27.chunk.css} +3 -2
  6. package/dist/css/{3969-lite-29e14c7861.chunk.css → 3969-lite-ed58852d97.chunk.css} +2 -2
  7. package/dist/css/{422-lite-dace5f41de.chunk.css → 422-lite-b8c1fd1dee.chunk.css} +1 -1
  8. package/dist/css/{4502-lite-92be6697e7.chunk.css → 4502-lite-eaf1a1113c.chunk.css} +1 -1
  9. package/dist/css/{5220-lite-9832e2c2fb.chunk.css → 5220-lite-8a8d5d035f.chunk.css} +1 -1
  10. package/dist/css/{537-lite-56a3fc7e48.chunk.css → 537-lite-4de4c47713.chunk.css} +1 -1
  11. package/dist/css/{6489-lite-9045df4bb9.chunk.css → 6489-lite-e271aaed2d.chunk.css} +1 -1
  12. package/dist/css/{6544-lite-d46c2d634c.chunk.css → 6544-lite-319ed51ccc.chunk.css} +1 -1
  13. package/dist/css/{5549-lite-97ed26d0aa.chunk.css → 6596-lite-bb28584922.chunk.css} +2 -1
  14. package/dist/css/{841-lite-27b6485cd1.chunk.css → 841-lite-46ef623835.chunk.css} +1 -1
  15. package/dist/css/{8522-lite-2f2797038e.chunk.css → 8522-lite-f100606ec5.chunk.css} +1 -1
  16. package/dist/css/{8801-lite-c88eb54bee.chunk.css → 8801-lite-d34200ab29.chunk.css} +2 -2
  17. package/dist/css/{3640-lite-97ed26d0aa.chunk.css → 9010-lite-bb28584922.chunk.css} +2 -1
  18. package/dist/languages/en.json +1 -1
  19. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js → 1019-8f977b5095-lite.chunk.js} +2 -2
  20. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js.map → 1019-8f977b5095-lite.chunk.js.map} +1 -1
  21. package/dist/scripts/1080-509aa6e738-lite.chunk.js +2 -0
  22. package/dist/scripts/1080-509aa6e738-lite.chunk.js.map +1 -0
  23. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js +2 -0
  24. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js.map +1 -0
  25. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js +3 -0
  26. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js.map +1 -0
  27. package/dist/scripts/{1379-976d20185f-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
  28. package/dist/scripts/{1379-976d20185f-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
  29. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js +2 -0
  30. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js.map +1 -0
  31. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js → 1838-95081e8dea-lite.chunk.js} +1 -1
  32. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js.map → 1838-95081e8dea-lite.chunk.js.map} +1 -1
  33. package/dist/scripts/184-6ce393c251-lite.chunk.js +2 -0
  34. package/dist/scripts/184-6ce393c251-lite.chunk.js.map +1 -0
  35. package/dist/scripts/{2004-3005565af0-lite.chunk.js → 2004-e20d72976c-lite.chunk.js} +3 -3
  36. package/dist/scripts/{2004-3005565af0-lite.chunk.js.map → 2004-e20d72976c-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/{2094-58390aa60a-lite.chunk.js → 2094-a16bbca3a3-lite.chunk.js} +2 -2
  38. package/dist/scripts/2094-a16bbca3a3-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2142-c46ca4050f-lite.chunk.js +2 -0
  40. package/dist/scripts/2142-c46ca4050f-lite.chunk.js.map +1 -0
  41. package/dist/scripts/2199-be40da7440-lite.chunk.js +2 -0
  42. package/dist/scripts/2199-be40da7440-lite.chunk.js.map +1 -0
  43. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js +2 -0
  44. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js.map +1 -0
  45. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js +2 -0
  46. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3999-317a4538c6-lite.chunk.js +3 -0
  48. package/dist/scripts/3999-317a4538c6-lite.chunk.js.map +1 -0
  49. package/dist/scripts/{422-ee640f76c5-lite.chunk.js → 422-a63a7eb901-lite.chunk.js} +1 -1
  50. package/dist/scripts/{422-ee640f76c5-lite.chunk.js.map → 422-a63a7eb901-lite.chunk.js.map} +1 -1
  51. package/dist/scripts/{4502-af4903784e-lite.chunk.js → 4502-a7d60fa257-lite.chunk.js} +1 -1
  52. package/dist/scripts/{4502-af4903784e-lite.chunk.js.map → 4502-a7d60fa257-lite.chunk.js.map} +1 -1
  53. package/dist/scripts/{4554-c0d7490a46-lite.chunk.js → 4554-b9aa07891f-lite.chunk.js} +2 -2
  54. package/dist/scripts/4554-b9aa07891f-lite.chunk.js.map +1 -0
  55. package/dist/scripts/{4591-379f0fe588-lite.chunk.js → 4591-21c0094f28-lite.chunk.js} +2 -2
  56. package/dist/scripts/{4591-379f0fe588-lite.chunk.js.map → 4591-21c0094f28-lite.chunk.js.map} +1 -1
  57. package/dist/scripts/{4683-ce52da47d8-lite.chunk.js → 4683-d3afe2dfa8-lite.chunk.js} +2 -2
  58. package/dist/scripts/4683-d3afe2dfa8-lite.chunk.js.map +1 -0
  59. package/dist/scripts/5220-291b2243ad-lite.chunk.js +3 -0
  60. package/dist/scripts/5220-291b2243ad-lite.chunk.js.map +1 -0
  61. package/dist/scripts/537-6efb9bc099-lite.chunk.js +3 -0
  62. package/dist/scripts/537-6efb9bc099-lite.chunk.js.map +1 -0
  63. package/dist/scripts/5660-6711768c20-lite.chunk.js +2 -0
  64. package/dist/scripts/5660-6711768c20-lite.chunk.js.map +1 -0
  65. package/dist/scripts/5936-e839cb8193-lite.chunk.js +2 -0
  66. package/dist/scripts/5936-e839cb8193-lite.chunk.js.map +1 -0
  67. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
  68. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
  69. package/dist/scripts/6450-f16821bf09-lite.chunk.js +2 -0
  70. package/dist/scripts/6450-f16821bf09-lite.chunk.js.map +1 -0
  71. package/dist/scripts/6489-c242844567-lite.chunk.js +3 -0
  72. package/dist/scripts/6489-c242844567-lite.chunk.js.map +1 -0
  73. package/dist/scripts/6544-07898e3fa3-lite.chunk.js +2 -0
  74. package/dist/scripts/6544-07898e3fa3-lite.chunk.js.map +1 -0
  75. package/dist/scripts/6596-848fbf79bb-lite.chunk.js +2 -0
  76. package/dist/scripts/6596-848fbf79bb-lite.chunk.js.map +1 -0
  77. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js → 6741-fe09fea334-lite.chunk.js} +3 -3
  78. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map} +1 -1
  79. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js +2 -0
  80. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js.map +1 -0
  81. package/dist/scripts/696-fa78eb455f-lite.chunk.js +2 -0
  82. package/dist/scripts/696-fa78eb455f-lite.chunk.js.map +1 -0
  83. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js → 7234-d15fe07f0e-lite.chunk.js} +2 -2
  84. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js.map → 7234-d15fe07f0e-lite.chunk.js.map} +1 -1
  85. package/dist/scripts/729-594be12089-lite.chunk.js +2 -0
  86. package/dist/scripts/729-594be12089-lite.chunk.js.map +1 -0
  87. package/dist/scripts/{7293-3e6ad36a7a-lite.chunk.js → 7293-35871fc150-lite.chunk.js} +2 -2
  88. package/dist/scripts/7293-35871fc150-lite.chunk.js.map +1 -0
  89. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js → 8192-eb7054ccc6-lite.chunk.js} +2 -2
  90. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js.map → 8192-eb7054ccc6-lite.chunk.js.map} +1 -1
  91. package/dist/scripts/841-11af1334bf-lite.chunk.js +3 -0
  92. package/dist/scripts/841-11af1334bf-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{8522-b4b217640c-lite.chunk.js → 8522-8e9c576bf6-lite.chunk.js} +1 -1
  94. package/dist/scripts/{8522-b4b217640c-lite.chunk.js.map → 8522-8e9c576bf6-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/8801-3a7652eb35-lite.chunk.js +2 -0
  96. package/dist/scripts/8801-3a7652eb35-lite.chunk.js.map +1 -0
  97. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js +2 -0
  98. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js.map +1 -0
  99. package/dist/scripts/9139-22fb64f542-lite.chunk.js +2 -0
  100. package/dist/scripts/9139-22fb64f542-lite.chunk.js.map +1 -0
  101. package/dist/scripts/9173-e45847aa35-lite.chunk.js +2 -0
  102. package/dist/scripts/9173-e45847aa35-lite.chunk.js.map +1 -0
  103. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
  104. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
  105. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js → 9478-13da35c4ee-lite.chunk.js} +3 -3
  106. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.map → 9478-13da35c4ee-lite.chunk.js.map} +1 -1
  107. package/dist/scripts/{953-bf3d621a33-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
  108. package/dist/scripts/{953-bf3d621a33-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
  109. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js → 9899-fa58471776-lite.chunk.js} +2 -2
  110. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js.map → 9899-fa58471776-lite.chunk.js.map} +1 -1
  111. package/dist/scripts/bundle-7f9a9b650d.min.js +3 -0
  112. package/dist/scripts/bundle-7f9a9b650d.min.js.map +1 -0
  113. package/package.json +1 -1
  114. package/dist/scripts/1080-4173ce26bd-lite.chunk.js +0 -2
  115. package/dist/scripts/1080-4173ce26bd-lite.chunk.js.map +0 -1
  116. package/dist/scripts/1169-d090f0a147-lite.chunk.js +0 -2
  117. package/dist/scripts/1169-d090f0a147-lite.chunk.js.map +0 -1
  118. package/dist/scripts/1329-d48379c043-lite.chunk.js +0 -3
  119. package/dist/scripts/1329-d48379c043-lite.chunk.js.map +0 -1
  120. package/dist/scripts/1518-9756fde01e-lite.chunk.js +0 -2
  121. package/dist/scripts/1518-9756fde01e-lite.chunk.js.map +0 -1
  122. package/dist/scripts/184-ee581fa2e0-lite.chunk.js +0 -2
  123. package/dist/scripts/184-ee581fa2e0-lite.chunk.js.map +0 -1
  124. package/dist/scripts/2094-58390aa60a-lite.chunk.js.map +0 -1
  125. package/dist/scripts/2199-476ac5922f-lite.chunk.js +0 -2
  126. package/dist/scripts/2199-476ac5922f-lite.chunk.js.map +0 -1
  127. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js +0 -2
  128. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js.map +0 -1
  129. package/dist/scripts/3969-c0160d0139-lite.chunk.js +0 -2
  130. package/dist/scripts/3969-c0160d0139-lite.chunk.js.map +0 -1
  131. package/dist/scripts/4063-786732e7b0-lite.chunk.js +0 -2
  132. package/dist/scripts/4063-786732e7b0-lite.chunk.js.map +0 -1
  133. package/dist/scripts/4273-de24896b28-lite.chunk.js +0 -3
  134. package/dist/scripts/4273-de24896b28-lite.chunk.js.map +0 -1
  135. package/dist/scripts/4554-c0d7490a46-lite.chunk.js.map +0 -1
  136. package/dist/scripts/4683-ce52da47d8-lite.chunk.js.map +0 -1
  137. package/dist/scripts/4850-5ddd277550-lite.chunk.js +0 -2
  138. package/dist/scripts/4850-5ddd277550-lite.chunk.js.map +0 -1
  139. package/dist/scripts/5220-85898810a6-lite.chunk.js +0 -3
  140. package/dist/scripts/5220-85898810a6-lite.chunk.js.map +0 -1
  141. package/dist/scripts/537-de7445d41a-lite.chunk.js +0 -3
  142. package/dist/scripts/537-de7445d41a-lite.chunk.js.map +0 -1
  143. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js +0 -2
  144. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js.map +0 -1
  145. package/dist/scripts/5660-a356acdbca-lite.chunk.js +0 -2
  146. package/dist/scripts/5660-a356acdbca-lite.chunk.js.map +0 -1
  147. package/dist/scripts/5936-92d9cea005-lite.chunk.js +0 -2
  148. package/dist/scripts/5936-92d9cea005-lite.chunk.js.map +0 -1
  149. package/dist/scripts/6094-8546003d79-lite.chunk.js +0 -2
  150. package/dist/scripts/6094-8546003d79-lite.chunk.js.map +0 -1
  151. package/dist/scripts/6450-601f889072-lite.chunk.js +0 -2
  152. package/dist/scripts/6450-601f889072-lite.chunk.js.map +0 -1
  153. package/dist/scripts/6489-532a022587-lite.chunk.js +0 -3
  154. package/dist/scripts/6489-532a022587-lite.chunk.js.map +0 -1
  155. package/dist/scripts/6544-ae27efabab-lite.chunk.js +0 -2
  156. package/dist/scripts/6544-ae27efabab-lite.chunk.js.map +0 -1
  157. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js +0 -2
  158. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js.map +0 -1
  159. package/dist/scripts/6852-9dfd47d085-lite.chunk.js +0 -2
  160. package/dist/scripts/6852-9dfd47d085-lite.chunk.js.map +0 -1
  161. package/dist/scripts/7293-3e6ad36a7a-lite.chunk.js.map +0 -1
  162. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js +0 -3
  163. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js.map +0 -1
  164. package/dist/scripts/8801-222a1b2e99-lite.chunk.js +0 -2
  165. package/dist/scripts/8801-222a1b2e99-lite.chunk.js.map +0 -1
  166. package/dist/scripts/9139-49023800c6-lite.chunk.js +0 -2
  167. package/dist/scripts/9139-49023800c6-lite.chunk.js.map +0 -1
  168. package/dist/scripts/9173-f9708ec0de-lite.chunk.js +0 -2
  169. package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +0 -1
  170. package/dist/scripts/bundle-e72459b30e.min.js +0 -3
  171. package/dist/scripts/bundle-e72459b30e.min.js.map +0 -1
  172. /package/dist/css/{4273-lite-a3c7435ba4.chunk.css → 3999-lite-a3c7435ba4.chunk.css} +0 -0
  173. /package/dist/css/{4063-lite-f72fc7b813.chunk.css → 4860-lite-f72fc7b813.chunk.css} +0 -0
  174. /package/dist/css/{4850-lite-f72fc7b813.chunk.css → 729-lite-f72fc7b813.chunk.css} +0 -0
  175. /package/dist/scripts/{1329-d48379c043-lite.chunk.js.LICENSE.txt → 1329-bdbbf6c7fd-lite.chunk.js.LICENSE.txt} +0 -0
  176. /package/dist/scripts/{1379-976d20185f-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
  177. /package/dist/scripts/{2004-3005565af0-lite.chunk.js.LICENSE.txt → 2004-e20d72976c-lite.chunk.js.LICENSE.txt} +0 -0
  178. /package/dist/scripts/{4273-de24896b28-lite.chunk.js.LICENSE.txt → 3999-317a4538c6-lite.chunk.js.LICENSE.txt} +0 -0
  179. /package/dist/scripts/{5220-85898810a6-lite.chunk.js.LICENSE.txt → 5220-291b2243ad-lite.chunk.js.LICENSE.txt} +0 -0
  180. /package/dist/scripts/{537-de7445d41a-lite.chunk.js.LICENSE.txt → 537-6efb9bc099-lite.chunk.js.LICENSE.txt} +0 -0
  181. /package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
  182. /package/dist/scripts/{6489-532a022587-lite.chunk.js.LICENSE.txt → 6489-c242844567-lite.chunk.js.LICENSE.txt} +0 -0
  183. /package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.LICENSE.txt → 6741-fe09fea334-lite.chunk.js.LICENSE.txt} +0 -0
  184. /package/dist/scripts/{841-73ef4ba5ec-lite.chunk.js.LICENSE.txt → 841-11af1334bf-lite.chunk.js.LICENSE.txt} +0 -0
  185. /package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
  186. /package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt → 9478-13da35c4ee-lite.chunk.js.LICENSE.txt} +0 -0
  187. /package/dist/scripts/{953-bf3d621a33-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
  188. /package/dist/scripts/{bundle-e72459b30e.min.js.LICENSE.txt → bundle-7f9a9b650d.min.js.LICENSE.txt} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1518],{88513:(e,t,n)=>{n.d(t,{B:()=>u});var i=n(32735),r=n(23481),a=n(65858),o=n(36848);const s={seeMore:"yv0FS"};var c=r.T.encloseNamespace("shared.widgetHeader");function l(e){return i.createElement("div",{className:"ms-3 ".concat(s.seeMore)},i.createElement(o.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:a._S.SeeMore}),className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":"")},i.createElement("p",{className:"hover-text-underline text-dark curated-widget-heading"},c("seeMore"))))}function u(e){var t=!!e.description;return e.name||e.description?i.createElement("div",{className:"curated-widget-header"},i.createElement("div",{className:"d-flex justify-content-between"},!!e.name&&i.createElement("div",{className:s.title},i.createElement(o.F,{appLink:e.appLink,analyticsOptions:e.analyticsOptions,analyticsData:e.analyticsData,className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":""),onClick:e.onClick},i.createElement("h2",{className:"h4 curated-widget-heading"},e.name))),!!e.appLink&&!t&&!!e.showSeeMoreLink&&i.createElement(l,Object.assign({},e))),t&&i.createElement("div",{className:"d-flex justify-content-between align-items-end"},i.createElement("p",{className:"description curated-widget-description ".concat(s.description)},i.createElement("span",null,e.description)),!!e.appLink&&!!e.showSeeMoreLink&&i.createElement(l,Object.assign({},e)))):i.createElement(i.Fragment,null)}},55827:(e,t,n)=>{n.d(t,{l:()=>r});var i=n(32735);function r(e){return e.hideDescription&&e.hideHeading?i.createElement(i.Fragment,null):i.createElement("div",{className:"curated-widget-header"},!e.hideHeading&&i.createElement("div",{className:"partial-loading-background curated-widget-heading",style:{height:"1.5rem",width:"12rem"}}),!e.hideDescription&&i.createElement("div",{className:"partial-loading-background curated-widget-description",style:{height:"1.434375rem",width:"16rem"}}))}},5281:(e,t,n)=>{n.d(t,{k:()=>N,x:()=>O});var i=n(32735),r=n(23481),a=n(91967),o=n(82182),s=n(81886),c=n(49985),l=n(88513),u=n(29420),d=n(43872),m=n(16930),f=n(31069),p=n(54610),v=n(10841),g=n(79967),h=n(49439),b=n(65294),y=n(40424),x=n(49542),w=n(61871),E=n(92644),S=n(31309),I=n(19720);function A(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 i,r,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(i=a.call(n)).done)&&(s.push(i.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw r}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return k(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)?k(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 k(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}var C="shared.fixedWidget",O=12;function N(e){var t,n=e.analyticsData,k=void 0===n?{}:n,N=e.getWidgetItemAnalyticsData,j=void 0===N?function(){}:N,P=A(i.useState(null),2),z=P[0],T=P[1],L=A(i.useState(null),2),D=L[0],R=L[1],B=A(i.useState(0),2),F=B[0],M=B[1],V=A(i.useReducer(w.CU,w.eS,w.m0),2),W=V[0],U=V[1],q=i.useRef(null),H=A((0,h.X)(),2),Z=H[0],G=H[1],$=A(i.useState(!1),2),_=$[0],Q=$[1],J=A(i.useState(!1),2),X=J[0],K=J[1];(0,E.iV)(e.controlsRef,U);var Y=(0,b.Y)({prevent:!e.lazyLoad}),ee=Y.ref,te=Y.inView,ne=(0,E.$5)(e,U,te);function ie(t){var n,i=e.prefetched?e.collection:ne.data;if(!i)return[];var r=a.q.isFunction(e.setData)?e.setData(i):i;return null!==(n=null==r?void 0:r.slice(0,t))&&void 0!==n?n:[]}var re=ie(e.limitTotalItems?O:1/0),ae=W.offset===re.length,oe=(0,g.k)(),se=(0,u.T)({type:"fixed",state:W,containerRef:q}),ce=se.onFocusWidget,le=se.onBlurWidget,ue=se.isTabbing,de=se.getFixedAttributes,me=se.focusNext,fe=se.focusPrev;function pe(){return"scroll"===e.touchBehavior&&o.V.isTabletOrMobile()}i.useEffect((function(){U({type:v.n.Resize,payload:{breakpoints:oe}})}),[oe]),i.useEffect((function(){if(e.prefetched){var t=e.type;t===y.l9.ResourcesTile&&(t=y.l9.Row),U({type:v.n.Init,payload:{breakpoints:oe,type:t,contents:e.contents,totalItems:re.length}})}}),[null===(t=e.collection)||void 0===t?void 0:t.length,e.prefetched]);var ve={type:W.type,collectionSize:re.length,contents:e.contents},ge=(0,E.lv)(e,(null==ne?void 0:ne.data)||e.collection);if(null==ne?void 0:ne.hasError)return i.createElement(i.Fragment,null);if(!e.prefetched&&!(null==ne?void 0:ne.data)){var he=e.partialComponent||S.j;return i.createElement("div",{ref:ee},i.createElement(he,null))}if(!re.length||re.length<e.minimumItemCount)return i.createElement(i.Fragment,null);var be=e.childComponent,ye=function(t){return Object.assign({id:null==ge?void 0:ge.id,name:null==ge?void 0:ge.name,direction:t===v.n.Next?"right":"left"},e.analyticsData)},xe=!(!e.appLink||!ae)&&!!e.limitTotalItems&&ie(1/0).length>re.length,we=pe()||e.hideButtons,Ee=W.offset===W.viewableItems,Se=re.length<=W.offset,Ie=W.viewableItems<re.length;return i.createElement("div",{className:"mx-n4 mb-n3"},i.createElement("div",{className:pe()?"pb-3 overflow-hidden":"px-4 pb-3 overflow-hidden"},!e.hideName&&i.createElement("div",{className:pe()?"px-4":""},i.createElement(l.B,{name:ge.name,description:ge.description,appLink:(0,E.LU)(e.appLink,ge),onClick:e.onClick,analyticsData:Object.assign({id:null==ge?void 0:ge.id,name:null==ge?void 0:ge.name},e.analyticsData),analyticsOptions:x.d.getSliderHeadingAnalyticsOptions(),showSeeMoreLink:Ie})),i.createElement("div",{ref:Z,className:"position-relative mx-n1 ".concat(pe()?"".concat(I.Z.mobileScroll," px-4"):""," ").concat(e.hideBleedingContent?"overflow-hidden-x":"")},!we&&i.createElement(i.Fragment,null,!e.hideBleedingContent&&!_&&!Ee&&i.createElement("div",{className:I.Z.leftOverflowGradient}),i.createElement(m.W,{direction:m.f.Left,onClick:function(){fe(),U({type:v.n.Previous}),c.k.logUserAction(ye(v.n.Previous),x.d.getSliderAnalyticsOptions()),a.q.isFunction(e.onPrevious)&&e.onPrevious()},hide:!!e.hideButtons||(0,E.yZ)(_,G,W.offset,W.viewableItems,re.length,ue),contents:e.contents,className:e.leftWidgetButtonClassName,hideExtendedClickableArea:e.hideExtendedClickableArea,state:W})),i.createElement(d.V,{position:W.position,positionType:f.C.Percentage,onTouchMove:"drag"===e.touchBehavior&&(0,E.p$)(W,q,D,R,z,T,M),onTouchEnd:"drag"===e.touchBehavior&&(0,E.mE)(q,T,F,M,U,e.onNext,e.onPrevious),ref:q,percentageDragged:F},re.map((function(t,n){return i.createElement("li",Object.assign({key:"".concat(t.id,":").concat(n),onFocus:function(){return ce(n)},onBlur:le,className:I.Z.widgetItemWrapper},de(n)),i.createElement(be,Object.assign({data:t,collectionAppLink:e.appLink,getAppLink:e.getChildAppLink?function(){return e.getChildAppLink(t)}:function(){return null},context:ve,preloadImage:(0,E.eM)(W,re)(t),thumbnailSize:e.thumbnailSize||p.h2.Medium,analyticsData:Object.assign(Object.assign({widgetId:ge.id,widgetName:ge.name,itemIndex:n},k),j(t)),analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),x.d.getSliderItemAnalyticsOptions()),onHover:function(e){pe()||window.setTimeout((function(){!function(e,t){if(re.length===W.viewableItems)return Q(e),void K(e);t+1!==re.length?0!==t?(t+1-W.offset%W.viewableItems)%W.viewableItems!=0?(t-W.offset%W.viewableItems)%W.viewableItems!=0||Q(e):K(e):Q(e):K(e)}(e,n)}),e?0:200)}},e.extraChildComponentProps)))})),pe()&&i.createElement("div",{className:"ps-4"})),!we&&i.createElement(i.Fragment,null,i.createElement(m.W,{direction:m.f.Right,onClick:function(){xe?s.Q.C$.trigger((0,E.LU)(e.appLink,ge)):(me(),U({type:v.n.Next}),c.k.logUserAction(ye(v.n.Next),x.d.getSliderAnalyticsOptions()),a.q.isFunction(e.onNext)&&e.onNext())},hide:!!e.hideButtons||(0,E.DK)(X,G,W.offset,W.viewableItems,re.length,xe,ue),contents:e.contents,hoverText:xe&&r.T.getPhrase(C,"seeMore"),className:e.rightWidgetButtonClassName,hideExtendedClickableArea:e.hideExtendedClickableArea,state:W}),!e.hideBleedingContent&&!X&&!Se&&i.createElement("div",{className:I.Z.rightOverflowGradient})))))}N.defaultProps={type:y.l9.Row,minimumItemCount:0,extraChildComponentProps:{},touchBehavior:"scroll"}},61871:(e,t,n)=>{n.d(t,{CU:()=>l,eS:()=>o,m0:()=>u});var i=n(10841),r=n(40424),a=n(92644),o={offset:0,viewableItems:4,position:0,totalItems:0,contents:null,type:r.l9.Row},s=function(e){var t=e.viewableItems,n=e.offset,i=e.position,r=e.totalItems-n;return r%t==0||r>t?{position:i-100,offset:n+t}:r<t?{position:i-r/t*100,offset:n+r}:{position:i,offset:n}},c=function(e){var t=e.viewableItems,n=e.offset,i=e.position,r=n-t;return r%t==0||r>t?{position:i+100,offset:n-t}:r<t?{position:i+r/t*100,offset:n-r}:{position:i,offset:n}};function l(e,t){var n=t.type,r=t.payload,o=void 0===r?{}:r;switch(n){case i.n.Next:return Object.assign(Object.assign({},e),s(e));case i.n.Previous:return Object.assign(Object.assign({},e),c(e));case i.n.JumpToIndex:return Object.assign(Object.assign({},e),{offset:o.offset,position:-100*(o.offset-1)});case i.n.Resize:var l=(0,a.Wl)(e.contents)(o.breakpoints,e.type,e.totalItems);return Object.assign(Object.assign({},e),{position:0,offset:l,viewableItems:l});case i.n.Init:var d=(0,a.Wl)(o.contents)(o.breakpoints,o.type,o.totalItems);return u(Object.assign(Object.assign({},e),{offset:d,viewableItems:d,type:o.type,contents:o.contents,totalItems:o.totalItems,position:0}));case i.n.Update:return Object.assign(Object.assign({},e),{totalItems:o.totalItems});default:return e}}function u(e){return Object.assign(Object.assign({},o),e)}},92644:(e,t,n)=>{n.d(t,{$5:()=>m,DK:()=>F,LU:()=>p,Wl:()=>g,eM:()=>f,iV:()=>M,lv:()=>v,mE:()=>R,p$:()=>L,yZ:()=>B});var i=n(32735),r=n(91967),a=n(1048),o=n(28400),s=n(58704),c=n(10841),l=n(79967),u=n(40424),d=n(5281);function m(e,t,n){var o,s=e.collection;s&&!a.t.isEmpty(s)||e.prefetched||(o=e.fetch(n),s=o.data);var m=r.q.isFunction(e.setData)&&s?e.setData(s):s,f=m,p=(0,l.k)();return i.useEffect((function(){if(s&&!a.t.isEmpty(s)){e.limitTotalItems&&(f=m.length>d.x?m.slice(0,d.x):m);var n=e.type;n===u.l9.ResourcesTile&&(n=u.l9.Row),t({type:c.n.Init,payload:{totalItems:f.length,breakpoints:p,type:n,contents:e.contents}})}}),[null==m?void 0:m.length]),o}function f(e,t){for(var n=e.offset,i=e.viewableItems,r=n,a=[],o=0;o<r+i;o++)a.push(o);return function(e){var n=t.indexOf(e);return a.includes(n)}}function p(e,t){if(e)return Object.assign(Object.assign({},e),{args:e.args||[t.id,o.m.slugify(t.name)]})}function v(e,t){var n=e.name,i=e.description,r={};return Array.isArray(t)?{name:n,description:i}:(e.name&&(r.name=n),e.description&&(r.description=i),Object.assign(Object.assign({},t),r))}function g(e){switch(e){case s.z.Playlists:return h;case s.z.Videos:return x;case s.z.RecentActivities:return w;case s.z.FeedVideos:return E;case s.z.Subjects:return S;case s.z.InteractivesV2:return k;case s.z.Interactives:return I;case s.z.ClipsV2:return C;case s.z.Clips:return A;case s.z.PlayPageResources:return O;case s.z.PlayPageResourcesV2:return N;case s.z.DashboardResources:return x;case s.z.Libraries:case s.z.Folders:return y;case s.z.Ratings:return z;case s.z.SpecialEvents:return T;case s.z.Companies:return b;case s.z.SmallSeries:return P;case s.z.Series:default:return j}}function h(e,t,n){var i=5;return e.xs?i=2:e.sm?i=3:e.md&&(i=4),n<i&&(i=n),i}function b(e,t,n){var i=8;return e.xs||e.sm?i=4:e.md&&(i=6),n<i&&(i=n),i}function y(e,t,n){var i=3;return e.xs||e.sm?i=1:e.md?i=2:e.lg&&(i=3),n<i&&(i=n),i}function x(e,t,n){var i=4;return e.xs&&(i=1),e.sm&&(i=2),(e.md||e.lg)&&(i=3),t===u.l9.LargeRow&&i>3&&(i=3),n<i&&(i=n),i}function w(e,t,n){var i=4;return e.xs&&(i=2),e.sm&&(i=3),n<i&&(i=n),i}function E(e,t,n){return 1}function S(e,t,n){if(t===u.l9.LargeRow){var i=5;return e.xs?i=2:e.sm?i=3:e.md&&(i=4),n<i&&(i=n),i}var r=6;return e.xs?r=2:e.sm?r=3:e.md?r=4:e.lg?r=5:(e.xl||e.xxl)&&(r=6),n<r&&(r=n),r}function I(e,t,n){var i=3;return(e.md||e.sm)&&(i=2),e.xs&&(i=1),n<Math.ceil(i)&&(i=n),i}function A(e,t,n){var i=3;return(e.md||e.sm)&&(i=2),e.xs&&(i=1),n<Math.ceil(i)&&(i=n),i}function k(e,t,n){var i=3;return e.xs&&(i=2),n<i&&(i=n),i}function C(e,t,n){var i=3;return e.xs&&(i=2),n<i&&(i=n),i}function O(e,t,n){var i=4;return e.sm&&(i=3),e.xs&&(i=2),n<i&&(i=n),i}function N(e,t,n){var i=3;return e.xs&&(i=2),n<i&&(i=n),i}function j(e,t,n){var i=4;return e.xs?i=2:e.sm&&(i=3),n<i&&(i=n),i}function P(e,t,n){var i=6;return e.xs?i=2:e.sm?i=3:e.md?i=4:e.lg&&(i=5),n<i&&(i=n),i}function z(e,t,n){if(n<4)return n;var i=5;return(e.xs||e.sm)&&(i=3),(e.md||e.lg)&&(i=4),4===n&&(e.xs||e.sm)&&(i=3),n<i&&(i=n),i}function T(e,t,n){var i=6;return e.xs&&(i=2),e.sm&&(i=3),e.md&&(i=4),e.lg&&(i=5),(e.xl||e.xxl)&&(i=6),n<i&&(i=n),i}function L(e,t,n,i,r,a,o){return function(s){var c=s.touches.item(0).clientX;r||(t.current.style.transition="",i(t.current.getBoundingClientRect().width),a(c));var l=(r-c)/n*100;(l<0&&e.offset===e.viewableItems||l>0&&e.offset===e.totalItems)&&(l=0),o(l)}}var D=7.5;function R(e,t,n,i,r,a,o){return function(){if(e.current.style.transition="transform .4s ease-in-out",t(null),Math.abs(n)>=D){var s=n>0?c.n.Next:c.n.Previous;r({type:s}),n>0&&a?a():n<0&&o&&o()}i(0)}}function B(e,t,n,i,r,a){return!!e||r<=i||(t?n===i:!a||n===i)}function F(e,t,n,i,r,a,o){return!!e||r<=i||n!==i&&(t?!a&&r<=n:!o||n===r)}function M(e,t){i.useEffect((function(){e&&!e.current&&(e.current={jumpToIndex:function(e){return t({type:c.n.JumpToIndex,payload:{offset:e+1}})}})}),[null==e?void 0:e.current])}},31309:(e,t,n)=>{n.d(t,{j:()=>s});var i=n(32735),r=n(55827),a=n(79967),o=n(19720);function s(e){for(var t,n,o=(t=e.size,(n=(0,a.k)()).xs?{itemCount:1,colSize:12}:n.sm?{itemCount:2,colSize:6}:n.md||n.lg?{itemCount:3,colSize:4}:{itemCount:"sm"===t?4:3,colSize:"sm"===t?3:4}),s=o.itemCount,c=o.colSize,l=e.childComponent,u=[],d=0;d<s;d++)u.push(i.createElement(l,{key:d,colSize:c}));return i.createElement("div",{className:"widget"},i.createElement(r.l,{hideHeading:e.hideHeading,hideDescription:e.hideDescription}),i.createElement("div",{className:"row g-0 mx-n1"},u))}s.defaultProps={size:"sm",childComponent:function(e){var t=e.colSize;return i.createElement("div",{className:"col-".concat(t," px-1")},i.createElement("div",{className:"".concat(o.Z.partialItem," partial-loading-background rounded-3")}))}}},11518:(e,t,n)=>{n.d(t,{j7:()=>r.j,kM:()=>i.k});var i=n(5281),r=(n(61871),n(31309))},29420:(e,t,n)=>{n.d(t,{T:()=>c});var i=n(32735);function r(e){return r="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},r(e)}function a(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 i,r,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(i=a.call(n)).done)&&(s.push(i.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw r}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(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)?o(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 o(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}var s=400;function c(e){var t=e.type,n=e.state,o=e.containerRef,c=e.mediaQuery,l=a(i.useState(!1),2),u=l[0],d=l[1],m=a(i.useState({}),2),f=m[0],p=m[1],v=a(i.useState(null),2),g=v[0],h=v[1];return i.useEffect((function(){"dynamic"===t&&o.current&&n.containerLeftPosition&&setTimeout((function(){return function(){var e,t=n;if(null===(e=o.current)||void 0===e?void 0:e.children){var i=Array.from(o.current.children).reduce((function(e,n){var i,a,o,s=null==n?void 0:n.getBoundingClientRect(),c=s.left<t.containerRightPosition&&s.right>t.containerLeftPosition;return Object.assign(Object.assign({},e),(i={},a=n.id,o=c?{"aria-hidden":!1}:{"aria-hidden":!0,inert:"true"},(a=function(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,"string");if("object"!=r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(a))in i?Object.defineProperty(i,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):i[a]=o,i))}),{});p(i)}}()}),s+50)}),[o.current,c,n.offset,n.containerLeftPosition]),{isTabbing:u,onFocusWidget:function(e){document.querySelector(".user-is-tabbing")&&(d(!0),h(e))},onBlurWidget:function(){document.querySelector(".user-is-tabbing")||(d(!1),h(null))},getFixedAttributes:function(e){var t=n;return e>=t.offset-t.viewableItems&&e<t.offset?{"aria-hidden":!1}:{inert:"true","aria-hidden":!0}},dynamicAttributes:f,focusNext:function(){setTimeout((function(){if(o.current){for(var e=o.current.querySelectorAll("li[aria-hidden]"),t=null,n=g+1;n<e.length&&!t;n++)t=e[n].querySelector('a[tabindex="0"]');t&&t.focus()}}),s+100)},focusPrev:function(){setTimeout((function(){if(o.current){for(var e=o.current.querySelectorAll("li[aria-hidden]"),t=null,n=g-1;n>=0&&!t;n--)t=e[n].querySelector('a[tabindex="0"]');t&&t.focus()}}),s+100)}}}},43872:(e,t,n)=>{n.d(t,{V:()=>u});var i=n(32735),r=n(82182),a=n(31069),o=n(91967),s=new Image;s.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";var c=function(e){e.dataTransfer.setDragImage&&o.q.isFunction(e.dataTransfer.setDragImage)&&e.dataTransfer.setDragImage(s,0,0)},l=r.V.isTouchScreen(),u=i.forwardRef((function(e,t){var n,r,o,s,u=e.children,d=e.positionType,m=e.onDrag,f=e.onDragEnd,p=e.onTouchMove,v=e.onTouchEnd,g=e.percentageDragged,h=e.position,b=void 0===h?0:h;return i.createElement("ul",Object.assign({className:"list-unstyled d-flex flex-nowrap position-relative w-100",style:(r=b,o=d,s=g,o===a.C.Percentage&&s&&(r-=s),{transform:"translate3d(".concat(r).concat(o,", 0px, 0px)"),transition:"transform .4s ease-in-out"}),ref:t},(n={},m&&f&&(n.draggable=!0,n.onDragEnd=f,n.onDragStart=c,n.onDragOver=m),p&&v&&l&&(n.onTouchMoveCapture=p,n.onTouchEndCapture=v),n)),u)}))},16930:(e,t,n)=>{n.d(t,{W:()=>d,f:()=>l});var i=n(32735),r=n(23481),a=n(83914),o=n(35223);const s="VSAPU",c="kgeXh";var l,u=r.T.encloseNamespace("shared.widgetButton");!function(e){e[e.Left=0]="Left",e[e.Right=1]="Right"}(l||(l={}));var d=i.memo((function(e){var t,n,r,d=e.direction===l.Left,m=d?o.vn.ChevronLeft:o.vn.ChevronRight;return e.hide?i.createElement(i.Fragment,null):i.createElement("div",{className:"_ejId",style:"videos"===(null===(n=e.state)||void 0===n?void 0:n.contents)?{paddingBottom:56.25/(null===(r=e.state)||void 0===r?void 0:r.viewableItems)+"%"}:{height:"100%"}},e.useGradientBackdrop&&i.createElement("div",{className:d?"".concat("Pt3nx"," ").concat(e.leftGradientClassName):"".concat("ZuAif"," ").concat(e.rightGradientClassName)}),!e.hideExtendedClickableArea&&i.createElement("button",{onClick:e.onClick,className:"".concat("AtsWP"," ").concat(d?s:c),tabIndex:-1}),i.createElement("button",{className:"".concat((t="BVcIS",t+=d?" ".concat(s," ").concat(e.leftButtonClassName):" ".concat(c," ").concat(e.rightButtonClassName))," ").concat("gAsE9"," ").concat(e.className||""),onClick:e.onClick,"aria-label":u(d?"previous":"next")},e.hoverText&&i.createElement("span",{className:"ps-3 pe-2 ".concat("APA36")},e.hoverText),i.createElement(a.x,{svgName:m,size:a.S.Medium,className:"svg-container d-inline-block ".concat("Ev4hr")})))}))},31069:(e,t,n)=>{var i;n.d(t,{C:()=>i}),function(e){e.Percentage="%",e.Pixels="px"}(i||(i={}))},58704:(e,t,n)=>{var i;n.d(t,{z:()=>i}),function(e){e.Videos="videos",e.FeedVideos="feed videos",e.Series="series",e.Subjects="subjects",e.Playlists="playlists",e.Interactives="interactives",e.Clips="clips",e.PlayPageResources="play page resources",e.DashboardResources="dashboard resources",e.Libraries="Libraries",e.Folders="Folders",e.RecentActivities="recent activities",e.SmallSeries="small series",e.Companies="companies",e.Ratings="ratings",e.SpecialEvents="special events",e.InteractivesV2="interactives v2",e.ClipsV2="clips v2",e.PlayPageResourcesV2="playpage resources v2"}(i||(i={}))},10841:(e,t,n)=>{var i;n.d(t,{n:()=>i}),function(e){e.Init="init",e.Next="next",e.Previous="previous",e.Resize="resize",e.Drag="drag",e.Update="update",e.JumpToIndex="jump-to-index"}(i||(i={}))},19720:(e,t,n)=>{n.d(t,{Z:()=>i});const i={rightOverflowGradient:"tAbzW",leftOverflowGradient:"JXtNs",partialItem:"iNH_I",mobileScroll:"bDcOS",widgetItemWrapper:"cAFYH"}}}]);
2
- //# sourceMappingURL=1518-9756fde01e-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1518-9756fde01e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/partial-loading/PartialWidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidget.tsx","file:///app/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetReducer.tsx","file:///app/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetUtils.ts","file:///app/packages/libs/shared/src/components/widgets/fixed-widget/PartialFixedWidget.tsx","file:///app/packages/libs/shared/src/components/widgets/hooks/useWidgetKeyboard.ts","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/WidgetContents.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/components/widgets/fixed-widget/fixed-widget.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeMore')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\ninterface PartialWidgetHeaderProps {\n hideHeading?: boolean;\n hideDescription?: boolean;\n}\n\nexport function PartialWidgetHeader(props: PartialWidgetHeaderProps): JSX.Element {\n if (props.hideDescription && props.hideHeading)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n {!props.hideHeading && (\n <div className='partial-loading-background curated-widget-heading' style={{ height: '1.5rem', width: '12rem' }} />\n )}\n\n {!props.hideDescription && (\n <div className='partial-loading-background curated-widget-description' style={{ height: '1.434375rem', width: '16rem' }} />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { WidgetHeader } from 'libs/shared/components/widgets/curated-widgets/components/header/WidgetHeader';\nimport { useWidgetKeyboard } from 'libs/shared/components/widgets/hooks/useWidgetKeyboard';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SlidingListContainer } from 'libs/shared/components/widgets/sliding-list/SlidingListContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useHover } from 'libs/shared/hooks/UseHover';\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\nimport { WidgetContext, WidgetType } from 'libs/shared/interfaces';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { FixedWidgetReducer, initialWidgetState, lazyWidgetInit } from './FixedWidgetReducer';\nimport { FixedWidgetControls, formatData, getCollectionAppLink, getOnTouchEnd, getOnTouchStart, getShouldPreload, hideBackButton, hideNextButton, useControlsRef, useFetchData } from './FixedWidgetUtils';\nimport { PartialFixedWidget } from './PartialFixedWidget';\n\nimport styles from './fixed-widget.scss';\n\nconst namespace = 'shared.fixedWidget';\n\n// Max number of widget items whenever `props.limitTotalItems` is `true`\nexport const WIDGET_ITEM_LIMIT = 12;\n\ninterface BaseFixedWidgetProps<TChildProps extends FixedWidgetItemProps> {\n id?: string;\n name?: string;\n description?: string;\n\n type: WidgetType;\n contents: WidgetContents;\n thumbnailSize?: ImageSize;\n minimumItemCount?: number;\n limitTotalItems?: boolean;\n setData?: (data: any) => any[] | null;\n\n childComponent: (props: FixedWidgetItemProps) => JSX.Element;\n extraChildComponentProps: Omit<TChildProps, keyof FixedWidgetItemProps>;\n partialComponent?: React.ElementType;\n getChildAppLink?: (item?: any) => Core.AppLink;\n appLink?: Core.AppLink;\n onClick?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n getWidgetItemAnalyticsData?: (data: any) => HashObject;\n\n onNext?: () => void;\n onPrevious?: () => void;\n controlsRef?: React.MutableRefObject<FixedWidgetControls>;\n touchBehavior?: 'drag' | 'scroll';\n\n leftWidgetButtonClassName?: string;\n rightWidgetButtonClassName?: string;\n\n hideName?: boolean;\n hideBleedingContent?: boolean;\n hideExtendedClickableArea?: boolean;\n hideButtons?: boolean;\n}\n\ntype FixedWidgetWithFetchProps<TChildProps extends FixedWidgetItemProps> = BaseFixedWidgetProps<TChildProps> & {\n lazyLoad: true;\n collection?: never;\n fetch: (...args: any) => Flight.Response<any>;\n prefetched?: false;\n};\n\ntype FixedWidgetWithCollectionProps<TChildProps extends FixedWidgetItemProps> = BaseFixedWidgetProps<TChildProps> & {\n collection: any;\n lazyLoad?: false;\n fetch?: never;\n prefetched: true;\n};\n\nexport type FixedWidgetProps<TChildProps extends FixedWidgetItemProps> =\n FixedWidgetWithCollectionProps<TChildProps> |\n FixedWidgetWithFetchProps<TChildProps>;\n\nFixedWidget.defaultProps = {\n type: WidgetType.Row,\n minimumItemCount: 0,\n extraChildComponentProps: {},\n touchBehavior: 'scroll'\n};\n\nexport function FixedWidget<TChildProps extends FixedWidgetItemProps>(\n props: FixedWidgetProps<TChildProps>\n): JSX.Element {\n const { analyticsData = {}, getWidgetItemAnalyticsData = () => {} } = props;\n\n const [ initialTouchX, setInitialTouchX ] = React.useState(null);\n const [ containerWidth, setContainerWidth ] = React.useState(null);\n const [ percentageDragged, setPercentageDragged ] = React.useState(0);\n\n const [ state, dispatch ] = React.useReducer(FixedWidgetReducer, initialWidgetState, lazyWidgetInit);\n\n const containerRef = React.useRef(null);\n const [ buttonsRef, isHovering ] = useHover<HTMLDivElement>();\n\n const [ isHoveringOnFarLeft, setIsHoveringOnFarLeft ] = React.useState(false);\n const [ isHoveringOnFarRight, setIsHoveringOnFarRight ] = React.useState(false);\n\n useControlsRef(props.controlsRef, dispatch);\n\n const { ref, inView: shouldFetch } = useLazyLoad({ prevent: !props.lazyLoad });\n\n const response = useFetchData(props, dispatch, shouldFetch);\n\n function getWidgetCollection(limit: number): any[] {\n const responseData = props.prefetched ? props.collection : response.data;\n\n if (!responseData)\n return [];\n\n const formattedResponse = FunctionHelper.isFunction(props.setData) ? props.setData(responseData) : responseData;\n return formattedResponse?.slice(0, limit) ?? [];\n }\n\n const widgetItems = getWidgetCollection(props.limitTotalItems ? WIDGET_ITEM_LIMIT : Infinity);\n\n function hasMoreItems(): boolean {\n if (!props.limitTotalItems)\n return false;\n\n const unlimitedItems = getWidgetCollection(Infinity);\n\n return unlimitedItems.length > widgetItems.length;\n }\n\n const hasReachedEnd = state.offset === widgetItems.length;\n\n const breakpoints = useBreakpoints();\n \n const { onFocusWidget, onBlurWidget, isTabbing, getFixedAttributes, focusNext, focusPrev } = useWidgetKeyboard({ type: 'fixed', state, containerRef });\n\n React.useEffect(() => {\n dispatch({\n type: WidgetInteraction.Resize,\n payload: { breakpoints }\n });\n }, [breakpoints]);\n\n React.useEffect(() => {\n if (!props.prefetched)\n return;\n\n let type = props.type;\n\n // The ResourcesTile widget type is deprecated. We render the Row type instead in this case\n if (type === WidgetType.ResourcesTile)\n type = WidgetType.Row;\n\n // If the prefetched collection changes, re-initialize the widget state.\n dispatch({\n type: WidgetInteraction.Init,\n payload: {\n breakpoints,\n type,\n contents: props.contents,\n totalItems: widgetItems.length\n }\n });\n }, [ props.collection?.length, props.prefetched ]);\n\n function onSetIsHovering(hovering: boolean, index: number): void {\n if (widgetItems.length === state.viewableItems) {\n setIsHoveringOnFarLeft(hovering);\n setIsHoveringOnFarRight(hovering);\n return;\n }\n\n // This callback will hide the far left button if the user is hovering on the far left widget item.\n // Same goes for the far right button & widget item.\n if (index + 1 === widgetItems.length) {\n setIsHoveringOnFarRight(hovering);\n return;\n }\n\n if (index === 0) {\n setIsHoveringOnFarLeft(hovering);\n return;\n }\n\n if ((index + 1 - (state.offset % state.viewableItems)) % state.viewableItems === 0) {\n setIsHoveringOnFarRight(hovering);\n return;\n }\n\n if ((index - (state.offset % state.viewableItems)) % state.viewableItems === 0) {\n setIsHoveringOnFarLeft(hovering);\n return;\n }\n }\n\n function shouldScroll(): boolean {\n if (props.touchBehavior !== 'scroll')\n return false;\n\n return UserAgentHelper.isTabletOrMobile();\n }\n\n const widgetContext: WidgetContext = {\n type: state.type,\n collectionSize: widgetItems.length,\n contents: props.contents\n };\n\n const data = formatData(props, response?.data || props.collection);\n\n if (response?.hasError)\n return <></>;\n\n if (!props.prefetched && !response?.data) {\n const PartialComponent = props.partialComponent || PartialFixedWidget;\n\n return (\n <div ref={ref}>\n <PartialComponent />\n </div>\n );\n }\n\n if (!widgetItems.length || widgetItems.length < props.minimumItemCount)\n return <></>;\n\n const WidgetItemComponent = props.childComponent;\n\n const getSliderAnalyticsData = (type: WidgetInteraction) => ({\n id: data?.id,\n name: data?.name,\n direction: type === WidgetInteraction.Next ? 'right' : 'left',\n ...props.analyticsData\n });\n\n const showSeeMoreButton = (() => {\n // Only show if there is an applink and we've reached the end of the widget\n if (!props.appLink || !hasReachedEnd)\n return false;\n\n // Also only show if we've exceeded the widget limit, if one has been set\n return hasMoreItems();\n })();\n\n const hideButtons = shouldScroll() || props.hideButtons;\n const hideBackGradient = state.offset === state.viewableItems;\n const hideNextGradient = widgetItems.length <= state.offset;\n const hasMoreThanViewable = state.viewableItems < widgetItems.length;\n\n return (\n <div className='mx-n4 mb-n3'>\n <div className={shouldScroll() ? 'pb-3 overflow-hidden' : 'px-4 pb-3 overflow-hidden'}>\n {!props.hideName &&\n <div className={shouldScroll() ? 'px-4' : ''}>\n <WidgetHeader\n name={data.name}\n description={data.description}\n appLink={getCollectionAppLink(props.appLink, data)}\n onClick={props.onClick}\n analyticsData={{ id: data?.id, name: data?.name, ...props.analyticsData }}\n analyticsOptions={WidgetHelper.getSliderHeadingAnalyticsOptions()}\n showSeeMoreLink={hasMoreThanViewable}\n />\n </div>\n }\n <div\n ref={buttonsRef}\n className={`position-relative mx-n1 ${shouldScroll() ? `${styles.mobileScroll} px-4` : ''} ${props.hideBleedingContent ? 'overflow-hidden-x' : ''}`}\n >\n {!hideButtons && (\n <>\n {(!props.hideBleedingContent && !isHoveringOnFarLeft && !hideBackGradient) && (\n <div className={styles.leftOverflowGradient} />\n )}\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => {\n focusPrev();\n\n dispatch({ type: WidgetInteraction.Previous });\n AnalyticsHelper.logUserAction(\n getSliderAnalyticsData(WidgetInteraction.Previous),\n WidgetHelper.getSliderAnalyticsOptions()\n );\n\n FunctionHelper.isFunction(props.onPrevious) && props.onPrevious();\n }}\n hide={!!props.hideButtons || hideBackButton(\n isHoveringOnFarLeft,\n isHovering,\n state.offset,\n state.viewableItems,\n widgetItems.length,\n isTabbing\n )}\n contents={props.contents}\n className={props.leftWidgetButtonClassName}\n hideExtendedClickableArea={props.hideExtendedClickableArea}\n state={state}\n />\n </>\n )}\n \n <SlidingListContainer\n position={state.position}\n positionType={CssMeasurement.Percentage}\n onTouchMove={props.touchBehavior === 'drag' && getOnTouchStart(\n state,\n containerRef,\n containerWidth,\n setContainerWidth,\n initialTouchX,\n setInitialTouchX,\n setPercentageDragged\n )}\n onTouchEnd={props.touchBehavior === 'drag' && getOnTouchEnd(\n containerRef,\n setInitialTouchX,\n percentageDragged,\n setPercentageDragged,\n dispatch,\n props.onNext,\n props.onPrevious\n )}\n ref={containerRef}\n percentageDragged={percentageDragged}\n >\n {widgetItems.map((widgetItem: any, index: number) => {\n return (\n <li\n key={`${widgetItem.id}:${index}`}\n onFocus={() => onFocusWidget(index)}\n onBlur={onBlurWidget}\n className={styles.widgetItemWrapper}\n {...getFixedAttributes(index)}\n >\n <WidgetItemComponent\n data={widgetItem}\n collectionAppLink={props.appLink}\n getAppLink={props.getChildAppLink ? () => props.getChildAppLink(widgetItem) : () => null}\n context={widgetContext}\n preloadImage={getShouldPreload(state, widgetItems)(widgetItem)}\n thumbnailSize={props.thumbnailSize || ImageSize.Medium}\n analyticsData={{\n widgetId: data.id,\n widgetName: data.name,\n itemIndex: index,\n ...analyticsData,\n ...getWidgetItemAnalyticsData(widgetItem)\n }}\n analyticsOptions={{ ...props.analyticsOptions, ...WidgetHelper.getSliderItemAnalyticsOptions() }}\n onHover={(hovering: boolean) => {\n if (shouldScroll())\n return;\n /**\n * For some reason this needs to be called after a set timeout, otherwise\n * the `useHover` listener on the `buttonsRef` element will not detect it's hover\n * event. A delay of 200ms is used for when `hovering` is false so that the effects of\n * setting `isHoveringOnFarX` aren't applied until the CSS transform transition has\n * completed.\n */\n window.setTimeout(() => {\n onSetIsHovering(hovering, index);\n }, hovering ? 0 : 200);\n }}\n {...props.extraChildComponentProps}\n />\n </li>\n );\n })}\n {shouldScroll() && <div className='ps-4'></div>}\n </SlidingListContainer>\n\n {!hideButtons && (\n <>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => {\n if (showSeeMoreButton) {\n Core.AppLinkHelper.trigger(getCollectionAppLink(props.appLink, data));\n return;\n }\n focusNext();\n\n dispatch({ type: WidgetInteraction.Next });\n AnalyticsHelper.logUserAction(\n getSliderAnalyticsData(WidgetInteraction.Next),\n WidgetHelper.getSliderAnalyticsOptions()\n );\n\n FunctionHelper.isFunction(props.onNext) && props.onNext();\n }}\n hide={!!props.hideButtons || hideNextButton(\n isHoveringOnFarRight,\n isHovering,\n state.offset,\n state.viewableItems,\n widgetItems.length,\n showSeeMoreButton,\n isTabbing\n )}\n contents={props.contents}\n hoverText={showSeeMoreButton && LanguageService.getPhrase(namespace, 'seeMore')}\n className={props.rightWidgetButtonClassName}\n hideExtendedClickableArea={props.hideExtendedClickableArea}\n state={state}\n />\n {(!props.hideBleedingContent && !isHoveringOnFarRight && !hideNextGradient) && (\n <div className={styles.rightOverflowGradient} />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}","import { ReducerActions } from 'libs/common/react/interfaces';\n\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { WidgetType } from 'libs/shared/interfaces';\n\nimport { getComputeFunction } from './FixedWidgetUtils';\n\nexport interface FixedWidgetPayload {\n breakpoints?: Breakpoints;\n contents?: WidgetContents;\n type?: WidgetType;\n offset?: number;\n totalItems?: number;\n}\n\nexport interface FixedWidgetState {\n // Current position within the widget collection\n offset: number;\n // Number of items viewable in slider for the current breakpoint/viewport size\n viewableItems: number;\n // Relative position of slider in the window. Used for an inline translate3d().\n position: number;\n // Type of widget being managed. May change on `Resize`.\n type: WidgetType;\n // What object type the widget uses :vomit: (this needs to be phased out of this god forsaken component)\n contents: WidgetContents;\n // Total number of items in the widget\n totalItems: number;\n}\n\nexport const initialWidgetState: FixedWidgetState = {\n offset: 0,\n viewableItems: 4,\n position: 0,\n totalItems: 0,\n contents: null,\n type: WidgetType.Row\n};\n\nconst computeNextPosition = (prevState: FixedWidgetState) => {\n const { viewableItems, offset, position, totalItems } = prevState;\n\n const remainingCount = totalItems - offset;\n\n /**\n * If the remaining items are evening divisible by the items in view, or,\n * we have more items that can be displayed in the view, move the slider a full 100%.\n */\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\n return {\n position: position - 100,\n offset: offset + viewableItems\n };\n\n /**\n * Where there are less items than we can show in a full slide, \n * calculate the % movement required to only show those items.\n */\n if (remainingCount < viewableItems)\n return {\n position: position - (remainingCount / viewableItems * 100),\n offset: offset + remainingCount\n };\n\n /**\n * Default back to the current state as a fallback\n */\n return {\n position: position,\n offset: offset\n };\n};\n\nconst computePreviousPosition = (prevState: FixedWidgetState) => {\n const { viewableItems, offset, position } = prevState;\n\n const remainingCount = offset - viewableItems;\n\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\n return {\n position: position + 100,\n offset: offset - viewableItems\n };\n\n if (remainingCount < viewableItems)\n return {\n position: position + (remainingCount / viewableItems * 100),\n offset: offset - remainingCount\n };\n\n return {\n position: position,\n offset: offset\n };\n};\n\nexport function FixedWidgetReducer(\n prevState: FixedWidgetState,\n action: ReducerActions<WidgetInteraction, FixedWidgetPayload>\n): FixedWidgetState {\n const { type, payload = {} } = action;\n\n switch (type) {\n case WidgetInteraction.Next: {\n return {\n ...prevState,\n ...computeNextPosition(prevState)\n };\n }\n\n case WidgetInteraction.Previous: {\n return {\n ...prevState,\n ...computePreviousPosition(prevState)\n };\n }\n\n case WidgetInteraction.JumpToIndex: {\n return {\n ...prevState,\n offset: payload.offset,\n position: (payload.offset - 1) * -100\n };\n }\n\n case WidgetInteraction.Resize: {\n const computeViewableItems = getComputeFunction(prevState.contents);\n const initialSeen = computeViewableItems(payload.breakpoints, prevState.type, prevState.totalItems);\n\n return {\n ...prevState,\n position: 0,\n offset: initialSeen,\n viewableItems: initialSeen\n };\n }\n\n case WidgetInteraction.Init: {\n const computeViewableItems = getComputeFunction(payload.contents);\n const initialSeen = computeViewableItems(payload.breakpoints, payload.type, payload.totalItems);\n\n return lazyWidgetInit({\n ...prevState,\n offset: initialSeen,\n viewableItems: initialSeen,\n type: payload.type,\n contents: payload.contents,\n totalItems: payload.totalItems,\n position: 0\n });\n }\n\n case WidgetInteraction.Update: {\n return {\n ...prevState,\n totalItems: payload.totalItems\n };\n }\n\n default:\n return prevState;\n }\n}\n\nexport function lazyWidgetInit(newState: FixedWidgetState): FixedWidgetState {\n return { ...initialWidgetState, ...newState };\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { ReducerActions } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\nimport { Breakpoints, useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, WidgetType } from 'libs/shared/interfaces';\n\nimport { FixedWidgetProps, WIDGET_ITEM_LIMIT } from './FixedWidget';\nimport { FixedWidgetPayload, FixedWidgetState } from './FixedWidgetReducer';\n\nexport interface WidgetData {\n id?: string;\n name?: string;\n description?: string;\n}\n\nexport function useFetchData<T extends FixedWidgetItemProps = FixedWidgetItemProps>(\n props: FixedWidgetProps<T>,\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction, FixedWidgetPayload>>,\n shouldFetch: boolean\n): Flight.Response<any> {\n let data = props.collection;\n let res: Flight.Response<any>;\n\n if ((!data || ObjectHelper.isEmpty(data)) && !props.prefetched) {\n res = props.fetch(shouldFetch);\n data = res.data;\n }\n\n /**\n * Once we have the widget data, lazily update our state with the new collection\n */\n const collection = (FunctionHelper.isFunction(props.setData) && data) ? props.setData(data) : data;\n let collectionToDisplay = collection;\n\n const breakpoints = useBreakpoints();\n\n React.useEffect(() => {\n if (!data || ObjectHelper.isEmpty(data))\n return;\n\n if (props.limitTotalItems)\n collectionToDisplay = collection.length > WIDGET_ITEM_LIMIT ? collection.slice(0, WIDGET_ITEM_LIMIT) : collection;\n\n let type = props.type;\n\n // The ResourcesTile widget type is deprecated. We render the Row type instead in this case\n if (type === WidgetType.ResourcesTile)\n type = WidgetType.Row;\n\n dispatch({\n type: WidgetInteraction.Init,\n payload: {\n totalItems: collectionToDisplay.length,\n breakpoints,\n type,\n contents: props.contents\n }\n });\n }, [collection?.length]);\n\n return res;\n}\n\n/**\n * This function wrapper determines which widget item images should be pre-fetched by the LazyImage component.\n * It does this by looking at which images are going to be shown after the users clicks on the \"Next\"\n * widget button.\n */\nexport function getShouldPreload(state: FixedWidgetState, collection: any[]): (widgetItem: any) => boolean {\n const { offset, viewableItems } = state;\n\n // The index of the latest item that has been fetched\n const maxLoadedIndex = offset;\n\n /**\n * The indicesToPreload is an array of indices of widget items that should be prefetched by the\n * LazyImage component\n */\n const indicesToPreload: number[] = [];\n for (let i = 0; i < maxLoadedIndex + viewableItems; i++) {\n indicesToPreload.push(i);\n }\n\n /**\n * A widget item calls this function to determine whether or not its image can be pre-fetched.\n * This is determined by whether or not its index has been deemed valid to be pre-fetched\n * by the scope above\n */\n return function shouldPreload(widgetItem: any): boolean {\n const index = collection.indexOf(widgetItem);\n\n return indicesToPreload.includes(index);\n };\n}\n\nexport function getCollectionAppLink(appLink: Core.AppLink, data: WidgetData): Core.AppLink {\n if (!appLink)\n return;\n\n return {\n ...appLink,\n args: appLink.args || [ data.id, TextHelper.slugify(data.name) ]\n };\n}\n\n/**\n * Allow explicit name and description props to override the fetched\n * data properties.\n * \n * @param props \n * @param data \n */\nexport function formatData<T extends FixedWidgetItemProps = FixedWidgetItemProps>(\n props: FixedWidgetProps<T>,\n data: BaseObject\n): WidgetData {\n const { name, description } = props;\n\n const overrideProps: WidgetData = {};\n\n if (Array.isArray(data))\n return { name, description };\n\n if (props.name) overrideProps.name = name;\n if (props.description) overrideProps.description = description;\n\n return { ...data, ...overrideProps };\n}\n\n/**\n * The functions below are used by the reducer to compute the number of widget items\n * displayed on the screen based on the media query, widget type, and total number of items.\n */\ntype ComputeFunction = (breakpoints: Breakpoints, type: WidgetType, itemCount: number) => number;\n\n/**\n * TODO:\n * This and the `WidgetType` enum need to be replaced entirely as this is no longer maintainable.\n * Each widget type + template combination should define it's own item count per\n * breakpoint and pass it in as props.\n */\nexport function getComputeFunction(contents: WidgetContents): ComputeFunction {\n switch (contents) {\n case WidgetContents.Playlists:\n return computeViewablePlaylists;\n\n case WidgetContents.Videos:\n return computeViewableVideos;\n\n case WidgetContents.RecentActivities:\n return computeViewableRecentActivities;\n\n case WidgetContents.FeedVideos:\n return computeViewableFeedVideos;\n\n case WidgetContents.Subjects:\n return computeViewableSubjects;\n\n case WidgetContents.InteractivesV2:\n return computeViewableInteractivesV2;\n\n case WidgetContents.Interactives:\n return computeViewableInteractives;\n\n case WidgetContents.ClipsV2:\n return computeViewableClipsV2;\n\n case WidgetContents.Clips:\n return computeViewableClips;\n\n case WidgetContents.PlayPageResources:\n return computeViewablePlayPageResources;\n\n case WidgetContents.PlayPageResourcesV2:\n return computeViewablePlayPageResourcesV2;\n\n case WidgetContents.DashboardResources:\n return computeViewableVideos;\n\n case WidgetContents.Libraries:\n case WidgetContents.Folders:\n return computeViewableLibraries;\n\n case WidgetContents.Ratings:\n return computeViewableRatings;\n \n case WidgetContents.SpecialEvents:\n return computeViewableSpecialEvents;\n\n case WidgetContents.Companies:\n return computeViewableCompanies;\n\n case WidgetContents.SmallSeries:\n return computeViewableSmallSeries;\n\n case WidgetContents.Series:\n default:\n return computeViewableSeries;\n }\n}\n\nfunction computeViewablePlaylists(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 5;\n\n if (breakpoints.xs)\n maxItems = 2;\n else if (breakpoints.sm)\n maxItems = 3;\n else if (breakpoints.md)\n maxItems = 4;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableCompanies(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 8;\n\n if (breakpoints.xs || breakpoints.sm)\n maxItems = 4;\n else if (breakpoints.md)\n maxItems = 6;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableLibraries(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n\n if (breakpoints.xs || breakpoints.sm)\n maxItems = 1;\n else if (breakpoints.md)\n maxItems = 2;\n else if (breakpoints.lg)\n maxItems = 3;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableVideos(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems = 4;\n\n if (breakpoints.xs)\n maxItems = 1;\n\n if (breakpoints.sm)\n maxItems = 2;\n\n if (breakpoints.md || breakpoints.lg)\n maxItems = 3;\n\n if (type === WidgetType.LargeRow && maxItems > 3)\n maxItems = 3;\n \n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableRecentActivities(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems = 4;\n\n if (breakpoints.xs)\n maxItems = 2;\n\n if (breakpoints.sm)\n maxItems = 3;\n \n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\n// eslint-disable-next-line\nfunction computeViewableFeedVideos(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n return 1;\n}\n\nfunction computeViewableSubjects(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n if (type === WidgetType.LargeRow) {\n let maxItems: number = 5;\n\n if (breakpoints.xs)\n maxItems = 2;\n else if (breakpoints.sm)\n maxItems = 3;\n else if (breakpoints.md)\n maxItems = 4;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n }\n\n let maxItems: number = 6;\n\n if (breakpoints.xs)\n maxItems = 2;\n else if (breakpoints.sm)\n maxItems = 3;\n else if (breakpoints.md)\n maxItems = 4;\n else if (breakpoints.lg)\n maxItems = 5;\n else if (breakpoints.xl || breakpoints.xxl)\n maxItems = 6;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableInteractives(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n\n if (breakpoints.md || breakpoints.sm)\n maxItems = 2;\n\n if (breakpoints.xs)\n maxItems = 1;\n\n if (itemCount < Math.ceil(maxItems))\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableClips(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n\n if (breakpoints.md || breakpoints.sm)\n maxItems = 2;\n\n if (breakpoints.xs)\n maxItems = 1;\n\n if (itemCount < Math.ceil(maxItems))\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableInteractivesV2(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n \n if (breakpoints.xs)\n maxItems = 2;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableClipsV2(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n\n if (breakpoints.xs)\n maxItems = 2;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewablePlayPageResources(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 4;\n \n if (breakpoints.sm)\n maxItems = 3;\n\n if (breakpoints.xs)\n maxItems = 2;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewablePlayPageResourcesV2(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 3;\n\n if (breakpoints.xs)\n maxItems = 2;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableSeries(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 4;\n\n if (breakpoints.xs)\n maxItems = 2;\n else if (breakpoints.sm)\n maxItems = 3;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableSmallSeries(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 6;\n\n if (breakpoints.xs)\n maxItems = 2;\n else if (breakpoints.sm)\n maxItems = 3;\n else if (breakpoints.md)\n maxItems = 4;\n\n else if (breakpoints.lg)\n maxItems = 5;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableRatings(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n if (itemCount < 4)\n return itemCount;\n\n let maxItems: number = 5;\n\n if (breakpoints.xs || breakpoints.sm)\n maxItems = 3;\n\n if (breakpoints.md || breakpoints.lg)\n maxItems = 4;\n\n if (itemCount === 4 && (breakpoints.xs || breakpoints.sm)) {\n maxItems = 3;\n }\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\nfunction computeViewableSpecialEvents(breakpoints: Breakpoints, type: WidgetType, itemCount: number): number {\n let maxItems: number = 6;\n\n if (breakpoints.xs)\n maxItems = 2;\n\n if (breakpoints.sm)\n maxItems = 3;\n\n if (breakpoints.md)\n maxItems = 4;\n\n if (breakpoints.lg)\n maxItems = 5;\n\n if (breakpoints.xl || breakpoints.xxl)\n maxItems = 6;\n\n if (itemCount < maxItems)\n maxItems = itemCount;\n\n return maxItems;\n}\n\n/**\n * Touch event handlers\n */\nexport function getOnTouchStart(\n widgetState: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLUListElement>,\n containerWidth: number,\n setContainerWidth: React.Dispatch<number>,\n initialTouchX: number,\n setInitialTouchX: React.Dispatch<number>,\n setPercentageDragged: React.Dispatch<number>\n): (event: React.TouchEvent<HTMLUListElement>) => void {\n return function(event: React.TouchEvent<HTMLUListElement>): void {\n const firstTouch = event.touches.item(0);\n const touchX = firstTouch.clientX;\n\n /**\n * Runs only on the very first touch event.\n * \n * Sets the initial x-coordinate as a reference point to calculate how far the user has dragged before\n * they release their finder\n */\n if (!initialTouchX) {\n containerRef.current.style.transition = '';\n\n setContainerWidth(containerRef.current.getBoundingClientRect().width);\n setInitialTouchX(touchX);\n }\n\n const pixelsDragged = initialTouchX - touchX;\n\n // Calculate how far the user has moved their finger as a percentage of the widget's container element\n let currentPercentageDragged = ((pixelsDragged / containerWidth) * 100);\n\n /**\n * These 2 if statements prevent the user from dragging the widget beyond its limits.\n * One if statement handles if they have dragged to the left, and the other is for dragging to the right.\n * \n * The same logic is used to hide the widget buttons (see the `hide` prop passed to `<WidgetButton />`)\n */\n if (currentPercentageDragged < 0 && (widgetState.offset === widgetState.viewableItems))\n currentPercentageDragged = 0;\n\n else if (currentPercentageDragged > 0 && (widgetState.offset === widgetState.totalItems))\n currentPercentageDragged = 0;\n\n setPercentageDragged(currentPercentageDragged);\n };\n}\n\nconst DRAG_TOLERANCE = 7.5; // % of container width using to trigger a transition.\n\nexport function getOnTouchEnd(\n containerRef: React.MutableRefObject<HTMLDivElement>,\n setInitialTouchX: React.Dispatch<number>,\n percentageDragged: number,\n setPercentageDragged: React.Dispatch<number>,\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction, FixedWidgetPayload>>,\n onNext: () => void,\n onPrevious: () => void\n): () => void {\n return function(): void {\n containerRef.current.style.transition = 'transform .4s ease-in-out';\n setInitialTouchX(null);\n\n /**\n * Only trigger a Next/Previous widget event if the user has dragged beyond DRAG_TOLERANCE% either way of the\n * container's width. This means if the user only drags left/right a tiny little bit, the widget\n * will simply slide back into its original place.\n */\n if (Math.abs(percentageDragged) >= DRAG_TOLERANCE) {\n const reducerAction = percentageDragged > 0 ? WidgetInteraction.Next : WidgetInteraction.Previous;\n\n dispatch({\n type: reducerAction\n });\n\n if (percentageDragged > 0 && onNext) {\n onNext();\n } else if (percentageDragged < 0 && onPrevious) {\n onPrevious();\n }\n }\n\n setPercentageDragged(0);\n };\n}\n\nexport function hideBackButton(\n isHoveringOnFarLeft: boolean,\n isHoveringOnWidget: boolean,\n widgetOffset: number,\n maxViewableItems: number,\n widgetCollectionSize: number,\n isTabbing: boolean\n): boolean {\n // When hovering on the very far left widget item, hide the back button\n if (isHoveringOnFarLeft)\n return true;\n\n // if the collection size is smaller than the max viewable items, hide the back button\n if (widgetCollectionSize <= maxViewableItems)\n return true;\n\n // When hovering on the entire widget area, hide the back button if the widget is in the far left position\n if (isHoveringOnWidget)\n return (widgetOffset === maxViewableItems);\n\n if (isTabbing)\n return widgetOffset === maxViewableItems;\n\n return true;\n}\n\nexport function hideNextButton(\n isHoveringOnFarRight: boolean,\n isHoveringOnWidget: boolean,\n widgetOffset: number,\n maxViewableItems: number,\n widgetCollectionSize: number,\n showSeeMoreButton: boolean,\n isTabbing: boolean\n): boolean {\n // When hovering on the very far right widget item, hide the next button\n if (isHoveringOnFarRight)\n return true;\n\n // if the collection size is smaller than the max viewable items, hide the next button\n if (widgetCollectionSize <= maxViewableItems)\n return true;\n\n // Always show the next button if the widget is in the far left position\n if (widgetOffset === maxViewableItems)\n return false;\n\n // When the user is hovering over the entire widget area...\n if (isHoveringOnWidget) {\n // If we want to show the \"See more\" button, don't hide the next button\n if (showSeeMoreButton)\n return false;\n\n // Only show the next button if there are still more items to show\n return widgetCollectionSize <= widgetOffset;\n }\n\n if (isTabbing)\n return widgetOffset === widgetCollectionSize;\n\n return true;\n}\n\nexport interface FixedWidgetControls {\n jumpToIndex: (index: number) => void;\n}\n\n/**\n * If a component consuming FixedWidget needs to dispatch events to FixedWidget,\n * it can pass in a `controlsRef` prop, which will receive the API defined\n * below. This API can be extended as needed.\n * See FeedVideoCollection.tsx for an example\n */\nexport function useControlsRef(\n ref: React.MutableRefObject<FixedWidgetControls>,\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction, FixedWidgetPayload>>\n): void {\n React.useEffect(() => {\n if (!ref || ref.current)\n return;\n\n ref.current = {\n jumpToIndex: (index: number) => dispatch({\n type: WidgetInteraction.JumpToIndex,\n payload: {\n offset: index + 1\n }\n })\n };\n }, [ref?.current]);\n}","import * as React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { PartialWidgetHeader } from 'libs/shared/components/widgets/curated-widgets/components/header/partial-loading/PartialWidgetHeader';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './fixed-widget.scss';\n\nfunction useGetSize(size?: 'sm' | 'lg'): HashObject {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xs)\n return {\n itemCount: 1,\n colSize: 12\n };\n\n if (breakpoints.sm)\n return {\n itemCount: 2,\n colSize: 6\n };\n\n if (breakpoints.md || breakpoints.lg)\n return {\n itemCount: 3,\n colSize: 4\n };\n\n return {\n itemCount: size === 'sm' ? 4 : 3,\n colSize: size === 'sm' ? 3 : 4\n };\n}\n\nexport interface PartialFixedWidgetItemProps {\n colSize: number;\n}\n\nconst PartialLoadingItem = ({ colSize }: PartialFixedWidgetItemProps) => (\n <div className={`col-${colSize} px-1`}>\n <div className={`${styles.partialItem} partial-loading-background rounded-3`} />\n </div>\n);\n\nexport interface PartialFixedWidgetProps {\n hideDescription?: boolean;\n hideHeading?: boolean;\n size?: 'sm' | 'lg';\n childComponent?: (props: PartialFixedWidgetItemProps) => JSX.Element;\n}\n\nPartialFixedWidget.defaultProps = {\n size: 'sm',\n childComponent: PartialLoadingItem\n};\n\nexport function PartialFixedWidget(props: PartialFixedWidgetProps): JSX.Element {\n const { itemCount, colSize } = useGetSize(props.size);\n\n const ChildComponent = props.childComponent;\n\n const items = [];\n for (let i = 0; i < itemCount; i++) {\n items.push(<ChildComponent key={i} colSize={colSize} />);\n }\n\n return (\n <div className='widget'>\n <PartialWidgetHeader hideHeading={props.hideHeading} hideDescription={props.hideDescription} />\n <div className='row g-0 mx-n1'>\n {items}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DynamicWidgetState } from 'libs/shared/components/widgets/dynamic-widget';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\n\n// Sync with transition time in SlidingListContainer.tsx\nconst SLIDER_ANIMATION_TIME = 400;\n\ntype FixedWidgetKeyboardOptions = {\n type: 'fixed',\n state: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery?: never;\n}\n\ntype DynamicWidgetKeyboardOptions = {\n type: 'dynamic',\n state: DynamicWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery: string\n}\n\ntype UseWidgetKeyboard = FixedWidgetKeyboardOptions | DynamicWidgetKeyboardOptions\n\nexport function useWidgetKeyboard(options: UseWidgetKeyboard) {\n const { type, state, containerRef, mediaQuery } = options;\n\n const [ isTabbing, setIsTabbing ] = React.useState(false);\n const [ dynamicAttributes, setDynamicAttributes ] = React.useState<HashObject>({});\n const [ focusedWidgetIndex, setFocusedWidgetIndex ] = React.useState(null);\n \n /**\n * Get accessibility attributes for dynamic widget items\n * */\n React.useEffect(() => {\n if (type !== 'dynamic' || !containerRef.current || !(state as DynamicWidgetState).containerLeftPosition) return;\n \n setTimeout(() => getDynamicAttributes(), SLIDER_ANIMATION_TIME + 50);\n }, [\n containerRef.current,\n mediaQuery,\n (state as DynamicWidgetState).offset,\n (state as DynamicWidgetState).containerLeftPosition\n ]);\n\n function getDynamicAttributes() {\n const dynamicWidgetState = state as DynamicWidgetState;\n \n if (!containerRef.current?.children)\n return;\n \n const focusableItems = Array.from(containerRef.current.children).reduce((acc, item) => {\n const rect = item?.getBoundingClientRect();\n\n /**\n * When any part of the widget item is visible it should be focusable,\n * otherwise prevent interaction and the slider should be the next focusable element\n * */\n const isItemVisable =\n rect.left < dynamicWidgetState.containerRightPosition &&\n rect.right > dynamicWidgetState.containerLeftPosition;\n\n return {\n ...acc,\n [item.id]: isItemVisable\n ? {\n 'aria-hidden': false\n } : {\n 'aria-hidden': true,\n 'inert': 'true'\n }\n };\n }, {});\n\n setDynamicAttributes(focusableItems);\n }\n\n /**\n * Get accessibility attributes for fixed widget items\n * */\n function getFixedAttributes(index?: number) {\n const fixedWidgetState = state as FixedWidgetState;\n\n const isItemVisible =\n index >= (fixedWidgetState.offset - fixedWidgetState.viewableItems) &&\n index < fixedWidgetState.offset;\n if (isItemVisible) {\n return {\n 'aria-hidden': false\n };\n }\n\n return {\n 'inert': 'true',\n 'aria-hidden': true\n };\n }\n\n /**\n * When the user is not signed in, there may be videos which are not focusable.\n * setTimeout is required because the transition time is 400ms\n */\n function focusNext() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let nextFocusableElement: HTMLElement = null;\n\n for (let i = (focusedWidgetIndex + 1); i < items.length; i++) {\n if (nextFocusableElement)\n break;\n \n nextFocusableElement = items[i].querySelector('a[tabindex=\"0\"]');\n }\n\n if (nextFocusableElement)\n nextFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function focusPrev() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let prevFocusableElement: HTMLElement = null;\n for (let i = focusedWidgetIndex - 1; i >= 0; i--) {\n if (prevFocusableElement) break;\n \n const item = items[i];\n prevFocusableElement = item.querySelector('a[tabindex=\"0\"]');\n }\n \n if (prevFocusableElement)\n prevFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function onFocusWidget(index: number) {\n if (document.querySelector('.user-is-tabbing')) {\n setIsTabbing(true);\n setFocusedWidgetIndex(index);\n }\n }\n\n function onBlurWidget() {\n if (!document.querySelector('.user-is-tabbing')) {\n setIsTabbing(false);\n setFocusedWidgetIndex(null);\n }\n }\n\n return {\n isTabbing,\n onFocusWidget,\n onBlurWidget,\n getFixedAttributes,\n dynamicAttributes,\n focusNext,\n focusPrev\n };\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n \n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n // Sync with transition time in useWidgetKeyboard.ts\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLUListElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLUListElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLUListElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <ul\n className='list-unstyled d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </ul>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nconst namespace = 'shared.widgetButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={styles.buttonContainer} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <button\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n tabIndex={-1}\n />\n )}\n\n <button\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n aria-label={isLeft ? getPhrase('previous') : getPhrase('next')}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </button>\n </div>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum WidgetContents {\n Videos = 'videos',\n FeedVideos = 'feed videos',\n Series = 'series',\n Subjects = 'subjects',\n Playlists = 'playlists',\n Interactives = 'interactives',\n Clips = 'clips',\n PlayPageResources = 'play page resources',\n DashboardResources = 'dashboard resources',\n Libraries = 'Libraries',\n Folders = 'Folders',\n RecentActivities = 'recent activities',\n SmallSeries = 'small series',\n Companies = 'companies',\n Ratings = 'ratings',\n SpecialEvents = 'special events',\n\n InteractivesV2 = 'interactives v2',\n ClipsV2 = 'clips v2',\n PlayPageResourcesV2 = 'playpage resources v2'\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","// extracted by mini-css-extract-plugin\nexport default {\"rightOverflowGradient\":\"tAbzW\",\"leftOverflowGradient\":\"JXtNs\",\"partialItem\":\"iNH_I\",\"mobileScroll\":\"bDcOS\",\"widgetItemWrapper\":\"cAFYH\"};"],"names":["getPhrase","LanguageService","SeeMore","props","className","AppLink","appLink","analyticsData","analyticsOptions","descriptor","WidgetHeader","hasDescription","description","name","onClick","showSeeMoreLink","PartialWidgetHeader","hideDescription","hideHeading","style","height","width","namespace","WIDGET_ITEM_LIMIT","FixedWidget","getWidgetItemAnalyticsData","initialTouchX","setInitialTouchX","containerWidth","setContainerWidth","percentageDragged","setPercentageDragged","state","dispatch","containerRef","buttonsRef","isHovering","isHoveringOnFarLeft","setIsHoveringOnFarLeft","isHoveringOnFarRight","setIsHoveringOnFarRight","controlsRef","prevent","lazyLoad","ref","shouldFetch","inView","response","getWidgetCollection","limit","responseData","prefetched","collection","data","formattedResponse","setData","slice","widgetItems","limitTotalItems","Infinity","hasReachedEnd","offset","length","breakpoints","type","onFocusWidget","onBlurWidget","isTabbing","getFixedAttributes","focusNext","focusPrev","shouldScroll","touchBehavior","payload","contents","totalItems","widgetContext","collectionSize","hasError","PartialComponent","partialComponent","minimumItemCount","WidgetItemComponent","childComponent","getSliderAnalyticsData","id","direction","showSeeMoreButton","hideButtons","hideBackGradient","viewableItems","hideNextGradient","hasMoreThanViewable","hideName","hideBleedingContent","W","onPrevious","hide","leftWidgetButtonClassName","hideExtendedClickableArea","position","positionType","C","onTouchMove","onTouchEnd","onNext","map","widgetItem","index","key","onFocus","onBlur","collectionAppLink","getAppLink","getChildAppLink","context","preloadImage","thumbnailSize","widgetId","widgetName","itemIndex","onHover","hovering","window","setTimeout","onSetIsHovering","extraChildComponentProps","hoverText","rightWidgetButtonClassName","defaultProps","initialWidgetState","computeNextPosition","prevState","remainingCount","computePreviousPosition","FixedWidgetReducer","action","initialSeen","computeViewableItems","lazyWidgetInit","newState","useFetchData","res","fetch","collectionToDisplay","getShouldPreload","maxLoadedIndex","indicesToPreload","i","push","indexOf","includes","getCollectionAppLink","args","formatData","overrideProps","Array","isArray","getComputeFunction","computeViewablePlaylists","computeViewableVideos","computeViewableRecentActivities","computeViewableFeedVideos","computeViewableSubjects","computeViewableInteractivesV2","computeViewableInteractives","computeViewableClipsV2","computeViewableClips","computeViewablePlayPageResources","computeViewablePlayPageResourcesV2","computeViewableLibraries","computeViewableRatings","computeViewableSpecialEvents","computeViewableCompanies","computeViewableSmallSeries","computeViewableSeries","itemCount","maxItems","xs","sm","md","lg","xl","xxl","Math","ceil","getOnTouchStart","widgetState","event","touchX","touches","item","clientX","current","transition","getBoundingClientRect","currentPercentageDragged","DRAG_TOLERANCE","getOnTouchEnd","abs","reducerAction","hideBackButton","isHoveringOnWidget","widgetOffset","maxViewableItems","widgetCollectionSize","hideNextButton","useControlsRef","jumpToIndex","PartialFixedWidget","size","colSize","ChildComponent","items","SLIDER_ANIMATION_TIME","useWidgetKeyboard","options","mediaQuery","setIsTabbing","dynamicAttributes","setDynamicAttributes","focusedWidgetIndex","setFocusedWidgetIndex","containerLeftPosition","dynamicWidgetState","children","focusableItems","from","reduce","acc","rect","isItemVisable","left","containerRightPosition","right","getDynamicAttributes","document","querySelector","fixedWidgetState","querySelectorAll","nextFocusableElement","focus","prevFocusableElement","blankImage","Image","src","DragHelper","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","onDrag","onDragEnd","CssMeasurement","transform","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","Left","arrowSvg","paddingBottom","useGradientBackdrop","leftGradientClassName","rightGradientClassName","tabIndex","leftButtonClassName","rightButtonClassName","SvgContainer","svgName","S","WidgetContents","WidgetInteraction"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[184],{29014:e=>{window,e.exports=function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=1)}([function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Disable=0]="Disable",e[e.Enable=1]="Enable"}(t.CookiePolicy||(t.CookiePolicy={}))},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(2);t.renderButtons=n.renderButtons;var r=a(3);t.close=r.close,t.launchAsync=r.launchAsync;var i=a(0);t.CookiePolicy=i.CookiePolicy,window.addEventListener("load",(function(){var e;window.hasOwnProperty("Promise")||("https://contentstorage.onenote.office.net/onenoteltir/permanent-static-resources/promise-polyfill.min.js",(e=document.createElement("script")).src="https://contentstorage.onenote.office.net/onenoteltir/permanent-static-resources/promise-polyfill.min.js",document.head.appendChild(e)),n.renderButtons()}))},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={af:"Indompelende leser",am:"በህያው ስሜት ፈጣሪ ዕይታ አንባቢ",ar:"القارئ الشامل",as:"ইমাৰচিভ ৰিডাৰ",az:"İmmersiv Oxuyucu",be:"Імерсіўны чытальнік",bg:"Концентриран четец",bn:"মনোগ্রাহী পাঠক","bn-bd":"ইমার্সিভ পাঠক",bs:"Koncentrirani čitalac",ca:"Lector immersiu",cs:"Asistivní čtečka","cy-gb":"Darllenydd Ymdrwythol",da:"Forenklet læser",de:"Plastischer Reader",el:"Προηγμένο πρόγραμμα ανάγνωσης",en:"Immersive Reader",es:"Lector inmersivo",et:"Süvaluger",eu:"Irakurgailu murgiltzailea",fa:"خواننده همه‌جانبه",fi:"Syventävä lukuohjelma",fil:"Immersive Reader",fr:"Lecteur immersif","ga-ie":"Léitheoir tumthach",gd:"An leughadair ùr-nòsach",gl:"Lector avanzado",gu:"ઇમર્સિવ રીડર",ha:"Mai karatu Mai barbazawa",he:"תצוגת קריאה מודרנית",hi:"इमर्सिव रीडर",hr:"Stopljeni čitač",hu:"Modern olvasó",hy:"Խորասուզված ընթերցիչ",id:"Pembaca Imersif",ig:"Ọgụụ Kenzipụtara",is:"Aðgengilegt lestrarumhverfi",it:"Strumento di lettura immersiva",ja:"イマーシブ リーダー",ka:"იმერსიული წამკითხველი",kk:"Иммерсивті оқу құралы",km:"កម្មវិធីអានពណ៌រំលេចនៅលើអេក្រង់",kn:"ಇಮ್ಮರ್ಸಿವ್ ಓದುಗ",ko:"몰입형 리더",kok:"तंद्री लागिल्लो वाचक","ku-arab":"خوێنەری پڕ",ky:"Курчаган Окугуч",lb:"Immersive Reader",lo:"ຕົວອ່ານອິມເມີສີບ",lt:"Įtraukianti skaitytuvė",lv:"Tīrskata lasītājs",mi:"Pūpānui Rumaki",mk:"Сеопфатен читач",ml:"ഇമ്മേഴ്‌സീവ് റീഡർ",mn:"Идэвхтэй уншигч",mr:"इमर्सिव्ह वाचक",ms:"Pembaca Imersif",mt:"Qarrej Immersiv",ne:"इमेर्सिभ रिडर",nl:"Insluitende lezer","nn-no":"Engasjerande lesar",no:"Engasjerende leser",nso:"Go Bala ka Mongwalo o Mokoto",or:"ଇମରସିଭ୍ ରିଡର୍",pa:"ਇਮਰਸਿਵ ਰੀਡਰ","pa-arab":"گھیرن آلا مطالعہ کار",pl:"Czytnik immersyjny",prs:"خواننده نمایش",pt:"Leitura Avançada",quc:"Nim ucholajil sik'inel uwach",quz:"Wankisqa Ñawiq",ro:"Immersive Reader",ru:"Иммерсивное средство чтения",rw:"Insakazasoma",sd:"امرسو ريڊر",si:"ගිලෙන සුළු කියවනය",sk:"Imerzná čítačka",sl:"Potopni bralnik",sq:"Lexuesi kredhës","sr-cyrl-ba":"Концентрисани читалац","sr-cyrl-rs":"Концентрисани читалац","sr-latn-rs":"Koncentrisani čitalac",sv:"Avancerad läsare",sw:"Kisomaji cha Kuzamisha",ta:"அற்புதமான ரீடர்",te:"మంత్రముగ్ధులను చేసే పఠన సాధనం","tg-cyrl-tj":"Хонандаи фарогир",th:"โปรแกรมช่วยอ่าน",ti:"ኣንባቢ ሕሉው ስምዒት ፈጣሪ",tk:"Giňişleýin okaýjy",tn:"Sebadi sa Imesife",tr:"Tam Ekran Okuyucu",tt:"Чолгап алучы уку чарасы","ug-cn":"چۆكمە ئوقۇغۇچ",uk:"Занурення в текст",ur:"امرسیو مطالعہ کار",uz:"Immersiv mutolaa vositasi",vi:"Trình đọc Chân thực",wo:"Jàngukaay bu Rafet",xh:"Isifundi Esikhulu",yo:"Ìwò Alámùtán",zh:"沉浸式阅读器","zh-hant":"沈浸式閱讀程式",zu:"Isifundi Sokuzizwisa"};function r(e){var t=document.createElement("img");t.src="https://contentstorage.onenote.office.net/onenoteltir/permanent-static-resources/immersive-reader-icon.svg";var a=e.getAttribute("data-icon-px-size")||"20";t.style.height=t.style.width=a+"px",t.style.verticalAlign="middle",t.style.marginTop="-2px";var n=e.getAttribute("data-locale")||"en";t.alt=l(n),e.appendChild(t)}function i(e){var t=document.createElement("span");t.style.marginLeft="8px",e.appendChild(t)}function o(e){var t=document.createElement("span"),a=e.getAttribute("data-locale")||"en";t.textContent=l(a),e.appendChild(t)}function l(e){return e=e.toLowerCase(),n[e]?n[e]:"zh-hk"===e||"zh-mo"===e||"zh-tw"===e?n["zh-hant"]:(e=e.substring(0,e.lastIndexOf("-")),n[e]?n[e]:(e=e.substring(0,e.lastIndexOf("-")),n[e]?n[e]:n.en))}t.renderButtons=function(e){var t=document.createElement("style");t.innerHTML=".immersive-reader-button{cursor:pointer;display:inline-block;padding:5px;} .immersive-reader-button:hover{background:rgba(0,0,0,.05);border-radius:2px",document.head.appendChild(t);var a=[].slice.call(document.getElementsByClassName("immersive-reader-button"));e&&e.elements&&(a=e.elements);for(var n=0,c=a;n<c.length;n++){var s=c[n];s.setAttribute("role","button");var d=s.getAttribute("data-locale")||"en";switch(s.setAttribute("aria-label",l(d)),s.getAttribute("data-button-style")||"icon"){case"icon":r(s);break;case"text":o(s);break;case"iconAndText":r(s),i(s),o(s)}}}},function(e,t,a){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var r=a(0),i=a(4),o={};function l(e){return!!e&&new RegExp("^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])$").test(e)}o[i.ErrorCode.TokenExpired]="The access token supplied is expired.",o[i.ErrorCode.Throttled]="You have exceeded your quota.",o[i.ErrorCode.ServerError]="An error occurred when calling the server to process the text.",o[i.ErrorCode.InvalidSubdomain]="The subdomain supplied is invalid.",t.launchAsync=function(e,t,a,c){return new Promise((function(s,d){if(e)if(a)if(a.chunks)if(a.chunks.length)if(l(t)||c&&c.customDomain){var m=Date.now();(c=n({uiZIndex:1e3,timeout:15e3,useWebview:!1,allowFullscreen:!0,hideExitButton:!1,cookiePolicy:r.CookiePolicy.Disable},c)).uiZIndex&&"number"==typeof c.uiZIndex||(c.uiZIndex=1e3);var u=null,v=document.createElement("div"),p=c.useWebview?document.createElement("webview"):document.createElement("iframe"),h=document.createElement("style");h.innerHTML="body{height:100%;overflow:hidden;}";var g=function(){u&&(window.clearTimeout(u),u=null)},f=function(){document.body.contains(v)&&document.body.removeChild(v),window.removeEventListener("message",E),g(),h.parentNode&&h.parentNode.removeChild(h)},b=function(){f(),c.onExit&&c.onExit()};f();var E=function(n){if(n&&n.data)if("ImmersiveReader-ReadyForContent"===n.data){g();var r={cogSvcsAccessToken:e,cogSvcsSubdomain:t,request:a,launchToPostMessageSentDurationInMs:Date.now()-m};p.contentWindow.postMessage(JSON.stringify({messageType:"Content",messageValue:r}),"*")}else if("ImmersiveReader-Exit"===n.data)b();else if(n.data.startsWith("ImmersiveReader-LaunchResponse:")){var l=null,c=null,u=null;try{u=JSON.parse(n.data.substring(31))}catch(e){}u&&u.success?l={container:v,sessionId:u.sessionId}:c=u&&!u.success?{code:u.errorCode,message:o[u.errorCode],sessionId:u.sessionId}:{code:i.ErrorCode.ServerError,message:o[i.ErrorCode.ServerError]},l?(g(),s(l)):c&&(b(),d(c))}};window.addEventListener("message",E),u=window.setTimeout((function(){f(),d({code:i.ErrorCode.Timeout,message:"Page failed to load after timeout ("+c.timeout+" ms)"})}),c.timeout),c.allowFullscreen&&p.setAttribute("allowfullscreen",""),p.style.cssText="position: static; width: 100vw; height: 100vh; left: 0; top: 0; border-width: 0",c.useWebview&&p.addEventListener("loadstop",(function(){p.contentWindow.postMessage(JSON.stringify({messageType:"WebviewHost"}),"*")}));var y=(c.customDomain?c.customDomain:"https://"+t+".cognitiveservices.azure.com/immersivereader/webapp/v1.0/")+"reader?exitCallback=ImmersiveReader-Exit&sdkPlatform=js&sdkVersion=1.0.0";y+="&cookiePolicy="+(c.cookiePolicy===r.CookiePolicy.Enable?"enable":"disable"),c.hideExitButton&&(y+="&hideExitButton=true"),c.uiLang&&(y+="&omkt="+c.uiLang),p.src=y,v.style.cssText="position: fixed; width: 100vw; height: 100vh; left: 0; top: 0; border-width: 0; -webkit-perspective: 1px; z-index: "+c.uiZIndex+"; background: white; overflow: hidden",v.appendChild(p),document.body.appendChild(v),document.head.appendChild(h)}else d({code:i.ErrorCode.InvalidSubdomain,message:o[i.ErrorCode.InvalidSubdomain]});else d({code:i.ErrorCode.BadArgument,message:"Chunks must not be empty"});else d({code:i.ErrorCode.BadArgument,message:"Chunks must not be null"});else d({code:i.ErrorCode.BadArgument,message:"Content must not be null"});else d({code:i.ErrorCode.BadArgument,message:"Token must not be null"})}))},t.close=function(){window.postMessage("ImmersiveReader-Exit","*")},t.isValidSubdomain=l},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BadArgument="BadArgument",e.Timeout="Timeout",e.TokenExpired="TokenExpired",e.Throttled="Throttled",e.ServerError="ServerError",e.InvalidSubdomain="InvalidSubdomain"}(t.ErrorCode||(t.ErrorCode={}))}])},19670:(e,t,a)=>{"use strict";a.d(t,{o:()=>p});var n=a(32735),r=a(1048),i=a(11607),o=a(87311),l=a(91743),c=a(83345),s=a(54610),d=a(67453),m=a(80385),u=a(93563),v="shared.videoAtAGlance";function p(e){var t=(0,m.Wp)(e.video,e.theme),a=(0,m.md)(e.video,e.pointsOfInterest,t,e.suppressInteractivity),p=(0,m.RH)(e.pointsOfInterest,t);if(!t)return n.createElement(n.Fragment,null);var h,g,f,b,E,y=(null===(f=null===(g=null==(h=e.theme)?void 0:h.data)||void 0===g?void 0:g.colours)||void 0===f?void 0:f.primary)&&(null===(E=null===(b=null==h?void 0:h.data)||void 0===b?void 0:b.colours)||void 0===E?void 0:E.secondary)?h.data.colours:{primary:"#F5F4FF",secondary:"#9294FF"},k="function"==typeof e.onClickShowDescription,C="function"==typeof e.onClickShowCurriculumLinks;return n.createElement("div",{className:"rounded border px-3 px-sm-5 py-3 mb-3 position-relative d-flex justify-content-center ".concat(u.Z.container),style:{backgroundColor:y.primary}},n.createElement("div",{className:"".concat(u.Z.content," d-flex align-items-center pt-4 pt-sm-0")},n.createElement("div",null,n.createElement("h2",{className:"h4"},n.createElement(c.x,{namespace:v,phrase:"videoAtAGlance"})),k&&n.createElement(i.L,{onClick:e.onClickShowDescription,className:"".concat(u.Z.detailsBtn," position-absolute cursor-pointer me-4 fw-semibold text-info")},n.createElement(c.x,{namespace:v,phrase:"readFullDescription"})),n.createElement("div",{ref:p,onClick:function(t){return(0,m.$H)(t,e.pointsOfInterest,e.setStartTime)},dangerouslySetInnerHTML:{__html:a}}),function(){var t,a,r,i;return(null===(a=null===(t=e.video.tags)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)?n.createElement("div",{className:"py-1"},n.createElement(l.P,Object.assign({tags:null===(i=null===(r=e.video)||void 0===r?void 0:r.tags)||void 0===i?void 0:i.data,themeColours:y},o.G.getTagActionProps(e.getTagAppLink,null,e.suppressInteractivity)))):n.createElement(n.Fragment,null)}(),n.createElement("div",{className:"mt-2"},C&&n.createElement(i.L,{onClick:e.onClickShowCurriculumLinks,className:"cursor-pointer d-inline-block fw-semibold text-info"},n.createElement(c.x,{namespace:v,phrase:"seeCurriculumLinks"}))))),function(){var t,a,i,o=null!==(i=null===(a=null===(t=e.theme)||void 0===t?void 0:t.data)||void 0===a?void 0:a.images)&&void 0!==i?i:{};return r.t.keys(o).filter((function(e){return!r.t.isEmpty(o[e])})).map((function(e){var t,a,r=d.j.createUrl(null===(t=o[e])||void 0===t?void 0:t.url,{size:s.h2.Medium});return n.createElement("div",{key:null===(a=o[e])||void 0===a?void 0:a.fileId,className:"".concat(u.Z[e]," ").concat(u.Z.background," d-none d-lg-block"),style:{backgroundImage:"url('".concat(r,"')")}})}))}())}},80385:(e,t,a)=>{"use strict";a.d(t,{$H:()=>p,RH:()=>g,Wp:()=>f,md:()=>h});var n=a(32735),r=a(16367),i=a(34468),o=a(73758),l=a(93264),c=a(93563);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d=/(\[.*\]\(cv:\/\/poi\?id=[0-9]+\))/g,m=/[0-9]+/,u=/\[.*\]/,v=/[\[\]]/g;function p(e,t,a){e.preventDefault();var n=e.target.getAttribute("href");if((null==n?void 0:n.includes("cv://poi"))&&(null==t?void 0:t.length)){var r=n.split("cv://poi?id=")[1],i=t.find((function(e){return e.id.toString()===r}));a&&i&&a(i.startTime)}}function h(e,t,a,i){var o,c,p,h=(c=(0,n.useState)(""),p=2,function(e){if(Array.isArray(e))return e}(c)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,l=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(c,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(c,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.")}()),g=h[0],f=h[1];return(0,n.useEffect)((function(){if(a){var n=function(e,t,a){var n=function(e,t,a){return(null==t?void 0:t.length)?e.content.replace(d,(function(e){var n=e.match(m);if(!(null==n?void 0:n.length))return e;var r=t.find((function(e){return e.id.toString()===n[0]})),i=e.match(u);if(!r||!(null==i?void 0:i.length))return e;var o='<span class="me-2">'.concat(l.T.ToDisplayDuration(1e3*r.startTime),"</span>"),c=i[0];return c=(c=c.replace(v,""))||r.description,c="".concat(o," ").concat(c),a?'<span class="d-flex">'.concat(c,"</span>"):e.replace(u,"[".concat(c,"]"))})):e.content}(e,t,a);return r(n).split('a href="cv://poi').join('a class="d-flex" href="cv://poi')}(e.glance,t,i);f(n)}}),[null===(o=e.glance)||void 0===o?void 0:o.content,null==t?void 0:t.length,a]),g}function g(e,t){var a=(0,n.useRef)();function r(){var t=this.getAttribute("href");if((null==t?void 0:t.includes("cv://poi"))&&(null==e?void 0:e.length)){var a=t.split("cv://poi?id=")[1];if(a){var n=e.find((function(e){return e.id.toString()===a}));n&&o.n.trigger("glance:poi:mouseover",n)}}}function l(){o.n.trigger("glance:poi:mouseleave")}function s(){var e;return null===(e=a.current)||void 0===e?void 0:e.querySelectorAll('[href*="cv://poi"]')}return(0,i.R)("player:poi:mouseover",(function(e){var t,n=null==e?void 0:e.id;n&&(null===(t=function(e){var t;return null===(t=a.current)||void 0===t?void 0:t.querySelector('[href="cv://poi?id='.concat(e,'"]'))}(n))||void 0===t||t.classList.add(c.Z.highlightPoi))}),null,t),(0,i.R)("player:poi:mouseleave",(function(){var e;null===(e=s())||void 0===e||e.forEach((function(e){return e.classList.remove(c.Z.highlightPoi)}))}),null,t),(0,n.useEffect)((function(){if(a.current&&t){var e=s();return e.forEach((function(e){return e.addEventListener("mouseover",r)})),e.forEach((function(e){return e.addEventListener("mouseleave",l)})),function(){e.forEach((function(e){return e.removeEventListener("mouseover",r)})),e.forEach((function(e){return e.removeEventListener("mouseleave",l)}))}}}),[a.current]),a}function f(e,t){var a,n;return t&&(null===(a=e.glance)||void 0===a?void 0:a.content)&&"text/markdown"===(null===(n=e.glance)||void 0===n?void 0:n.format)}},73804:(e,t,a)=>{"use strict";a.d(t,{X:()=>C});var n=a(32735),r=a(42648),i=a(23481),o=a(110),l=a(78259),c=a(65858),s=a(11607),d=a(25723),m=a(87311),u=a(91743),v=a(83345),p=a(40178),h=a(31908),g=a(8730);const f={closeButton:"ZwHXo",descriptionBorder:"J_Z5i"};var b="shared.videoDetails",E=i.T.encloseNamespace(b);function y(e){var t=e.label,a=e.items,r=e.className;if(!(a&&a.data&&a.data.length))return n.createElement(n.Fragment,null);var i=a.data.map((function(e){return e.name})).join(", ");return n.createElement("div",{className:r},t,": ",i)}function k(e){var t,a,r,i,l,c,s,d,m,u=e.video;if(!h.M.isVideo(u)&&!h.M.isClip(u))return n.createElement(n.Fragment,null);var p=h.M.getParentVideo(u);return n.createElement("div",{className:u.description?"col-md-5 ps-md-3 pt-3 pt-md-0":"col-12"},n.createElement("h2",{className:"h6 mb-1"},n.createElement(v.x,{phrase:"details"})),!!p.productionYear&&n.createElement("div",{className:"mb-1"},n.createElement(v.x,{phrase:"productionYear",options:{year:p.productionYear}})),n.createElement(y,{label:E("productionCompanies",{smartCount:null===(a=null===(t=p.productionCompanies)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length}),items:p.productionCompanies,className:"mb-1"}),n.createElement(y,{label:E("distributors",{smartCount:null===(i=null===(r=p.distributors)||void 0===r?void 0:r.data)||void 0===i?void 0:i.length}),items:p.distributors,className:"mb-1"}),n.createElement(y,{label:E("producers",{smartCount:null===(c=null===(l=p.producers)||void 0===l?void 0:l.data)||void 0===c?void 0:c.length}),items:p.producers,className:"mb-1"}),n.createElement(y,{label:E("directors",{smartCount:null===(d=null===(s=p.directors)||void 0===s?void 0:s.data)||void 0===d?void 0:d.length}),items:p.directors,className:"mb-1"}),!!p.dateBroadcast&&n.createElement("div",{className:"mb-1"},n.createElement(v.x,{phrase:"dateBroadcast",options:{date:o.O.format(p.dateBroadcast,"DD/MM/YYYY")}})),!!p.channel&&n.createElement("div",{className:"mb-1"},n.createElement(v.x,{phrase:"channel",options:{channel:p.channel.name}})),!((null===(m=u._isClickViewCurated)||void 0===m?void 0:m.value)||!u.dateCreated)&&n.createElement("div",{className:"mb-1"},n.createElement(v.x,{phrase:"dateUploaded",options:{date:o.O.format(u.dateCreated,"DD/MM/YYYY")}})))}function C(e){var t,a=e.video,i=e.maxHeight,o=void 0===i?p.x:i,E=h.M.getParentVideo(a),y=!!e.video.description,C=(0,g._)(e.video)||!!E.productionYear||!!E.dateBroadcast||!!E.channel||!(!a.dateCreated||(null===(t=a._isClickViewCurated)||void 0===t?void 0:t.value)),w="function"==typeof e.onClickClose,x="function"==typeof e.onClickShowCurriculumLinks;return y||C?n.createElement(v.D.Provider,{value:b},n.createElement("div",{className:"rounded border p-3 mb-3 position-relative"},n.createElement(r.$B,{autoHeight:!0,autoHeightMax:o},n.createElement("div",{className:"row g-0"},y&&n.createElement("div",{className:C?"".concat(f.descriptionBorder," pe-3 col-md-7"):"col-12"},n.createElement("div",{className:"d-flex align-items-center"},n.createElement("h2",{className:"h6 mb-1"},n.createElement(v.x,{phrase:"description"})),n.createElement(d.m,{text:a.description,title:a.name,className:"ps-2",onLaunch:e.onLaunchImmersiveReader,onExit:e.onExitImmersiveReader,analyticsOptions:{location:c.LZ.PlayPage,entity:c.py.Video,actionType:c.Vw.Click,descriptor:c._S.LaunchImmersiveReader},analyticsData:{id:a.id,type:"description"}})),n.createElement("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:l.O.linkifyText(e.video.description,{nl2br:!0})}}),n.createElement(u.P,Object.assign({tags:function(){var t,a;return e.hideTags||h.M.isInteractive(e.video)||!(null===(a=null===(t=e.video.tags)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)?null:e.video.tags.data}()},m.G.getTagActionProps(e.getTagAppLink,null,e.suppressInteractivity),{className:"mt-1"})),x&&n.createElement(s.L,{onClick:e.onClickShowCurriculumLinks,className:"cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1"},n.createElement(v.x,{namespace:b,phrase:"seeCurriculumLinks"}))),C&&n.createElement(k,Object.assign({},e)))),w&&n.createElement("button",{type:"button",className:"btn-close ".concat(f.closeButton),"aria-label":"Close",onClick:e.onClickClose}))):n.createElement(n.Fragment,null)}},92805:(e,t,a)=>{"use strict";a.d(t,{H:()=>r});var n=a(32735);function r(){return n.createElement("div",{className:"p-3 mb-3 border rounded"},n.createElement("div",{className:"row"},n.createElement("div",{className:"pe-3 col-md-7 border-right"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"4.5rem"}}),n.createElement("div",{className:"partial-loading-background",style:{height:"1.5rem",width:"15rem"}})),n.createElement("div",{className:"col-md-5 ps-md-3 pt-3 pt-md-0"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"7rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"10rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3.5rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4.5rem"}}))))}},3133:(e,t,a)=>{"use strict";a.d(t,{R:()=>s});var n=a(32735),r=a(20789),i=a(86794),o=a(2786),l=a(64818);const c={avatarContainer:"kd18L",cvIcon:"smUBc"};function s(e){var t;if(!e.owner&&!e.isClickViewCurated)return n.createElement(n.Fragment,null);if(e.isClickViewCurated)return n.createElement("div",{className:"clamp-1 d-flex align-items-center"},n.createElement("div",{className:"".concat(c.avatarContainer," me-1 border rounded-circle position-relative")},n.createElement(i.b,{className:"me-1 ".concat(c.cvIcon)},n.createElement(o.Sd,null))),"ClickView");var a=l.l.getCommunityName(e.owner);return a?n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"".concat(c.avatarContainer," me-1")},n.createElement(r.q,{imageCdnUrl:e.imageCdnUrl,initials:l.l.getInitials(e.owner.name,e.owner.surname),imageUrl:null===(t=e.owner.avatar)||void 0===t?void 0:t.url})),n.createElement("div",{className:"clamp-1"},a)):n.createElement(n.Fragment,null)}},15446:(e,t,a)=>{"use strict";a.d(t,{C:()=>d});var n=a(32735),r=a(65858),i=a(36848),o=a(84591),l=a(3133),c=a(54610),s=a(68626);var d=n.memo((function(e){var t;return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("hzP5u")},n.createElement("div",{className:"row m-0 border rounded p-2 h-100"},n.createElement("div",{className:"col-6 p-0"},n.createElement(o.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:c.h2.Small},textPosition:s.z.Independent,analyticsOptions:{location:r.LZ.SlidingListItem},preload:!0})),n.createElement("div",{className:"col-6 p-0"},n.createElement("div",{className:"ps-2"},n.createElement(i.F,{appLink:e.getAppLink(e.data)},n.createElement("h3",{className:"h6 mb-1"},n.createElement("span",{className:"clamp-2"},e.data.name))),n.createElement(l.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl})))))}))},47862:(e,t,a)=>{"use strict";a.d(t,{K:()=>m});var n=a(32735),r=a(65858),i=a(36848),o=a(83345),l=a(84591),c=a(3133),s=a(54610),d=a(68626);var m=n.memo((function(e){var t,a=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]});return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},n.createElement("div",{className:"row m-0 border rounded p-2 h-100"},n.createElement("div",{className:"col-6 p-0"},n.createElement(l.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:s.h2.Small},textPosition:d.z.Independent,preload:!0,analyticsOptions:{location:r.LZ.SlidingListItem}})),n.createElement("div",{className:"col-6 p-0"},n.createElement("div",{className:"ps-2"},n.createElement(i.F,{appLink:e.getAppLink(e.data)},n.createElement("h3",{className:"h6 mb-1"},n.createElement("span",{className:"clamp-2"},e.data.name))),n.createElement(c.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl}),n.createElement(i.F,{className:"info-link",appLink:a},n.createElement(o.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions"}))))))}))},26733:(e,t,a)=>{"use strict";a.d(t,{s:()=>C,R:()=>w});var n=a(32735),r=a(39202),i=a(49985),o=a(65858),l=a(36848),c=a(11607),s=a(75891),d=a(83914),m=a(60995),u=a(76177),v=a(61150),p=a(71063),h=a(4594),g=a(1164),f=a(79967),b=a(45778),E=a(54297),y=a(35223);const k={imageStyle:"I9E5O",item:"tqUFn",dashboard:"o7j7p",playPage:"V2RwX",aspectRatio:"OnJDH",outerContainer:"CIFy7",innerContainer:"oUZPD",actions:"jzGAm",titleBelow:"Cpjs3",thumbnailContainer:"EDiGi",titleAbove:"e9ejn",teacherPack:"_tdVE",text:"g5NWS",hoverState:"xRYhX",atomGuide:"X39wU",studentActivity:"X9pMl",additionalMaterials:"qRVUo",userUploaded:"_18JaV",imageTypeResource:"KYtZL",download:"fbb_e"};function C(e){var t,a,r,i,o=null;"metadata"in e.data&&(o=e.data.metadata);var l=b.G.isType(e.data,h.E.Resource);return n.createElement(n.Fragment,null,n.createElement("div",{className:k.aspectRatio},n.createElement("div",{className:k.outerContainer},n.createElement("div",{className:function(t){var a,n="\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ".concat(function(e){switch(e){case"atom-guide":return k.atomGuide;case"student-activity":return k.studentActivity;case"teacher-pack":return k.teacherPack;case"additional-materials":return k.additionalMaterials;default:return k.userUploaded}}(t)," ").concat(k.innerContainer);return(null===(a=e.theme)||void 0===a?void 0:a.containerClass)?n+=" ".concat(e.theme.containerClass):n+=" pt-3 px-3",e.applyHoverState&&(n+=" ".concat(k.hoverState)),n}(null==o?void 0:o.resourceType)},"above"===e.titlePosition&&n.createElement(u.u,{title:e.data.name},n.createElement("h3",{className:"text-center text-break h5 mb-3 ".concat(k.text)},n.createElement("span",{className:"clamp-1"},e.data.name))),n.createElement("div",{className:"\n ".concat(null!==(a=null===(t=e.theme)||void 0===t?void 0:t.thumbnailContainerClass)&&void 0!==a?a:""," w-75 overflow-hidden \n ").concat(k.thumbnailContainer," ").concat("above"===e.titlePosition?k.titleAbove:""," \n ").concat(k.imageStyle,"\n ")},n.createElement(s.C,{resource:e.data,imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.imageErrorFallbackUrl,preloadImage:e.preloadImage})),l&&e.onClickDownload&&"normal"===e.actionBehaviour&&n.createElement("div",{className:k.actions},n.createElement(c.L,{onClick:function(t){return e.onClickDownload(t,e.data)},className:"".concat(k.download," d-flex align-items-center justify-content-center")},n.createElement(d.x,{svgName:y.vn.Download}))),!e.hideTypeBadge&&l&&n.createElement(v.y,{typeId:h.E.Resource})))),"below"===e.titlePosition&&n.createElement("div",{className:"mt-1 ".concat(k.titleBelow)},b.G.isType(e.data,h.E.Resource)&&!!(null===(i=null===(r=e.data)||void 0===r?void 0:r.metadata)||void 0===i?void 0:i.resourceType)&&n.createElement(m.m,null,E.C.getResourceTypeName(e.data.metadata.resourceType)),n.createElement("h3",{className:"h6 clamp-2"},e.data.name)))}C.defaultProps={preloadImage:!0,actionBehaviour:"normal"};var w=n.memo((function(e){var t,a,c,s,d=(t=e.data,a=e.actionBehaviour,s=(0,f.k)(),"public"===a||!s.xs&&!s.sm&&"resource"===t.type&&"metadata"in t&&(t.metadata.type===g.L.Image||(t.metadata.type===g.L.Pdf?!!t.url:!!(null===(c=t.pdf)||void 0===c?void 0:c.url)))),m=Object.assign(Object.assign({},e.analyticsData),e.data),u=Object.assign(Object.assign({},e.analyticsOptions),{actionType:o.Vw.Click,entity:e.data.typeId===h.E.Resource?o.py.Resource:o.py.Link});function v(){i.k.logUserAction(m,u)}var b,E=Object.assign(Object.assign({},e),{applyHoverState:d||!!e.data.url});return n.createElement("div",{className:"px-1 flex-shrink-0 ".concat(k.item," ").concat("play-page"===e.location?k.playPage:k.dashboard," ").concat(p.M.RESOURCE_ITEM_SELECTOR)},(b="d-block no-decoration","link"===e.data.type?n.createElement("a",{href:e.data.url,target:"_blank",className:b,onClick:v},n.createElement(C,Object.assign({},E))):d?"public"===e.actionBehaviour?n.createElement("div",{className:"".concat(b," cursor-pointer d-inline"),onClick:function(){v(),r.C$.trigger(e.getAppLink(e.data))}},n.createElement(C,Object.assign({},E))):n.createElement(l.F,{appLink:e.getAppLink(e.data),className:b,analyticsData:m,analyticsOptions:u},n.createElement(C,Object.assign({},E))):e.data.url?n.createElement("a",{href:e.data.url,className:b,onClick:v},n.createElement(C,Object.assign({},E))):n.createElement("div",{className:b},n.createElement(C,Object.assign({},E)))))}))},28907:(e,t,a)=>{"use strict";a.d(t,{r:()=>i});var n=a(99940),r=a(97395),i={theme:function(e){return{url:"/api/domain/v1/themes/".concat(e),key:"themes:".concat(e)}},themeImages:function(e,t){return{url:r._.urlBuilder("/api/domain/v1/themes",{name:e,type:t}),key:"themes:".concat(e,":").concat(t)}},themes:function(e){var t="/api/domain/v1/themes",a="themes";return e&&(t+="?type=".concat(e),a+=":type:".concat(e)),{url:t,key:a,formatData:function(e){return e.sort((function(e,t){return e.name.localeCompare(t.name)}))}}},createTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes",key:"theme",data:e,type:n.k.POST,invalidationKeys:"themes",success:t,error:a,always:r}},updateTheme:function(e,t,a,r,i){return{url:"/api/domain/v1/themes/".concat(e),key:"update:theme:".concat(e),data:t,type:n.k.PUT,success:a,error:r,always:i}},deleteTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes/".concat(e),key:"delete:theme:".concat(e),type:n.k.DELETE,invalidationKeys:"themes",success:t,error:a,always:r}}}},93563:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n={container:"BImYH",background:"aAY0j",topLeft:"azcIT",bottomLeft:"mBkCx",topRight:"tcN5n",bottomRight:"sHsOr",detailsBtn:"jyxT7",content:"PeWbM",highlightPoi:"un8Q0"}},68050:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var n=a(95685),r=a.n(n),i=a(32735),o=a(46304),l=a(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),d=(0,o.zG)(),m=`${c}-cols`,u=[];return s.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const r=e!==d?`-${e}`:"";null!=a&&u.push(`${m}${r}-${a}`)})),(0,l.jsx)(a,{ref:i,...n,className:r()(t,c,...u)})}));c.displayName="Row";const s=c}}]);
2
- //# sourceMappingURL=184-ee581fa2e0-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/184-ee581fa2e0-lite.chunk.js","mappings":"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","sources":["file:///app/node_modules/@microsoft/immersive-reader-sdk/lib/immersive-reader-sdk.js","file:///app/packages/libs/shared/src/components/video-at-a-glance/VideoAtAGlance.tsx","file:///app/packages/libs/shared/src/components/video-at-a-glance/VideoAtAGlanceUtils.ts","file:///app/packages/libs/shared/src/components/video-details/video-details.scss","file:///app/packages/libs/shared/src/components/video-details/VideoDetails.tsx","file:///app/packages/libs/shared/src/components/video-details/VideoDetailsPartial.tsx","file:///app/packages/libs/shared/src/components/video-owner-text/video-owner-text.scss","file:///app/packages/libs/shared/src/components/video-owner-text/VideoOwnerText.tsx","file:///app/packages/libs/shared/src/components/widgets/items/clip-widget-item/ClipWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/clip-widget-item/clip-widget-item.scss","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/InteractiveWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/interactive-widget-item.scss","file:///app/packages/libs/shared/src/components/widgets/items/resource-widget-item/resource-widget-item.scss","file:///app/packages/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.tsx","file:///app/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file:///app/packages/libs/shared/src/components/video-at-a-glance/video-at-a-glance.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.ImmersiveReader=t():e.ImmersiveReader=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=1)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Disable=0]=\"Disable\",e[e.Enable=1]=\"Enable\"}(t.CookiePolicy||(t.CookiePolicy={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2);t.renderButtons=n.renderButtons;var o=r(3);t.close=o.close,t.launchAsync=o.launchAsync;var i=r(0);t.CookiePolicy=i.CookiePolicy,window.addEventListener(\"load\",(function(){var e,t;window.hasOwnProperty(\"Promise\")||(e=\"https://contentstorage.onenote.office.net/onenoteltir/permanent-static-resources/promise-polyfill.min.js\",(t=document.createElement(\"script\")).src=e,document.head.appendChild(t)),n.renderButtons()}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n={af:\"Indompelende leser\",am:\"በህያው ስሜት ፈጣሪ ዕይታ አንባቢ\",ar:\"القارئ الشامل\",as:\"ইমাৰচিভ ৰিডাৰ\",az:\"İmmersiv Oxuyucu\",be:\"Імерсіўны чытальнік\",bg:\"Концентриран четец\",bn:\"মনোগ্রাহী পাঠক\",\"bn-bd\":\"ইমার্সিভ পাঠক\",bs:\"Koncentrirani čitalac\",ca:\"Lector immersiu\",cs:\"Asistivní čtečka\",\"cy-gb\":\"Darllenydd Ymdrwythol\",da:\"Forenklet læser\",de:\"Plastischer Reader\",el:\"Προηγμένο πρόγραμμα ανάγνωσης\",en:\"Immersive Reader\",es:\"Lector inmersivo\",et:\"Süvaluger\",eu:\"Irakurgailu murgiltzailea\",fa:\"خواننده همه‌جانبه\",fi:\"Syventävä lukuohjelma\",fil:\"Immersive Reader\",fr:\"Lecteur immersif\",\"ga-ie\":\"Léitheoir tumthach\",gd:\"An leughadair ùr-nòsach\",gl:\"Lector avanzado\",gu:\"ઇમર્સિવ રીડર\",ha:\"Mai karatu Mai barbazawa\",he:\"תצוגת קריאה מודרנית\",hi:\"इमर्सिव रीडर\",hr:\"Stopljeni čitač\",hu:\"Modern olvasó\",hy:\"Խորասուզված ընթերցիչ\",id:\"Pembaca Imersif\",ig:\"Ọgụụ Kenzipụtara\",is:\"Aðgengilegt lestrarumhverfi\",it:\"Strumento di lettura immersiva\",ja:\"イマーシブ リーダー\",ka:\"იმერსიული წამკითხველი\",kk:\"Иммерсивті оқу құралы\",km:\"កម្មវិធីអានពណ៌រំលេចនៅលើអេក្រង់\",kn:\"ಇಮ್ಮರ್ಸಿವ್ ಓದುಗ\",ko:\"몰입형 리더\",kok:\"तंद्री लागिल्लो वाचक\",\"ku-arab\":\"خوێنەری پڕ\",ky:\"Курчаган Окугуч\",lb:\"Immersive Reader\",lo:\"ຕົວອ່ານອິມເມີສີບ\",lt:\"Įtraukianti skaitytuvė\",lv:\"Tīrskata lasītājs\",mi:\"Pūpānui Rumaki\",mk:\"Сеопфатен читач\",ml:\"ഇമ്മേഴ്‌സീവ് റീഡർ\",mn:\"Идэвхтэй уншигч\",mr:\"इमर्सिव्ह वाचक\",ms:\"Pembaca Imersif\",mt:\"Qarrej Immersiv\",ne:\"इमेर्सिभ रिडर\",nl:\"Insluitende lezer\",\"nn-no\":\"Engasjerande lesar\",no:\"Engasjerende leser\",nso:\"Go Bala ka Mongwalo o Mokoto\",or:\"ଇମରସିଭ୍ ରିଡର୍\",pa:\"ਇਮਰਸਿਵ ਰੀਡਰ\",\"pa-arab\":\"گھیرن آلا مطالعہ کار\",pl:\"Czytnik immersyjny\",prs:\"خواننده نمایش\",pt:\"Leitura Avançada\",quc:\"Nim ucholajil sik'inel uwach\",quz:\"Wankisqa Ñawiq\",ro:\"Immersive Reader\",ru:\"Иммерсивное средство чтения\",rw:\"Insakazasoma\",sd:\"امرسو ريڊر\",si:\"ගිලෙන සුළු කියවනය\",sk:\"Imerzná čítačka\",sl:\"Potopni bralnik\",sq:\"Lexuesi kredhës\",\"sr-cyrl-ba\":\"Концентрисани читалац\",\"sr-cyrl-rs\":\"Концентрисани читалац\",\"sr-latn-rs\":\"Koncentrisani čitalac\",sv:\"Avancerad läsare\",sw:\"Kisomaji cha Kuzamisha\",ta:\"அற்புதமான ரீடர்\",te:\"మంత్రముగ్ధులను చేసే పఠన సాధనం\",\"tg-cyrl-tj\":\"Хонандаи фарогир\",th:\"โปรแกรมช่วยอ่าน\",ti:\"ኣንባቢ ሕሉው ስምዒት ፈጣሪ\",tk:\"Giňişleýin okaýjy\",tn:\"Sebadi sa Imesife\",tr:\"Tam Ekran Okuyucu\",tt:\"Чолгап алучы уку чарасы\",\"ug-cn\":\"چۆكمە ئوقۇغۇچ\",uk:\"Занурення в текст\",ur:\"امرسیو مطالعہ کار\",uz:\"Immersiv mutolaa vositasi\",vi:\"Trình đọc Chân thực\",wo:\"Jàngukaay bu Rafet\",xh:\"Isifundi Esikhulu\",yo:\"Ìwò Alámùtán\",zh:\"沉浸式阅读器\",\"zh-hant\":\"沈浸式閱讀程式\",zu:\"Isifundi Sokuzizwisa\"};function o(e){var t=document.createElement(\"img\");t.src=\"https://contentstorage.onenote.office.net/onenoteltir/permanent-static-resources/immersive-reader-icon.svg\";var r=e.getAttribute(\"data-icon-px-size\")||\"20\";t.style.height=t.style.width=r+\"px\",t.style.verticalAlign=\"middle\",t.style.marginTop=\"-2px\";var n=e.getAttribute(\"data-locale\")||\"en\";t.alt=s(n),e.appendChild(t)}function i(e){var t=document.createElement(\"span\");t.style.marginLeft=\"8px\",e.appendChild(t)}function a(e){var t=document.createElement(\"span\"),r=e.getAttribute(\"data-locale\")||\"en\";t.textContent=s(r),e.appendChild(t)}function s(e){return e=e.toLowerCase(),n[e]?n[e]:\"zh-hk\"===e||\"zh-mo\"===e||\"zh-tw\"===e?n[\"zh-hant\"]:(e=e.substring(0,e.lastIndexOf(\"-\")),n[e]?n[e]:(e=e.substring(0,e.lastIndexOf(\"-\")),n[e]?n[e]:n.en))}t.renderButtons=function(e){var t=document.createElement(\"style\");t.innerHTML=\".immersive-reader-button{cursor:pointer;display:inline-block;padding:5px;} .immersive-reader-button:hover{background:rgba(0,0,0,.05);border-radius:2px\",document.head.appendChild(t);var r=[].slice.call(document.getElementsByClassName(\"immersive-reader-button\"));e&&e.elements&&(r=e.elements);for(var n=0,u=r;n<u.length;n++){var d=u[n];d.setAttribute(\"role\",\"button\");var l=d.getAttribute(\"data-locale\")||\"en\";switch(d.setAttribute(\"aria-label\",s(l)),d.getAttribute(\"data-button-style\")||\"icon\"){case\"icon\":o(d);break;case\"text\":a(d);break;case\"iconAndText\":o(d),i(d),a(d)}}}},function(e,t,r){\"use strict\";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,\"__esModule\",{value:!0});var o=r(0),i=r(4),a={};function s(e){if(!e)return!1;return new RegExp(\"^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])$\").test(e)}a[i.ErrorCode.TokenExpired]=\"The access token supplied is expired.\",a[i.ErrorCode.Throttled]=\"You have exceeded your quota.\",a[i.ErrorCode.ServerError]=\"An error occurred when calling the server to process the text.\",a[i.ErrorCode.InvalidSubdomain]=\"The subdomain supplied is invalid.\",t.launchAsync=function(e,t,r,u){return new Promise((function(d,l){if(e)if(r)if(r.chunks)if(r.chunks.length)if(s(t)||u&&u.customDomain){var c=Date.now();(u=n({uiZIndex:1e3,timeout:15e3,useWebview:!1,allowFullscreen:!0,hideExitButton:!1,cookiePolicy:o.CookiePolicy.Disable},u)).uiZIndex&&\"number\"==typeof u.uiZIndex||(u.uiZIndex=1e3);var m=null,v=document.createElement(\"div\"),p=u.useWebview?document.createElement(\"webview\"):document.createElement(\"iframe\"),f=document.createElement(\"style\");f.innerHTML=\"body{height:100%;overflow:hidden;}\";var h=function(){m&&(window.clearTimeout(m),m=null)},b=function(){document.body.contains(v)&&document.body.removeChild(v),window.removeEventListener(\"message\",y),h(),f.parentNode&&f.parentNode.removeChild(f)},g=function(){b(),u.onExit&&u.onExit()};b();var y=function(n){if(n&&n.data)if(\"ImmersiveReader-ReadyForContent\"===n.data){h();var o={cogSvcsAccessToken:e,cogSvcsSubdomain:t,request:r,launchToPostMessageSentDurationInMs:Date.now()-c};p.contentWindow.postMessage(JSON.stringify({messageType:\"Content\",messageValue:o}),\"*\")}else if(\"ImmersiveReader-Exit\"===n.data)g();else if(n.data.startsWith(\"ImmersiveReader-LaunchResponse:\")){var s=null,u=null,m=null;try{m=JSON.parse(n.data.substring(\"ImmersiveReader-LaunchResponse:\".length))}catch(e){}m&&m.success?s={container:v,sessionId:m.sessionId}:u=m&&!m.success?{code:m.errorCode,message:a[m.errorCode],sessionId:m.sessionId}:{code:i.ErrorCode.ServerError,message:a[i.ErrorCode.ServerError]},s?(h(),d(s)):u&&(g(),l(u))}};window.addEventListener(\"message\",y),m=window.setTimeout((function(){b(),l({code:i.ErrorCode.Timeout,message:\"Page failed to load after timeout (\"+u.timeout+\" ms)\"})}),u.timeout),u.allowFullscreen&&p.setAttribute(\"allowfullscreen\",\"\"),p.style.cssText=\"position: static; width: 100vw; height: 100vh; left: 0; top: 0; border-width: 0\",u.useWebview&&p.addEventListener(\"loadstop\",(function(){p.contentWindow.postMessage(JSON.stringify({messageType:\"WebviewHost\"}),\"*\")}));var k=(u.customDomain?u.customDomain:\"https://\"+t+\".cognitiveservices.azure.com/immersivereader/webapp/v1.0/\")+\"reader?exitCallback=ImmersiveReader-Exit&sdkPlatform=js&sdkVersion=1.0.0\";k+=\"&cookiePolicy=\"+(u.cookiePolicy===o.CookiePolicy.Enable?\"enable\":\"disable\"),u.hideExitButton&&(k+=\"&hideExitButton=true\"),u.uiLang&&(k+=\"&omkt=\"+u.uiLang),p.src=k,v.style.cssText=\"position: fixed; width: 100vw; height: 100vh; left: 0; top: 0; border-width: 0; -webkit-perspective: 1px; z-index: \"+u.uiZIndex+\"; background: white; overflow: hidden\",v.appendChild(p),document.body.appendChild(v),document.head.appendChild(f)}else l({code:i.ErrorCode.InvalidSubdomain,message:a[i.ErrorCode.InvalidSubdomain]});else l({code:i.ErrorCode.BadArgument,message:\"Chunks must not be empty\"});else l({code:i.ErrorCode.BadArgument,message:\"Chunks must not be null\"});else l({code:i.ErrorCode.BadArgument,message:\"Content must not be null\"});else l({code:i.ErrorCode.BadArgument,message:\"Token must not be null\"})}))},t.close=function(){window.postMessage(\"ImmersiveReader-Exit\",\"*\")},t.isValidSubdomain=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.BadArgument=\"BadArgument\",e.Timeout=\"Timeout\",e.TokenExpired=\"TokenExpired\",e.Throttled=\"Throttled\",e.ServerError=\"ServerError\",e.InvalidSubdomain=\"InvalidSubdomain\"}(t.ErrorCode||(t.ErrorCode={}))}])}));","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { PointOfInterest, Tag, Theme, ThemeColours, Video } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { hasGlanceData, onClickMarkDown, useGlanceMarkdown, useHighlightPointOfInterest } from './VideoAtAGlanceUtils';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlance';\n\nfunction getThemeColours(theme: Theme): ThemeColours {\n if (theme?.data?.colours?.primary && theme?.data?.colours?.secondary)\n return theme.data.colours;\n\n // On the off chance that a theme is in use that doesn't have any colours, safely fall back to these generic colours.\n return {\n primary: '#F5F4FF',\n secondary: '#9294FF'\n };\n}\n\ninterface VideoAtAGlanceProps {\n video: Video;\n theme: Theme;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickShowCurriculumLinks?: () => void;\n onClickShowDescription?: () => void;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n}\n\nexport function VideoAtAGlance(props: VideoAtAGlanceProps): JSX.Element {\n const canViewGlance = hasGlanceData(props.video, props.theme);\n\n const markdownHTML = useGlanceMarkdown(\n props.video,\n props.pointsOfInterest,\n canViewGlance,\n props.suppressInteractivity\n );\n \n const glanceContentRef = useHighlightPointOfInterest(props.pointsOfInterest, canViewGlance);\n \n if (!canViewGlance)\n return <></>;\n\n const themeColours = getThemeColours(props.theme);\n\n const showDescriptionLink = typeof props.onClickShowDescription === 'function';\n const showCurriculumsLink = typeof props.onClickShowCurriculumLinks === 'function';\n\n return (\n <div\n className={`rounded border px-3 px-sm-5 py-3 mb-3 position-relative d-flex justify-content-center ${styles.container}`}\n style={{ backgroundColor: themeColours.primary }}\n >\n <div className={`${styles.content} d-flex align-items-center pt-4 pt-sm-0`}>\n <div>\n <h2 className='h4'><Text namespace={namespace} phrase='videoAtAGlance' /></h2>\n {showDescriptionLink && (\n <DivButton\n onClick={props.onClickShowDescription}\n className={`${styles.detailsBtn} position-absolute cursor-pointer me-4 fw-semibold text-info`}\n >\n <Text namespace={namespace} phrase='readFullDescription' />\n </DivButton>\n )}\n <div\n ref={glanceContentRef}\n onClick={(event: React.MouseEvent<HTMLDivElement, MouseEvent>) =>\n onClickMarkDown(event, props.pointsOfInterest, props.setStartTime)\n }\n dangerouslySetInnerHTML={{ __html: markdownHTML }}\n />\n\n {(() => {\n if (!props.video.tags?.data?.length)\n return <></>;\n\n return (\n <div className='py-1'>\n <TagList\n tags={props.video?.tags?.data}\n themeColours={themeColours}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n />\n </div>\n );\n })()}\n\n <div className='mt-2'>\n {showCurriculumsLink && (\n <DivButton\n onClick={props.onClickShowCurriculumLinks}\n className='cursor-pointer d-inline-block fw-semibold text-info'\n >\n <Text namespace={namespace} phrase='seeCurriculumLinks' />\n </DivButton>\n )}\n </div>\n </div>\n </div>\n\n {(() => {\n const themeImages = props.theme?.data?.images ?? {};\n\n const themeImageSegments = ObjectHelper\n .keys(themeImages)\n .filter((key: keyof typeof themeImages) => {\n return !ObjectHelper.isEmpty(themeImages[key]);\n });\n\n return themeImageSegments.map((segment: keyof typeof themeImages) => {\n const url = ImageHelper.createUrl(themeImages[segment]?.url, { size: ImageSize.Medium });\n\n return (\n <div\n key={themeImages[segment]?.fileId}\n className={`${styles[segment]} ${styles.background} d-none d-lg-block`}\n style={{\n backgroundImage: `url('${url}')`\n }}\n />\n );\n });\n })()}\n </div>\n );\n}","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { useEventsServiceSubscribe } from 'libs/common/react/hooks/UseEventsServiceSubscribe';\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\nimport { Clip, Glance, PointOfInterest, Theme, Video } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport styles from './video-at-a-glance.scss';\n\nconst POI_REGEX = /(\\[.*\\]\\(cv:\\/\\/poi\\?id=[0-9]+\\))/g;\nconst POI_ID_REGEX = /[0-9]+/;\nconst POI_TEXT_REGEX = /\\[.*\\]/;\nconst POI_TEXT_BRACES_REGEX = /[\\[\\]]/g;\n\nfunction injectPointOfInterestData(\n glance: Glance,\n pointsOfInterest: PointOfInterest[],\n suppressInteractivity?: boolean\n): string {\n if (!pointsOfInterest?.length)\n return glance.content;\n\n return glance.content.replace(POI_REGEX, (substr: string) => {\n const idMatch = substr.match(POI_ID_REGEX);\n \n if (!idMatch?.length)\n return substr;\n\n const poi = pointsOfInterest.find(p => p.id.toString() === idMatch[0]);\n const poiTextMatch = substr.match(POI_TEXT_REGEX);\n \n if (!poi || !poiTextMatch?.length)\n return substr;\n\n const timestamp = `<span class=\"me-2\">${DurationHelper.ToDisplayDuration(poi.startTime * 1000)}</span>`;\n\n let poiText = poiTextMatch[0];\n // strip []\n poiText = poiText.replace(POI_TEXT_BRACES_REGEX, '');\n // if no custom text, set POI description as text\n poiText = poiText || poi.description;\n // prepend timestamp to text and add []\n poiText = `${timestamp} ${poiText}`;\n\n // When we are rendering in a public context without the player we will show simple spans\n return !suppressInteractivity\n ? substr.replace(POI_TEXT_REGEX, `[${poiText}]`)\n : `<span class=\"d-flex\">${poiText}</span>`;\n });\n}\n\nfunction getGlanceContent(\n glance: Glance,\n pointsOfInterest: PointOfInterest[],\n suppressInteractivity?: boolean\n): string {\n const content = injectPointOfInterestData(glance, pointsOfInterest, suppressInteractivity);\n\n return marked(content)\n .split('a href=\"cv://poi')\n .join('a class=\"d-flex\" href=\"cv://poi');\n}\n\n/**\n * Because the markdown is injected as a HTML string, we cannot attach click event handlers directly onto\n * the links that we want to. Instead, we attach one click handler to the entire markdown container, meaning\n * click events bubble up, and we can use `event.target` to see which element was clicked.\n */\nexport function onClickMarkDown(\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n pointsOfInterest?: PointOfInterest[],\n setStartTime?: (timeVideosStat: number) => void\n): void {\n event.preventDefault();\n\n const href = (event.target as HTMLDivElement).getAttribute('href');\n\n // Ignore click events that do not have a href\n if (!href?.includes('cv://poi') || !pointsOfInterest?.length)\n return;\n \n // When a timestamp is clicked, we update the player time\n const poiId = href.split('cv://poi?id=')[1];\n const poi = pointsOfInterest.find(p => p.id.toString() === poiId);\n setStartTime && poi && setStartTime(poi.startTime);\n}\n\nexport function useGlanceMarkdown(\n video: Video,\n pointsOfInterest?: PointOfInterest[],\n hasGlanceData?: boolean,\n suppressInteractivity?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getGlanceContent(video.glance, pointsOfInterest, suppressInteractivity);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, pointsOfInterest?.length, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function useHighlightPointOfInterest(\n pointsOfInterest: PointOfInterest[],\n shouldHighlight: boolean\n): MutableRefObject<HTMLDivElement> {\n const ref = useRef<HTMLDivElement>();\n\n useEventsServiceSubscribe('player:poi:mouseover', onPlayerPoiMouseOver, null, shouldHighlight);\n useEventsServiceSubscribe('player:poi:mouseleave', onPlayerPoiMouseLeave, null, shouldHighlight);\n\n useEffect(() => {\n if (!ref.current || !shouldHighlight)\n return;\n\n const poiEls = getAllPoiEls();\n\n poiEls.forEach(el => el.addEventListener('mouseover', onGlancePoiMouseOver));\n poiEls.forEach(el => el.addEventListener('mouseleave', onGlancePoiMouseLeave));\n\n return () => {\n poiEls.forEach(el => el.removeEventListener('mouseover', onGlancePoiMouseOver));\n poiEls.forEach(el => el.removeEventListener('mouseleave', onGlancePoiMouseLeave));\n };\n }, [ref.current]);\n\n function onPlayerPoiMouseOver(pointOfInterest: PointOfInterest): void {\n const poiId = pointOfInterest?.id;\n\n if (!poiId)\n return;\n\n getPoiEl(poiId)?.classList.add(styles.highlightPoi);\n }\n\n function onPlayerPoiMouseLeave(): void {\n getAllPoiEls()?.forEach(el => el.classList.remove(styles.highlightPoi));\n }\n\n /**\n * `this` will be the element to which the eventListener is bound.\n */\n function onGlancePoiMouseOver(): void {\n const href = this.getAttribute('href');\n\n if (!href?.includes('cv://poi') || !pointsOfInterest?.length)\n return;\n\n const id = href.split('cv://poi?id=')[1];\n\n if (!id)\n return;\n\n const poi = pointsOfInterest.find(p => p.id.toString() === id);\n\n if (poi)\n EventsService.trigger('glance:poi:mouseover', poi);\n }\n\n function onGlancePoiMouseLeave(): void {\n EventsService.trigger('glance:poi:mouseleave');\n }\n\n function getPoiEl(id: string): HTMLAnchorElement {\n return ref.current?.querySelector(`[href=\"cv://poi?id=${id}\"]`);\n }\n\n function getAllPoiEls(): NodeListOf<HTMLAnchorElement> {\n return ref.current?.querySelectorAll(`[href*=\"cv://poi\"]`);\n }\n\n return ref;\n}\n\nexport function hasGlanceData(video: Video | Clip, glanceTheme: Theme): boolean {\n return glanceTheme &&\n video.glance?.content &&\n video.glance?.format === 'text/markdown';\n}","// extracted by mini-css-extract-plugin\nexport default {\"closeButton\":\"ZwHXo\",\"descriptionBorder\":\"J_Z5i\"};","import * as React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImmersiveReader } from 'libs/shared/components/immersive-reader/ImmersiveReader';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { BaseObject, BasePaginatedCollection, Tag, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { hasPPDD } from './VideoDetailsUtils';\n\nimport styles from './video-details.scss';\n\nconst namespace = 'shared.videoDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CommaListProps {\n label: string;\n items: BasePaginatedCollection<BaseObject>;\n className?: string;\n}\n\nfunction CommaList(props: CommaListProps): React.ReactElement {\n const { label, items, className } = props;\n\n const hasItems = items && items.data && items.data.length;\n\n if (!hasItems)\n return <></>;\n\n const commaSeperated = items.data.map(i => i.name).join(', ');\n\n return (\n <div className={className}>{label}: {commaSeperated}</div>\n );\n}\n\nfunction DetailsSection(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video } = props;\n\n if (!VideoHelper.isVideo(video) && !VideoHelper.isClip(video))\n return <></>;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n return (\n <div className={video.description ? 'col-md-5 ps-md-3 pt-3 pt-md-0' : 'col-12'}>\n <h2 className='h6 mb-1'><Text phrase='details' /></h2>\n {!!parentVideo.productionYear && (\n <div className='mb-1'>\n <Text phrase='productionYear' options={{ year: parentVideo.productionYear }} />\n </div>\n )}\n <CommaList\n label={getPhrase('productionCompanies', { smartCount: parentVideo.productionCompanies?.data?.length })}\n items={parentVideo.productionCompanies}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('distributors', { smartCount: parentVideo.distributors?.data?.length })}\n items={parentVideo.distributors}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('producers', { smartCount: parentVideo.producers?.data?.length })}\n items={parentVideo.producers}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('directors', { smartCount: parentVideo.directors?.data?.length })}\n items={parentVideo.directors}\n className='mb-1'\n />\n {!!parentVideo.dateBroadcast && (\n <div className='mb-1'>\n <Text phrase='dateBroadcast' options={{ date: DateHelper.format(parentVideo.dateBroadcast, 'DD/MM/YYYY') }} />\n </div>\n )}\n {!!parentVideo.channel && (\n <div className='mb-1'>\n <Text phrase='channel' options={{ channel: parentVideo.channel.name }} />\n </div>\n )}\n {!!(!video._isClickViewCurated?.value && video.dateCreated) && (\n <div className='mb-1'>\n <Text phrase='dateUploaded' options={{ date: DateHelper.format(video.dateCreated, 'DD/MM/YYYY') }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface VideoDetailsWithScrollbarProps {\n video: VideoTypes;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onLaunchImmersiveReader?: () => void;\n onExitImmersiveReader?: () => void;\n onClickClose?: () => void;\n onClickShowCurriculumLinks?: () => void;\n maxHeight?: number;\n suppressInteractivity?: boolean;\n hideTags?: boolean;\n}\n\nexport function VideoDetailsWithScrollbar(props: VideoDetailsWithScrollbarProps): React.ReactElement {\n const { video, maxHeight = MINIMUM_GLANCE_HEIGHT } = props;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n const showDescription = !!props.video.description;\n\n const showDetails = (\n hasPPDD(props.video) ||\n !!parentVideo.productionYear ||\n !!parentVideo.dateBroadcast ||\n !!parentVideo.channel ||\n !!(video.dateCreated && !video._isClickViewCurated?.value)\n );\n\n const canClose = typeof props.onClickClose === 'function';\n const showCurriculumLinks = typeof props.onClickShowCurriculumLinks === 'function';\n\n function getTags(): Tag[] {\n if (props.hideTags || VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags.data;\n }\n\n if (!showDescription && !showDetails)\n return <></>;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='rounded border p-3 mb-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight}>\n <div className='row g-0'>\n {showDescription && (\n <div className={showDetails ? `${styles.descriptionBorder} pe-3 col-md-7` : 'col-12'}>\n <div className='d-flex align-items-center'>\n <h2 className='h6 mb-1'>\n <Text phrase='description' />\n </h2>\n <ImmersiveReader\n text={video.description}\n title={video.name}\n className='ps-2'\n onLaunch={props.onLaunchImmersiveReader}\n onExit={props.onExitImmersiveReader}\n analyticsOptions={{\n location: LocationContext.PlayPage,\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.LaunchImmersiveReader\n }}\n analyticsData={{ id: video.id, type: 'description' }}\n />\n </div>\n <p className='mb-0' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.video.description, { nl2br: true }) }} />\n <TagList\n tags={getTags()}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n className='mt-1'\n />\n {showCurriculumLinks && (\n <DivButton\n onClick={props.onClickShowCurriculumLinks}\n className='cursor-pointer d-inline-block fw-semibold text-info mt-2 mb-1'\n >\n <Text namespace={namespace} phrase='seeCurriculumLinks' />\n </DivButton>\n )}\n </div>\n )}\n\n {showDetails && (\n <DetailsSection {...props} />\n )}\n </div>\n </Scrollbars>\n\n {canClose && (\n <button\n type='button'\n className={`btn-close ${styles.closeButton}`}\n aria-label='Close'\n onClick={props.onClickClose}\n />\n )}\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nexport function VideoDetailsPartial(): JSX.Element {\n return (\n <div className='p-3 mb-3 border rounded'>\n <div className='row'>\n <div className='pe-3 col-md-7 border-right'>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '12rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '4.5rem' }}></div>\n <div className='partial-loading-background' style={{ height: '1.5rem', width: '15rem' }}></div>\n </div>\n <div className='col-md-5 ps-md-3 pt-3 pt-md-0'>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '7rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '10rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '12rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '3rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '4rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '3.5rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '4.5rem' }}></div>\n </div>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"kd18L\",\"cvIcon\":\"smUBc\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './video-owner-text.scss';\n\ninterface VideoOwnerTextProps {\n owner: User;\n isClickViewCurated: boolean;\n imageCdnUrl: string;\n}\n\nexport function VideoOwnerText(props: VideoOwnerTextProps): JSX.Element {\n if (!props.owner && !props.isClickViewCurated)\n return <></>;\n\n if (props.isClickViewCurated) {\n return (\n <div className='clamp-1 d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1 border rounded-circle position-relative`}>\n <SvgContainer2 className={`me-1 ${styles.cvIcon}`}>\n <ClickViewPlayLogo />\n </SvgContainer2>\n </div>\n ClickView\n </div>\n );\n }\n\n const name = UserHelper.getCommunityName(props.owner);\n\n if (!name)\n return <></>;\n\n return (\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1`}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.owner.name, props.owner.surname)}\n imageUrl={props.owner.avatar?.url}\n />\n </div>\n <div className='clamp-1'>\n {name}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Clip, Video } from 'libs/shared/interfaces';\n\nimport styles from './clip-widget-item.scss';\n\nexport interface ClipWidgetItemProps extends FixedWidgetItemProps<Clip> {\n video: Video;\n imageCdnUrl: string;\n}\n\nexport const ClipWidgetItem = React.memo(function(props: ClipWidgetItemProps): JSX.Element {\n return (\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\n <div className='row m-0 border rounded p-2 h-100'>\n <div className='col-6 p-0'>\n <VideoThumbnail\n video={props.data}\n appLink={props.getAppLink(props.data)}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n analyticsOptions={{ location: LocationContext.SlidingListItem }}\n preload\n />\n </div>\n\n <div className='col-6 p-0'>\n <div className='ps-2'>\n <AppLink appLink={props.getAppLink(props.data)}>\n <h3 className='h6 mb-1'><span className='clamp-2'>{props.data.name}</span></h3>\n </AppLink>\n\n <VideoOwnerText\n owner={props.data.owner}\n isClickViewCurated={props.data._isClickViewCurated?.value}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n </div>\n </div>\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"hzP5u\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Clip, InteractiveMetadata, Video } from 'libs/shared/interfaces';\n\nimport styles from './interactive-widget-item.scss';\n\nconst namespace = 'shared.interactiveWidgetItem';\n\nexport interface InteractiveWidgetItemProps extends FixedWidgetItemProps<InteractiveMetadata> {\n video: Video | Clip;\n questionsAppLink: Core.AppLink;\n imageCdnUrl: string;\n}\n\nexport const InteractiveWidgetItem = React.memo(function(props: InteractiveWidgetItemProps): JSX.Element {\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n return (\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\n <div className='row m-0 border rounded p-2 h-100'>\n <div className='col-6 p-0'>\n <VideoThumbnail\n video={props.data}\n appLink={props.getAppLink(props.data)}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n analyticsOptions={{ location: LocationContext.SlidingListItem }}\n />\n </div>\n\n <div className='col-6 p-0'>\n <div className='ps-2'>\n <AppLink appLink={props.getAppLink(props.data)}>\n <h3 className='h6 mb-1'><span className='clamp-2'>{props.data.name}</span></h3>\n </AppLink>\n\n <VideoOwnerText\n owner={props.data.owner}\n isClickViewCurated={props.data._isClickViewCurated?.value}\n imageCdnUrl={props.imageCdnUrl}\n />\n\n <AppLink className='info-link' appLink={questionsAppLink}>\n <Text namespace={namespace} phrase='previewQuestions' />\n </AppLink>\n </div>\n </div>\n </div>\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"rXatl\"};","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"I9E5O\",\"item\":\"tqUFn\",\"dashboard\":\"o7j7p\",\"playPage\":\"V2RwX\",\"aspectRatio\":\"OnJDH\",\"outerContainer\":\"CIFy7\",\"innerContainer\":\"oUZPD\",\"actions\":\"jzGAm\",\"titleBelow\":\"Cpjs3\",\"thumbnailContainer\":\"EDiGi\",\"titleAbove\":\"e9ejn\",\"teacherPack\":\"_tdVE\",\"text\":\"g5NWS\",\"hoverState\":\"xRYhX\",\"atomGuide\":\"X39wU\",\"studentActivity\":\"X9pMl\",\"additionalMaterials\":\"qRVUo\",\"userUploaded\":\"_18JaV\",\"imageTypeResource\":\"KYtZL\",\"download\":\"fbb_e\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ResourceThumbnail } from 'libs/shared/components/resource-thumbnail/ResourceThumbnail';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TypeBadge } from 'libs/shared/components/type-badge/TypeBadge';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Link, Resource, ResourceType } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './resource-widget-item.scss';\n\nfunction getColour(resourceType?: ResourceType): string {\n switch (resourceType) {\n case 'atom-guide':\n return styles.atomGuide;\n case 'student-activity':\n return styles.studentActivity;\n case 'teacher-pack':\n return styles.teacherPack;\n case 'additional-materials':\n return styles.additionalMaterials;\n default:\n return styles.userUploaded;\n }\n}\n\nfunction useCanPreview(data: Resource | Link, actionBehaviour: 'normal' | 'public'): boolean {\n const breakpoints = useBreakpoints();\n\n /**\n * When viewing publicly, the resource applink will\n * prompt the user to sign-up (not preview the underlying resource)\n */\n if (actionBehaviour === 'public')\n return true;\n\n if (breakpoints.xs || breakpoints.sm)\n return false;\n\n if (data.type !== 'resource')\n return false;\n \n // Require metadata\n if (!('metadata' in data))\n return false;\n\n // We can preview images\n if (data.metadata.type === ResourceFileType.Image)\n return true;\n\n // If we are a pdf and have a url\n if (data.metadata.type === ResourceFileType.Pdf)\n return !!data.url;\n\n // If we have a pdf assoc\n return !!data.pdf?.url;\n}\n\ninterface ResourceTheme {\n containerClass?: string;\n thumbnailContainerClass?: string;\n}\n\nexport interface ResourceTileProps {\n data: Resource | Link;\n imageCdnUrl: string;\n imageErrorFallbackUrl?: string;\n theme?: ResourceTheme;\n\n titlePosition: 'above' | 'below' | 'none';\n hideTypeBadge?: boolean;\n onClickDownload?: (e: React.MouseEvent<HTMLElement>, resource: Resource) => void;\n applyHoverState?: boolean;\n preloadImage: boolean;\n actionBehaviour?: 'normal' | 'public';\n}\n\nResourceTile.defaultProps = {\n preloadImage: true,\n actionBehaviour: 'normal'\n};\n\n/**\n * This component intentionally doesn't contain an appLink/download link\n * so that the resource download behaviour can be handled differently depending\n * on where this is rendered (e.g. primary play page vs embedded player)\n */\nexport function ResourceTile(props: ResourceTileProps): JSX.Element {\n let metadata = null;\n\n if ('metadata' in props.data) {\n metadata = props.data.metadata;\n }\n\n const isResource = MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource);\n\n function getInnerContainerClass(resourceType: ResourceType): string {\n let baseClass = `\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ${getColour(resourceType)} ${styles.innerContainer}`;\n\n if (props.theme?.containerClass) {\n baseClass += ` ${props.theme.containerClass}`;\n } else {\n baseClass += ` pt-3 px-3`;\n }\n\n if (props.applyHoverState) {\n baseClass += ` ${styles.hoverState}`;\n }\n\n return baseClass;\n }\n\n return (\n <>\n <div className={styles.aspectRatio}>\n <div className={styles.outerContainer}>\n <div className={getInnerContainerClass(metadata?.resourceType)}>\n {props.titlePosition === 'above' && (\n <Tooltip title={props.data.name}>\n <h3 className={`text-center text-break h5 mb-3 ${styles.text}`}>\n <span className='clamp-1'>{props.data.name}</span>\n </h3>\n </Tooltip>\n )}\n\n <div className={`\n ${props.theme?.thumbnailContainerClass ?? ''} w-75 overflow-hidden \n ${styles.thumbnailContainer} ${props.titlePosition === 'above' ? styles.titleAbove : ''} \n ${styles.imageStyle}\n `}>\n <ResourceThumbnail\n resource={props.data}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n />\n </div>\n\n {isResource && props.onClickDownload && props.actionBehaviour === 'normal' && (\n <div className={styles.actions}>\n <DivButton\n onClick={e => props.onClickDownload(e, props.data as Resource)}\n className={`${styles.download} d-flex align-items-center justify-content-center`}\n >\n <SvgContainer svgName={cvSvgLibrary.Download} />\n </DivButton>\n </div>\n )}\n\n {!props.hideTypeBadge && isResource && (\n <TypeBadge typeId={MasterType.Resource} />\n )}\n </div>\n </div>\n </div>\n {props.titlePosition === 'below' && (\n <div className={`mt-1 ${styles.titleBelow}`}>\n {(\n MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource) &&\n !!props.data?.metadata?.resourceType\n ) && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.data.metadata.resourceType)}\n </TitleSubText>\n )}\n <h3 className='h6 clamp-2'>\n {props.data.name}\n </h3>\n </div>\n )}\n </>\n );\n}\n\nexport interface ResourceWidgetItemProps extends ResourceTileProps, FixedWidgetItemProps<Resource | Link> {\n location: 'play-page' | 'dashboard';\n}\n\nexport const ResourceWidgetItem = React.memo(function(props: ResourceWidgetItemProps): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreview(props.data, props.actionBehaviour);\n\n function getLocationClass(): string {\n if (props.location === 'play-page')\n return styles.playPage;\n\n return styles.dashboard;\n }\n\n const analyticsData = { ...props.analyticsData, ...props.data };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: props.data.typeId === MasterType.Resource ? EntityType.Resource : EntityType.Link\n };\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n const tileProps: ResourceTileProps = {\n ...props,\n // Apply the hover state if we have a url or the resource can be previewed\n applyHoverState: canPreview || !!props.data.url\n };\n\n return (\n <div className={`px-1 flex-shrink-0 ${styles.item} ${getLocationClass()} ${SeoConstants.RESOURCE_ITEM_SELECTOR}`}>\n {(() => {\n const className = `d-block no-decoration`;\n\n // Handle resource links\n if (props.data.type === 'link') {\n return (\n <a href={props.data.url} target='_blank' className={className} onClick={logAction}>\n <ResourceTile {...tileProps} />\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a span over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div className={`${className} cursor-pointer d-inline`} onClick={() => {\n logAction();\n AppLinkHelper.trigger(props.getAppLink(props.data));\n }}>\n <ResourceTile {...tileProps} />\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.getAppLink(props.data)}\n className={className}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ResourceTile {...tileProps} />\n </AppLink>\n );\n }\n\n // URLs cannot be previewed\n if (props.data.url) {\n return (\n <a href={props.data.url} className={className} onClick={logAction}>\n <ResourceTile {...tileProps} />\n </a>\n );\n }\n\n // Theres no url, so don't render an <a>\n return (\n <div className={className}>\n <ResourceTile {...tileProps} />\n </div>\n );\n })()}\n </div>\n );\n});","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { Theme } from 'libs/shared/interfaces';\n\nimport { ThemeType } from '../enums/ThemeType';\n\nexport const ThemeRequests = {\n theme(id: string): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `themes:${id}`\n };\n },\n\n themeImages(name: string, type: ThemeType): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v1/themes', { name, type }),\n key: `themes:${name}:${type}`\n };\n },\n\n themes(type?: string): Flight.Request {\n let url = '/api/domain/v1/themes';\n let key = 'themes';\n\n if (type) {\n url += `?type=${type}`;\n key += `:type:${type}`;\n }\n\n return {\n url,\n key,\n formatData: (themes: Theme[]) => {\n return themes.sort((a, b) => a.name.localeCompare(b.name));\n }\n };\n },\n\n createTheme(\n data: Theme,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/domain/v1/themes',\n key: 'theme',\n data,\n type: HttpVerbs.POST,\n invalidationKeys: 'themes',\n success,\n error,\n always\n };\n },\n\n updateTheme(\n id: string,\n data: Theme,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `update:theme:${id}`,\n data,\n type: HttpVerbs.PUT,\n success,\n error,\n always\n };\n },\n\n deleteTheme(\n id: string,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `delete:theme:${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: 'themes',\n success,\n error,\n always\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"BImYH\",\"background\":\"aAY0j\",\"topLeft\":\"azcIT\",\"bottomLeft\":\"mBkCx\",\"topRight\":\"tcN5n\",\"bottomRight\":\"sHsOr\",\"detailsBtn\":\"jyxT7\",\"content\":\"PeWbM\",\"highlightPoi\":\"un8Q0\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["window","module","exports","e","t","r","n","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","Disable","Enable","CookiePolicy","renderButtons","close","launchAsync","addEventListener","document","createElement","src","head","appendChild","af","am","ar","as","az","be","bg","bn","bs","ca","cs","da","de","el","en","es","et","eu","fa","fi","fil","fr","gd","gl","gu","ha","he","hi","hr","hu","hy","id","ig","is","it","ja","ka","kk","km","kn","ko","kok","ky","lb","lo","lt","lv","mi","mk","ml","mn","mr","ms","mt","ne","nl","no","nso","or","pa","pl","prs","pt","quc","quz","ro","ru","rw","sd","si","sk","sl","sq","sv","sw","ta","te","th","ti","tk","tn","tr","tt","uk","ur","uz","vi","wo","xh","yo","zh","zu","getAttribute","style","height","width","verticalAlign","marginTop","alt","marginLeft","a","textContent","toLowerCase","substring","lastIndexOf","innerHTML","slice","getElementsByClassName","elements","u","length","setAttribute","this","__assign","assign","arguments","apply","RegExp","test","ErrorCode","TokenExpired","Throttled","ServerError","InvalidSubdomain","Promise","chunks","customDomain","Date","now","uiZIndex","timeout","useWebview","allowFullscreen","hideExitButton","cookiePolicy","v","f","h","clearTimeout","b","body","contains","removeChild","removeEventListener","y","parentNode","g","onExit","data","cogSvcsAccessToken","cogSvcsSubdomain","request","launchToPostMessageSentDurationInMs","contentWindow","postMessage","JSON","stringify","messageType","messageValue","startsWith","parse","success","container","sessionId","code","errorCode","message","setTimeout","Timeout","cssText","k","uiLang","BadArgument","isValidSubdomain","namespace","VideoAtAGlance","props","canViewGlance","video","theme","markdownHTML","pointsOfInterest","suppressInteractivity","glanceContentRef","themeColours","colours","primary","secondary","showDescriptionLink","onClickShowDescription","showCurriculumsLink","onClickShowCurriculumLinks","className","backgroundColor","phrase","onClick","ref","event","setStartTime","dangerouslySetInnerHTML","__html","tags","getTagAppLink","themeImages","images","filter","key","map","segment","url","size","fileId","backgroundImage","POI_REGEX","POI_ID_REGEX","POI_TEXT_REGEX","POI_TEXT_BRACES_REGEX","onClickMarkDown","preventDefault","href","target","includes","poiId","split","poi","find","toString","startTime","useGlanceMarkdown","hasGlanceData","useState","setMarkdownHTML","useEffect","content","glance","replace","substr","idMatch","match","poiTextMatch","timestamp","poiText","description","injectPointOfInterestData","join","getGlanceContent","useHighlightPointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","getAllPoiEls","current","querySelectorAll","pointOfInterest","querySelector","getPoiEl","classList","add","forEach","remove","poiEls","glanceTheme","format","getPhrase","LanguageService","CommaList","label","items","commaSeperated","name","DetailsSection","VideoHelper","parentVideo","Text","productionYear","options","year","smartCount","productionCompanies","distributors","producers","directors","dateBroadcast","date","DateHelper","channel","_isClickViewCurated","dateCreated","VideoDetailsWithScrollbar","maxHeight","showDescription","showDetails","canClose","onClickClose","showCurriculumLinks","autoHeight","autoHeightMax","ImmersiveReader","text","title","onLaunch","onLaunchImmersiveReader","onExitImmersiveReader","analyticsOptions","location","entity","actionType","descriptor","analyticsData","type","LinkifyHelper","nl2br","TagList","hideTags","getTags","TagHelper","DivButton","VideoDetailsPartial","VideoOwnerText","owner","isClickViewCurated","SvgContainer2","UserHelper","Avatar","imageCdnUrl","initials","surname","imageUrl","avatar","ClipWidgetItem","VideoThumbnail","appLink","getAppLink","imageOptions","textPosition","ThumbnailTextPosition","preload","AppLink","InteractiveWidgetItem","questionsAppLink","args","ResourceTile","metadata","isResource","MasterTypeHelper","MasterType","resourceType","baseClass","getColour","containerClass","applyHoverState","getInnerContainerClass","titlePosition","Tooltip","thumbnailContainerClass","ResourceThumbnail","resource","imageErrorFallbackUrl","preloadImage","onClickDownload","actionBehaviour","SvgContainer","svgName","hideTypeBadge","TypeBadge","typeId","TitleSubText","ResourceHelper","defaultProps","ResourceWidgetItem","breakpoints","canPreview","useBreakpoints","xs","sm","ResourceFileType","pdf","logAction","AnalyticsHelper","tileProps","SeoConstants","ThemeRequests","themes","formatData","sort","localeCompare","createTheme","error","always","invalidationKeys","updateTheme","deleteTheme","Row","bsPrefix","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}