@clickview/lite 0.58.1 → 0.58.2-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 (117) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1041-29107d9409-lite.chunk.js +2 -0
  3. package/dist/scripts/1041-29107d9409-lite.chunk.js.map +1 -0
  4. package/dist/scripts/{1080-563b65eb58-lite.chunk.js → 1080-48ce32d627-lite.chunk.js} +2 -2
  5. package/dist/scripts/1080-48ce32d627-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{1169-f2120c91cc-lite.chunk.js → 1169-1443c8a778-lite.chunk.js} +2 -2
  7. package/dist/scripts/1169-1443c8a778-lite.chunk.js.map +1 -0
  8. package/dist/scripts/143-efbc6a41c5-lite.chunk.js +2 -0
  9. package/dist/scripts/143-efbc6a41c5-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{170-94b806dc73-lite.chunk.js → 170-233a87b708-lite.chunk.js} +3 -3
  11. package/dist/scripts/170-233a87b708-lite.chunk.js.map +1 -0
  12. package/dist/scripts/2015-d1bc58c0eb-lite.chunk.js +2 -0
  13. package/dist/scripts/2015-d1bc58c0eb-lite.chunk.js.map +1 -0
  14. package/dist/scripts/204-4f5b47b73f-lite.chunk.js +2 -0
  15. package/dist/scripts/204-4f5b47b73f-lite.chunk.js.map +1 -0
  16. package/dist/scripts/{2153-7663eb7803-lite.chunk.js → 2153-02090c64f8-lite.chunk.js} +2 -2
  17. package/dist/scripts/2153-02090c64f8-lite.chunk.js.map +1 -0
  18. package/dist/scripts/2215-39ee2a2b3f-lite.chunk.js +2 -0
  19. package/dist/scripts/2215-39ee2a2b3f-lite.chunk.js.map +1 -0
  20. package/dist/scripts/{2340-d1548f6362-lite.chunk.js → 2340-62c86fabb2-lite.chunk.js} +2 -2
  21. package/dist/scripts/2340-62c86fabb2-lite.chunk.js.map +1 -0
  22. package/dist/scripts/2571-c280e72eff-lite.chunk.js +2 -0
  23. package/dist/scripts/2571-c280e72eff-lite.chunk.js.map +1 -0
  24. package/dist/scripts/{4013-3d2edd41fb-lite.chunk.js → 4013-2aff1769f5-lite.chunk.js} +3 -3
  25. package/dist/scripts/4013-2aff1769f5-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{490-002054a946-lite.chunk.js → 490-62ca33b520-lite.chunk.js} +2 -2
  27. package/dist/scripts/490-62ca33b520-lite.chunk.js.map +1 -0
  28. package/dist/scripts/4944-a780ed2439-lite.chunk.js +2 -0
  29. package/dist/scripts/4944-a780ed2439-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{5220-40dd0842b5-lite.chunk.js → 5220-e0074ed079-lite.chunk.js} +3 -3
  31. package/dist/scripts/5220-e0074ed079-lite.chunk.js.map +1 -0
  32. package/dist/scripts/{5224-09e451b12f-lite.chunk.js → 5224-53cabe5c40-lite.chunk.js} +2 -2
  33. package/dist/scripts/5224-53cabe5c40-lite.chunk.js.map +1 -0
  34. package/dist/scripts/{5836-f212660b94-lite.chunk.js → 5836-03975cbcf8-lite.chunk.js} +2 -2
  35. package/dist/scripts/5836-03975cbcf8-lite.chunk.js.map +1 -0
  36. package/dist/scripts/{5936-f1e642e93f-lite.chunk.js → 5936-71d764494c-lite.chunk.js} +2 -2
  37. package/dist/scripts/5936-71d764494c-lite.chunk.js.map +1 -0
  38. package/dist/scripts/{6118-d069072bb6-lite.chunk.js → 6118-e4ebf5a2c1-lite.chunk.js} +2 -2
  39. package/dist/scripts/6118-e4ebf5a2c1-lite.chunk.js.map +1 -0
  40. package/dist/scripts/{6263-c665ac8df6-lite.chunk.js → 6263-fca75a8668-lite.chunk.js} +2 -2
  41. package/dist/scripts/6263-fca75a8668-lite.chunk.js.map +1 -0
  42. package/dist/scripts/{6599-c87f4f5ec1-lite.chunk.js → 6599-d8f1b255c5-lite.chunk.js} +3 -3
  43. package/dist/scripts/6599-d8f1b255c5-lite.chunk.js.map +1 -0
  44. package/dist/scripts/{6741-1ee9b683c7-lite.chunk.js → 6741-638b658087-lite.chunk.js} +3 -3
  45. package/dist/scripts/6741-638b658087-lite.chunk.js.map +1 -0
  46. package/dist/scripts/6934-5688ca7ce7-lite.chunk.js +2 -0
  47. package/dist/scripts/6934-5688ca7ce7-lite.chunk.js.map +1 -0
  48. package/dist/scripts/{7234-d1a173cb25-lite.chunk.js → 7234-8664150dd4-lite.chunk.js} +2 -2
  49. package/dist/scripts/7234-8664150dd4-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{7556-69f8cb3b20-lite.chunk.js → 7556-276466341c-lite.chunk.js} +3 -3
  51. package/dist/scripts/7556-276466341c-lite.chunk.js.map +1 -0
  52. package/dist/scripts/{7709-57c48d288e-lite.chunk.js → 7709-adf3f9328f-lite.chunk.js} +2 -2
  53. package/dist/scripts/7709-adf3f9328f-lite.chunk.js.map +1 -0
  54. package/dist/scripts/{839-f8478d27f8-lite.chunk.js → 839-aaf4cad363-lite.chunk.js} +1 -1
  55. package/dist/scripts/{839-f8478d27f8-lite.chunk.js.map → 839-aaf4cad363-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{9139-456a0f14a5-lite.chunk.js → 9139-e8c1a686af-lite.chunk.js} +2 -2
  57. package/dist/scripts/9139-e8c1a686af-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{9173-e03b30b436-lite.chunk.js → 9173-90aa484be4-lite.chunk.js} +2 -2
  59. package/dist/scripts/9173-90aa484be4-lite.chunk.js.map +1 -0
  60. package/dist/scripts/9284-c0cee27d0e-lite.chunk.js +2 -0
  61. package/dist/scripts/9284-c0cee27d0e-lite.chunk.js.map +1 -0
  62. package/dist/scripts/{9395-70cd9ae3a1-lite.chunk.js → 9395-355efbc0e7-lite.chunk.js} +3 -3
  63. package/dist/scripts/{9395-70cd9ae3a1-lite.chunk.js.map → 9395-355efbc0e7-lite.chunk.js.map} +1 -1
  64. package/dist/scripts/{953-45aa51744b-lite.chunk.js → 953-b3b777612b-lite.chunk.js} +3 -3
  65. package/dist/scripts/{953-45aa51744b-lite.chunk.js.map → 953-b3b777612b-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/bundle-22b3c87b82.min.js +3 -0
  67. package/dist/scripts/bundle-22b3c87b82.min.js.map +1 -0
  68. package/package.json +1 -1
  69. package/dist/scripts/1080-563b65eb58-lite.chunk.js.map +0 -1
  70. package/dist/scripts/1169-f2120c91cc-lite.chunk.js.map +0 -1
  71. package/dist/scripts/143-4ea7a69434-lite.chunk.js +0 -2
  72. package/dist/scripts/143-4ea7a69434-lite.chunk.js.map +0 -1
  73. package/dist/scripts/170-94b806dc73-lite.chunk.js.map +0 -1
  74. package/dist/scripts/204-2b19b80cc1-lite.chunk.js +0 -2
  75. package/dist/scripts/204-2b19b80cc1-lite.chunk.js.map +0 -1
  76. package/dist/scripts/2153-7663eb7803-lite.chunk.js.map +0 -1
  77. package/dist/scripts/2215-5e8af1456d-lite.chunk.js +0 -2
  78. package/dist/scripts/2215-5e8af1456d-lite.chunk.js.map +0 -1
  79. package/dist/scripts/2340-d1548f6362-lite.chunk.js.map +0 -1
  80. package/dist/scripts/3525-45e28232cf-lite.chunk.js +0 -2
  81. package/dist/scripts/3525-45e28232cf-lite.chunk.js.map +0 -1
  82. package/dist/scripts/4013-3d2edd41fb-lite.chunk.js.map +0 -1
  83. package/dist/scripts/490-002054a946-lite.chunk.js.map +0 -1
  84. package/dist/scripts/4944-b565b5c501-lite.chunk.js +0 -2
  85. package/dist/scripts/4944-b565b5c501-lite.chunk.js.map +0 -1
  86. package/dist/scripts/5220-40dd0842b5-lite.chunk.js.map +0 -1
  87. package/dist/scripts/5224-09e451b12f-lite.chunk.js.map +0 -1
  88. package/dist/scripts/5836-f212660b94-lite.chunk.js.map +0 -1
  89. package/dist/scripts/5936-f1e642e93f-lite.chunk.js.map +0 -1
  90. package/dist/scripts/6118-d069072bb6-lite.chunk.js.map +0 -1
  91. package/dist/scripts/6263-c665ac8df6-lite.chunk.js.map +0 -1
  92. package/dist/scripts/6599-c87f4f5ec1-lite.chunk.js.map +0 -1
  93. package/dist/scripts/6741-1ee9b683c7-lite.chunk.js.map +0 -1
  94. package/dist/scripts/6934-1f439ec9a2-lite.chunk.js +0 -2
  95. package/dist/scripts/6934-1f439ec9a2-lite.chunk.js.map +0 -1
  96. package/dist/scripts/7234-d1a173cb25-lite.chunk.js.map +0 -1
  97. package/dist/scripts/7556-69f8cb3b20-lite.chunk.js.map +0 -1
  98. package/dist/scripts/7709-57c48d288e-lite.chunk.js.map +0 -1
  99. package/dist/scripts/8813-1e58ad1895-lite.chunk.js +0 -2
  100. package/dist/scripts/8813-1e58ad1895-lite.chunk.js.map +0 -1
  101. package/dist/scripts/9139-456a0f14a5-lite.chunk.js.map +0 -1
  102. package/dist/scripts/9173-e03b30b436-lite.chunk.js.map +0 -1
  103. package/dist/scripts/9284-80c3abfe62-lite.chunk.js +0 -2
  104. package/dist/scripts/9284-80c3abfe62-lite.chunk.js.map +0 -1
  105. package/dist/scripts/bundle-7da429ea24.min.js +0 -3
  106. package/dist/scripts/bundle-7da429ea24.min.js.map +0 -1
  107. /package/dist/css/{3525-lite-6ab6e749cb.chunk.css → 1041-lite-6ab6e749cb.chunk.css} +0 -0
  108. /package/dist/css/{8813-lite-6ab6e749cb.chunk.css → 2015-lite-6ab6e749cb.chunk.css} +0 -0
  109. /package/dist/scripts/{170-94b806dc73-lite.chunk.js.LICENSE.txt → 170-233a87b708-lite.chunk.js.LICENSE.txt} +0 -0
  110. /package/dist/scripts/{4013-3d2edd41fb-lite.chunk.js.LICENSE.txt → 4013-2aff1769f5-lite.chunk.js.LICENSE.txt} +0 -0
  111. /package/dist/scripts/{5220-40dd0842b5-lite.chunk.js.LICENSE.txt → 5220-e0074ed079-lite.chunk.js.LICENSE.txt} +0 -0
  112. /package/dist/scripts/{6599-c87f4f5ec1-lite.chunk.js.LICENSE.txt → 6599-d8f1b255c5-lite.chunk.js.LICENSE.txt} +0 -0
  113. /package/dist/scripts/{6741-1ee9b683c7-lite.chunk.js.LICENSE.txt → 6741-638b658087-lite.chunk.js.LICENSE.txt} +0 -0
  114. /package/dist/scripts/{7556-69f8cb3b20-lite.chunk.js.LICENSE.txt → 7556-276466341c-lite.chunk.js.LICENSE.txt} +0 -0
  115. /package/dist/scripts/{9395-70cd9ae3a1-lite.chunk.js.LICENSE.txt → 9395-355efbc0e7-lite.chunk.js.LICENSE.txt} +0 -0
  116. /package/dist/scripts/{953-45aa51744b-lite.chunk.js.LICENSE.txt → 953-b3b777612b-lite.chunk.js.LICENSE.txt} +0 -0
  117. /package/dist/scripts/{bundle-7da429ea24.min.js.LICENSE.txt → bundle-22b3c87b82.min.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2153],{49935:(e,t,r)=>{r.d(t,{Oo:()=>b,b2:()=>v});var n=r(32735),a=r(23481),i=r(36848),l=r(86764),o=r(3747),c=r(5859),u=r(35223),s=r(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),p=n.forwardRef((function(e,t){var r=e.breadcrumb,a=r.name,l=r.appLink,o=r.active,c=e.withBackIcon,m=a,d=null;return m.length>48&&(m=a.slice(0,48)+"...",d=a),n.createElement("li",{className:"breadcrumb-item".concat(o?" active":""),title:d},o?n.createElement("strong",null,m):n.createElement(i.F,{appLink:l,ref:t},c&&n.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},m)))})),b=function(e){var t=e.breadcrumbs,r=(0,o.a)(l.r.XS),a=(null==t?void 0:t.length)||0,i=m(n.useState(!1),2),c=i[0],u=i[1],s=m(n.useState(!1),2),d=s[0],b=s[1],v=n.useRef();if(n.useEffect((function(){var e,r=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>4&&r>64&&u(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,d]),!a||r&&a<2)return n.createElement(n.Fragment,null);if(r)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(p,{breadcrumb:t[a-2],withBackIcon:!0})));var h=n.createElement(p,{breadcrumb:t[0]}),g=a>2?n.createElement(p,{breadcrumb:t[1]}):n.createElement(n.Fragment,null),y=a>3?n.createElement(p,{breadcrumb:t[a-2]}):n.createElement(n.Fragment,null),E=a>1?n.createElement(p,{breadcrumb:t[a-1]}):n.createElement(n.Fragment,null),A=t.slice(2,a-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},h,g,c?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){u(!1),b(!0)},"aria-label":f("expand")},"...")):A.map((function(e,t){return n.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),y,E))},v=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,o.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:r}).map((function(e,t){var r=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:r},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},74696:(e,t,r)=>{r.d(t,{S:()=>u});var n=r(32735),a=r(68050),i=r(69111),l=r(9977),o=r(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function u(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,r){return n.createElement("div",{className:"d-flex",key:r},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(s,Object.assign({},e)))})))}function s(e){var t=(0,o.k)(),r="sm"===l.O.getSize(t,"md"),u=e.withReordering&&!t.xs;return n.createElement(a.Z,{className:"".concat(r?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(r?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(a.Z,null,!!u&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(u)},n.createElement("div",{className:"partial-loading-background ".concat(r?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:r?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}u.defaultProps={numVideos:15}},63719:(e,t,r)=>{r.d(t,{h:()=>o});var n=r(32735),a=r(77316);function i(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e){var t,r,o=(t=n.useMemo((function(){return a.p.getBuilder()}),[]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(t,r)||i(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=o[0],u=(0,o[1])(c);return u&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||i(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(u),[Object.assign(Object.assign({},e),{active:!0})]):u}},5859:(e,t,r)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{u:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.assign(Object.assign({},a),t);return(e=Array(r.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*r.maxWidth),r.minWidth),"px")}}))}}},64254:(e,t,r)=>{r.r(t),r.d(t,{CuratedDashboardWidgetView:()=>L});var n=r(32735),a=r(23481),i=r(20354),l=r(65858),o=r(49935),c=r(13231),u=r(51365),s=r(183),m=r(1666),d=r(80889),f=r(31949),p=r(63719),b=r(22902),v=r(79612),h=r(76753),g=r(51855),y=r(10671),E=r(27638),A=r(44110),S=r(97816),k=r(10741),w=r(33192),N=r(22490),I=r(82431),x=r(74696);const j={partialHeading:"RSm4L"};function O(){return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(j.partialHeading)}),n.createElement(x.S,null))}var C=a.T.encloseNamespace("dashboard.dashboardWidget");function L(e){var t,r,a,x=e.widgetId,j=(0,E.u)(l.LZ.VideoThumbnail),L=j.setFavourite,M=j.canFavourite,P=(0,g.G)().isPlugin,T=(0,y._)({location:y.i.VideoItem}),F=i.a.useBasicFetch(x&&d._.dashboardWidgetContent(x)),G=i.a.useBasicFetch(f.N.currentUser()),W=i.a.useBasicFetch(G.data.isAuthenticated&&m.h.yearGroups(G.data.customerId)),R=null===(t=F.data)||void 0===t?void 0:t.content;(0,S.V)(R),(0,v.M)(h.CG.getDefaultMetadata({title:null===(r=F.data)||void 0===r?void 0:r.name,phraseContext:{phraseHandler:C,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:w.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:w.f.allowIndexing()}));var B=(0,A.i)(),V=(0,b.T)().hasPermissions,$=(0,p.h)({name:null===(a=F.data)||void 0===a?void 0:a.name});return F.data&&(null==R?void 0:R.length)?n.createElement(u.M.Provider,{value:T},n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2 mb-2"},F.data.name),n.createElement(o.Oo,{breadcrumbs:$}),n.createElement(c.E4,{videos:R,yearGroups:W.data,getVideoAppLink:function(t,r){return N.W.getAppLink(t,Object.assign(Object.assign({},r),{context:s.Q.Widget,contextId:e.widgetId}))},hasPermissions:V,getSubTextAppLink:function(e){return I.j.getSeriesAppLink(e.series)},setFavourite:L,canFavourite:M,presentationAudiences:B.data,getPreviewQuestionsAppLink:function(e){return k.j.getPreviewQuestionsAppLink(e)},isPlugin:P,getClassroomGuideAppLink:N.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:N.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:N.W.getResourceGuidanceAppLink}))):n.createElement(O,null)}},44110:(e,t,r)=>{r.d(t,{i:()=>l});var n=r(20354),a=r(89454),i=r(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,r=e.getFallbackPresentation,l=t||r();return n.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},97816:(e,t,r)=>{r.d(t,{V:()=>f});var n=r(32735),a=r(20354),i=r(75896),l=r(21750),o=r(31949),c=r(1575),u=r(31908);function s(e,t){if(e){if("string"==typeof e)return m(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var d=50;function f(e){var t,r,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=a.a.useBasicFetch(o.N.currentUser()),b=n.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(u.M.isVideo(e)||u.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(u.M.isVideo(e)||u.M.isClip(e))})):[]:[]}(e),h=v.map((function(e){return e.id})),g=(t=n.useState([]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(t,r)||s(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],E=g[1];n.useEffect((function(){if((null==h?void 0:h.length)&&p.hasCompleted){var e=[];h.forEach((function(t){b.current.has(t)||(e.push(t),b.current.add(t))})),e.length&&E((function(t){var r=function(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t);return i.m.chunk(e,d).forEach((function(e){var t;r.push(c.R.videoMixinAssocs(e,f.flightNamespace)),(null===(t=p.data)||void 0===t?void 0:t.isAuthenticated)&&r.push(l.x.hasCurriculumLinks(e,null,f.flightNamespace))})),r}))}}),[null==h?void 0:h.length,p.hasCompleted]),a.a.useBasicFetchAll(y)}},68050:(e,t,r)=>{r.d(t,{Z:()=>u});var n=r(95685),a=r.n(n),i=r(32735),l=r(46304),o=r(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:r="div",...n},i)=>{const c=(0,l.vE)(e,"row"),u=(0,l.pi)(),s=(0,l.zG)(),m=`${c}-cols`,d=[];return u.forEach((e=>{const t=n[e];let r;delete n[e],null!=t&&"object"==typeof t?({cols:r}=t):r=t;const a=e!==s?`-${e}`:"";null!=r&&d.push(`${m}${a}-${r}`)})),(0,o.jsx)(r,{ref:i,...n,className:a()(t,c,...d)})}));c.displayName="Row";const u=c}}]);
2
- //# sourceMappingURL=2153-7663eb7803-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2153],{49935:(e,t,r)=>{r.d(t,{Oo:()=>b,b2:()=>v});var n=r(32735),a=r(23481),i=r(36848),l=r(86764),o=r(3747),c=r(5859),u=r(35223),s=r(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),p=n.forwardRef((function(e,t){var r=e.breadcrumb,a=r.name,l=r.appLink,o=r.active,c=e.withBackIcon,m=a,d=null;return m.length>48&&(m=a.slice(0,48)+"...",d=a),n.createElement("li",{className:"breadcrumb-item".concat(o?" active":""),title:d},o?n.createElement("strong",null,m):n.createElement(i.F,{appLink:l,ref:t},c&&n.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},m)))})),b=function(e){var t=e.breadcrumbs,r=(0,o.a)(l.r.XS),a=(null==t?void 0:t.length)||0,i=m(n.useState(!1),2),c=i[0],u=i[1],s=m(n.useState(!1),2),d=s[0],b=s[1],v=n.useRef();if(n.useEffect((function(){var e,r=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>4&&r>64&&u(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,d]),!a||r&&a<2)return n.createElement(n.Fragment,null);if(r)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(p,{breadcrumb:t[a-2],withBackIcon:!0})));var h=n.createElement(p,{breadcrumb:t[0]}),g=a>2?n.createElement(p,{breadcrumb:t[1]}):n.createElement(n.Fragment,null),y=a>3?n.createElement(p,{breadcrumb:t[a-2]}):n.createElement(n.Fragment,null),E=a>1?n.createElement(p,{breadcrumb:t[a-1]}):n.createElement(n.Fragment,null),A=t.slice(2,a-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},h,g,c?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){u(!1),b(!0)},"aria-label":f("expand")},"...")):A.map((function(e,t){return n.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),y,E))},v=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,o.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:r}).map((function(e,t){var r=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:r},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},74696:(e,t,r)=>{r.d(t,{S:()=>u});var n=r(32735),a=r(68050),i=r(69111),l=r(9977),o=r(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function u(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,r){return n.createElement("div",{className:"d-flex",key:r},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(s,Object.assign({},e)))})))}function s(e){var t=(0,o.k)(),r="sm"===l.O.getSize(t,"md"),u=e.withReordering&&!t.xs;return n.createElement(a.Z,{className:"".concat(r?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(r?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(a.Z,null,!!u&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(u)},n.createElement("div",{className:"partial-loading-background ".concat(r?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:r?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}u.defaultProps={numVideos:15}},63719:(e,t,r)=>{r.d(t,{h:()=>o});var n=r(32735),a=r(77316);function i(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e){var t,r,o=(t=n.useMemo((function(){return a.p.getBuilder()}),[]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(t,r)||i(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=o[0],u=(0,o[1])(c);return u&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||i(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(u),[Object.assign(Object.assign({},e),{active:!0})]):u}},5859:(e,t,r)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{u:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.assign(Object.assign({},a),t);return(e=Array(r.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*r.maxWidth),r.minWidth),"px")}}))}}},64254:(e,t,r)=>{r.r(t),r.d(t,{CuratedDashboardWidgetView:()=>L});var n=r(32735),a=r(23481),i=r(20354),l=r(65858),o=r(49935),c=r(13231),u=r(51365),s=r(183),m=r(1666),d=r(80889),f=r(31949),p=r(63719),b=r(22902),v=r(79612),h=r(76753),g=r(51855),y=r(10671),E=r(27638),A=r(44110),S=r(97816),k=r(10741),w=r(33192),N=r(22490),I=r(82431),x=r(74696);const j={partialHeading:"RSm4L"};function O(){return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(j.partialHeading)}),n.createElement(x.S,null))}var C=a.T.encloseNamespace("dashboard.dashboardWidget");function L(e){var t,r,a,x=e.widgetId,j=(0,E.u)(l.LZ.VideoThumbnail),L=j.setFavourite,M=j.canFavourite,P=(0,g.G)().isPlugin,T=(0,y._)({location:y.i.VideoItem}),F=i.a.useBasicFetch(x&&d._.dashboardWidgetContent(x)),G=i.a.useBasicFetch(f.N.currentUser()),W=i.a.useBasicFetch(G.data.isAuthenticated&&m.h.yearGroups(G.data.customerId)),R=null===(t=F.data)||void 0===t?void 0:t.content;(0,S.V)(R),(0,v.M)(h.CG.getDefaultMetadata({title:null===(r=F.data)||void 0===r?void 0:r.name,phraseContext:{phraseHandler:C,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:w.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:w.f.allowIndexing()}));var B=(0,A.i)(),V=(0,b.T)().hasPermissions,$=(0,p.h)({name:null===(a=F.data)||void 0===a?void 0:a.name});return F.data&&(null==R?void 0:R.length)?n.createElement(u.M.Provider,{value:T},n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2 mb-2"},F.data.name),n.createElement(o.Oo,{breadcrumbs:$}),n.createElement(c.E4,{videos:R,yearGroups:W.data,getVideoAppLink:function(t,r){var n;return N.W.getAppLink(t,Object.assign(Object.assign({},r),{context:s.Q.Widget,contextId:e.widgetId,includeContext:null===(n=G.data)||void 0===n?void 0:n.isAuthenticated}))},hasPermissions:V,getSubTextAppLink:function(e){return I.j.getSeriesAppLink(e.series)},setFavourite:L,canFavourite:M,presentationAudiences:B.data,getPreviewQuestionsAppLink:function(e){return k.j.getPreviewQuestionsAppLink(e)},isPlugin:P,getClassroomGuideAppLink:N.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:N.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:N.W.getResourceGuidanceAppLink}))):n.createElement(O,null)}},44110:(e,t,r)=>{r.d(t,{i:()=>l});var n=r(20354),a=r(89454),i=r(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,r=e.getFallbackPresentation,l=t||r();return n.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},97816:(e,t,r)=>{r.d(t,{V:()=>f});var n=r(32735),a=r(20354),i=r(75896),l=r(21750),o=r(31949),c=r(1575),u=r(31908);function s(e,t){if(e){if("string"==typeof e)return m(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var d=50;function f(e){var t,r,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=a.a.useBasicFetch(o.N.currentUser()),b=n.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(u.M.isVideo(e)||u.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(u.M.isVideo(e)||u.M.isClip(e))})):[]:[]}(e),h=v.map((function(e){return e.id})),g=(t=n.useState([]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw a}}return o}}(t,r)||s(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],E=g[1];n.useEffect((function(){if((null==h?void 0:h.length)&&p.hasCompleted){var e=[];h.forEach((function(t){b.current.has(t)||(e.push(t),b.current.add(t))})),e.length&&E((function(t){var r=function(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t);return i.m.chunk(e,d).forEach((function(e){var t;r.push(c.R.videoMixinAssocs(e,f.flightNamespace)),(null===(t=p.data)||void 0===t?void 0:t.isAuthenticated)&&r.push(l.x.hasCurriculumLinks(e,null,f.flightNamespace))})),r}))}}),[null==h?void 0:h.length,p.hasCompleted]),a.a.useBasicFetchAll(y)}},68050:(e,t,r)=>{r.d(t,{Z:()=>u});var n=r(95685),a=r.n(n),i=r(32735),l=r(46304),o=r(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:r="div",...n},i)=>{const c=(0,l.vE)(e,"row"),u=(0,l.pi)(),s=(0,l.zG)(),m=`${c}-cols`,d=[];return u.forEach((e=>{const t=n[e];let r;delete n[e],null!=t&&"object"==typeof t?({cols:r}=t):r=t;const a=e!==s?`-${e}`:"";null!=r&&d.push(`${m}${a}-${r}`)})),(0,o.jsx)(r,{ref:i,...n,className:a()(t,c,...d)})}));c.displayName="Row";const u=c}}]);
2
+ //# sourceMappingURL=2153-02090c64f8-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2153-02090c64f8-lite.chunk.js","mappings":"wuCAaA,IACMA,EAAY,qBADA,8BAiBLC,EAAiB,cAAiB,SAC7CC,EACAC,GAEA,MAAgED,EAAxDE,WAAcC,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAAUC,EAAiBN,EAAjBM,aAE3CC,EAAcJ,EACdK,EAAgB,KASpB,OAPID,EAAYE,OAtBS,KAuBvBF,EAAcJ,EAAKO,MAAM,EAvBF,IAuB2B,MAGlDF,EAAQL,GAIR,sBACEQ,UAAS,yBAAoBN,EAAS,UAAY,IAClDG,MAAOA,GAENH,EACG,8BAASE,GACT,gBAAC,IAAO,CAACH,QAASA,EAASH,IAAKA,GAC/BK,GAAgB,gBAAC,IAAY,CAACM,QAAS,iBAA0BC,KAAM,EAAAC,EAAA,QACxE,wBAAMH,UAAWL,EAAe,OAAS,IAAKC,IAKxD,IAMaQ,EAAc,SAAH,GAAyC,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzBR,GAASO,aAAW,EAAXA,EAAaP,SAAU,EAEiB,IAArB,YAAe,GAAM,GAA/CS,EAAQ,KAAEC,EAAW,KACgC,IAArB,YAAe,GAAM,GAArDC,EAAW,KAAEC,EAAc,KAC7BC,EAAY,WAsBlB,GApBA,aAAgB,W,MACRC,EAAiF,QAA/D,EAAAP,aAAW,EAAXA,EAAaQ,QAAO,SAACC,EAAMC,GAAI,OAAKD,EAAOC,EAAKvB,KAAKM,MAAM,GAAE,UAAE,QAAI,EAEvFA,EAAS,GAAKc,EA9DW,IA+D3BJ,GAAY,EAChB,GAAG,CAACH,aAAW,EAAXA,EAAaP,SAKjB,mBAAsB,W,MAChBW,IACe,QAAjB,EAAAE,EAAUK,eAAO,SAAEC,QACvB,GAAG,CAAEN,EAAUK,QAASP,KAOnBX,GAAWQ,GAAYR,EAAS,EACnC,OAAO,iCAET,GAAIQ,EACF,OACE,oCAAgB,cACd,sBAAIN,UAAU,sBACZ,gBAACZ,EAAc,CAACG,WAAYc,EAAYP,EAAS,GAAIH,cAAY,MAKzE,IAAMuB,EAAQ,gBAAC9B,EAAc,CAACG,WAAYc,EAAY,KAChDc,EAASrB,EAAS,EAAI,gBAACV,EAAc,CAACG,WAAYc,EAAY,KAAS,iCACvEe,EAAatB,EAAS,EAAI,gBAACV,EAAc,CAACG,WAAYc,EAAYP,EAAS,KAAS,iCACpFuB,EAAOvB,EAAS,EAAI,gBAACV,EAAc,CAACG,WAAYc,EAAYP,EAAS,KAAS,iCAC9EwB,EAAOjB,EAAYN,MAAM,EAAGD,EAAS,GAE3C,OACE,oCAAgB,cACd,sBAAIE,UAAU,sBACXkB,EACAC,EACAZ,EACC,sBAAIP,UAAU,mBACZ,0BACEA,UAAU,WACVuB,QAhCZ,WACEf,GAAY,GACZE,GAAe,EACjB,EA6BkC,aACVvB,EAAU,WAAS,QAKnCmC,EAAKE,KAAI,SAACjC,EAAYkC,GAAG,OACvB,gBAACrC,EAAc,CACbsC,IAAKD,EACLlC,WAAYA,EACZD,IAAa,IAARmC,EAAYd,EAAY,MAC7B,IAGLS,EACAC,GAIT,EAEaM,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAK5B,UAAU,6BAA6B6B,MAAO,CAAEC,OAAQ,YAAaC,MAAO,UAKnF,oCAAgB,cACd,sBAAI/B,UAAU,sBACX,2BAA4C,CAAE4B,SAAAA,IAAYJ,KAAI,WAAYC,GAAG,IAAZM,EAAK,EAALA,MAAK,OACrE,sBAAIL,IAAKD,EAAKzB,UAAU,mBACtB,wBAAMA,UAAU,4CAA4C6B,MAAO,CAAEE,MAAAA,GAASC,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,6FClKA,SAAgB,eAAiB,QAAQ,YAAc,QAAQ,mBAAqB,QAAQ,iBAAmB,QAAQ,kBAAoB,SCiBrI,SAAUC,EAAiB7C,GAC/B,OACE,uBAAKW,UAAU,QACZmC,MAAM9C,EAAM+C,WAAWC,KAAK,MAAMb,KAAI,SAACc,EAAGC,GAAC,OAC1C,uBAAKvC,UAAU,SAAS0B,IAAKa,GAC1BlD,EAAMmD,kBAAoB,uBAAKxC,UAAU,yCAC1C,gBAACyC,EAAgB,iBAAKpD,IAClB,IAId,CAEM,SAAUoD,EAAiBpD,GAC/B,IAAMqD,GAAc,EAAAC,EAAA,KAGdC,EAAmB,OADZC,EAAA,UAAwBH,EAAa,MAG5CI,EAAiBzD,EAAM0D,iBAAmBL,EAAYM,GAE5D,OACE,gBAACC,EAAA,EAAG,CAACjD,UAAS,UAAK4C,EAAU,GAAK,OAAM,iBACtC,gBAACM,EAAA,EAAG,iBAAKL,EAAA,wBAAqC,CAAE7C,UAAS,6CAAwC4C,EAAU,YAAc,uBACvH,gBAACK,EAAA,EAAG,OACCH,GACD,uBAAK9C,UAAU,0DACb,uBAAKA,UAAS,qCAAgC,wBAGlD,gBAACkD,EAAA,EAAG,CAACF,GAAIH,EAAA,sBAAoCC,IAC3C,uBAAK9C,UAAS,qCAAgC4C,EAAU,UAAY,YAAW,YAAI,yBAIzF,gBAACM,EAAA,EAAG,iBAAKL,EAAA,sBAAmC,CAAE7C,UAAW4C,EAAU,OAAS,SAC1E,uBAAK5C,UAAS,0CAAqC,iBACnD,uBAAKA,UAAS,qCAAgC,yBAItD,CA7CAkC,EAAiBiB,aAAe,CAC9Bf,UAAW,G,mbCVP,SAAUgB,EAAepC,GAC7B,I,IAAqF,G,EAAvD,WAAc,kBAAM,gBAA8B,GAAE,I,EAAG,E,unBAA7EqC,EAAK,KAEPhD,GAAciD,EAFK,MAEMD,GAE/B,OAAKhD,GAAgBW,EAGd,GAAP,O,yWAAA,CAAYX,GAAW,gCAAOW,GAAO,CAAEtB,QAAQ,MAFtCW,CAGX,C,wICdA,IAAMkD,EAAyD,CAC7D3B,SAAU,EACV4B,SAAU,GACVC,SAAU,KAaCC,EAAuB,CAClCC,uBAAsB,WAAoC,I,EAAnCC,EAAA,uDAAiC,CAAC,EACjDC,EAAO,OAAH,wBACLN,GACAK,GAKL,O,EAAWzB,MAAM0B,EAAKjC,U,omBAAWJ,KAAI,iBAAO,CAAEO,MAAO,GAAF,OAFhB+B,KAAKC,IAAID,KAAKE,MAAMF,KAAKG,SAAWJ,EAAKJ,UAAWI,EAAKL,UAEd,MAAM,GACtF,E,uVCzBF,SAAgB,eAAiB,SCK3B,SAAUU,IACd,OACE,uBAAKlE,UAAU,QACb,uBAAKA,UAAS,0CAAqC,oBACnD,gBAACkC,EAAA,EAAgB,MAGvB,CCoBA,IACM/C,EAAYgF,EAAA,mBADA,6BAOZ,SAAUC,EAA2B/E,G,UACjCgF,EAAahF,EAAbgF,SAER,GAAuC,EAAAC,EAAAC,GAAkB,qBAAjDC,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aAEdC,GAAa,EAAAC,EAAA,KAAbD,SAEFE,GAAe,EAAAC,EAAA,GAAgB,CAAEC,SAAU,gBAE3CC,EAAS,kBACbV,GAAYW,EAAA,yBAAyCX,IAGjDY,EAAc,kBAAkCC,EAAA,iBAChDC,EAAa,kBACjBF,EAAYG,KAAKC,iBAAmBC,EAAA,aAA4BL,EAAYG,KAAKG,aAG7EC,EAAoB,QAAX,EAAAT,EAAOK,YAAI,eAAEK,SAC5B,EAAAC,EAAA,GAAcF,IAEd,EAAAG,EAAA,GAAmBC,EAAA,sBAAsC,CACvD/F,MAAkB,QAAX,EAAAkF,EAAOK,YAAI,eAAE5F,KACpBqG,cAAe,CACbC,cAAe3G,EACf4G,YAAa,YACbC,kBAAmB,mBAErBC,cAAeC,EAAA,mBAA2B,CAAEC,uBAAuB,IACnEC,cAAeF,EAAA,qBAGjB,IAAMG,GAAY,EAAAC,EAAA,KACVC,GAAmB,EAAAC,EAAA,KAAnBD,eAEFlG,GAAc,EAAA+C,EAAA,GAAe,CAAE5D,KAAiB,QAAX,EAAAuF,EAAOK,YAAI,eAAE5F,OAExD,OAAKuF,EAAOK,OAASI,aAAM,EAANA,EAAQ1F,QAI3B,gBAAC2G,EAAA,WAA4B,CAACC,MAAO9B,GACnC,uBAAK5E,UAAU,QACb,sBAAIA,UAAU,WAAW+E,EAAOK,KAAK5F,MACrC,gBAACY,EAAA,GAAW,CAACC,YAAaA,IAC1B,gBAACsG,EAAA,GAAS,CACRnB,OAAQA,EACRL,WAAYA,EAAWC,KACvBwB,gBAAiB,SAACC,EAAOhD,G,MAAS,OAAAiD,EAAA,aAA8BD,EAAO,OAAF,wBAChEhD,GAAI,CACPkD,QAASC,EAAA,SACTC,UAAW5H,EAAMgF,SACjB6C,eAAgC,QAAhB,EAAAjC,EAAYG,YAAI,eAAEC,kB,EAEpCkB,eAAgBA,EAChBY,kBAAmB,SAAAN,GAAK,OAAIO,EAAA,mBAAqCP,EAAMQ,OAAO,EAC9E7C,aAAcA,EACdC,aAAcA,EACd6C,sBAAuBjB,EAAUjB,KACjCmC,2BAA4B,SAAAC,GAAW,OAAIC,EAAA,6BAA8CD,EAAY,EACrG9C,SAAUA,EACVgD,yBAA0BZ,EAAA,2BAC1Ba,8BAA+Bb,EAAA,gCAC/Bc,2BAA4Bd,EAAA,iCAzB3B,gBAAC5C,EAA0B,KA8BtC,C,wECrGaoC,EAA2B,WACtC,OAAwD,OAAgB,CAAEuB,iBAAiB,IAAnFC,EAAkB,EAAlBA,mBAAoBC,EAAuB,EAAvBA,wBAEtBC,EAAeF,GAAsBC,IAO3C,OALkB,oBACdC,GACF,0BAAuCA,EAAaC,IAIxD,C,yeCPA,IAAMC,EAAa,GAyBb,SAAUxC,EAAcyC,GAA+C,I,IAA/BvE,EAAA,uDAA6B,CAAC,EACpEqB,EAAc,kBAAkC,mBAEhDmD,EAAiB,SAA0B,IAAIC,KAE/C7C,EA1BR,SAAyB2C,GACvB,OAAKA,EAGDhG,MAAMmG,QAAQH,GACTA,EAAQI,QAAO,SAAAC,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,IAEjF,SAAUL,EACLA,EAAQ/C,KAAKmD,QAAO,SAAAC,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,IAEnF,GARE,EASX,CAeiBC,CAAgBN,GAEzBO,EAAWlD,EAAOhE,KAAI,SAAAmH,GAAC,OAAIA,EAAEV,EAAE,IAE+B,G,EAApC,WAAiC,I,EAAG,E,unBAA5DW,EAAO,KAAEC,EAAU,KAE3B,aAAgB,WACd,IAAKH,aAAQ,EAARA,EAAU5I,SAAWmF,EAAY6D,aAAtC,CAGA,IAAMC,EAA6B,GAEnCL,EAASM,SAAQ,SAAAf,GACVG,EAAepH,QAAQiI,IAAIhB,KAC9Bc,EAAiBG,KAAKjB,GACtBG,EAAepH,QAAQmI,IAAIlB,GAE/B,IAEKc,EAAiBjJ,QAGtB+I,GAAW,SAAAO,GACT,IAAMC,E,yWAAc,CAAID,GASxB,OAPA,UAA0BL,EAAkBb,GAAYc,SAAQ,SAAAM,G,MAC9DD,EAAYH,KAAK,qBAA+BI,EAAO1F,EAAQ2F,mBAE3C,QAAhB,EAAAtE,EAAYG,YAAI,eAAEC,kBACpBgE,EAAYH,KAAK,uBAA0CI,EAAO,KAAM1F,EAAQ2F,iBACpF,IAEOF,CACT,GAzBQ,CA0BV,GAAG,CAAEX,aAAQ,EAARA,EAAU5I,OAAQmF,EAAY6D,eAEnC,qBAAwBF,EAC1B,C,4FCxEA,MAAM3F,EAAmB,cAAiB,EACxCuG,WACAxJ,YAEAyJ,GAAIC,EAAY,SACbrK,GACFC,KACD,MAAMqK,GAAoB,QAAmBH,EAAU,OACjD9G,GAAc,UACdkH,GAAgB,UAChBC,EAAa,GAAGF,SAChBG,EAAU,GAehB,OAdApH,EAAYsG,SAAQe,IAClB,MAAMC,EAAY3K,EAAM0K,GAExB,IAAIE,SADG5K,EAAM0K,GAEI,MAAbC,GAA0C,iBAAdA,IAE5BC,QACED,GAEJC,EAAOD,EAET,MAAME,EAAQH,IAAaH,EAAgB,IAAIG,IAAa,GAChD,MAARE,GAAcH,EAAQZ,KAAK,GAAGW,IAAaK,KAASD,IAAO,KAE7C,SAAKP,EAAW,CAClCpK,IAAKA,KACFD,EACHW,UAAW,IAAWA,EAAW2J,KAAsBG,IACvD,IAEJ7G,EAAIkH,YAAc,MAClB,S","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard-widget/partial-loading/partial-dashboard-widget-view.scss","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard-widget/partial-loading/PartialDashboardWidgetView.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard-widget/CuratedDashboardWidgetView.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const second = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} /> : <></>;\n const secondLast = length > 3 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = length > 1 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} /> : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"RSm4L\"};","import React from 'react';\n\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-dashboard-widget-view.scss';\n\nexport function PartialDashboardWidgetView(): JSX.Element {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <PartialVideoList />\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CuratedWidget, CuratedWidgetData, CurrentUser, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { PartialDashboardWidgetView } from './partial-loading/PartialDashboardWidgetView';\n\nconst namespace = 'dashboard.dashboardWidget';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CuratedDashboardWidgetViewQueryParams {\n widgetId?: string;\n}\n\nexport function CuratedDashboardWidgetView(props: CuratedDashboardWidgetViewQueryParams): JSX.Element {\n const { widgetId } = props;\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n\n const { isPlugin } = usePluginHelper();\n \n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n const widget = Flight.useBasicFetch<CuratedWidget<CuratedWidgetData, Video[]>>(\n widgetId && DashboardRequests.dashboardWidgetContent(widgetId)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const videos = widget.data?.content;\n useVideoMixin(videos);\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: widget.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const audiences = usePresentationAudiences();\n const { hasPermissions } = usePermissions();\n\n const breadcrumbs = useBreadcrumbs({ name: widget.data?.name });\n\n if (!widget.data || !videos?.length)\n return <PartialDashboardWidgetView />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <h1 className='h2 mb-2'>{widget.data.name}</h1>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={(video, opts) => VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n contextId: props.widgetId,\n includeContext: currentUser.data?.isAuthenticated\n })}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </div>\n </VideoActionsContext.Provider>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst CHUNK_SIZE = 50;\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [...r] ;\n\n ArrayHelper.chunk<string>(unhydratedVideos, CHUNK_SIZE).forEach(chunk => {\n newRequests.push(VideoRequests.videoMixinAssocs(chunk, options.flightNamespace));\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(chunk, null, options.flightNamespace));\n });\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}","\"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":["getPhrase","BreadcrumbItem","props","ref","breadcrumb","name","appLink","active","withBackIcon","trimmedName","title","length","slice","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","second","secondLast","last","rest","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultProps","useBreadcrumbs","match","useBuilder","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","PartialDashboardWidgetView","LanguageService","CuratedDashboardWidgetView","widgetId","useLiteFavourites","u","setFavourite","canFavourite","isPlugin","usePluginHelper","videoActions","useVideoActions","location","widget","DashboardRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","videos","content","useVideoMixin","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","audiences","usePresentationAudiences","hasPermissions","usePermissions","VideoActionsContext","value","VideoList","getVideoAppLink","video","VideoAppLinkHelper","context","RelatedVideosContext","contextId","includeContext","getSubTextAppLink","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","CHUNK_SIZE","objects","hydratedVideos","Set","isArray","filter","o","getValidObjects","videoIds","v","request","setRequest","hasCompleted","unhydratedVideos","forEach","has","push","add","r","newRequests","chunk","flightNamespace","bsPrefix","as","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2215],{56577:(e,t,n)=>{n.d(t,{D:()=>d});var r=n(32735),i=n(11607),a=n(83345),o=n(10038);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}const l={text:"wLJpg",collapsed:"ZxMAG",seeMore:"x5t0p"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var u="shared.expandableText";function d(e){var t,n,d=e.lines,f=void 0===d?2:d,p=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],l=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=p[0],m=p[1],h=function(){var e,t,n=r.useRef(null),i=r.useRef(0);r.useEffect((function(){var e;(null===(e=n.current)||void 0===e?void 0:e.clientHeight)&&(i.current=n.current.clientHeight)}),[]);var a=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],l=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(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.")}()}(r.useState((null===(e=n.current)||void 0===e?void 0:e.scrollHeight)>i.current),2),l=a[0],s=a[1];return(0,o.H)((function(){var e,t;(null===(e=n.current)||void 0===e?void 0:e.clientHeight)&&(i.current=n.current.clientHeight,s((null===(t=n.current)||void 0===t?void 0:t.scrollHeight)>i.current))})),r.useEffect((function(){var e,t;(null===(e=n.current)||void 0===e?void 0:e.scrollHeight)&&s((null===(t=n.current)||void 0===t?void 0:t.scrollHeight)>i.current)}),[null===(t=n.current)||void 0===t?void 0:t.scrollHeight,i.current]),{containerRef:n,showButton:l}}(),b=h.containerRef,y=h.showButton,g=e.children;return r.createElement("div",{className:"d-flex overflow-hidden"},r.createElement("div",{style:{"--lines":f},className:"".concat(v?"":l.collapsed," ").concat(l.text),ref:b},!v&&y&&r.createElement(i.L,{onClick:function(){return m(!0)},className:"ms-1 text-info hover-text-underline ".concat(l.seeMore)},r.createElement(a.x,{namespace:u,phrase:"seeMore"})),r.createElement(g,{expanded:v}),v&&r.createElement(i.L,{onClick:function(){return m(!1)},className:"ms-1 text-info hover-text-underline d-inline"},r.createElement(a.x,{namespace:u,phrase:"seeLess"}))))}},62215:(e,t,n)=>{n.r(t),n.d(t,{SeriesView:()=>ae});var r=n(32735),i=n(70680),a=n(81886),o=n(23481),c=n(20354),l=n(65858),s=n(44522),u=n(49935),d=n(56577),f=n(71020),p=n(74696),v=n(13231),m=n(79718),h=n(7733),b=n(51365),y=n(16714),g=n(183),S=n(23788),E=n(21750),A=n(39151),w=n(1666),k=n(60011),x=n(31949),O=n(63719),I=n(56520),j=n(91286),L=n(60115),C=n(22902),P=n(79612),T=n(76753),N=n(35223),F=n(68140),H=n(14070),_=n(97291),B=n(64364);function G(e){return G="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},G(e)}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,M(r.key),r)}}function M(e){var t=function(e,t){if("object"!=G(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=G(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==G(t)?t:t+""}function V(e,t,n){return t=U(t),function(e,t){if(t&&("object"==G(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,D()?Reflect.construct(t,n||[],U(e).constructor):t.apply(e,n))}function D(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(D=function(){return!!e})()}function U(e){return U=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},U(e)}function Q(e,t){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Q(e,t)}var J="shared.seriesNotFoundError",W=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),V(this,t,["Series doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Q(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"SeriesNotFoundError"}},{key:"heading",get:function(){return o.T.getPhrase(J,"heading")}},{key:"description",get:function(){return o.T.getPhrase(J,"description")}}])&&R(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(B.H),Z=n(51855),$=n(10671),K=n(7179),q=n(27638),z=n(44110),X=n(97816),Y=n(10741),ee=n(33192),te=n(22490),ne=n(82431),re=o.T.encloseNamespace("shared.series"),ie=function(e){return h.o[e.name.charCodeAt(0)%h.o.length]};function ae(e){var t,n,o,h,B=(0,i.I0)(),G=(0,q.u)(l.LZ.VideoThumbnail),R=G.setFavourite,M=G.canFavourite,V=(0,C.T)(),D=V.hasPermissions,U=V.hasLocalPermissions,Q=(0,Z.G)().isPlugin,J=(0,I.R0)(),ae=J.openInCurationStudioLabel,oe=J.isUserCurator,ce=J.getOpenInCurationStudioLink;(0,K.P)({id:e.id,app:"series",shareId:e.shareId});var le=c.a.useBasicFetch(A.L.config()),se=c.a.useBasicFetch(x.N.currentUser()),ue=c.a.useBasicFetch((null===(t=se.data)||void 0===t?void 0:t.isAuthenticated)&&w.h.yearGroups(se.data.customerId)),de=c.a.useBasicFetch(e.shareId?k.J.sharedSeries(e.id,e.shareId):k.J.series(e.id)),fe=(0,z.i)();(0,P.M)(T.CG.getSeriesMetadata({content:de.data,phraseContext:{phraseHandler:re,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:ee.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:ee.f.allowIndexing()}));var pe=(0,$._)({location:$.i.VideoItem,shareId:e.shareId}),ve=c.a.useBasicFetch(e.classificationId&&E.x.path(e.classificationId));function me(e){return!ee.f.isBot()||!e}function he(t){var n;return me(t)?k.J.seriesVideos(e.id,null===(n=se.data)||void 0===n?void 0:n.id,ye,t):null}function be(e){return c.a.getFetch(B)(he(e))}var ye=!!se.data&&F.d.getOrSetSortType(se.data.id,e.sort,S.D.Series),ge={classificationId:e.classificationId,mtv:e.moviesAndTv},Se=(0,L.K)(!!se.data&&he,be),Ee=Se.items,Ae=Se.isFetching,we=Se.nextCursor;(0,X.V)(Ee),(0,j.v)(de,{notFound:W});var ke=!D(y.C.StudentExperience)&&U(y.E.UseSeriesActions),xe=(0,O.h)({name:null===(n=de.data)||void 0===n?void 0:n.name});return r.createElement(b.M.Provider,{value:pe},r.createElement("div",{className:"px-3"},le.data&&de.data?r.createElement(s.p,{heading:de.data.name,banner:de.data.banner,imageCdnUrl:le.data.imageCdnUrl,actions:function(){var e,t,n;if(Q||!ke)return[];var r=[{label:re("share"),appLink:de&&{application:_.O.DEFAULT,action:H.e.Default.SHARE,args:[null===(e=de.data)||void 0===e?void 0:e.id],params:{entityType:"series"}},svgName:N.vn.Share2,className:"btn btn-outline-dark me-2",button:!0}];return oe&&r.push({label:ae,href:ce(null===(t=de.data)||void 0===t?void 0:t.typeId,null===(n=de.data)||void 0===n?void 0:n.id),openInNewTab:!0}),r}(),actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:ie(de.data)}):r.createElement(s.v,null),r.createElement("div",null,r.createElement("div",{className:(null===(o=de.data)||void 0===o?void 0:o.description)||e.moviesAndTv&&ve.data?"border-bottom py-3 mb-3":"pt-3 mb-2"},e.hideBreadCrumbs?r.createElement(r.Fragment,null):!de.data||e.classificationId&&!ve.data?r.createElement(u.b2,null):r.createElement(u.Oo,{breadcrumbs:xe}),r.createElement("div",{className:"d-flex align-items-center"},(null===(h=de.data)||void 0===h?void 0:h.description)&&r.createElement("div",{className:"mb-0 ".concat(e.classificationId?"pt-2":"")},r.createElement(d.D,{lines:2},(function(){return r.createElement("p",{className:"mb-0 d-inline"},de.data.description)}))),de.data&&r.createElement("div",{className:"ms-auto"},r.createElement(m.p,{variant:"outline-dark",type:ye,analyticsOptions:{location:l.LZ.VideoListHeader,entity:l.py.Video,actionType:l.Vw.Sort,workflowPhase:l.eu.Complete},getSortAppLink:function(e){return ne.j.getSeriesAppLink(de.data,Object.assign(Object.assign({},ge),{sort:e}))}})))),Ee?r.createElement(r.Fragment,null,r.createElement(v.E4,{videos:Ee,yearGroups:ue.data,getVideoAppLink:function(t,n){var r;if(e.shareId){var i=a.Q.C$.getCurrentAppLink();return Object.assign(Object.assign({},i),{params:{videoId:t.id,contextId:e.id,context:g.Q.Series}})}var o=Object.assign(Object.assign({},n),{context:g.Q.Series,contextId:e.id,moviesAndTv:e.moviesAndTv||void 0,includeContext:null===(r=se.data)||void 0===r?void 0:r.isAuthenticated});return te.W.getAppLink(t,o)},hasPermissions:D,getSubTextAppLink:function(e){return ne.j.getSeriesAppLink(null==e?void 0:e.series,Object.assign(Object.assign({},ge),{sort:ye}))},setFavourite:R,canFavourite:M,presentationAudiences:e.moviesAndTv?null:fe.data,getPreviewQuestionsAppLink:function(e){return Y.j.getPreviewQuestionsAppLink(e)},isPlugin:Q,getClassroomGuideAppLink:te.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:te.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:te.W.getResourceGuidanceAppLink}),(Ae||we)&&me(we)&&r.createElement(f._,{isFetching:Ae,fetchNext:be,nextCursor:we})):r.createElement(p.S,null))))}}}]);
2
+ //# sourceMappingURL=2215-39ee2a2b3f-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2215-39ee2a2b3f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/expandable-text/expandable-text.scss","file:///app/packages/libs/shared/src/components/expandable-text/ExpandableText.tsx","file:///app/packages/libs/shared/src/hooks/useExpandableTextButton.ts","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"text\":\"wLJpg\",\"collapsed\":\"ZxMAG\",\"seeMore\":\"x5t0p\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useExpandableTextButton } from 'libs/shared/hooks/useExpandableTextButton';\n\nimport styles from './expandable-text.scss';\n\ninterface ExpandableTextProps {\n children: (props: {expanded: boolean}) => JSX.Element;\n lines?: number;\n}\n\nconst namespace = 'shared.expandableText';\n\nexport function ExpandableText(props: ExpandableTextProps): JSX.Element {\n const { lines = 2 } = props;\n const [ expanded, setExpanded ] = React.useState(false);\n\n const { containerRef, showButton } = useExpandableTextButton();\n const TextComponent = props.children;\n\n return (\n <div className='d-flex overflow-hidden'>\n <div\n style={{ '--lines': lines } as unknown as React.CSSProperties}\n className={`${expanded ? '' : styles.collapsed} ${styles.text}`} ref={containerRef}>\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 text-info hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n\n <TextComponent expanded={expanded} />\n\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 text-info hover-text-underline d-inline`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nexport function useExpandableTextButton() {\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (containerRef.current?.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current?.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return { containerRef, showButton };\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n hideBreadCrumbs?: boolean;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [{\n label: getPhrase('share'),\n appLink: series && {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: cvSvgLibrary.Share2,\n className: 'btn btn-outline-dark me-2',\n button: true\n }];\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n function getVideoAppLink(video: Video, opts: GetVideoAppLinkOptions): Core.AppLink {\n if (props.shareId) {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n return {\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.id,\n context: RelatedVideosContext.Series\n }\n };\n }\n\n const options: GetVideoAppLinkOptions = {\n ...opts,\n context: RelatedVideosContext.Series,\n contextId: props.id,\n moviesAndTv: props.moviesAndTv || undefined,\n includeContext: currentUser.data?.isAuthenticated\n };\n\n return VideoAppLinkHelper.getAppLink(video, options);\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (props.hideBreadCrumbs)\n return <></>;\n\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText lines={2}>\n {() => <p className='mb-0 d-inline'>{series.data.description}</p>}\n </ExpandableText>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n return (\n <>\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={getVideoAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video =>\n SeriesAppLinkHelper.getSeriesAppLink(video?.series, { ...seriesParams, sort })}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["namespace","ExpandableText","props","lines","expanded","setExpanded","containerRef","memoClientHeight","current","clientHeight","scrollHeight","showButton","setShowButton","useExpandableTextButton","TextComponent","children","className","style","ref","DivButton","onClick","Text","phrase","SeriesNotFoundError","LanguageService","ErrorPageError","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","SeriesView","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","id","app","shareId","config","ConfigRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","value","BannerHeader","heading","banner","imageCdnUrl","actions","label","appLink","application","action","args","params","entityType","svgName","button","push","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","hideBreadCrumbs","Breadcrumbs","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","SeriesAppLinkHelper","VideoList","getVideoAppLink","video","opts","currentAppLink","videoId","contextId","context","RelatedVideosContext","options","undefined","includeContext","VideoAppLinkHelper","getSubTextAppLink","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2340],{11921:(e,t,a)=>{a.d(t,{F:()=>o});var n=a(32735),r=a(35223),l=a(83914);var i=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function o(e){return n.createElement(l.x,{svgName:r.vn.Caret,className:"".concat(i(e.direction)," svg-container d-inline-block ").concat(e.className)})}o.defaultProps={direction:"right"}},83834:(e,t,a)=>{a.d(t,{$:()=>k});var n=a(32735),r=a(57900),l=a(11921),i=a(11607),o=a(97395),c=a(83657),s=a(36848),d=a(88711),u=a(75163),m=a(5465),p=a(54610);const g={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function f(e){var t,a=e.folder.thumbnail?o._.urlBuilder(e.folder.thumbnail.url,{size:p.h2.Small}):null,r=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return n.createElement(d.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:g.dropStyle,dragStyle:g.dragStyle},n.createElement("div",{className:"position-relative"},n.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},n.createElement(u.Z,{data:a,imageType:p.__.Thumbnails,imageClassName:"rounded-top-lg"},n.createElement(m.oy,{name:e.folder.name,type:m.mS.Folder,extraClasses:"rounded-top-lg"})),n.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},n.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==r?void 0:r.length)&&n.createElement(c.e,{actions:r,className:g.actionsContainer,actionsDropdownClassName:g.actions,dropdownToggleSvgSize:null})))}var v=a(83345),h=a(79967);function b(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 E="libraries.folderList",y="has:expanded:library:folders";function k(e){var t,a,o,c=(a=n.useState(r.SG.get(y)||!1),o=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,o=[],c=!0,s=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=l.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(s)throw r}}return o}}(a,o)||function(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}(a,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],d=c[1],u=e.expandFolders||s,m=(t=(0,h.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function p(){d(!u),r.SG.set(y,!u)}var g=u?e.folders:e.folders.slice(0,m),k=e.folders.length>m&&!e.expandFolders;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&n.createElement(i.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(k?"":"cursor-default"),onClick:p},k&&n.createElement(l.F,{direction:u?"down":"right"}),n.createElement("h2",{className:"h4 mb-0"},n.createElement(v.x,{namespace:E,phrase:"folders",options:{count:e.folders.length}}))),!(u||!k)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},n.createElement(v.x,{namespace:E,phrase:"seeAll",options:{count:e.folders.length}}))),!(!u||!k)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},n.createElement(v.x,{namespace:E,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:n.createElement(n.Fragment,null)),n.createElement("div",{className:"row mx-1"},g.map((function(t){return n.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement(f,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}k.defaultProps={showHeading:!0}},65403:(e,t,a)=>{a.d(t,{i:()=>i});var n=a(32735);const r={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var l=function(){return n.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement("div",{className:"".concat(r.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),n.createElement("div",{className:"".concat(r.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function i(e){var t=e.count,a=void 0===t?3:t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(r.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),n.createElement("div",{className:"row mx-n1"},Array(a).fill(null).map((function(e,t){return n.createElement(l,{key:t})}))))}},98860:(e,t,a)=>{a.d(t,{P:()=>o});var n=a(20354),r=a(98064),l=a(3010),i=a(45719);function o(e){var t=n.a.useGetFetch();function a(t){return r.D.childFolders(e,t)}return(0,l.i)(!!e&&a,!!e&&function(e){t(a(e))}),(0,i.P)(!!e&&function(e){return a(e).key})}},21325:(e,t,a)=>{a.d(t,{o:()=>o});var n=a(32735),r=a(81886),l=a(96560),i=a(67058);function o(e){n.useEffect((function(){e.hasCompleted&&!e.hasError&&e.data.type!==l.r.CustomLibrary&&r.Q.Ry.throw(new i.d)}),[e.hasCompleted])}},3435:(e,t,a)=>{a.r(t),a.d(t,{LibraryFolderView:()=>le});var n=a(32735),r=a(70680),l=a(23481),i=a(20354),o=a(65858),c=a(43500),s=a(44522),d=a(49935),u=a(83834),m=a(10874),p=a(4201),g=a(83345),f=a(79718),v=a(51365),h=a(94644),b=a(39151),E=a(1666),y=a(98064),k=a(31949),x=a(1575),F=a(69883),L=a(63719),S=a(91286),N=a(60115),C=a(79612),A=a(35223),w=a(68140),I=a(14070),O=a(97291),P=a(51855),j=a(10671),T=a(27638),V=a(44110),B=a(97816),R=a(71020),G=a(13231),H=a(183),D=a(22902),M=a(10741),Z=a(22490),_=a(23232),U=a(99742),W="libraries.libraryFolderEmptyState";function z(){return n.createElement(g.D.Provider,{value:W},n.createElement(_.u,null,n.createElement(_.u.Image,{src:U.W.EmptyStates.Libraries.FOLDER}),n.createElement(_.u.Heading,null,n.createElement(g.x,{phrase:"heading"})),n.createElement(_.u.Info,null,n.createElement(g.x,{phrase:"info"}))))}var Q=a(82431),$="libraries.libraryFolderVideos";function J(e){var t,a=(0,p.of)().focusSearchBar,r=(0,D.T)().hasPermissions;return e.videos.length||e.hasSubFolders?e.videos.length?n.createElement("div",null,e.hasSubFolders&&n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("h2",{className:"h4 mb-0"},n.createElement(g.x,{namespace:$,phrase:"videos"})),n.createElement("div",{className:"d-flex"},n.createElement(m.h,{svgName:A.vn.Search,appLink:{application:O.O.SEARCH,action:I.e.Search.HOME,params:{source:c.fi.School}},className:"btn btn-outline-dark d-none d-sm-inline-block",onClick:a,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(g.x,{namespace:$,phrase:"searchLibrary",options:{smartCount:null===(t=e.libraries)||void 0===t?void 0:t.length}})),n.createElement(f.p,{variant:"outline-dark",type:e.sort,getSortAppLink:e.getSortAppLink,analyticsOptions:{location:o.LZ.VideoListHeader,entity:o.py.Video,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}}))),n.createElement(G.E4,{videos:e.videos,yearGroups:e.yearGroups,getVideoAppLink:function(t,a){return Z.W.getAppLink(t,Object.assign(Object.assign({},a),{context:H.Q.Folder,contextId:e.folderId}))},getSubTextAppLink:function(e){return Q.j.getSeriesAppLink(e.series)},setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,hasPermissions:r,getPreviewQuestionsAppLink:function(e){return M.j.getPreviewQuestionsAppLink(e)},imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,getClassroomGuideAppLink:Z.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:Z.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:Z.W.getResourceGuidanceAppLink}),(e.hasMore||e.isFetching)&&n.createElement(R._,{isFetching:e.isFetching,fetchNext:e.fetchNext,nextCursor:e.nextCursor})):n.createElement(n.Fragment,null):n.createElement(z,null)}var K=a(98860),q=a(21325),X=a(65403),Y=a(74696);const ee={subheading:"IJZtA"};function te(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"m-3"},n.createElement(X.i,null)),n.createElement("div",{className:"mx-3 mb-3"},n.createElement("div",{className:"".concat(ee.subheading," partial-loading-background mb-2")}),n.createElement(Y.S,null)))}var ae=a(8406),ne="libraries.libraryFolder",re=l.T.encloseNamespace(ne);function le(e){var t,a,l,R,G,H,D,M,Z,_,U=(0,r.I0)(),W=(0,F.Z)(),z=(0,p.of)().focusSearchBar,Q=(0,P.G)().isPlugin,$=i.a.useBasicFetch(y.D.domainLibraries(["customLibrary","sharedLibrary"])),X=i.a.useBasicFetch(y.D.library(e.libraryId)),Y=i.a.useBasicFetch(y.D.folder(e.folderId)),ee=(0,K.P)(e.folderId),le=i.a.useBasicFetch(k.N.currentUser()),ie=i.a.useBasicFetch(b.L.config()),oe=i.a.useBasicFetch((null===(t=le.data)||void 0===t?void 0:t.isAuthenticated)&&E.h.yearGroups(le.data.customerId)),ce=(0,j._)({location:j.i.VideoItem}),se=(0,T.u)(o.LZ.VideoThumbnail),de=se.setFavourite,ue=se.canFavourite,me=(0,L.h)({name:null===(a=Y.data)||void 0===a?void 0:a.name}),pe=(0,V.i)();(0,C.M)({title:null===(l=Y.data)||void 0===l?void 0:l.name}),(0,S.v)([X,Y]),(0,q.o)(X);var ge=!!le.data&&w.d.getOrSetSortType(le.data.id,e.sort),fe=(0,N.K)(ye,ke,(function(e,t){if(1===e)return(0,h.r)(t);W.error(re("error"))})),ve=fe.items,he=fe.hasMore,be=fe.isFetching,Ee=fe.nextCursor;function ye(t){return x.R.collectionVideos(e.folderId,ge,t)}function ke(e){return i.a.getFetch(U)(ye(e))}(0,B.V)(ve);var xe=!(!ee.hasCompleted||(null===(R=ee.items)||void 0===R?void 0:R.length));return n.createElement(v.M.Provider,{value:ce},X.data&&Y.data&&ie.data?n.createElement(s.p,{heading:Y.data.name,banner:Y.data.banner,imageCdnUrl:ie.data.imageCdnUrl,blockColourClass:(0,ae.W)(Y.data),logo:null===(G=X.data.owner)||void 0===G?void 0:G.logo}):n.createElement(s.v,null),n.createElement("div",{className:"d-flex justify-content-between align-items-center py-3 mx-3 ".concat(xe?"":"border-bottom")},X.data&&Y.data?n.createElement(d.Oo,{breadcrumbs:me}):n.createElement(d.b2,null),n.createElement("div",{className:"d-flex"},(xe||!(null==ve?void 0:ve.length))&&n.createElement(m.h,{svgName:A.vn.Search,appLink:{application:O.O.SEARCH,action:I.e.Search.HOME,params:{source:c.fi.School}},className:"btn btn-outline-dark d-none d-sm-inline-block",onClick:z,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(g.x,{namespace:ne,phrase:"searchLibrary",options:{smartCount:null!==(D=null===(H=$.data)||void 0===H?void 0:H.length)&&void 0!==D?D:1}})),xe&&Y.data&&n.createElement(f.p,{variant:"outline-dark",type:ge,getSortAppLink:function(t){return(0,ae.a)(e.libraryId,Y.data,t)},analyticsOptions:{location:o.LZ.VideoListHeader,entity:o.py.Video,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}}))),ve&&ee?n.createElement(n.Fragment,null,!!(null===(M=ee.items)||void 0===M?void 0:M.length)&&n.createElement("div",{className:"px-2 py-3"},n.createElement(u.$,{folders:ee.items,getAppLink:function(t){return(0,ae.a)(e.libraryId,t,ge)},expandFolders:!ve.length})),n.createElement("div",{className:"px-3 pb-3"},n.createElement(J,{folderId:e.folderId,videos:ve,yearGroups:oe.data,hasSubFolders:!!(null===(Z=ee.items)||void 0===Z?void 0:Z.length),setFavourite:de,canFavourite:ue,hasMore:he,isFetching:be,fetchNext:ke,nextCursor:Ee,sort:ge,getSortAppLink:function(t){return(0,ae.a)(e.libraryId,Y.data,t)},audiences:pe.data,libraries:$.data,imageCdnUrl:null===(_=ie.data)||void 0===_?void 0:_.imageCdnUrl,isPlugin:Q}))):n.createElement(te,null))}},8406:(e,t,a)=>{a.d(t,{W:()=>c,a:()=>o});var n=a(28400),r=a(7733),l=a(14070),i=a(97291);function o(e,t,a){return e&&t?{application:i.O.LIBRARIES,action:l.e.Libraries.FOLDER,args:[e,t.id,n.m.slugify(t.name)],params:{sort:a}}:null}function c(e){for(var t,a,n=0,l=0;null!==(a=l<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==a&&a;l++)n+=e.name.charCodeAt(l);return r.o[n%r.o.length]}}}]);
2
- //# sourceMappingURL=2340-d1548f6362-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2340],{11921:(e,t,a)=>{a.d(t,{F:()=>o});var n=a(32735),r=a(35223),l=a(83914);var i=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function o(e){return n.createElement(l.x,{svgName:r.vn.Caret,className:"".concat(i(e.direction)," svg-container d-inline-block ").concat(e.className)})}o.defaultProps={direction:"right"}},83834:(e,t,a)=>{a.d(t,{$:()=>k});var n=a(32735),r=a(57900),l=a(11921),i=a(11607),o=a(97395),c=a(83657),s=a(36848),d=a(88711),u=a(75163),m=a(5465),p=a(54610);const g={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function v(e){var t,a=e.folder.thumbnail?o._.urlBuilder(e.folder.thumbnail.url,{size:p.h2.Small}):null,r=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return n.createElement(d.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:g.dropStyle,dragStyle:g.dragStyle},n.createElement("div",{className:"position-relative"},n.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},n.createElement(u.Z,{data:a,imageType:p.__.Thumbnails,imageClassName:"rounded-top-lg"},n.createElement(m.oy,{name:e.folder.name,type:m.mS.Folder,extraClasses:"rounded-top-lg"})),n.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},n.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==r?void 0:r.length)&&n.createElement(c.e,{actions:r,className:g.actionsContainer,actionsDropdownClassName:g.actions,dropdownToggleSvgSize:null})))}var f=a(83345),h=a(79967);function b(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 E="libraries.folderList",y="has:expanded:library:folders";function k(e){var t,a,o,c=(a=n.useState(r.SG.get(y)||!1),o=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,o=[],c=!0,s=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=l.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(s)throw r}}return o}}(a,o)||function(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}(a,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],d=c[1],u=e.expandFolders||s,m=(t=(0,h.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function p(){d(!u),r.SG.set(y,!u)}var g=u?e.folders:e.folders.slice(0,m),k=e.folders.length>m&&!e.expandFolders;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&n.createElement(i.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(k?"":"cursor-default"),onClick:p},k&&n.createElement(l.F,{direction:u?"down":"right"}),n.createElement("h2",{className:"h4 mb-0"},n.createElement(f.x,{namespace:E,phrase:"folders",options:{count:e.folders.length}}))),!(u||!k)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:E,phrase:"seeAll",options:{count:e.folders.length}}))),!(!u||!k)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:E,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:n.createElement(n.Fragment,null)),n.createElement("div",{className:"row mx-1"},g.map((function(t){return n.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement(v,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}k.defaultProps={showHeading:!0}},65403:(e,t,a)=>{a.d(t,{i:()=>i});var n=a(32735);const r={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var l=function(){return n.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement("div",{className:"".concat(r.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),n.createElement("div",{className:"".concat(r.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function i(e){var t=e.count,a=void 0===t?3:t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(r.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),n.createElement("div",{className:"row mx-n1"},Array(a).fill(null).map((function(e,t){return n.createElement(l,{key:t})}))))}},98860:(e,t,a)=>{a.d(t,{P:()=>o});var n=a(20354),r=a(98064),l=a(3010),i=a(45719);function o(e){var t=n.a.useGetFetch();function a(t){return r.D.childFolders(e,t)}return(0,l.i)(!!e&&a,!!e&&function(e){t(a(e))}),(0,i.P)(!!e&&function(e){return a(e).key})}},21325:(e,t,a)=>{a.d(t,{o:()=>o});var n=a(32735),r=a(81886),l=a(96560),i=a(67058);function o(e){n.useEffect((function(){e.hasCompleted&&!e.hasError&&e.data.type!==l.r.CustomLibrary&&r.Q.Ry.throw(new i.d)}),[e.hasCompleted])}},3435:(e,t,a)=>{a.r(t),a.d(t,{LibraryFolderView:()=>le});var n=a(32735),r=a(70680),l=a(23481),i=a(20354),o=a(65858),c=a(43500),s=a(44522),d=a(49935),u=a(83834),m=a(10874),p=a(4201),g=a(83345),v=a(79718),f=a(51365),h=a(94644),b=a(39151),E=a(1666),y=a(98064),k=a(31949),x=a(1575),F=a(69883),L=a(63719),S=a(91286),N=a(60115),C=a(79612),A=a(35223),w=a(68140),I=a(14070),O=a(97291),P=a(51855),j=a(10671),T=a(27638),V=a(44110),B=a(97816),R=a(71020),G=a(13231),H=a(183),D=a(22902),U=a(10741),M=a(22490),Z=a(23232),_=a(99742),W="libraries.libraryFolderEmptyState";function z(){return n.createElement(g.D.Provider,{value:W},n.createElement(Z.u,null,n.createElement(Z.u.Image,{src:_.W.EmptyStates.Libraries.FOLDER}),n.createElement(Z.u.Heading,null,n.createElement(g.x,{phrase:"heading"})),n.createElement(Z.u.Info,null,n.createElement(g.x,{phrase:"info"}))))}var Q=a(82431),$="libraries.libraryFolderVideos";function J(e){var t,a=(0,p.of)().focusSearchBar,r=(0,D.T)().hasPermissions;return e.videos.length||e.hasSubFolders?e.videos.length?n.createElement("div",null,e.hasSubFolders&&n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("h2",{className:"h4 mb-0"},n.createElement(g.x,{namespace:$,phrase:"videos"})),n.createElement("div",{className:"d-flex"},n.createElement(m.h,{svgName:A.vn.Search,appLink:{application:O.O.SEARCH,action:I.e.Search.HOME,params:{source:c.fi.School}},className:"btn btn-outline-dark d-none d-sm-inline-block",onClick:a,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(g.x,{namespace:$,phrase:"searchLibrary",options:{smartCount:null===(t=e.libraries)||void 0===t?void 0:t.length}})),n.createElement(v.p,{variant:"outline-dark",type:e.sort,getSortAppLink:e.getSortAppLink,analyticsOptions:{location:o.LZ.VideoListHeader,entity:o.py.Video,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}}))),n.createElement(G.E4,{videos:e.videos,yearGroups:e.yearGroups,getVideoAppLink:function(t,a){var n;return M.W.getAppLink(t,Object.assign(Object.assign({},a),{context:H.Q.Folder,contextId:e.folderId,includeContext:null===(n=e.currentUser)||void 0===n?void 0:n.isAuthenticated}))},getSubTextAppLink:function(e){return Q.j.getSeriesAppLink(e.series)},setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,hasPermissions:r,getPreviewQuestionsAppLink:function(e){return U.j.getPreviewQuestionsAppLink(e)},imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,getClassroomGuideAppLink:M.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:M.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:M.W.getResourceGuidanceAppLink}),(e.hasMore||e.isFetching)&&n.createElement(R._,{isFetching:e.isFetching,fetchNext:e.fetchNext,nextCursor:e.nextCursor})):n.createElement(n.Fragment,null):n.createElement(z,null)}var K=a(98860),q=a(21325),X=a(65403),Y=a(74696);const ee={subheading:"IJZtA"};function te(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"m-3"},n.createElement(X.i,null)),n.createElement("div",{className:"mx-3 mb-3"},n.createElement("div",{className:"".concat(ee.subheading," partial-loading-background mb-2")}),n.createElement(Y.S,null)))}var ae=a(8406),ne="libraries.libraryFolder",re=l.T.encloseNamespace(ne);function le(e){var t,a,l,R,G,H,D,U,M,Z,_=(0,r.I0)(),W=(0,F.Z)(),z=(0,p.of)().focusSearchBar,Q=(0,P.G)().isPlugin,$=i.a.useBasicFetch(y.D.domainLibraries(["customLibrary","sharedLibrary"])),X=i.a.useBasicFetch(y.D.library(e.libraryId)),Y=i.a.useBasicFetch(y.D.folder(e.folderId)),ee=(0,K.P)(e.folderId),le=i.a.useBasicFetch(k.N.currentUser()),ie=i.a.useBasicFetch(b.L.config()),oe=i.a.useBasicFetch((null===(t=le.data)||void 0===t?void 0:t.isAuthenticated)&&E.h.yearGroups(le.data.customerId)),ce=(0,j._)({location:j.i.VideoItem}),se=(0,T.u)(o.LZ.VideoThumbnail),de=se.setFavourite,ue=se.canFavourite,me=(0,L.h)({name:null===(a=Y.data)||void 0===a?void 0:a.name}),pe=(0,V.i)();(0,C.M)({title:null===(l=Y.data)||void 0===l?void 0:l.name}),(0,S.v)([X,Y]),(0,q.o)(X);var ge=!!le.data&&w.d.getOrSetSortType(le.data.id,e.sort),ve=(0,N.K)(ye,ke,(function(e,t){if(1===e)return(0,h.r)(t);W.error(re("error"))})),fe=ve.items,he=ve.hasMore,be=ve.isFetching,Ee=ve.nextCursor;function ye(t){return x.R.collectionVideos(e.folderId,ge,t)}function ke(e){return i.a.getFetch(_)(ye(e))}(0,B.V)(fe);var xe=!(!ee.hasCompleted||(null===(R=ee.items)||void 0===R?void 0:R.length));return n.createElement(f.M.Provider,{value:ce},X.data&&Y.data&&ie.data?n.createElement(s.p,{heading:Y.data.name,banner:Y.data.banner,imageCdnUrl:ie.data.imageCdnUrl,blockColourClass:(0,ae.W)(Y.data),logo:null===(G=X.data.owner)||void 0===G?void 0:G.logo}):n.createElement(s.v,null),n.createElement("div",{className:"d-flex justify-content-between align-items-center py-3 mx-3 ".concat(xe?"":"border-bottom")},X.data&&Y.data?n.createElement(d.Oo,{breadcrumbs:me}):n.createElement(d.b2,null),n.createElement("div",{className:"d-flex"},(xe||!(null==fe?void 0:fe.length))&&n.createElement(m.h,{svgName:A.vn.Search,appLink:{application:O.O.SEARCH,action:I.e.Search.HOME,params:{source:c.fi.School}},className:"btn btn-outline-dark d-none d-sm-inline-block",onClick:z,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(g.x,{namespace:ne,phrase:"searchLibrary",options:{smartCount:null!==(D=null===(H=$.data)||void 0===H?void 0:H.length)&&void 0!==D?D:1}})),xe&&Y.data&&n.createElement(v.p,{variant:"outline-dark",type:ge,getSortAppLink:function(t){return(0,ae.a)(e.libraryId,Y.data,t)},analyticsOptions:{location:o.LZ.VideoListHeader,entity:o.py.Video,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}}))),fe&&ee?n.createElement(n.Fragment,null,!!(null===(U=ee.items)||void 0===U?void 0:U.length)&&n.createElement("div",{className:"px-2 py-3"},n.createElement(u.$,{folders:ee.items,getAppLink:function(t){return(0,ae.a)(e.libraryId,t,ge)},expandFolders:!fe.length})),n.createElement("div",{className:"px-3 pb-3"},n.createElement(J,{folderId:e.folderId,videos:fe,yearGroups:oe.data,hasSubFolders:!!(null===(M=ee.items)||void 0===M?void 0:M.length),setFavourite:de,canFavourite:ue,hasMore:he,isFetching:be,fetchNext:ke,nextCursor:Ee,sort:ge,getSortAppLink:function(t){return(0,ae.a)(e.libraryId,Y.data,t)},audiences:pe.data,libraries:$.data,imageCdnUrl:null===(Z=ie.data)||void 0===Z?void 0:Z.imageCdnUrl,isPlugin:Q,currentUser:le.data}))):n.createElement(te,null))}},8406:(e,t,a)=>{a.d(t,{W:()=>c,a:()=>o});var n=a(28400),r=a(7733),l=a(14070),i=a(97291);function o(e,t,a){return e&&t?{application:i.O.LIBRARIES,action:l.e.Libraries.FOLDER,args:[e,t.id,n.m.slugify(t.name)],params:{sort:a}}:null}function c(e){for(var t,a,n=0,l=0;null!==(a=l<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==a&&a;l++)n+=e.name.charCodeAt(l);return r.o[n%r.o.length]}}}]);
2
+ //# sourceMappingURL=2340-62c86fabb2-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2340-62c86fabb2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/empty-state/LibraryFolderEmptyState.tsx","file:///app/packages/projects/lite/src/apps/libraries/components/library-folder-videos/LibraryFolderVideos.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/partial-loading/library-folder-partial-loading.scss","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/partial-loading/LibraryFolderPartialLoading.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderView.tsx","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n &nbsp;\n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}>&nbsp;</div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'libraries.libraryFolderEmptyState';\n\nexport function LibraryFolderEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Libraries.FOLDER} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, CurrentUser, FavouriteFunc, Library, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { LibraryFolderEmptyState } from 'apps/libraries/views/library-folder/empty-state/LibraryFolderEmptyState';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'libraries.libraryFolderVideos';\n\ninterface LibraryFolderVideosProps {\n folderId: string;\n videos: VideoTypes[];\n yearGroups: YearGroup[];\n hasSubFolders: boolean;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n libraries: Library[];\n currentUser: CurrentUser;\n\n getSortAppLink: (sort: VideoSortType) => Core.AppLink;\n sort: VideoSortType;\n\n isFetching: boolean;\n hasMore: boolean;\n fetchNext: (cursor: string) => void;\n nextCursor?: string;\n imageCdnUrl?: string;\n isPlugin: boolean;\n}\n\nexport function LibraryFolderVideos(props: LibraryFolderVideosProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n const { hasPermissions } = usePermissions();\n\n if (!props.videos.length && !props.hasSubFolders)\n return <LibraryFolderEmptyState />;\n\n if (!props.videos.length)\n return <></>;\n\n return (\n <div>\n {/* With no subfolders, we don't show this subheading, and the sort is moved up to the parent component */}\n {props.hasSubFolders && (\n <div className='d-flex justify-content-between align-items-center'>\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='videos' />\n </h2>\n\n <div className='d-flex'>\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: props.libraries?.length }} />\n </IconButton>\n <VideoSortSelect\n variant='outline-dark'\n type={props.sort}\n getSortAppLink={props.getSortAppLink}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n />\n </div>\n </div>\n )}\n\n <VideoList\n videos={props.videos}\n yearGroups={props.yearGroups}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: RelatedVideosContext.Folder,\n contextId: props.folderId,\n includeContext: props.currentUser?.isAuthenticated\n })}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n hasPermissions={hasPermissions}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n\n {(props.hasMore || props.isFetching) && (\n <InfiniteScrollFooter\n isFetching={props.isFetching}\n fetchNext={props.fetchNext}\n nextCursor={props.nextCursor}\n />\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"subheading\":\"IJZtA\"};","import React from 'react';\n\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './library-folder-partial-loading.scss';\n\nexport function LibraryFolderPartialLoading(): JSX.Element {\n return (\n <>\n <div className='m-3'>\n <PartialFolderList />\n </div>\n\n <div className='mx-3 mb-3'>\n <div className={`${styles.subheading} partial-loading-background mb-2`} />\n <PartialVideoList />\n </div>\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Folder, Library, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { LibraryFolderVideos } from 'apps/libraries/components/library-folder-videos/LibraryFolderVideos';\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\n\nimport { LibraryFolderPartialLoading } from './partial-loading/LibraryFolderPartialLoading';\nimport { getFolderAppLink, getFolderBgColourClass } from './LibraryFolderViewUtils';\n\nconst namespace = 'libraries.libraryFolder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LibraryFolderViewProps {\n libraryId: string;\n folderId: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryFolderView(props: LibraryFolderViewProps): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const { focusSearchBar } = useFocusSearchBar();\n const { isPlugin } = usePluginHelper();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.libraryId));\n const folder = Flight.useBasicFetch<Folder>(LibraryRequests.folder(props.folderId));\n const subfolders = useFetchAllChildFolders(props.folderId);\n\n const curentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n curentUser.data?.isAuthenticated && CustomerRequests.yearGroups(curentUser.data.customerId)\n );\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const breadcrumbs = useBreadcrumbs({ name: folder.data?.name });\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata({ title: folder.data?.name });\n\n useHandleObjectError([ library, folder ]);\n useHandleLibraryType(library);\n\n const sort = !!curentUser.data && VideoSortHelper.getOrSetSortType(curentUser.data.id, props.sort);\n\n const {\n items: videos,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<VideoTypes>(getVideosRequest, fetchNext, onError);\n\n useVideoMixin(videos);\n\n function getVideosRequest(cursor?: string): Flight.Request {\n return VideoRequests.collectionVideos(props.folderId, sort, cursor);\n }\n\n function fetchNext(cursor?: string): void {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(getPhrase('error'));\n }\n\n const hasNoSubfolders = !!(subfolders.hasCompleted && !subfolders.items?.length);\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n {(library.data && folder.data && config.data)\n ? (\n <BannerHeader\n heading={folder.data.name}\n banner={folder.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n blockColourClass={getFolderBgColourClass(folder.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n <div className={`d-flex justify-content-between align-items-center py-3 mx-3 ${hasNoSubfolders ? '' : 'border-bottom'}`}>\n {(library.data && folder.data)\n ? <Breadcrumbs breadcrumbs={breadcrumbs} />\n : <PartialBreadcrumbs />\n }\n \n <div className='d-flex'>\n {(hasNoSubfolders || !videos?.length) &&\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n {(hasNoSubfolders && folder.data) && (\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n getSortAppLink={sort => getFolderAppLink(props.libraryId, folder.data, sort)}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n />\n )}\n </div>\n </div>\n\n {(videos && subfolders) ? (\n <>\n {!!subfolders.items?.length && (\n <div className='px-2 py-3'>\n <FolderList\n folders={subfolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.libraryId, f, sort)}\n expandFolders={!videos.length}\n />\n </div>\n )}\n\n <div className='px-3 pb-3'>\n <LibraryFolderVideos\n folderId={props.folderId}\n videos={videos}\n yearGroups={yearGroups.data}\n hasSubFolders={!!subfolders.items?.length}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasMore={hasMore}\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n sort={sort}\n getSortAppLink={sort => getFolderAppLink(props.libraryId, folder.data, sort)}\n audiences={audiences.data}\n libraries={libraries.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n isPlugin={isPlugin}\n currentUser={curentUser.data}\n />\n </div>\n </>\n ) : <LibraryFolderPartialLoading />}\n </VideoActionsContext.Provider>\n );\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}"],"names":["getDirectionClass","direction","Caret","props","SvgContainer","svgName","className","defaultProps","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","url","size","actions","getFolderActions","DragDropMoveWrapper","draggable","drag","id","data","droppable","drop","dropStye","dragStyle","AppLink","appLink","getAppLink","title","name","BaseImage","imageType","imageClassName","ImageFallback","type","extraClasses","length","Actions","actionsDropdownClassName","dropdownToggleSvgSize","namespace","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","useBreakpoints","xxl","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","onClick","Text","phrase","options","count","extraButtons","map","f","key","PartialFolder","PartialFolderList","Array","fill","_","i","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","LibraryFolderEmptyState","value","EmptyState","src","ImageUrls","LibraryFolderVideos","focusSearchBar","hasPermissions","usePermissions","videos","hasSubFolders","IconButton","application","action","params","source","analyticsData","analyticsOptions","entity","location","actionType","descriptor","smartCount","libraries","VideoSortSelect","variant","sort","getSortAppLink","workflowPhase","VideoList","yearGroups","getVideoAppLink","v","opts","VideoAppLinkHelper","context","RelatedVideosContext","contextId","folderId","includeContext","currentUser","isAuthenticated","getSubTextAppLink","video","SeriesAppLinkHelper","series","setFavourite","canFavourite","presentationAudiences","audiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","imageCdnUrl","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hasMore","isFetching","InfiniteScrollFooter","fetchNext","nextCursor","LibraryFolderPartialLoading","PartialVideoList","getPhrase","LanguageService","LibraryFolderView","dispatch","alerts","usePluginHelper","LibraryRequests","library","libraryId","subfolders","curentUser","UserRequests","config","ConfigRequests","CustomerRequests","customerId","videoActions","useVideoActions","useLiteFavourites","u","breadcrumbs","useBreadcrumbs","usePresentationAudiences","useSetPageMetadata","VideoSortHelper","getVideosRequest","pageNumber","httpStatus","error","items","VideoRequests","useVideoMixin","hasNoSubfolders","VideoActionsContext","BannerHeader","heading","banner","blockColourClass","logo","owner","Breadcrumbs","getFolderAppLink","args","getFolderBgColourClass","charCode","charCodeAt"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2571],{5859:(e,i,t)=>{function a(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,a=Array(i);t<i;t++)a[t]=e[t];return a}t.d(i,{u:()=>r});var n={numItems:5,minWidth:50,maxWidth:100},r={getPartialLoadingItems:function(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},n),i);return(e=Array(t.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,i){if(e){if("string"==typeof e)return a(e,i);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,i):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*t.maxWidth),t.minWidth),"px")}}))}}},44110:(e,i,t)=>{t.d(i,{i:()=>c});var a=t(20354),n=t(89454),r=t(86698),c=function(){var e=(0,r.y)({redirectOnError:!0}),i=e.activePresentation,t=e.getFallbackPresentation,c=i||t();return a.a.useBasicFetch(!!c&&n.O.presentationAudiences(c.id))}},14085:(e,i,t)=>{t.d(i,{S:()=>B});var a=t(32735),n=t(28400),r=t(49935),c=t(5640),s=t(56940),o=t(51184),l=t(64921),u=t(95812),d=t(53709),p=t(71063),m=t(10439),v=t(35429),g=t(4594),f=t(16714),y=t(12754),I=t(22902),h=t(65332),A=t(76196),E=t(59598),P=t(31908),C=t(26492),b=t(9465),O=t(91479),V=t(47938),x=t(81024),L=t(78166),S=t(99742),k=t(14070),R=t(97291),G=t(22490),T=t(63010),w=t(14476),F=t(53256),U=t(83345),N=t(13231),q=t(51365),M=t(10671),j=t(10741),_="shared.playClipV2";function W(e){var i=(0,I.T)().hasPermissions,t=(0,M._)({location:M.i.VideoItem});return a.createElement("section",{className:"play-page-section",id:E.K.ClippedFrom,ref:function(i){var t;i&&(null===(t=e.headingRef)||void 0===t?void 0:t.current)&&e.headingRef.current.set(E.K.ClippedFrom,i)}},a.createElement("h2",{className:"h4 mb-0"},a.createElement(U.x,{namespace:_,phrase:"clippedFrom"})),a.createElement(q.M.Provider,{value:t},a.createElement(N.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(i,t){var a;return G.W.getAppLink(i,Object.assign(Object.assign({},t),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:null===(a=e.currentUser)||void 0===a?void 0:a.isAuthenticated}))},hasPermissions:i,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return j.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:e.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink})))}const D={main:"iQ0Ie",expandedToc:"sIoV8"};var H=function(e,i,t){return function(a){return t?{application:R.O.VIDEOS,action:k.e.Videos.PREVIEW_PDF,args:[a.id],params:{videoId:e,shareId:i}}:{application:R.O.SIGN_UP,action:k.e.SignUp.SIGN_UP}}};function B(e){var i,t,U,N,q,M,j,_,B,K,Q=(0,v.g)(),Y=(0,I.T)().hasPermissions,J=P.M.getCanBeConsumed(e.clip).canConsume,Z=(0,T.Q)(e.tableOfContentsId),$=Z.tableOfContentsActiveId,z=Z.setTableOfContentsActiveId,X=Z.controlledId,ee=Z.setControlledId,ie=Z.tableOfContentsExpanded,te=Z.onToggleTableOfContents,ae=(0,o.Wp)(e.clip)&&e.featureAccess.canViewGlance,ne=(0,w.i)(ae),re=ne.headingRef,ce=ne.headingElements,se=ce.map((function(i){var t;return{id:i.id,name:F.d.getSectionHeading(i.id,{clips:e.clips,interactives:e.interactives,resources:null===(t=e.clip.resources)||void 0===t?void 0:t.data,isPlayClipPage:!0})}}));(0,h.D)({setActiveId:z,headingElements:ce,controlledId:X,setControlledId:ee}),(0,A.P)(ce,X);var oe=P.M.isVideoTypeArchived(e.clip),le=Y(f.C.StudentExperience),ue=a.useRef(!1);function de(){var e,i,t,a;ue.current=!(null===(i=null===(e=null==Q?void 0:Q.playerRef)||void 0===e?void 0:e.current)||void 0===i?void 0:i.isPaused()),null===(a=null===(t=null==Q?void 0:Q.playerRef)||void 0===t?void 0:t.current)||void 0===a||a.pause()}function pe(){var e,i;ue.current&&(null===(i=null===(e=null==Q?void 0:Q.playerRef)||void 0===e?void 0:e.current)||void 0===i||i.play())}function me(){var i,t;return!(!e.originalVideo||!(null===(i=e.clip._canBeConsumed)||void 0===i?void 0:i.value)||!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated)||!e.hasProduct(y.x.Primary)||le)}var ve="picture-in-picture"===Q.mode||e.featureAccess.canViewPublicLayout,ge=null!==(t=null===(i=e.clips)||void 0===i?void 0:i.filter((function(i){return i.id.toString()!==e.clip.id.toString()})))&&void 0!==t?t:[];return a.createElement("div",{className:"px-4 play-page-sections-container ".concat(e.shouldShowSideTableOfContents?"row g-0":"")},a.createElement("main",{className:"".concat(D.main," ").concat(e.shouldShowSideTableOfContents&&ie?"".concat(D.expandedToc," col-9"):e.shouldShowSideTableOfContents&&!ie?"pe-4":void 0)},!!(null===(U=e.breadcrumbs)||void 0===U?void 0:U.length)&&a.createElement("div",{className:"mb-2"},a.createElement(r.Oo,{breadcrumbs:e.breadcrumbs})),a.createElement(V.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:g.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),oe&&a.createElement(C.T,{typeId:e.clip.typeId,hasStudentExperience:le}),a.createElement("section",{id:E.K.Video,className:"mb-2 ".concat(p.M.GLOBAL_PLAYER_SELECTOR),ref:function(e){e&&(null==re?void 0:re.current)&&re.current.set(E.K.Video,e)}},J&&a.createElement(m.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(N=e.queryParams)||void 0===N?void 0:N.context,contextId:null===(q=e.queryParams)||void 0===q?void 0:q.contextId,moviesAndTv:null===(M=e.queryParams)||void 0===M?void 0:M.mtv,playNext:null===(j=e.queryParams)||void 0===j?void 0:j.playNext,startTime:null!==(B=null===(_=e.queryParams)||void 0===_?void 0:_.t)&&void 0!==B?B:null===(K=e.queryParams)||void 0===K?void 0:K.startTime,mode:"default",location:"play-page"}),a.createElement("div",{className:ve?"":"d-none"},a.createElement(x.S,{video:e.clip,type:"pip"}))),a.createElement(O.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:me()?{application:R.O.VIDEOS,action:k.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,n.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),ae?a.createElement(l.j,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:function(e){var i;return null===(i=Q.playerRef.current)||void 0===i?void 0:i.currentTime(e)},getTagAppLink:function(e){return{application:R.O.SEARCH,action:k.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:ae}):a.createElement(s.a,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:de,onExitImmersiveReader:pe,getTagAppLink:function(e){return{application:R.O.SEARCH,action:k.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:re,suppressInteractivity:e.featureAccess.canViewPublicLayout}),a.createElement(d.M,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.imageCdnUrl,getAppLink:H(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:S.W.Fallbacks.RESOURCE_THUMBNAIL,headingRef:re}),a.createElement(u.J,{video:e.clip,interactives:e.interactives,imageCdnUrl:e.imageCdnUrl,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:re,yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,isPlugin:e.isPlugin}),a.createElement(c.O,{clips:ge||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,yearGroups:e.yearGroups,audiences:e.audiences,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite,headingRef:re,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},isPlugin:e.isPlugin}),ae&&a.createElement(s.a,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:de,onExitImmersiveReader:pe,getTagAppLink:function(e){return{application:R.O.SEARCH,action:k.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:re,suppressInteractivity:e.featureAccess.canViewPublicLayout,showHeading:!0}),!!me()&&a.createElement(W,{originalVideo:e.originalVideo,setFavourite:e.setFavourite,canFavourite:e.canFavourite,yearGroups:e.yearGroups,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:re,isPlugin:e.isPlugin,getClassroomGuideAppLink:G.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:G.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:G.W.getResourceGuidanceAppLink,currentUser:e.currentUser}),a.createElement(L.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(i,t){var a;return G.W.getAppLink(i,Object.assign(Object.assign({},t),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:null===(a=e.currentUser)||void 0===a?void 0:a.isAuthenticated}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})),a.createElement(b.h,{isExpanded:ie,setIsExpanded:te,items:se,activeId:$,setControlledId:ee,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},showInSide:e.shouldShowSideTableOfContents}))}}}]);
2
+ //# sourceMappingURL=2571-c280e72eff-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2571-c280e72eff-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/play-clip-v2.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/PlayClipV2.tsx"],"sourcesContent":["const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, CurrentUser, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClipV2';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n currentUser: CurrentUser;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"iQ0Ie\",\"expandedToc\":\"sIoV8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PlayPageClips } from 'libs/shared/components/play-page-v2/clips-widget/PlayPageClips';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page-v2/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { PlayPageInteractives } from 'libs/shared/components/play-page-v2/interactives-widget/PlayPageInteractives';\nimport { PlayPageResources } from 'libs/shared/components/play-page-v2/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { usePlayPageTableOfContent } from 'shared/views/play/v2/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/v2/hooks/useSectionHeadings';\nimport { PlayPageUtils } from 'shared/views/play/v2/PlayPageUtilV2';\nimport { ClippedFrom } from 'shared/views/play-clip/v2/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip-v2.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\n\ninterface PlayClipV2Props {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n isPlugin: boolean;\n breadcrumbs?: Breadcrumb[];\n}\n\nexport function PlayClipV2(props: PlayClipV2Props): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, controlledId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n function getMainClassName() {\n if (props.shouldShowSideTableOfContents && tableOfContentsExpanded) {\n return `${styles.expandedToc} col-9`;\n }\n if (props.shouldShowSideTableOfContents && !tableOfContentsExpanded)\n return 'pe-4';\n }\n\n return (\n <div className={`px-4 play-page-sections-container ${props.shouldShowSideTableOfContents ? 'row g-0' : ''}`}>\n <main className={`${styles.main} ${getMainClassName()}`}>\n {!!props.breadcrumbs?.length &&\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n }\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n imageCdnUrl={props.imageCdnUrl}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n isPlugin={props.isPlugin}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n imageCdnUrl={props.imageCdnUrl}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n isPlugin={props.isPlugin}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n showHeading\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n yearGroups={props.yearGroups}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n currentUser={props.currentUser}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv,\n includeContext: props.currentUser?.isAuthenticated\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n\n </main>\n\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n />\n \n </div>\n );\n}"],"names":["DEFAULT_PARTIAL_LOADING_OPTIONS","numItems","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","map","width","Math","max","floor","random","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","namespace","ClippedFrom","props","hasPermissions","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","current","set","Text","phrase","VideoActionsContext","value","VideoList","videos","originalVideo","yearGroups","setFavourite","canFavourite","getVideoAppLink","v","VideoAppLinkHelper","context","queryParams","contextId","playNext","shareId","moviesAndTv","mtv","includeContext","currentUser","isAuthenticated","presentationAudiences","audiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","getResourceAppLink","videoId","canViewResource","resource","application","action","args","params","PlayClipV2","playerContext","canConsume","VideoHelper","clip","usePlayPageTableOfContent","tableOfContentsId","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","featureAccess","canViewGlance","useSectionHeadings","headingElements","items","ele","name","clips","interactives","resources","data","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","hasStudentExperience","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","hasProduct","ProductId","showPlayerPlaceholder","mode","canViewPublicLayout","otherClips","filter","c","toString","shouldShowSideTableOfContents","breadcrumbs","length","Breadcrumbs","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","key","startTime","t","PlayerPlaceholder","video","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","VideoAtAGlanceV2","pointsOfInterest","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","canViewResources","canViewResourceItems","imageCdnUrl","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","canViewInteractives","PlayPageClips","canViewClips","showHeading","RelatedVideos","currentVideo","relatedVideos","TableOfContents","isExpanded","setIsExpanded","activeId","showInSide"],"sourceRoot":""}