@clickview/lite 0.57.2-rc.2 → 0.57.3-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 (90) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{3137-lite-7da84a8e68.chunk.css → 3137-lite-8afb370875.chunk.css} +1 -1
  3. package/dist/scripts/{1125-a24f83a3f3-lite.chunk.js → 1125-0e659106d9-lite.chunk.js} +2 -2
  4. package/dist/scripts/{1125-a24f83a3f3-lite.chunk.js.map → 1125-0e659106d9-lite.chunk.js.map} +1 -1
  5. package/dist/scripts/{1340-3f5e7d4623-lite.chunk.js → 1340-c78a7acd0d-lite.chunk.js} +2 -2
  6. package/dist/scripts/{1340-3f5e7d4623-lite.chunk.js.map → 1340-c78a7acd0d-lite.chunk.js.map} +1 -1
  7. package/dist/scripts/{154-81a4eabaae-lite.chunk.js → 154-fa5b45d1bf-lite.chunk.js} +2 -2
  8. package/dist/scripts/{154-81a4eabaae-lite.chunk.js.map → 154-fa5b45d1bf-lite.chunk.js.map} +1 -1
  9. package/dist/scripts/{1913-6a6bb3f16f-lite.chunk.js → 1913-6a7d99b96f-lite.chunk.js} +2 -2
  10. package/dist/scripts/{1913-6a6bb3f16f-lite.chunk.js.map → 1913-6a7d99b96f-lite.chunk.js.map} +1 -1
  11. package/dist/scripts/1958-cf5dd56576-lite.chunk.js +2 -0
  12. package/dist/scripts/{1958-31e6049ac7-lite.chunk.js.map → 1958-cf5dd56576-lite.chunk.js.map} +1 -1
  13. package/dist/scripts/{209-4a322eae44-lite.chunk.js → 209-396b9a7f13-lite.chunk.js} +2 -2
  14. package/dist/scripts/{209-4a322eae44-lite.chunk.js.map → 209-396b9a7f13-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/2182-a5652609bb-lite.chunk.js +2 -0
  16. package/dist/scripts/2182-a5652609bb-lite.chunk.js.map +1 -0
  17. package/dist/scripts/{2208-a9d679d40c-lite.chunk.js → 2208-5fed507ca8-lite.chunk.js} +2 -2
  18. package/dist/scripts/{2208-a9d679d40c-lite.chunk.js.map → 2208-5fed507ca8-lite.chunk.js.map} +1 -1
  19. package/dist/scripts/{2402-2d435f7027-lite.chunk.js → 2402-300aa81eaf-lite.chunk.js} +2 -2
  20. package/dist/scripts/{2402-2d435f7027-lite.chunk.js.map → 2402-300aa81eaf-lite.chunk.js.map} +1 -1
  21. package/dist/scripts/{3137-51febcedd6-lite.chunk.js → 3137-00d0d09d82-lite.chunk.js} +2 -2
  22. package/dist/scripts/{3137-51febcedd6-lite.chunk.js.map → 3137-00d0d09d82-lite.chunk.js.map} +1 -1
  23. package/dist/scripts/338-5c6ffa41bb-lite.chunk.js +3 -0
  24. package/dist/scripts/338-5c6ffa41bb-lite.chunk.js.map +1 -0
  25. package/dist/scripts/{3962-6bfcebace6-lite.chunk.js → 3962-eaa18d5ab6-lite.chunk.js} +2 -2
  26. package/dist/scripts/{3962-6bfcebace6-lite.chunk.js.map → 3962-eaa18d5ab6-lite.chunk.js.map} +1 -1
  27. package/dist/scripts/{4395-389855e87f-lite.chunk.js → 4395-9d987fe2e6-lite.chunk.js} +2 -2
  28. package/dist/scripts/{4395-389855e87f-lite.chunk.js.map → 4395-9d987fe2e6-lite.chunk.js.map} +1 -1
  29. package/dist/scripts/{4591-1e137b9a3f-lite.chunk.js → 4591-19ee265d34-lite.chunk.js} +2 -2
  30. package/dist/scripts/4591-19ee265d34-lite.chunk.js.map +1 -0
  31. package/dist/scripts/{467-baec908c73-lite.chunk.js → 467-1550deaaa1-lite.chunk.js} +2 -2
  32. package/dist/scripts/{467-baec908c73-lite.chunk.js.map → 467-1550deaaa1-lite.chunk.js.map} +1 -1
  33. package/dist/scripts/5157-9396b0580d-lite.chunk.js +2 -0
  34. package/dist/scripts/{5157-b1d38e123c-lite.chunk.js.map → 5157-9396b0580d-lite.chunk.js.map} +1 -1
  35. package/dist/scripts/{528-0e18ce97a9-lite.chunk.js → 528-3120366abc-lite.chunk.js} +2 -2
  36. package/dist/scripts/{528-0e18ce97a9-lite.chunk.js.map → 528-3120366abc-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/{5376-6e993d6097-lite.chunk.js → 5376-38456da0db-lite.chunk.js} +3 -3
  38. package/dist/scripts/{5376-6e993d6097-lite.chunk.js.map → 5376-38456da0db-lite.chunk.js.map} +1 -1
  39. package/dist/scripts/{6263-c6ce662fc3-lite.chunk.js → 6263-c665ac8df6-lite.chunk.js} +2 -2
  40. package/dist/scripts/{6263-c6ce662fc3-lite.chunk.js.map → 6263-c665ac8df6-lite.chunk.js.map} +1 -1
  41. package/dist/scripts/{6290-dd18f6a50a-lite.chunk.js → 6290-a295d749c3-lite.chunk.js} +2 -2
  42. package/dist/scripts/{6290-dd18f6a50a-lite.chunk.js.map → 6290-a295d749c3-lite.chunk.js.map} +1 -1
  43. package/dist/scripts/{6480-9f3dc79b38-lite.chunk.js → 6480-03513bbd54-lite.chunk.js} +2 -2
  44. package/dist/scripts/{6480-9f3dc79b38-lite.chunk.js.map → 6480-03513bbd54-lite.chunk.js.map} +1 -1
  45. package/dist/scripts/{7112-ea440dfba0-lite.chunk.js → 7112-2e77a3e7af-lite.chunk.js} +3 -3
  46. package/dist/scripts/{7112-ea440dfba0-lite.chunk.js.map → 7112-2e77a3e7af-lite.chunk.js.map} +1 -1
  47. package/dist/scripts/{7178-c592da7054-lite.chunk.js → 7178-f3794c1ee5-lite.chunk.js} +2 -2
  48. package/dist/scripts/{7178-c592da7054-lite.chunk.js.map → 7178-f3794c1ee5-lite.chunk.js.map} +1 -1
  49. package/dist/scripts/{775-b6cb8f1808-lite.chunk.js → 775-d6b0a7afbd-lite.chunk.js} +3 -3
  50. package/dist/scripts/{775-b6cb8f1808-lite.chunk.js.map → 775-d6b0a7afbd-lite.chunk.js.map} +1 -1
  51. package/dist/scripts/823-0a1356d38c-lite.chunk.js +2 -0
  52. package/dist/scripts/823-0a1356d38c-lite.chunk.js.map +1 -0
  53. package/dist/scripts/{8489-7779fd40b3-lite.chunk.js → 8489-88ab052e8c-lite.chunk.js} +3 -3
  54. package/dist/scripts/{8489-7779fd40b3-lite.chunk.js.map → 8489-88ab052e8c-lite.chunk.js.map} +1 -1
  55. package/dist/scripts/{8722-095bf62b96-lite.chunk.js → 8722-ed6103f3e4-lite.chunk.js} +2 -2
  56. package/dist/scripts/{8722-095bf62b96-lite.chunk.js.map → 8722-ed6103f3e4-lite.chunk.js.map} +1 -1
  57. package/dist/scripts/{8905-46d89811eb-lite.chunk.js → 8905-799dc47805-lite.chunk.js} +2 -2
  58. package/dist/scripts/{8905-46d89811eb-lite.chunk.js.map → 8905-799dc47805-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/{8935-2bb61f918c-lite.chunk.js → 8935-38d780c423-lite.chunk.js} +3 -3
  60. package/dist/scripts/{8935-2bb61f918c-lite.chunk.js.map → 8935-38d780c423-lite.chunk.js.map} +1 -1
  61. package/dist/scripts/{9118-20d1a60a52-lite.chunk.js → 9118-c769eeb11a-lite.chunk.js} +2 -2
  62. package/dist/scripts/{9118-20d1a60a52-lite.chunk.js.map → 9118-c769eeb11a-lite.chunk.js.map} +1 -1
  63. package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js → 9230-1ffbf1807e-lite.chunk.js} +3 -3
  64. package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js.map → 9230-1ffbf1807e-lite.chunk.js.map} +1 -1
  65. package/dist/scripts/{9614-2bca60768e-lite.chunk.js → 9614-6e5babb89a-lite.chunk.js} +2 -2
  66. package/dist/scripts/{9614-2bca60768e-lite.chunk.js.map → 9614-6e5babb89a-lite.chunk.js.map} +1 -1
  67. package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js → 9719-28c14a0783-lite.chunk.js} +3 -3
  68. package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js.map → 9719-28c14a0783-lite.chunk.js.map} +1 -1
  69. package/dist/scripts/{bundle-fb8200eefd.min.js → bundle-b25c09d3e8.min.js} +3 -3
  70. package/dist/scripts/{bundle-fb8200eefd.min.js.map → bundle-b25c09d3e8.min.js.map} +1 -1
  71. package/package.json +1 -1
  72. package/dist/scripts/1958-31e6049ac7-lite.chunk.js +0 -2
  73. package/dist/scripts/2182-aa9aca3196-lite.chunk.js +0 -2
  74. package/dist/scripts/2182-aa9aca3196-lite.chunk.js.map +0 -1
  75. package/dist/scripts/338-8b4fba84c0-lite.chunk.js +0 -3
  76. package/dist/scripts/338-8b4fba84c0-lite.chunk.js.map +0 -1
  77. package/dist/scripts/4591-1e137b9a3f-lite.chunk.js.map +0 -1
  78. package/dist/scripts/5157-b1d38e123c-lite.chunk.js +0 -2
  79. package/dist/scripts/823-697bd66d4d-lite.chunk.js +0 -2
  80. package/dist/scripts/823-697bd66d4d-lite.chunk.js.map +0 -1
  81. /package/dist/scripts/{3137-51febcedd6-lite.chunk.js.LICENSE.txt → 3137-00d0d09d82-lite.chunk.js.LICENSE.txt} +0 -0
  82. /package/dist/scripts/{338-8b4fba84c0-lite.chunk.js.LICENSE.txt → 338-5c6ffa41bb-lite.chunk.js.LICENSE.txt} +0 -0
  83. /package/dist/scripts/{5376-6e993d6097-lite.chunk.js.LICENSE.txt → 5376-38456da0db-lite.chunk.js.LICENSE.txt} +0 -0
  84. /package/dist/scripts/{7112-ea440dfba0-lite.chunk.js.LICENSE.txt → 7112-2e77a3e7af-lite.chunk.js.LICENSE.txt} +0 -0
  85. /package/dist/scripts/{775-b6cb8f1808-lite.chunk.js.LICENSE.txt → 775-d6b0a7afbd-lite.chunk.js.LICENSE.txt} +0 -0
  86. /package/dist/scripts/{8489-7779fd40b3-lite.chunk.js.LICENSE.txt → 8489-88ab052e8c-lite.chunk.js.LICENSE.txt} +0 -0
  87. /package/dist/scripts/{8935-2bb61f918c-lite.chunk.js.LICENSE.txt → 8935-38d780c423-lite.chunk.js.LICENSE.txt} +0 -0
  88. /package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js.LICENSE.txt → 9230-1ffbf1807e-lite.chunk.js.LICENSE.txt} +0 -0
  89. /package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js.LICENSE.txt → 9719-28c14a0783-lite.chunk.js.LICENSE.txt} +0 -0
  90. /package/dist/scripts/{bundle-fb8200eefd.min.js.LICENSE.txt → bundle-b25c09d3e8.min.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[209],{49935:(e,t,n)=>{n.d(t,{Oo:()=>v,b2:()=>g});var r=n(32735),a=n(23481),l=n(36848),i=n(86764),c=n(3747),o=n(5859),u=n(35223),s=n(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(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 n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),p=r.forwardRef((function(e,t){var n=e.breadcrumb,a=n.name,i=n.appLink,c=n.active,o=e.withBackIcon,m=a,d=null;return m.length>48&&(m=a.slice(0,48)+"...",d=a),r.createElement("li",{className:"breadcrumb-item".concat(c?" active":""),title:d},c?r.createElement("strong",null,m):r.createElement(l.F,{appLink:i,ref:t},o&&r.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:o?"ms-2":""},m)))})),v=function(e){var t=e.breadcrumbs,n=(0,c.a)(i.r.XS),a=(null==t?void 0:t.length)||0,l=m(r.useState(!1),2),o=l[0],u=l[1],s=m(r.useState(!1),2),d=s[0],v=s[1],g=r.useRef();if(r.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>4&&n>64&&u(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;d&&(null===(e=g.current)||void 0===e||e.focus())}),[g.current,d]),!a||n&&a<2)return r.createElement(r.Fragment,null);if(n)return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(p,{breadcrumb:t[a-2],withBackIcon:!0})));var b=r.createElement(p,{breadcrumb:t[0]}),E=a>2?r.createElement(p,{breadcrumb:t[1]}):r.createElement(r.Fragment,null),y=a>3?r.createElement(p,{breadcrumb:t[a-2]}):r.createElement(r.Fragment,null),h=a>1?r.createElement(p,{breadcrumb:t[a-1]}):r.createElement(r.Fragment,null),S=t.slice(2,a-2);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},b,E,o?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){u(!1),v(!0)},"aria-label":f("expand")},"...")):S.map((function(e,t){return r.createElement(p,{key:t,breadcrumb:e,ref:0===t?g:null})})),y,h))},g=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(i.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},99705:(e,t,n)=>{var r,a;n.d(t,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(r||(r={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},5859:(e,t,n)=>{function r(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}n.d(t,{u:()=>l});var a={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(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 r(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)?r(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()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>p});var r=n(32735),a=n(81886),l=n(23481),i=n(49935),c=n(22902),o=n(14070),u=n(97291),s=n(96368);function m(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 d="settings.settingsLayout",f=function(e){var t=(0,c.T)().hasPermissions,n=(0,s.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==u.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function p(e){var t,n=f(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:u.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var c,s=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=s,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},61324:(e,t,n)=>{n.r(t),n.d(t,{ContentPermissionsView:()=>_});var r=n(32735),a=n(70680),l=n(23481),i=n(97395),c=n(20354),o=n(1048),u=n(98461),s=n(2102),m=n(69674),d=n(83345),f=n(99705),p=n(39151),v=n(1666),g=n(31949),b=n(69883),E=n(87348),y=n(79612),h=n(12778),S=n(24965),N=n(81803);const w={row:"jSsH6",headerCell:"OiarJ",opaqueRating:"JUpUV",partialNameColumn:"SzdZi",partialRatingColumn:"LEWRI",partialHeading:"bE8aX",partialName:"yKKFv",partialRating:"zeYNd"};function C(){return r.createElement("div",{className:"d-flex striped-row rounded py-2 ".concat(w.row)},r.createElement("div",{className:"d-flex align-items-center ps-3 me-n2 ".concat(w.partialNameColumn)},r.createElement("div",{className:"partial-loading-background ".concat(w.partialName)})),r.createElement("div",{className:"d-flex align-items-center pe-2 ".concat(w.partialRatingColumn)},r.createElement("div",{className:"partial-loading-background ".concat(w.partialRating)})))}function A(){return r.createElement("div",{className:"d-flex py-2 mb-1"},r.createElement("div",{className:"".concat(w.partialNameColumn," ps-3 me-n2")},r.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})),r.createElement("div",{className:"".concat(w.partialRatingColumn," pe-2")},r.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})))}function k(){return r.createElement(r.Fragment,null,r.createElement("div",{className:"mb-3"},r.createElement(A,null),r.createElement("div",{className:"striped-list no-full-width"},r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null))))}var I=n(75896),T=n(76439),x=n(36532),O=n(81993),j=l.T.encloseNamespace("settings.contentPermissions"),G="staff";function L(e,t,n){return[{Header:j("yearGroup"),id:"yearGroup",accessor:"yearGroup",Cell:function(e){var t=e.value;return r.createElement("div",{className:"w-100 ps-3"},t.name)},width:20},{Header:j("rating"),id:"ratings",accessor:"ratings",Cell:function(a){var l=a.value,i=l.yearGroup.id===G,c=r.createElement("div",{className:"me-n1"},r.createElement(T.P,{ratings:l.ratings,yearGroup:l.yearGroup,yearGroups:n,selections:e(l.yearGroup),onSelectRange:function(e){return t(l.yearGroup,I.m.last(e))},disabled:!1,isDisabled:function(){return i},getButtonClasses:function(e,t,n,r){var a="badge rating-badge text-shadow d-flex justify-content-center me-1",l=O.u.mapRatingToClass(e.value);return r&&!i||(a+=" ".concat(w.opaqueRating)),a+(i?" cursor-default ".concat(l):t||n&&r?" "+l:" bg-gray-500")}}));return i?r.createElement(x.u,{title:j("staffTooltip"),spanHack:!0},c):c},width:40}]}function M(e,t){var n=e.map((function(e){return{yearGroup:e,ratings:{yearGroup:e,ratings:t.map((function(t){var n;return(null===(n=e.rating)||void 0===n?void 0:n.code)===t.code?Object.assign(Object.assign({},t),{active:!0}):t}))}}})),r={id:G,name:j("staff")};return n.push({yearGroup:r,ratings:{yearGroup:r,ratings:t}}),n}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(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)?R(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 R(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="settings.contentPermissions",P=l.T.encloseNamespace(U);function B(e){return r.createElement(s.m,{onClick:e.onClick,showSpinner:e.showSpinner,disabled:e.isDisabled,className:"text-nowrap me-2",variant:"dark"},r.createElement(d.x,{namespace:U,phrase:"save"}))}var H={table:"striped-list no-full-width mb-3",header:"fw-semibold pb-1",headerCell:"py-2 pe-2 ".concat(w.headerCell),row:"striped-row rounded ".concat(w.row),cell:"d-flex align-items-center py-2 pe-2"};function _(){var e,t=F(r.useState(!1),2),n=t[0],l=t[1],s=(0,E.Q)().isUpgrading,w=c.a.useBasicFetch(p.L.config()),C=c.a.useBasicFetch(g.N.currentUser()),A=c.a.useBasicFetch(S.Z.ratings()),I=c.a.useBasicFetch(C.data&&v.h.yearGroups(C.data.customerId)),T=F(r.useState(null),2),x=T[0],O=T[1],j=F(r.useState(null),2),R=j[0],_=j[1],W=F(r.useState(!1),2),$=W[0],q=W[1],D=(0,a.I0)(),V=(0,b.Z)();(0,y.M)({title:P("pageTitle")}),r.useEffect((function(){I.hasCompleted&&(O(I.data),_(I.data))}),[I.hasCompleted]),r.useEffect((function(){var e;R&&q((e=R).every((function(t,n){if(0===n)return!0;var r=e[n-1];return t.rating.value>=r.rating.value})))}),[R]);var Z=r.useMemo((function(){return!(!x||!R||o.t.isEqual(x,R))}),[x,R]);function z(){l(!0);var e=R.filter((function(e){return I.data.find((function(t){var n,r;return t.id===e.id&&(null===(n=t.rating)||void 0===n?void 0:n.id)!==(null===(r=e.rating)||void 0===r?void 0:r.id)}))})),t=v.h.updateYearGroupRatings(C.data.customerId,e,Q,X);c.a.fetch(D,t)}function Q(){V.success(P("success")),l(!1),O(R)}function X(){V.error(P("error")),l(!1)}var Y=!!R&&A.hasCompleted,J=h.o.getLiteArticle(f.b.ContentPermissions),K=s||!Z||!$;return r.createElement(N.d,{heading:P("heading"),breadcrumbs:[P("breadcrumb")]},s&&(null===(e=w.data)||void 0===e?void 0:e.onlineUrl)&&r.createElement("div",{className:"alert alert-danger",role:"alert"},r.createElement(d.x,{namespace:U,phrase:"upgradeWarning",options:{url:i._.safeUrlConcat(w.data.onlineUrl,"/ManageUsers/GroupAccess")}})),r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("p",null,r.createElement(d.x,{namespace:U,phrase:"description"})),r.createElement(B,{isDisabled:K,showSpinner:n,onClick:z})),r.createElement("p",null,r.createElement("small",null,r.createElement(d.x,{namespace:U,phrase:"note"}))),r.createElement("p",null,r.createElement(u.d,{href:J,className:"info-link",newTab:!0},r.createElement(d.x,{namespace:U,phrase:"learnMore"}))),Y?r.createElement(m.i,{columns:L((function(e){if(e.id===G)return A.data;var t=R.find((function(t){return t.id===e.id}));return t.rating?A.data.filter((function(e){return e.value<=t.rating.value})):[]}),(function(e,t){e.id!==G&&_((function(n){return n.map((function(n){if(n)return n.id===e.id||n.value>e.value&&n.rating.value<t.value||n.value<e.value&&n.rating.value>t.value?Object.assign(Object.assign({},n),{rating:t}):n}))}))}),R),data:M(I.data,A.data),theme:H}):r.createElement(k,null),r.createElement("div",{className:"d-flex justify-content-end pb-3"},r.createElement(B,{isDisabled:K,showSpinner:n,onClick:z})))}},24965:(e,t,n)=>{n.d(t,{Z:()=>a});var r=n(97395),a={ratings:function(e){return{url:"/api/domain/v2/me/ratings",publicUrl:r._.urlBuilder("/api/domain/v2/me/ratings",{countryCode:e}),key:"ratings",formatData:function(e){return e.sort((function(e,t){return e.value-t.value}))}}}}}}]);
2
- //# sourceMappingURL=209-4a322eae44-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[209],{49935:(e,t,n)=>{n.d(t,{Oo:()=>v,b2:()=>g});var r=n(32735),a=n(23481),l=n(36848),i=n(86764),c=n(3747),o=n(5859),u=n(35223),s=n(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(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 n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),p=r.forwardRef((function(e,t){var n=e.breadcrumb,a=n.name,i=n.appLink,c=n.active,o=e.withBackIcon,m=a,d=null;return m.length>48&&(m=a.slice(0,48)+"...",d=a),r.createElement("li",{className:"breadcrumb-item".concat(c?" active":""),title:d},c?r.createElement("strong",null,m):r.createElement(l.F,{appLink:i,ref:t},o&&r.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:o?"ms-2":""},m)))})),v=function(e){var t=e.breadcrumbs,n=(0,c.a)(i.r.XS),a=(null==t?void 0:t.length)||0,l=m(r.useState(!1),2),o=l[0],u=l[1],s=m(r.useState(!1),2),d=s[0],v=s[1],g=r.useRef();if(r.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>4&&n>64&&u(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;d&&(null===(e=g.current)||void 0===e||e.focus())}),[g.current,d]),!a||n&&a<2)return r.createElement(r.Fragment,null);if(n)return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(p,{breadcrumb:t[a-2],withBackIcon:!0})));var b=r.createElement(p,{breadcrumb:t[0]}),E=a>2?r.createElement(p,{breadcrumb:t[1]}):r.createElement(r.Fragment,null),y=a>3?r.createElement(p,{breadcrumb:t[a-2]}):r.createElement(r.Fragment,null),h=a>1?r.createElement(p,{breadcrumb:t[a-1]}):r.createElement(r.Fragment,null),S=t.slice(2,a-2);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},b,E,o?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){u(!1),v(!0)},"aria-label":f("expand")},"...")):S.map((function(e,t){return r.createElement(p,{key:t,breadcrumb:e,ref:0===t?g:null})})),y,h))},g=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(i.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},99705:(e,t,n)=>{var r,a;n.d(t,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(r||(r={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},5859:(e,t,n)=>{function r(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}n.d(t,{u:()=>l});var a={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(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 r(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)?r(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()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>p});var r=n(32735),a=n(81886),l=n(23481),i=n(49935),c=n(22902),o=n(14070),u=n(97291),s=n(96368);function m(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 d="settings.settingsLayout",f=function(e){var t=(0,c.T)().hasPermissions,n=(0,s.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==u.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function p(e){var t,n=f(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:u.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var c,s=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=s,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},61324:(e,t,n)=>{n.r(t),n.d(t,{ContentPermissionsView:()=>_});var r=n(32735),a=n(70680),l=n(23481),i=n(97395),c=n(20354),o=n(1048),u=n(98461),s=n(2102),m=n(69674),d=n(83345),f=n(99705),p=n(39151),v=n(1666),g=n(31949),b=n(69883),E=n(87348),y=n(79612),h=n(12778),S=n(24965),N=n(81803);const w={row:"jSsH6",headerCell:"OiarJ",opaqueRating:"JUpUV",partialNameColumn:"SzdZi",partialRatingColumn:"LEWRI",partialHeading:"bE8aX",partialName:"yKKFv",partialRating:"zeYNd"};function C(){return r.createElement("div",{className:"d-flex striped-row rounded py-2 ".concat(w.row)},r.createElement("div",{className:"d-flex align-items-center ps-3 me-n2 ".concat(w.partialNameColumn)},r.createElement("div",{className:"partial-loading-background ".concat(w.partialName)})),r.createElement("div",{className:"d-flex align-items-center pe-2 ".concat(w.partialRatingColumn)},r.createElement("div",{className:"partial-loading-background ".concat(w.partialRating)})))}function A(){return r.createElement("div",{className:"d-flex py-2 mb-1"},r.createElement("div",{className:"".concat(w.partialNameColumn," ps-3 me-n2")},r.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})),r.createElement("div",{className:"".concat(w.partialRatingColumn," pe-2")},r.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})))}function k(){return r.createElement(r.Fragment,null,r.createElement("div",{className:"mb-3"},r.createElement(A,null),r.createElement("div",{className:"striped-list no-full-width"},r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null),r.createElement(C,null))))}var I=n(75896),T=n(76439),x=n(36532),O=n(81993),j=l.T.encloseNamespace("settings.contentPermissions"),G="staff";function L(e,t,n){return[{Header:j("yearGroup"),id:"yearGroup",accessor:"yearGroup",Cell:function(e){var t=e.value;return r.createElement("div",{className:"w-100 ps-3"},t.name)},width:20},{Header:j("rating"),id:"ratings",accessor:"ratings",Cell:function(a){var l=a.value,i=l.yearGroup.id===G,c=r.createElement("div",{className:"me-n1"},r.createElement(T.P,{ratings:l.ratings,yearGroup:l.yearGroup,yearGroups:n,selections:e(l.yearGroup),onSelectRange:function(e){return t(l.yearGroup,I.m.last(e))},disabled:!1,isDisabled:function(){return i},getButtonClasses:function(e,t,n,r){var a="badge rating-badge text-shadow d-flex justify-content-center me-1",l=O.u.mapRatingToClass(e.value);return r&&!i||(a+=" ".concat(w.opaqueRating)),a+(i?" cursor-default ".concat(l):t||n&&r?" "+l:" bg-gray-500")}}));return i?r.createElement(x.u,{title:j("staffTooltip"),spanHack:!0},c):c},width:40}]}function M(e,t){var n=e.map((function(e){return{yearGroup:e,ratings:{yearGroup:e,ratings:t.map((function(t){var n;return(null===(n=e.rating)||void 0===n?void 0:n.code)===t.code?Object.assign(Object.assign({},t),{active:!0}):t}))}}})),r={id:G,name:j("staff")};return n.push({yearGroup:r,ratings:{yearGroup:r,ratings:t}}),n}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(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)?R(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 R(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="settings.contentPermissions",P=l.T.encloseNamespace(U);function B(e){return r.createElement(s.m,{onClick:e.onClick,showSpinner:e.showSpinner,disabled:e.isDisabled,className:"text-nowrap me-2",variant:"dark"},r.createElement(d.x,{namespace:U,phrase:"save"}))}var H={table:"striped-list no-full-width mb-3",header:"fw-semibold pb-1",headerCell:"py-2 pe-2 ".concat(w.headerCell),row:"striped-row rounded ".concat(w.row),cell:"d-flex align-items-center py-2 pe-2"};function _(){var e,t=F(r.useState(!1),2),n=t[0],l=t[1],s=(0,E.Q)().isUpgrading,w=c.a.useBasicFetch(p.L.config()),C=c.a.useBasicFetch(g.N.currentUser()),A=c.a.useBasicFetch(S.Z.ratings()),I=c.a.useBasicFetch(C.data&&v.h.yearGroups(C.data.customerId)),T=F(r.useState(null),2),x=T[0],O=T[1],j=F(r.useState(null),2),R=j[0],_=j[1],W=F(r.useState(!1),2),$=W[0],q=W[1],D=(0,a.I0)(),V=(0,b.Z)();(0,y.M)({title:P("pageTitle")}),r.useEffect((function(){I.hasCompleted&&(O(I.data),_(I.data))}),[I.hasCompleted]),r.useEffect((function(){var e;R&&q((e=R).every((function(t,n){if(0===n)return!0;var r=e[n-1];return t.rating.value>=r.rating.value})))}),[R]);var Z=r.useMemo((function(){return!(!x||!R||o.t.isEqual(x,R))}),[x,R]);function z(){l(!0);var e=R.filter((function(e){return I.data.find((function(t){var n,r;return t.id===e.id&&(null===(n=t.rating)||void 0===n?void 0:n.id)!==(null===(r=e.rating)||void 0===r?void 0:r.id)}))})),t=v.h.updateYearGroupRatings(C.data.customerId,e,Q,X);c.a.fetch(D,t)}function Q(){V.success(P("success")),l(!1),O(R)}function X(){V.error(P("error")),l(!1)}var Y=!!R&&A.hasCompleted,J=h.o.getLiteArticle(f.b.ContentPermissions),K=s||!Z||!$;return r.createElement(N.d,{heading:P("heading"),breadcrumbs:[P("breadcrumb")]},s&&(null===(e=w.data)||void 0===e?void 0:e.onlineUrl)&&r.createElement("div",{className:"alert alert-danger",role:"alert"},r.createElement(d.x,{namespace:U,phrase:"upgradeWarning",options:{url:i._.safeUrlConcat(w.data.onlineUrl,"/ManageUsers/GroupAccess")}})),r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("p",null,r.createElement(d.x,{namespace:U,phrase:"description"})),r.createElement(B,{isDisabled:K,showSpinner:n,onClick:z})),r.createElement("p",null,r.createElement("small",null,r.createElement(d.x,{namespace:U,phrase:"note"}))),r.createElement("p",null,r.createElement(u.d,{href:J,className:"info-link",newTab:!0},r.createElement(d.x,{namespace:U,phrase:"learnMore"}))),Y?r.createElement(m.i,{columns:L((function(e){if(e.id===G)return A.data;var t=R.find((function(t){return t.id===e.id}));return t.rating?A.data.filter((function(e){return e.value<=t.rating.value})):[]}),(function(e,t){e.id!==G&&_((function(n){return n.map((function(n){if(n)return n.id===e.id||n.value>e.value&&n.rating.value<t.value||n.value<e.value&&n.rating.value>t.value?Object.assign(Object.assign({},n),{rating:t}):n}))}))}),R),data:M(I.data,A.data),theme:H}):r.createElement(k,null),r.createElement("div",{className:"d-flex justify-content-end pb-3"},r.createElement(B,{isDisabled:K,showSpinner:n,onClick:z})))}},24965:(e,t,n)=>{n.d(t,{Z:()=>a});var r=n(97395),a={ratings:function(e){return{url:"/api/domain/v2/me/ratings",publicUrl:r._.urlBuilder("/api/domain/v2/me/ratings",{countryCode:e}),key:"ratings",formatData:function(e){return e.sort((function(e,t){return e.value-t.value}))}}}}}}]);
2
+ //# sourceMappingURL=209-396b9a7f13-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/209-4a322eae44-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/content-permissions.scss","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/partial-loading/PartialContentPermissionsTable.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsViewUtils.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RatingRequests.ts"],"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});","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\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};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"row\":\"jSsH6\",\"headerCell\":\"OiarJ\",\"opaqueRating\":\"JUpUV\",\"partialNameColumn\":\"SzdZi\",\"partialRatingColumn\":\"LEWRI\",\"partialHeading\":\"bE8aX\",\"partialName\":\"yKKFv\",\"partialRating\":\"zeYNd\"};","import React from 'react';\n\nimport styles from '../content-permissions.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded py-2 ${styles.row}`}>\n <div className={`d-flex align-items-center ps-3 me-n2 ${styles.partialNameColumn}`}>\n <div className={`partial-loading-background ${styles.partialName}`} />\n </div>\n <div className={`d-flex align-items-center pe-2 ${styles.partialRatingColumn}`}>\n <div className={`partial-loading-background ${styles.partialRating}`} />\n </div>\n </div>\n );\n}\n\nfunction PartialHeader(): JSX.Element {\n return (\n <div className='d-flex py-2 mb-1'>\n <div className={`${styles.partialNameColumn} ps-3 me-n2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n <div className={`${styles.partialRatingColumn} pe-2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n </div>\n );\n}\n\nexport function PartialContentPermissionsTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { RatingRangeSelector } from 'libs/shared/components/rating-range-selector/RatingRangeSelector';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Rating, YearGroup } from 'libs/shared/interfaces';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const STAFF_YEAR_GROUP_ID = 'staff';\n\ninterface MappedRating extends Rating {\n active?: boolean;\n}\n\ninterface TableData {\n yearGroup: YearGroup;\n ratings: {\n yearGroup: YearGroup;\n ratings: MappedRating[];\n };\n}\n\nexport function getContentPermissionsTableColumns(\n getSelections: (yearGroup: YearGroup) => Rating[],\n setSelections: (yearGroup: YearGroup, maxRating: Rating) => void,\n yearGroups: YearGroup[]\n): Column<TableData>[] {\n return [\n {\n Header: getPhrase('yearGroup'),\n id: 'yearGroup',\n accessor: 'yearGroup',\n Cell: ({ value: yearGroup }) => (\n <div className='w-100 ps-3'>\n {yearGroup.name}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('rating'),\n id: 'ratings',\n accessor: 'ratings',\n Cell: ({ value: ratings }) => {\n const isStaff = ratings.yearGroup.id === STAFF_YEAR_GROUP_ID;\n\n const ratingsList = (\n <div className='me-n1'>\n <RatingRangeSelector\n ratings={ratings.ratings}\n yearGroup={ratings.yearGroup}\n yearGroups={yearGroups}\n selections={getSelections(ratings.yearGroup)}\n onSelectRange={range => setSelections(ratings.yearGroup, ArrayHelper.last(range))}\n disabled={false}\n isDisabled={() => isStaff}\n getButtonClasses={(rating: Rating, isActive, isHovering, isRatingValid) => {\n let className = 'badge rating-badge text-shadow d-flex justify-content-center me-1';\n\n const activeClass = VideoDetailsHelper.mapRatingToClass(rating.value);\n\n if (!isRatingValid || isStaff)\n className += ` ${styles.opaqueRating}`;\n\n if (isStaff) {\n className += ` cursor-default ${activeClass}`;\n return className;\n }\n\n if (isActive || (isHovering && isRatingValid))\n className += ' ' + activeClass;\n else\n className += ' bg-gray-500';\n \n return className;\n }}\n />\n </div>\n );\n\n if (isStaff) {\n return (\n <Tooltip title={getPhrase('staffTooltip')} spanHack>\n {ratingsList}\n </Tooltip>\n );\n }\n\n return ratingsList;\n },\n width: 40\n }\n ];\n}\n\nexport function getContentPermissionsTableData(\n yearGroups: YearGroup[],\n ratings: Rating[]\n): TableData[] {\n const rows = yearGroups.map(yearGroup => {\n return {\n yearGroup,\n ratings: {\n yearGroup,\n ratings: ratings.map(rating => {\n if (yearGroup.rating?.code === rating.code) {\n return {\n ...rating,\n active: true\n };\n }\n \n return rating;\n })\n }\n };\n });\n\n const staffYearGroup = { id: STAFF_YEAR_GROUP_ID, name: getPhrase('staff') } as YearGroup;\n\n rows.push({\n yearGroup: staffYearGroup,\n ratings: {\n yearGroup: staffYearGroup,\n ratings\n }\n });\n\n return rows;\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Rating, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { RatingRequests } from 'shared/flight-requests/RatingRequests';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { PartialContentPermissionsTable } from './partial-loading/PartialContentPermissionsTable';\nimport { getContentPermissionsTableColumns, getContentPermissionsTableData, STAFF_YEAR_GROUP_ID } from './ContentPermissionsViewUtils';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SaveButtonProps {\n onClick: () => void;\n showSpinner: boolean;\n isDisabled: boolean;\n}\n\nfunction SaveButton(props: SaveButtonProps): JSX.Element {\n return (\n <SpinnerButton\n onClick={props.onClick}\n showSpinner={props.showSpinner}\n disabled={props.isDisabled}\n className='text-nowrap me-2'\n variant='dark'\n >\n <Text namespace={namespace} phrase='save' />\n </SpinnerButton>\n );\n}\n\nconst theme: TableTheme = {\n table: 'striped-list no-full-width mb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 pe-2 ${styles.headerCell}`,\n row: `striped-row rounded ${styles.row}`,\n cell: 'd-flex align-items-center py-2 pe-2'\n};\n\nexport function ContentPermissionsView(): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const { isUpgrading } = useLiteUpgrade();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(currentUser.data &&\n CustomerRequests.yearGroups(currentUser.data.customerId));\n\n const [ initialYearGroupRatingMappings, setInitialYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ draftYearGroupRatingMappings, setDraftYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ isContentPermissionsValid, setIsContentPermissionsValid ] = React.useState(false);\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n React.useEffect(() => {\n if (!yearGroups.hasCompleted)\n return;\n\n setInitialYearGroupRatingMappings(yearGroups.data);\n setDraftYearGroupRatingMappings(yearGroups.data);\n }, [yearGroups.hasCompleted]);\n\n React.useEffect(() => {\n if (draftYearGroupRatingMappings)\n setIsContentPermissionsValid(isRatingsAscending(draftYearGroupRatingMappings));\n }, [draftYearGroupRatingMappings]);\n\n const hasChanged = React.useMemo(() => {\n if (!initialYearGroupRatingMappings || !draftYearGroupRatingMappings)\n return false;\n\n return !ObjectHelper.isEqual(initialYearGroupRatingMappings, draftYearGroupRatingMappings);\n }, [ initialYearGroupRatingMappings, draftYearGroupRatingMappings ]);\n\n function getSelections(yearGroup: YearGroup): Rating[] {\n if (yearGroup.id === STAFF_YEAR_GROUP_ID)\n return ratings.data;\n\n const mapping = draftYearGroupRatingMappings.find(y => y.id === yearGroup.id);\n\n if (!mapping.rating)\n return [];\n\n return ratings.data.filter(r => {\n return r.value <= mapping.rating.value;\n });\n }\n\n function setSelections(selectedYearGroup: YearGroup, maxRating: Rating): void {\n if (selectedYearGroup.id === STAFF_YEAR_GROUP_ID)\n return;\n \n setDraftYearGroupRatingMappings(currentVal => {\n return currentVal.map(yearGroup => {\n if (!yearGroup)\n return;\n\n if (yearGroup.id === selectedYearGroup.id)\n return {\n ...yearGroup,\n rating: maxRating\n };\n\n if (yearGroup.value > selectedYearGroup.value && yearGroup.rating.value < maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n\n if (yearGroup.value < selectedYearGroup.value && yearGroup.rating.value > maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n \n return yearGroup;\n });\n });\n }\n\n function isRatingsAscending(yearGroupRatingMappings: YearGroup[]) {\n return yearGroupRatingMappings.every((yearGroup, index) => {\n if (index === 0) {\n return true;\n }\n \n const prevYearGroup = yearGroupRatingMappings[index - 1];\n return yearGroup.rating.value >= prevYearGroup.rating.value;\n });\n }\n\n function onSave(): void {\n setShowSpinner(true);\n\n const changes = draftYearGroupRatingMappings.filter(mapping => {\n return yearGroups.data.find(y => y.id === mapping.id && y.rating?.id !== mapping.rating?.id);\n });\n\n const request = CustomerRequests.updateYearGroupRatings(\n currentUser.data.customerId,\n changes,\n onSuccess,\n onError\n );\n\n Flight.fetch(dispatch, request);\n }\n\n function onSuccess(): void {\n alerts.success(getPhrase('success'));\n setShowSpinner(false);\n setInitialYearGroupRatingMappings(draftYearGroupRatingMappings);\n }\n\n function onError(): void {\n alerts.error(getPhrase('error'));\n setShowSpinner(false);\n }\n\n const dataLoaded = !!draftYearGroupRatingMappings && ratings.hasCompleted;\n\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentPermissions);\n\n const isDisabled = isUpgrading || !hasChanged || !isContentPermissionsValid;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {isUpgrading && config.data?.onlineUrl &&\n <div className='alert alert-danger' role='alert'>\n <Text\n namespace={namespace}\n phrase='upgradeWarning'\n options={{ url: UrlHelper.safeUrlConcat(config.data.onlineUrl, '/ManageUsers/GroupAccess') }}\n />\n </div>\n }\n <div className='d-flex justify-content-between align-items-center'>\n <p><Text namespace={namespace} phrase={'description'} /></p>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n <p>\n <small><Text namespace={namespace} phrase={'note'} /></small>\n </p>\n <p>\n <ExternalLink\n href={href}\n className='info-link'\n newTab\n >\n <Text namespace={namespace} phrase='learnMore' />\n </ExternalLink>\n </p>\n {dataLoaded ? (\n <Table\n columns={getContentPermissionsTableColumns(getSelections, setSelections, draftYearGroupRatingMappings)}\n data={getContentPermissionsTableData(yearGroups.data, ratings.data)}\n theme={theme}\n />\n ) : <PartialContentPermissionsTable />}\n\n <div className='d-flex justify-content-end pb-3'>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n </SettingsLayout>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Rating } from 'libs/shared/interfaces';\n\nexport const RatingRequests = {\n ratings(countryCode?: string): Flight.PublicRequest {\n return {\n url: '/api/domain/v2/me/ratings',\n publicUrl: UrlHelper.urlBuilder('/api/domain/v2/me/ratings', { countryCode }),\n key: 'ratings',\n // v2/me/ratings doesn't support `query={orderby:value}`. Adding this due to time constraints\n formatData: (ratings: Rating[]) => {\n return ratings.sort((a, b) => a.value - b.value);\n }\n };\n }\n};"],"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","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children","PartialRow","PartialHeader","PartialContentPermissionsTable","LanguageService","STAFF_YEAR_GROUP_ID","getContentPermissionsTableColumns","getSelections","setSelections","yearGroups","Header","id","accessor","Cell","yearGroup","value","ratings","isStaff","ratingsList","RatingRangeSelector","selections","onSelectRange","range","ArrayHelper","disabled","isDisabled","getButtonClasses","rating","isActive","isHovering","isRatingValid","activeClass","VideoDetailsHelper","Tooltip","spanHack","getContentPermissionsTableData","rows","code","staffYearGroup","push","SaveButton","SpinnerButton","showSpinner","variant","Text","phrase","theme","table","header","headerCell","row","cell","ContentPermissionsView","setShowSpinner","isUpgrading","config","ConfigRequests","currentUser","UserRequests","RatingRequests","data","CustomerRequests","customerId","initialYearGroupRatingMappings","setInitialYearGroupRatingMappings","draftYearGroupRatingMappings","setDraftYearGroupRatingMappings","isContentPermissionsValid","setIsContentPermissionsValid","dispatch","alerts","useSetPageMetadata","hasCompleted","yearGroupRatingMappings","every","index","prevYearGroup","hasChanged","ObjectHelper","onSave","changes","filter","mapping","find","y","request","onSuccess","onError","success","error","dataLoaded","href","ArticleHelper","onlineUrl","role","url","UrlHelper","ExternalLink","newTab","Table","columns","r","selectedYearGroup","maxRating","currentVal","countryCode","publicUrl","formatData","sort","a","b"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/209-396b9a7f13-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/content-permissions.scss","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/partial-loading/PartialContentPermissionsTable.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsViewUtils.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RatingRequests.ts"],"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});","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\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};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"row\":\"jSsH6\",\"headerCell\":\"OiarJ\",\"opaqueRating\":\"JUpUV\",\"partialNameColumn\":\"SzdZi\",\"partialRatingColumn\":\"LEWRI\",\"partialHeading\":\"bE8aX\",\"partialName\":\"yKKFv\",\"partialRating\":\"zeYNd\"};","import React from 'react';\n\nimport styles from '../content-permissions.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded py-2 ${styles.row}`}>\n <div className={`d-flex align-items-center ps-3 me-n2 ${styles.partialNameColumn}`}>\n <div className={`partial-loading-background ${styles.partialName}`} />\n </div>\n <div className={`d-flex align-items-center pe-2 ${styles.partialRatingColumn}`}>\n <div className={`partial-loading-background ${styles.partialRating}`} />\n </div>\n </div>\n );\n}\n\nfunction PartialHeader(): JSX.Element {\n return (\n <div className='d-flex py-2 mb-1'>\n <div className={`${styles.partialNameColumn} ps-3 me-n2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n <div className={`${styles.partialRatingColumn} pe-2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n </div>\n );\n}\n\nexport function PartialContentPermissionsTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { RatingRangeSelector } from 'libs/shared/components/rating-range-selector/RatingRangeSelector';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Rating, YearGroup } from 'libs/shared/interfaces';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const STAFF_YEAR_GROUP_ID = 'staff';\n\ninterface MappedRating extends Rating {\n active?: boolean;\n}\n\ninterface TableData {\n yearGroup: YearGroup;\n ratings: {\n yearGroup: YearGroup;\n ratings: MappedRating[];\n };\n}\n\nexport function getContentPermissionsTableColumns(\n getSelections: (yearGroup: YearGroup) => Rating[],\n setSelections: (yearGroup: YearGroup, maxRating: Rating) => void,\n yearGroups: YearGroup[]\n): Column<TableData>[] {\n return [\n {\n Header: getPhrase('yearGroup'),\n id: 'yearGroup',\n accessor: 'yearGroup',\n Cell: ({ value: yearGroup }) => (\n <div className='w-100 ps-3'>\n {yearGroup.name}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('rating'),\n id: 'ratings',\n accessor: 'ratings',\n Cell: ({ value: ratings }) => {\n const isStaff = ratings.yearGroup.id === STAFF_YEAR_GROUP_ID;\n\n const ratingsList = (\n <div className='me-n1'>\n <RatingRangeSelector\n ratings={ratings.ratings}\n yearGroup={ratings.yearGroup}\n yearGroups={yearGroups}\n selections={getSelections(ratings.yearGroup)}\n onSelectRange={range => setSelections(ratings.yearGroup, ArrayHelper.last(range))}\n disabled={false}\n isDisabled={() => isStaff}\n getButtonClasses={(rating: Rating, isActive, isHovering, isRatingValid) => {\n let className = 'badge rating-badge text-shadow d-flex justify-content-center me-1';\n\n const activeClass = VideoDetailsHelper.mapRatingToClass(rating.value);\n\n if (!isRatingValid || isStaff)\n className += ` ${styles.opaqueRating}`;\n\n if (isStaff) {\n className += ` cursor-default ${activeClass}`;\n return className;\n }\n\n if (isActive || (isHovering && isRatingValid))\n className += ' ' + activeClass;\n else\n className += ' bg-gray-500';\n \n return className;\n }}\n />\n </div>\n );\n\n if (isStaff) {\n return (\n <Tooltip title={getPhrase('staffTooltip')} spanHack>\n {ratingsList}\n </Tooltip>\n );\n }\n\n return ratingsList;\n },\n width: 40\n }\n ];\n}\n\nexport function getContentPermissionsTableData(\n yearGroups: YearGroup[],\n ratings: Rating[]\n): TableData[] {\n const rows = yearGroups.map(yearGroup => {\n return {\n yearGroup,\n ratings: {\n yearGroup,\n ratings: ratings.map(rating => {\n if (yearGroup.rating?.code === rating.code) {\n return {\n ...rating,\n active: true\n };\n }\n \n return rating;\n })\n }\n };\n });\n\n const staffYearGroup = { id: STAFF_YEAR_GROUP_ID, name: getPhrase('staff') } as YearGroup;\n\n rows.push({\n yearGroup: staffYearGroup,\n ratings: {\n yearGroup: staffYearGroup,\n ratings\n }\n });\n\n return rows;\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Rating, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { RatingRequests } from 'shared/flight-requests/RatingRequests';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { PartialContentPermissionsTable } from './partial-loading/PartialContentPermissionsTable';\nimport { getContentPermissionsTableColumns, getContentPermissionsTableData, STAFF_YEAR_GROUP_ID } from './ContentPermissionsViewUtils';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SaveButtonProps {\n onClick: () => void;\n showSpinner: boolean;\n isDisabled: boolean;\n}\n\nfunction SaveButton(props: SaveButtonProps): JSX.Element {\n return (\n <SpinnerButton\n onClick={props.onClick}\n showSpinner={props.showSpinner}\n disabled={props.isDisabled}\n className='text-nowrap me-2'\n variant='dark'\n >\n <Text namespace={namespace} phrase='save' />\n </SpinnerButton>\n );\n}\n\nconst theme: TableTheme = {\n table: 'striped-list no-full-width mb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 pe-2 ${styles.headerCell}`,\n row: `striped-row rounded ${styles.row}`,\n cell: 'd-flex align-items-center py-2 pe-2'\n};\n\nexport function ContentPermissionsView(): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const { isUpgrading } = useLiteUpgrade();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(currentUser.data &&\n CustomerRequests.yearGroups(currentUser.data.customerId));\n\n const [ initialYearGroupRatingMappings, setInitialYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ draftYearGroupRatingMappings, setDraftYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ isContentPermissionsValid, setIsContentPermissionsValid ] = React.useState(false);\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n React.useEffect(() => {\n if (!yearGroups.hasCompleted)\n return;\n\n setInitialYearGroupRatingMappings(yearGroups.data);\n setDraftYearGroupRatingMappings(yearGroups.data);\n }, [yearGroups.hasCompleted]);\n\n React.useEffect(() => {\n if (draftYearGroupRatingMappings)\n setIsContentPermissionsValid(isRatingsAscending(draftYearGroupRatingMappings));\n }, [draftYearGroupRatingMappings]);\n\n const hasChanged = React.useMemo(() => {\n if (!initialYearGroupRatingMappings || !draftYearGroupRatingMappings)\n return false;\n\n return !ObjectHelper.isEqual(initialYearGroupRatingMappings, draftYearGroupRatingMappings);\n }, [ initialYearGroupRatingMappings, draftYearGroupRatingMappings ]);\n\n function getSelections(yearGroup: YearGroup): Rating[] {\n if (yearGroup.id === STAFF_YEAR_GROUP_ID)\n return ratings.data;\n\n const mapping = draftYearGroupRatingMappings.find(y => y.id === yearGroup.id);\n\n if (!mapping.rating)\n return [];\n\n return ratings.data.filter(r => {\n return r.value <= mapping.rating.value;\n });\n }\n\n function setSelections(selectedYearGroup: YearGroup, maxRating: Rating): void {\n if (selectedYearGroup.id === STAFF_YEAR_GROUP_ID)\n return;\n \n setDraftYearGroupRatingMappings(currentVal => {\n return currentVal.map(yearGroup => {\n if (!yearGroup)\n return;\n\n if (yearGroup.id === selectedYearGroup.id)\n return {\n ...yearGroup,\n rating: maxRating\n };\n\n if (yearGroup.value > selectedYearGroup.value && yearGroup.rating.value < maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n\n if (yearGroup.value < selectedYearGroup.value && yearGroup.rating.value > maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n \n return yearGroup;\n });\n });\n }\n\n function isRatingsAscending(yearGroupRatingMappings: YearGroup[]) {\n return yearGroupRatingMappings.every((yearGroup, index) => {\n if (index === 0) {\n return true;\n }\n \n const prevYearGroup = yearGroupRatingMappings[index - 1];\n return yearGroup.rating.value >= prevYearGroup.rating.value;\n });\n }\n\n function onSave(): void {\n setShowSpinner(true);\n\n const changes = draftYearGroupRatingMappings.filter(mapping => {\n return yearGroups.data.find(y => y.id === mapping.id && y.rating?.id !== mapping.rating?.id);\n });\n\n const request = CustomerRequests.updateYearGroupRatings(\n currentUser.data.customerId,\n changes,\n onSuccess,\n onError\n );\n\n Flight.fetch(dispatch, request);\n }\n\n function onSuccess(): void {\n alerts.success(getPhrase('success'));\n setShowSpinner(false);\n setInitialYearGroupRatingMappings(draftYearGroupRatingMappings);\n }\n\n function onError(): void {\n alerts.error(getPhrase('error'));\n setShowSpinner(false);\n }\n\n const dataLoaded = !!draftYearGroupRatingMappings && ratings.hasCompleted;\n\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentPermissions);\n\n const isDisabled = isUpgrading || !hasChanged || !isContentPermissionsValid;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {isUpgrading && config.data?.onlineUrl &&\n <div className='alert alert-danger' role='alert'>\n <Text\n namespace={namespace}\n phrase='upgradeWarning'\n options={{ url: UrlHelper.safeUrlConcat(config.data.onlineUrl, '/ManageUsers/GroupAccess') }}\n />\n </div>\n }\n <div className='d-flex justify-content-between align-items-center'>\n <p><Text namespace={namespace} phrase={'description'} /></p>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n <p>\n <small><Text namespace={namespace} phrase={'note'} /></small>\n </p>\n <p>\n <ExternalLink\n href={href}\n className='info-link'\n newTab\n >\n <Text namespace={namespace} phrase='learnMore' />\n </ExternalLink>\n </p>\n {dataLoaded ? (\n <Table\n columns={getContentPermissionsTableColumns(getSelections, setSelections, draftYearGroupRatingMappings)}\n data={getContentPermissionsTableData(yearGroups.data, ratings.data)}\n theme={theme}\n />\n ) : <PartialContentPermissionsTable />}\n\n <div className='d-flex justify-content-end pb-3'>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n </SettingsLayout>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Rating } from 'libs/shared/interfaces';\n\nexport const RatingRequests = {\n ratings(countryCode?: string): Flight.PublicRequest {\n return {\n url: '/api/domain/v2/me/ratings',\n publicUrl: UrlHelper.urlBuilder('/api/domain/v2/me/ratings', { countryCode }),\n key: 'ratings',\n // v2/me/ratings doesn't support `query={orderby:value}`. Adding this due to time constraints\n formatData: (ratings: Rating[]) => {\n return ratings.sort((a, b) => a.value - b.value);\n }\n };\n }\n};"],"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","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children","PartialRow","PartialHeader","PartialContentPermissionsTable","LanguageService","STAFF_YEAR_GROUP_ID","getContentPermissionsTableColumns","getSelections","setSelections","yearGroups","Header","id","accessor","Cell","yearGroup","value","ratings","isStaff","ratingsList","RatingRangeSelector","selections","onSelectRange","range","ArrayHelper","disabled","isDisabled","getButtonClasses","rating","isActive","isHovering","isRatingValid","activeClass","VideoDetailsHelper","Tooltip","spanHack","getContentPermissionsTableData","rows","code","staffYearGroup","push","SaveButton","SpinnerButton","showSpinner","variant","Text","phrase","theme","table","header","headerCell","row","cell","ContentPermissionsView","setShowSpinner","isUpgrading","config","ConfigRequests","currentUser","UserRequests","RatingRequests","data","CustomerRequests","customerId","initialYearGroupRatingMappings","setInitialYearGroupRatingMappings","draftYearGroupRatingMappings","setDraftYearGroupRatingMappings","isContentPermissionsValid","setIsContentPermissionsValid","dispatch","alerts","useSetPageMetadata","hasCompleted","yearGroupRatingMappings","every","index","prevYearGroup","hasChanged","ObjectHelper","onSave","changes","filter","mapping","find","y","request","onSuccess","onError","success","error","dataLoaded","href","ArticleHelper","onlineUrl","role","url","UrlHelper","ExternalLink","newTab","Table","columns","r","selectedYearGroup","maxRating","currentVal","countryCode","publicUrl","formatData","sort","a","b"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2182],{53364:(e,t,n)=>{n.d(t,{b:()=>s});var a=n(32735),r=n(86664);const i={idpButton:"FDoJA",idpImage:"bjN_j",divider:"FfyN0"};var l=[{name:"ClassLink",logoUrl:"https://img.clickviewapp.com/v2/logos/ZA2ew5",url:"/challenge?idp=classlink"},{name:"Clever",logoUrl:"https://img.clickviewapp.com/v2/logos/LqlKgd",url:"/challenge?idp=clever"},{name:"Google",logoUrl:"https://img.clickviewapp.com/v2/logos/l5x0jL",url:"/challenge?idp=google"},{name:"Microsoft",logoUrl:"https://img.clickviewapp.com/v2/logos/xAxGPP",url:"/challenge?idp=microsoft"}],c=[];function o(e){var t=e.idp,n=e.last;return a.createElement("button",{className:"btn btn-lg btn-outline-dark w-100 ".concat(n?"":"mb-3"," ").concat(i.idpButton),onClick:function(){if(e.onClick)e.onClick(t);else{var n=window.location.pathname+window.location.search;window.location.href=t.url+"&redirectUrl="+encodeURIComponent(n)+"&attribution="+encodeURIComponent(e.attribution)}}},t.logoUrl&&a.createElement("img",{src:t.logoUrl,className:i.idpImage}),"Continue with ",t.name)}function s(e){var t,n,s="idps"in e?e.idps:null;return!(null==s?void 0:s.length)&&"geoLocation"in e&&(s=[].concat(c),r.I.isCountryCodeUS(null===(t=e.geoLocation)||void 0===t?void 0:t.countryCode)&&(n=s).unshift.apply(n,l)),s.length?a.createElement("div",{className:"".concat(e.className?e.className:"")},a.createElement("div",{className:"my-3 border-bottom position-relative ".concat(i.divider)}),s.map((function(t,n){return a.createElement(o,{key:n,idp:t,onClick:"onClick"in e?e.onClick:null,attribution:"attribution"in e?e.attribution:null})}))):a.createElement(a.Fragment,null)}},48015:(e,t,n)=>{n.d(t,{M:()=>c});var a=n(39202),r=n(20354),i=n(39151),l={countryCode:"us",isFallback:!0};function c(){var e,t,n=r.a.useBasicFetch(i.L.geoLocation()),c=null===(t=null===(e=a.Ab.GetQuery())||void 0===e?void 0:e.countryCode)||void 0===t?void 0:t.toLowerCase();return c?{countryCode:c}:n.hasCompleted&&!n.data?l:n.data}},19623:(e,t,n)=>{n.d(t,{P:()=>g});var a=n(32735),r=n(81886),i=n(23481),l=n(53364),c=n(98027),o=n(36848),s=n(83345),u=n(14070),d=n(97291),m="launchpad.signInButtons",p=i.T.encloseNamespace(m);function g(e){a.useEffect((function(){e.skipPrompt&&r.Q.Ab.PageLoad(r.Q.C$.getHref(t))}),[]);var t=function(){var t=r.Q.Ab.GetQuery(),n={};if(e.customerId&&(n.customerId=e.customerId,delete t.customerId),e.skipPrompt&&delete t.skipPrompt,e.redirectUrl)n.redirectUrl=e.redirectUrl;else{var a=r.Q.Ab.SerializeQueryParams(t);n.redirectUrl=r.Q.Ab.GetCurrentPath()+(a?"?"+a:"")}return e.showSignUp&&(n.showSignUp=!0),{application:d.O.DEFAULT,action:u.e.Default.CHALLENGE,params:n}}();return a.createElement(a.Fragment,null,a.createElement(o.F,{className:"btn btn-lg btn-dark w-100 mt-4",appLink:t},a.createElement(s.x,{namespace:m,phrase:e.pageAppLinkString?"signInToWatch":"signIn"})),e.showJoinCode?a.createElement(o.F,{className:"btn btn-link info-link btn-lg w-100 mt-2",appLink:{application:d.O.LAUNCHPAD,action:u.e.Launchpad.JOIN_CLASSROOM_PROMPT}},p("enterCode")):a.createElement(a.Fragment,null,a.createElement(o.F,{className:"btn btn-lg btn-outline-dark w-100 mt-3",appLink:{application:d.O.LAUNCHPAD,action:u.e.SignUp.SIGN_UP,params:{pageAppLinkString:e.pageAppLinkString}}},p("signUp")),a.createElement(l.b,{geoLocation:e.geoLocation,attribution:(0,c.w)()})))}},92182:(e,t,n)=>{n.r(t),n.d(t,{ShareLinkSignInView:()=>h});var a=n(32735),r=n(23481),i=n(65858),l=n(64249),c=n(2786),o=n(11882),s=n(4594),u=n(48015),d=n(83421),m=n(7179),p=n(19623),g=n(75608),f=n(408);const b={logo:"Nbzoq",container:"hKyDn"};var v="launchpad.shareLinkSignIn";function h(e){var t=e.shareId,n=e.redirectUrl,h=e.customerId,y=(0,g.a)(t),k=(0,m.P)(function(e,t){return{id:null==t?void 0:t.id,app:(0,m.e)(null==t?void 0:t.typeId),shareId:e}}(t,y),i.LZ.Launchpad),E=k.deepLink,I=k.showDeepLink,C=k.onClickDeepLink,w=(0,f.B)().trialAppLinkString,L=(0,u.M)();return y?a.createElement(d.Z,{title:y.name,imageUrl:l.I.getImageUrl(y),objectType:y.typeId,links:[{text:r.T.getPhrase(v,"openInApp"),url:E,hide:!I,onClick:C}]},a.createElement("div",{className:"".concat(b.container," m-auto")},a.createElement("div",{className:"".concat(b.logo," mb-4 mx-auto")},a.createElement(c.$S,null)),!!y.name&&a.createElement("h1",{className:"h3"},y.typeId===s.E.Video&&a.createElement(o.$,{type:"series",video:y,analyticsOptions:{},size:"sm"}),y.name),"description"in y&&a.createElement("p",{className:"mb-0 clamp-3"},y.description),a.createElement(p.P,{geoLocation:L,customerId:h,redirectUrl:n,skipPrompt:!1,showJoinCode:!1,pageAppLinkString:w,showSignUp:!0}))):a.createElement(a.Fragment,null)}},75608:(e,t,n)=>{n.d(t,{a:()=>p});var a=n(20354),r=n(30439),i=n(4594),l=n(21750),c=n(43012),o=n(20768),s=n(5112),u=n(60011),d=n(31949),m=n(1575);function p(e){var t=a.a.useBasicFetch(d.N.currentUser()),n=a.a.useBasicFetch(r.o.getShareObject(e)),p=function(){if(!n.data||!t.data)return null;switch(n.data.objectTypeId){case i.E.Video:return m.R.publicVideo(n.data.objectId,e);case i.E.Clip:return c.e.publicClip(n.data.objectId,e);case i.E.Interactive:return o.b.publicInteractiveMetadata(n.data.objectId,e);case i.E.Playlist:return s.C.getSharedPlaylist(n.data.objectId,e);case i.E.Subject:return l.x.classification(n.data.objectId,t.data.id);case i.E.Series:return u.J.sharedSeries(n.data.objectId,e)}}();return a.a.useBasicFetch(p).data}},408:(e,t,n)=>{n.d(t,{B:()=>l});var a=n(2948),r=n(86702);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(){var e,t,n=(e=(0,a.D)(r.y.OPEN_IN_APP_DATA),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(c.push(a.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(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)?i(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.")}())[0];return{trialAppLinkString:function(){if(n&&["videos","clips","series","playlists","topics","interactives"].includes(n.app)){var e=n.id;switch(n.app){case"videos":return"video:".concat(e);case"playlists":return"playlist:".concat(e);case"series":return"series:".concat(e);case"topics":return"topic:".concat(e);case"interactives":return"interactive:".concat(e);case"clips":return"clip:".concat(e)}}}()}}},83421:(e,t,n)=>{n.d(t,{H:()=>d,Z:()=>p});var a=n(32735),r=n(54610),i=n(4594),l=n(67453),c=n(99742);const o={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(c.push(a.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(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)?u(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 u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d=[{bgUrl:c.W.LaunchPad.BG_1},{bgUrl:c.W.LaunchPad.BG_2},{bgUrl:c.W.LaunchPad.BG_3},{bgUrl:c.W.LaunchPad.BG_4},{bgUrl:c.W.LaunchPad.BG_5}];function m(e){switch(e){case i.E.Video:case i.E.Interactive:case i.E.Clip:return o.thumbnail;case i.E.Subject:case i.E.Playlist:return o.cover;case i.E.Series:return o.tallposter;default:return""}}function p(e){var t,n=s(a.useState(!1),2),i=n[0],c=n[1],u=s(a.useState(""),2),p=u[0],g=u[1],f=s(a.useState(""),2),b=f[0],v=f[1],h=l.j.createUrl(e.imageUrl,{size:r.h2.Large}),y=d;return a.useEffect((function(){if(!h&&y&&0!==y.length){var e,t=(e=y)[Math.floor(Math.random()*e.length)];t.bgUrl&&g(t.bgUrl),t.textUrl&&v(t.textUrl)}}),[]),a.useEffect((function(){if(h){var e=new Image;return e.onload=function(){return c(!0)},e.src=h,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(o.left," bg-light"),style:{backgroundImage:"url('".concat(p,"')")}},b&&a.createElement("div",{className:o.leftTextImage,style:{backgroundImage:"url('".concat(b,"')")}}),i&&a.createElement(a.Fragment,null,a.createElement("div",{className:o.blur,style:{backgroundImage:"url('".concat(h,"')")}}),a.createElement("div",{className:"".concat(o.imageContainer," ").concat(m(e.objectType))},a.createElement("div",{className:o.imagePosition},a.createElement("img",{className:o.image,src:h,alt:e.title}))))),a.createElement("div",{className:"".concat(o.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(o.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?a.createElement(a.Fragment,{key:t}):a.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
+ //# sourceMappingURL=2182-a5652609bb-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2182-a5652609bb-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/global-idps.scss","file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/GlobalIdps.tsx","file:///app/packages/libs/shared/src/hooks/useGeoLocation.ts","file:///app/packages/projects/lite/src/apps/launchpad/components/sign-in-buttons/SignInButtons.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/share-link-sign-in/share-link-sign-in.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/share-link-sign-in/ShareLinkSignInView.tsx","file:///app/packages/projects/lite/src/apps/share/hooks/useFetchSharedResource.ts","file:///app/packages/projects/lite/src/apps/sign-up/hooks/useTrialAppLink.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"idpButton\":\"FDoJA\",\"idpImage\":\"bjN_j\",\"divider\":\"FfyN0\"};","import React from 'react';\n\nimport { LocalityHelper } from 'libs/shared/apps/sign-up/helpers/LocalityHelper';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nimport styles from './global-idps.scss';\n\nconst US_ONLY_IDPS: IdentityProvider[] = [\n {\n name: 'ClassLink',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5',\n url: '/challenge?idp=classlink'\n },\n {\n name: 'Clever',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd',\n url: '/challenge?idp=clever'\n },\n {\n name: 'Google',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL',\n url: '/challenge?idp=google'\n },\n {\n name: 'Microsoft',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP',\n url: '/challenge?idp=microsoft'\n }\n];\n\nconst GLOBAL_IDPS: IdentityProvider[] = [];\n\ninterface GlobalIdpButtonProps {\n idp: IdentityProvider;\n /**\n * Because rendering globalIdps is conditional. We have a \"Don't have an account\" link at the bottom\n * which uses margin top. So the last item in this view must not have a margin bottom. - Sha\n */\n last?: boolean;\n onClick?: (idp: IdentityProvider) => void;\n attribution: string;\n}\n\nfunction GlobalIdpButton(props: GlobalIdpButtonProps): React.ReactElement {\n const {\n idp,\n last\n } = props;\n\n function onClick(): void {\n if (props.onClick) {\n props.onClick(idp);\n return;\n }\n\n const currentPathAndQuery = window.location.pathname + window.location.search;\n\n /**\n * Intentionally not using LocationUtils as to not bring a large number of dependencies into Auth - Sha\n */\n window.location.href = idp.url\n + '&redirectUrl=' + encodeURIComponent(currentPathAndQuery)\n + '&attribution=' + encodeURIComponent(props.attribution);\n }\n\n return (\n <button\n className={`btn btn-lg btn-outline-dark w-100 ${last ? '' : 'mb-3'} ${styles.idpButton}`}\n onClick={onClick}\n >\n {idp.logoUrl && <img src={idp.logoUrl} className={styles.idpImage} />}\n Continue with {idp.name}\n </button>\n );\n}\n\ninterface AuthIdpProps {\n idps: IdentityProvider[];\n onClick: (idp: IdentityProvider) => void;\n className?: string;\n}\n\ninterface LiteIdpProps {\n geoLocation: GeoLocation;\n className?: string;\n attribution: string;\n}\n\ntype GlobalIdpsProps = AuthIdpProps | LiteIdpProps\n\nexport function GlobalIdps(props: GlobalIdpsProps): JSX.Element {\n let idps = 'idps' in props ? props.idps : null;\n\n if (!idps?.length && 'geoLocation' in props) {\n idps = [...GLOBAL_IDPS];\n\n if (LocalityHelper.isCountryCodeUS(props.geoLocation?.countryCode))\n idps.unshift(...US_ONLY_IDPS);\n }\n\n if (!idps.length)\n return <></>;\n\n return (\n <div className={`${props.className ? props.className : ''}`}>\n <div className={`my-3 border-bottom position-relative ${styles.divider}`}></div>\n {idps.map((p, i) => (\n <GlobalIdpButton\n key={i}\n idp={p}\n onClick={'onClick' in props ? props.onClick : null}\n attribution={'attribution' in props ? props.attribution : null}\n />\n ))}\n </div>\n );\n}","import { LocationUtils } from 'libs/common/backbone/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nconst FALLBACK_COUNTRY: GeoLocation = {\n countryCode: 'us',\n isFallback: true\n};\n\nexport function useGeoLocation(): GeoLocation {\n const geoLocation = Flight.useBasicFetch<GeoLocation>(ConfigRequests.geoLocation());\n\n const countryCode = LocationUtils.GetQuery()?.countryCode?.toLowerCase();\n \n if (countryCode)\n return { countryCode };\n\n if (geoLocation.hasCompleted && !geoLocation.data)\n return FALLBACK_COUNTRY;\n\n return geoLocation.data;\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { GlobalIdps } from 'libs/shared/apps/sign-up/components/general/global-idps/GlobalIdps';\nimport { getLiteAttributionForAuth } from 'libs/shared/apps/sign-up/utils/getLiteAttributionForAuth';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'launchpad.signInButtons';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface SignInButtonsProps {\n geoLocation: GeoLocation;\n customerId: string;\n skipPrompt: boolean;\n showJoinCode: boolean;\n redirectUrl: string;\n pageAppLinkString: string;\n showSignUp: boolean;\n}\n\nexport function SignInButtons(props: SignInButtonsProps): JSX.Element {\n React.useEffect(() => {\n if (!props.skipPrompt)\n return;\n\n Core.LocationUtils.PageLoad(Core.AppLinkHelper.getHref(appLink));\n }, []);\n\n function getAppLink(): Core.AppLink {\n const currentQuery = Core.LocationUtils.GetQuery();\n const params: HashObject = {};\n\n /**\n * Add customerId to the login url and remove it from the redirect url\n */\n if (props.customerId) {\n params.customerId = props.customerId;\n delete currentQuery.customerId;\n }\n\n /**\n * Remove skip prompt from the return url\n */\n if (props.skipPrompt)\n delete currentQuery.skipPrompt;\n\n if (props.redirectUrl) {\n params.redirectUrl = props.redirectUrl;\n } else {\n const serializedQuery = Core.LocationUtils.SerializeQueryParams(currentQuery);\n params.redirectUrl = Core.LocationUtils.GetCurrentPath() + (serializedQuery ? ('?' + serializedQuery) : '');\n }\n\n if (props.showSignUp)\n params.showSignUp = true;\n\n return {\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params\n };\n }\n\n const appLink = getAppLink();\n\n return (\n <>\n <AppLink\n className='btn btn-lg btn-dark w-100 mt-4'\n appLink={appLink}\n >\n <Text namespace={namespace} phrase={props.pageAppLinkString ? 'signInToWatch' : 'signIn'} />\n </AppLink>\n {props.showJoinCode ?\n <AppLink\n className='btn btn-link info-link btn-lg w-100 mt-2'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.Launchpad.JOIN_CLASSROOM_PROMPT\n }}\n >\n {getPhrase('enterCode')}\n </AppLink> :\n <>\n <AppLink\n className='btn btn-lg btn-outline-dark w-100 mt-3'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.SignUp.SIGN_UP,\n params: { pageAppLinkString: props.pageAppLinkString }\n }}\n >\n {getPhrase('signUp')}\n </AppLink>\n <GlobalIdps geoLocation={props.geoLocation} attribution={getLiteAttributionForAuth()} />\n </>\n }\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"Nbzoq\",\"container\":\"hKyDn\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { DeepLinkViewModel, mapMasterTypeToDeepLinkApp, useDeepLinks } from 'shared/hooks/useDeepLinks';\n\nimport { SignInButtons } from 'apps/launchpad/components/sign-in-buttons/SignInButtons';\nimport { useFetchSharedResource } from 'apps/share/hooks/useFetchSharedResource';\nimport { useTrialAppLink } from 'apps/sign-up/hooks/useTrialAppLink';\n\nimport styles from './share-link-sign-in.scss';\n\nconst namespace = 'launchpad.shareLinkSignIn';\n\ninterface ShareLinkSignInProps {\n shareId: string;\n redirectUrl: string;\n customerId?: string;\n}\n\nfunction getInitialDeepLink(shareId: string, sharedResource?: SharableEntity): DeepLinkViewModel {\n return {\n id: sharedResource?.id,\n app: mapMasterTypeToDeepLinkApp(sharedResource?.typeId),\n shareId\n };\n}\n\nexport function ShareLinkSignInView(props: ShareLinkSignInProps): React.ReactElement {\n const { shareId, redirectUrl, customerId } = props;\n const sharedResource = useFetchSharedResource<SharableEntity>(shareId);\n const {\n deepLink,\n showDeepLink,\n onClickDeepLink\n } = useDeepLinks(getInitialDeepLink(shareId, sharedResource), LocationContext.Launchpad);\n const { trialAppLinkString } = useTrialAppLink();\n\n const geoLocation = useGeoLocation();\n\n if (!sharedResource)\n return <></>;\n\n return (\n <Launchpad\n title={sharedResource.name}\n imageUrl={ShareViewHelper.getImageUrl(sharedResource)}\n objectType={sharedResource.typeId}\n links={[{\n text: LanguageService.getPhrase(namespace, 'openInApp'),\n url: deepLink,\n hide: !showDeepLink,\n onClick: onClickDeepLink\n }]}\n >\n <div className={`${styles.container} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!!sharedResource.name &&\n <h1 className='h3'>\n {sharedResource.typeId === MasterType.Video &&\n <VideoSubText type='series' video={sharedResource as Video} analyticsOptions={{}} size='sm' />}\n {sharedResource.name}\n </h1>\n }\n {'description' in sharedResource &&\n <p className='mb-0 clamp-3'>{sharedResource.description}</p>\n }\n <SignInButtons\n geoLocation={geoLocation}\n customerId={customerId}\n redirectUrl={redirectUrl}\n skipPrompt={false}\n showJoinCode={false}\n pageAppLinkString={trialAppLinkString}\n showSignUp={true}\n />\n </div>\n </Launchpad>\n );\n}","import { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { CurrentUser, ShareLink } from 'libs/shared/interfaces';\n\nexport function useFetchSharedResource<T>(shareId: string): T {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(shareId));\n\n function getResourceRequest(): Flight.Request {\n if (!shareLink.data || !currentUser.data)\n return null;\n\n switch (shareLink.data.objectTypeId) {\n case MasterType.Video:\n return VideoRequests.publicVideo(shareLink.data.objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.publicClip(shareLink.data.objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.publicInteractiveMetadata(shareLink.data.objectId, shareId);\n case MasterType.Playlist:\n return PlaylistRequests.getSharedPlaylist(shareLink.data.objectId, shareId);\n case MasterType.Subject:\n return ClassificationRequests.classification(shareLink.data.objectId, currentUser.data.id);\n case MasterType.Series:\n return SeriesRequests.sharedSeries(shareLink.data.objectId, shareId);\n }\n }\n\n const resourceRequest = getResourceRequest();\n const resource = Flight.useBasicFetch<T>(resourceRequest);\n\n return resource.data;\n}","import { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { DeepLinkViewModel } from 'shared/hooks/useDeepLinks';\n\nexport function useTrialAppLink() {\n const [viewModel] = useViewModel<DeepLinkViewModel>(ViewModelKeys.OPEN_IN_APP_DATA);\n\n function getTrialAppLinkString() {\n if (!viewModel) {\n return;\n }\n const validApps = [ 'videos', 'clips', 'series', 'playlists', 'topics', 'interactives' ];\n if (!validApps.includes(viewModel.app)) {\n return;\n }\n\n const id = viewModel.id;\n switch (viewModel.app) {\n case 'videos':\n return `video:${id}`;\n case 'playlists':\n return `playlist:${id}`;\n case 'series':\n return `series:${id}`;\n case 'topics':\n return `topic:${id}`;\n case 'interactives':\n return `interactive:${id}`;\n case 'clips':\n return `clip:${id}`;\n }\n }\n\n return {\n trialAppLinkString: getTrialAppLinkString()\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n {\n bgUrl: ImageUrls.LaunchPad.BG_1\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_2\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_3\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_4\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_5\n }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n {\n bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png'\n }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n textUrl?: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n const [ textImage, setTextImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n\n if (image.textUrl) {\n setTextImage(image.textUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div className={`${styles.left} bg-light`} style={{ backgroundImage: `url('${image}')` }}>\n { textImage && (\n <div className={styles.leftTextImage} style={{ backgroundImage: `url('${textImage}')` }} />\n )}\n \n {showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["US_ONLY_IDPS","name","logoUrl","url","GLOBAL_IDPS","GlobalIdpButton","props","idp","last","className","onClick","currentPathAndQuery","window","location","pathname","search","href","encodeURIComponent","attribution","src","GlobalIdps","idps","length","LocalityHelper","geoLocation","countryCode","unshift","map","p","i","key","FALLBACK_COUNTRY","isFallback","useGeoLocation","toLowerCase","hasCompleted","data","namespace","getPhrase","SignInButtons","skipPrompt","appLink","currentQuery","params","customerId","redirectUrl","serializedQuery","showSignUp","application","action","getAppLink","phrase","pageAppLinkString","showJoinCode","ShareLinkSignInView","shareId","sharedResource","useFetchSharedResource","useDeepLinks","id","app","typeId","getInitialDeepLink","deepLink","showDeepLink","onClickDeepLink","trialAppLinkString","useTrialAppLink","Launchpad","title","imageUrl","ShareViewHelper","objectType","links","text","LanguageService","hide","ClickViewLogo","MasterType","VideoSubText","type","video","analyticsOptions","size","description","currentUser","shareLink","resourceRequest","objectTypeId","objectId","getResourceRequest","viewModel","includes","getTrialAppLinkString","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","ImageUrls","mapObjectTypeToImageClass","showImage","setShowImage","image","setImage","textImage","setTextImage","ImageHelper","IMAGE_URLS","urlLists","Math","floor","random","textUrl","img","Image","onload","leftComponent","style","backgroundImage","alt","link","children"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2208],{51497:(e,r,t)=>{t.d(r,{F:()=>c});var n=t(32735),a=t(68050),o=t(69111),l=t(74472),i=t(8612),s=t(83345),u=t(32045);function c(e){return n.createElement(s.D.Provider,{value:"userManager.bulkUserActionsYearGroupRolloverActionDetails"},n.createElement(a.Z,{className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(s.x,{phrase:"yearGroupsList"})),n.createElement(o.Z,{xs:8},n.createElement(s.x,{phrase:"rolloverTo"}))),e.yearGroups.map((function(r,t){var c,d,m=null!==(c=e.countsByYearGroup[r.value])&&void 0!==c?c:0,f=r.value>=(null===(d=e.graduatingYearGroup)||void 0===d?void 0:d.value),p=e.yearGroups[t+1],y={status:u.w.Disabled,id:"fake-deactivated-user"};return n.createElement(a.Z,{key:r.value,className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(i.G,null,r.name),n.createElement("div",null,n.createElement(s.x,{phrase:"count",options:{smartCount:m}}))),n.createElement(o.Z,{xs:8},f?n.createElement(l.b,{user:y,className:"d-inline-block"}):n.createElement(i.G,null,null==p?void 0:p.name)))})))}},8612:(e,r,t)=>{t.d(r,{G:()=>a});var n=t(32735);function a(e){return n.createElement("span",{className:"".concat(e.className," rounded-pill px-2 text-nowrap bg-white border border-dark")},e.children)}},84566:(e,r,t)=>{t.d(r,{S:()=>c});var n=t(20354),a=t(2948),o=t(38143),l=t(31949);function i(e){return function(e){if(Array.isArray(e))return u(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.")}()}function s(e,r){if(e){if("string"==typeof e)return u(e,r);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)?u(e,r):void 0}}function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){var r,t,u=(r=(0,a.D)(o.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(r,t)||s(r,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.")}())[0],c=n.a.useBasicFetch(l.N.currentUser());return n.a.useBasicFetch((null==u?void 0:u.userIdMap)&&c.data&&e.getSearchAggregation({userId:c.data.id,customerId:c.data.customerId,userType:e.userType,queryParams:u.params,userIds:i(u.userIdMap.keys()),field:e.field})).data}},99705:(e,r,t)=>{var n,a;t.d(r,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},276:(e,r,t)=>{t.r(r),t.d(r,{BulkUserActionsYearGroupRolloverConfirmationView:()=>k});var n=t(32735),a=t(70680),o=t(81886),l=t(20354),i=t(2948),s=t(3044),u=t(149),c=t(83345),d=t(36033),m=t(38143),f=t(32045),p=t(51497);const y={infoContainer:"rTJxq"};function v(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var g="userManager.bulkUserActionsYearGroupRolloverConfirmation";function h(e){var r,t,a=(r=(0,i.D)(m.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(r,t)||function(e,r){if(e){if("string"==typeof e)return v(e,r);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)?v(e,r):void 0}}(r,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.")}())[0];return u.b.useSetWizardConfirmationCallback(e.onClickConfirm),n.createElement(n.Fragment,null,n.createElement(d.s,null,n.createElement("p",{className:"fw-semibold"},n.createElement(c.x,{namespace:g,phrase:"heading"})),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.x,{namespace:g,phrase:"info"})),n.createElement("li",null,n.createElement(c.x,{namespace:g,phrase:"ssoWarning"})," ",!!e.editSsoHelpArticleUrl&&n.createElement("a",{href:e.editSsoHelpArticleUrl,target:"_blank",className:"info-link"},n.createElement(c.x,{namespace:g,phrase:"ssoWarningArticle"}))),n.createElement("li",{className:"text-danger"},n.createElement(c.x,{namespace:g,phrase:"warning",options:{yearGroupList:function(){var r=null==a?void 0:a.yearGroup;if(!r)return"";var t=e.yearGroups.filter((function(e){return e.value>=r.value}));if(1===t.length)return r.name;if(2===t.length)return"".concat(t[0].name," and ").concat(t[1].name);var n=t.splice(t.length-1);return"".concat(t.map((function(e){return e.name})).join(", "),", and ").concat(n[0].name)}()}}))),n.createElement("div",{className:"".concat(y.infoContainer," rounded-3 p-2")},n.createElement(p.F,{yearGroups:e.yearGroups,graduatingYearGroup:null==a?void 0:a.yearGroup,countsByYearGroup:e.countsByYearGroup}))),n.createElement(s.Q,{users:e.users,imageCdnUrl:e.imageCdnUrl,statuses:[f.w.Active,f.w.Inactive],hasMore:e.hasMoreUsers,isFetching:e.isFetchingUsers,fetchNext:e.fetchNextUserPage,userType:e.userType,userCount:e.userCount}))}var b=t(58703),E=t(84566),A=t(70197),S=t(99705),C=t(39151),w=t(31949),I=t(12778),T=t(29613),U=t(47288),G=t(88323),x=t(18087);function N(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function k(e){var r,t,s,c=(0,G.h)(e.userType),d=c.users,f=c.count,p=c.isFetching,y=c.hasMore,v=c.fetchNext,g=(t=(0,i.D)(m.g.BULK_USER_ACTIONS),s=1,function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(t,s)||function(e,r){if(e){if("string"==typeof e)return N(e,r);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)?N(e,r):void 0}}(t,s)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],k=l.a.useBasicFetch(C.L.config()),j=l.a.useBasicFetch(w.N.currentUser()),F=l.a.useBasicFetch(!!j.data&&U.N.yearGroups(j.data.customerId)),M=(0,E.S)({userType:e.userType,field:A.q.YearGroupValues,getSearchAggregation:U.N.getSearchAggregation}),O=(0,x.Y)(e.userType),B=(0,a.I0)(),L=u.b.useCreateJobErrorAlert();function R(r){o.Q.C$.trigger(Object.assign(Object.assign({},O.bulkActionsStatus.polling),{params:{userType:e.userType,jobId:r.id}}))}var Y=!!F.data&&!!k.data&&!!M;return n.createElement(b.d,{appLinks:O,userType:e.userType,users:d,currentStep:"confirmation",userCount:f,loaded:Y},Y&&n.createElement(h,{users:d,imageCdnUrl:null===(r=k.data)||void 0===r?void 0:r.imageCdnUrl,hasMoreUsers:y,isFetchingUsers:p,fetchNextUserPage:v,userType:e.userType,onClickConfirm:function(){if(g){var r=u.b.getCreateJobRequestData(g,j.data.customerId,e.userType);l.a.fetch(B,T.q.createJob(r,R,L))}},userCount:f,yearGroups:F.data,countsByYearGroup:M,editSsoHelpArticleUrl:I.o.getLiteArticle(S.b.EditSsoAccounts)}))}},68050:(e,r,t)=>{t.d(r,{Z:()=>u});var n=t(95685),a=t.n(n),o=t(32735),l=t(46304),i=t(74512);const s=o.forwardRef((({bsPrefix:e,className:r,as:t="div",...n},o)=>{const s=(0,l.vE)(e,"row"),u=(0,l.pi)(),c=(0,l.zG)(),d=`${s}-cols`,m=[];return u.forEach((e=>{const r=n[e];let t;delete n[e],null!=r&&"object"==typeof r?({cols:t}=r):t=r;const a=e!==c?`-${e}`:"";null!=t&&m.push(`${d}${a}-${t}`)})),(0,i.jsx)(t,{ref:o,...n,className:a()(r,s,...m)})}));s.displayName="Row";const u=s}}]);
2
- //# sourceMappingURL=2208-a9d679d40c-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2208],{51497:(e,r,t)=>{t.d(r,{F:()=>c});var n=t(32735),a=t(68050),o=t(69111),l=t(74472),i=t(8612),s=t(83345),u=t(32045);function c(e){return n.createElement(s.D.Provider,{value:"userManager.bulkUserActionsYearGroupRolloverActionDetails"},n.createElement(a.Z,{className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(s.x,{phrase:"yearGroupsList"})),n.createElement(o.Z,{xs:8},n.createElement(s.x,{phrase:"rolloverTo"}))),e.yearGroups.map((function(r,t){var c,d,m=null!==(c=e.countsByYearGroup[r.value])&&void 0!==c?c:0,f=r.value>=(null===(d=e.graduatingYearGroup)||void 0===d?void 0:d.value),p=e.yearGroups[t+1],y={status:u.w.Disabled,id:"fake-deactivated-user"};return n.createElement(a.Z,{key:r.value,className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(i.G,null,r.name),n.createElement("div",null,n.createElement(s.x,{phrase:"count",options:{smartCount:m}}))),n.createElement(o.Z,{xs:8},f?n.createElement(l.b,{user:y,className:"d-inline-block"}):n.createElement(i.G,null,null==p?void 0:p.name)))})))}},8612:(e,r,t)=>{t.d(r,{G:()=>a});var n=t(32735);function a(e){return n.createElement("span",{className:"".concat(e.className," rounded-pill px-2 text-nowrap bg-white border border-dark")},e.children)}},84566:(e,r,t)=>{t.d(r,{S:()=>c});var n=t(20354),a=t(2948),o=t(38143),l=t(31949);function i(e){return function(e){if(Array.isArray(e))return u(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.")}()}function s(e,r){if(e){if("string"==typeof e)return u(e,r);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)?u(e,r):void 0}}function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){var r,t,u=(r=(0,a.D)(o.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(r,t)||s(r,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.")}())[0],c=n.a.useBasicFetch(l.N.currentUser());return n.a.useBasicFetch((null==u?void 0:u.userIdMap)&&c.data&&e.getSearchAggregation({userId:c.data.id,customerId:c.data.customerId,userType:e.userType,queryParams:u.params,userIds:i(u.userIdMap.keys()),field:e.field})).data}},99705:(e,r,t)=>{var n,a;t.d(r,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},276:(e,r,t)=>{t.r(r),t.d(r,{BulkUserActionsYearGroupRolloverConfirmationView:()=>k});var n=t(32735),a=t(70680),o=t(81886),l=t(20354),i=t(2948),s=t(3044),u=t(149),c=t(83345),d=t(36033),m=t(38143),f=t(32045),p=t(51497);const y={infoContainer:"rTJxq"};function v(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var g="userManager.bulkUserActionsYearGroupRolloverConfirmation";function h(e){var r,t,a=(r=(0,i.D)(m.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(r,t)||function(e,r){if(e){if("string"==typeof e)return v(e,r);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)?v(e,r):void 0}}(r,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.")}())[0];return u.b.useSetWizardConfirmationCallback(e.onClickConfirm),n.createElement(n.Fragment,null,n.createElement(d.s,null,n.createElement("p",{className:"fw-semibold"},n.createElement(c.x,{namespace:g,phrase:"heading"})),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.x,{namespace:g,phrase:"info"})),n.createElement("li",null,n.createElement(c.x,{namespace:g,phrase:"ssoWarning"})," ",!!e.editSsoHelpArticleUrl&&n.createElement("a",{href:e.editSsoHelpArticleUrl,target:"_blank",className:"info-link"},n.createElement(c.x,{namespace:g,phrase:"ssoWarningArticle"}))),n.createElement("li",{className:"text-danger"},n.createElement(c.x,{namespace:g,phrase:"warning",options:{yearGroupList:function(){var r=null==a?void 0:a.yearGroup;if(!r)return"";var t=e.yearGroups.filter((function(e){return e.value>=r.value}));if(1===t.length)return r.name;if(2===t.length)return"".concat(t[0].name," and ").concat(t[1].name);var n=t.splice(t.length-1);return"".concat(t.map((function(e){return e.name})).join(", "),", and ").concat(n[0].name)}()}}))),n.createElement("div",{className:"".concat(y.infoContainer," rounded-3 p-2")},n.createElement(p.F,{yearGroups:e.yearGroups,graduatingYearGroup:null==a?void 0:a.yearGroup,countsByYearGroup:e.countsByYearGroup}))),n.createElement(s.Q,{users:e.users,imageCdnUrl:e.imageCdnUrl,statuses:[f.w.Active,f.w.Inactive],hasMore:e.hasMoreUsers,isFetching:e.isFetchingUsers,fetchNext:e.fetchNextUserPage,userType:e.userType,userCount:e.userCount}))}var b=t(58703),E=t(84566),A=t(70197),S=t(99705),C=t(39151),w=t(31949),I=t(12778),T=t(29613),U=t(47288),G=t(88323),x=t(18087);function N(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function k(e){var r,t,s,c=(0,G.h)(e.userType),d=c.users,f=c.count,p=c.isFetching,y=c.hasMore,v=c.fetchNext,g=(t=(0,i.D)(m.g.BULK_USER_ACTIONS),s=1,function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],s=!0,u=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(u)throw a}}return i}}(t,s)||function(e,r){if(e){if("string"==typeof e)return N(e,r);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)?N(e,r):void 0}}(t,s)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],k=l.a.useBasicFetch(C.L.config()),j=l.a.useBasicFetch(w.N.currentUser()),F=l.a.useBasicFetch(!!j.data&&U.N.yearGroups(j.data.customerId)),M=(0,E.S)({userType:e.userType,field:A.q.YearGroupValues,getSearchAggregation:U.N.getSearchAggregation}),O=(0,x.Y)(e.userType),B=(0,a.I0)(),L=u.b.useCreateJobErrorAlert();function R(r){o.Q.C$.trigger(Object.assign(Object.assign({},O.bulkActionsStatus.polling),{params:{userType:e.userType,jobId:r.id}}))}var Y=!!F.data&&!!k.data&&!!M;return n.createElement(b.d,{appLinks:O,userType:e.userType,users:d,currentStep:"confirmation",userCount:f,loaded:Y},Y&&n.createElement(h,{users:d,imageCdnUrl:null===(r=k.data)||void 0===r?void 0:r.imageCdnUrl,hasMoreUsers:y,isFetchingUsers:p,fetchNextUserPage:v,userType:e.userType,onClickConfirm:function(){if(g){var r=u.b.getCreateJobRequestData(g,j.data.customerId,e.userType);l.a.fetch(B,T.q.createJob(r,R,L))}},userCount:f,yearGroups:F.data,countsByYearGroup:M,editSsoHelpArticleUrl:I.o.getLiteArticle(S.b.EditSsoAccounts)}))}},68050:(e,r,t)=>{t.d(r,{Z:()=>u});var n=t(95685),a=t.n(n),o=t(32735),l=t(46304),i=t(74512);const s=o.forwardRef((({bsPrefix:e,className:r,as:t="div",...n},o)=>{const s=(0,l.vE)(e,"row"),u=(0,l.pi)(),c=(0,l.zG)(),d=`${s}-cols`,m=[];return u.forEach((e=>{const r=n[e];let t;delete n[e],null!=r&&"object"==typeof r?({cols:t}=r):t=r;const a=e!==c?`-${e}`:"";null!=t&&m.push(`${d}${a}-${t}`)})),(0,i.jsx)(t,{ref:o,...n,className:a()(r,s,...m)})}));s.displayName="Row";const u=s}}]);
2
+ //# sourceMappingURL=2208-5fed507ca8-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/2208-a9d679d40c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/white-pill/WhitePill.tsx","file:///app/packages/libs/shared/src/apps/user-manager/hooks/useFetchAggregation.ts","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/bulk-user-actions-year-group-rollover-confirmation.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmation.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmationView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { UserStatusBadge } from 'libs/shared/apps/user-manager/components/user-list-items/components/UserStatusBadge';\nimport { WhitePill } from 'libs/shared/apps/user-manager/components/white-pill/WhitePill';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface BulkUserActionsRolloverYearGroupInfoProps {\n yearGroups: YearGroup[];\n graduatingYearGroup: YearGroup;\n countsByYearGroup: SearchAggregation;\n}\n\nexport function BulkUserActionsRolloverYearGroupInfo(props: BulkUserActionsRolloverYearGroupInfoProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value='userManager.bulkUserActionsYearGroupRolloverActionDetails'>\n <Row className='mb-2'>\n <Col xs={4}><Text phrase='yearGroupsList' /></Col>\n <Col xs={8}><Text phrase='rolloverTo' /></Col>\n </Row>\n\n {props.yearGroups.map((yearGroup, i) => {\n const countForYearGroup = props.countsByYearGroup[yearGroup.value] ?? 0;\n\n const isGraduating = yearGroup.value >= props.graduatingYearGroup?.value;\n const nextYearGroup = props.yearGroups[i + 1];\n\n const fakeDeactivatedUser = {\n status: ObjectStatus.Disabled,\n id: 'fake-deactivated-user' // Required or else the \"That's me\" badge will show up\n };\n\n return (\n <Row key={yearGroup.value} className='mb-2'>\n <Col xs={4}>\n <WhitePill>\n {yearGroup.name}\n </WhitePill>\n <div><Text phrase='count' options={{ smartCount: countForYearGroup }} /></div>\n </Col>\n <Col xs={8}>\n {isGraduating\n ? (\n <UserStatusBadge user={fakeDeactivatedUser as User} className='d-inline-block' />\n ) : (\n <WhitePill>\n {nextYearGroup?.name}\n </WhitePill>\n )\n }\n </Col>\n </Row>\n );\n })}\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\ninterface WhitePillProps {\n className?: string;\n}\n\nexport function WhitePill(props: React.PropsWithChildren<WhitePillProps>): JSX.Element {\n return (\n <span className={`${props.className} rounded-pill px-2 text-nowrap bg-white border border-dark`}>\n {props.children}\n </span>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface UseFetchAggregationOptions {\n userType: UserGroup;\n field: AggregateSearchField;\n getSearchAggregation: (options: {\n userId: string,\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams,\n userIds: string[],\n field: AggregateSearchField\n }) => Flight.Request;\n}\n\nexport function useFetchAggregation<T = SearchAggregation>(options: UseFetchAggregationOptions): T {\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n // We need to check viewModel here in case a user refreshes the page\n // This needs to not error out so that the layout can redirect back to userman\n const aggregation = Flight.useBasicFetch<T>(\n viewModel?.userIdMap &&\n currentUser.data &&\n options.getSearchAggregation({\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n userType: options.userType,\n queryParams: viewModel.params,\n userIds: [...viewModel.userIdMap.keys()],\n field: options.field\n })\n );\n\n return aggregation.data;\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"infoContainer\":\"rTJxq\"};","import React from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsConfirmationUserList } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/confirmation/user-list/BulkUserActionsConfirmationUserList';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { WizardConfirmationHeader } from 'libs/shared/components/wizard/confirmation-header/WizardConfirmationHeader';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\nimport { BulkUserActionsRolloverYearGroupInfo } from '../../action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo';\n\nimport styles from './bulk-user-actions-year-group-rollover-confirmation.scss';\n\nconst namespace = 'userManager.bulkUserActionsYearGroupRolloverConfirmation';\n\ninterface BulkUserActionsYearGroupRolloverConfirmationProps {\n users: User[];\n imageCdnUrl: string;\n fetchNextUserPage: () => void;\n hasMoreUsers: boolean;\n isFetchingUsers: boolean;\n userType: UserGroup;\n onClickConfirm: () => void;\n userCount: number;\n yearGroups: YearGroup[];\n countsByYearGroup: SearchAggregation;\n editSsoHelpArticleUrl?: string;\n}\n\nexport function BulkUserActionsYearGroupRolloverConfirmation(\n props: BulkUserActionsYearGroupRolloverConfirmationProps\n): JSX.Element {\n const [viewModel] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n BulkUserActionsHelper.useSetWizardConfirmationCallback(props.onClickConfirm);\n\n function getYearGroupListString(): string {\n const graduatingYearGroup = viewModel?.yearGroup;\n\n if (!graduatingYearGroup)\n return '';\n\n const graduatingYearGroups = props.yearGroups.filter(yg => yg.value >= graduatingYearGroup.value);\n\n if (graduatingYearGroups.length === 1)\n return graduatingYearGroup.name;\n\n if (graduatingYearGroups.length === 2)\n return `${graduatingYearGroups[0].name} and ${graduatingYearGroups[1].name}`;\n\n const lastYearGroup = graduatingYearGroups.splice(graduatingYearGroups.length - 1);\n\n return `${graduatingYearGroups.map(yg => yg.name).join(', ')}, and ${lastYearGroup[0].name}`;\n }\n\n return (\n <>\n <WizardConfirmationHeader>\n <p className='fw-semibold'>\n <Text namespace={namespace} phrase='heading' />\n </p>\n\n <ul>\n <li>\n <Text namespace={namespace} phrase='info' />\n </li>\n <li>\n <Text namespace={namespace} phrase='ssoWarning' />&nbsp;\n {!!props.editSsoHelpArticleUrl && (\n <a href={props.editSsoHelpArticleUrl} target='_blank' className='info-link'>\n <Text namespace={namespace} phrase='ssoWarningArticle' />\n </a>\n )}\n </li>\n <li className='text-danger'>\n <Text\n namespace={namespace}\n phrase='warning'\n options={{ yearGroupList: getYearGroupListString() }}\n />\n </li>\n </ul>\n\n <div className={`${styles.infoContainer} rounded-3 p-2`}>\n <BulkUserActionsRolloverYearGroupInfo\n yearGroups={props.yearGroups}\n graduatingYearGroup={viewModel?.yearGroup}\n countsByYearGroup={props.countsByYearGroup}\n />\n </div>\n </WizardConfirmationHeader>\n\n <BulkUserActionsConfirmationUserList\n users={props.users}\n imageCdnUrl={props.imageCdnUrl}\n statuses={[ ObjectStatus.Active, ObjectStatus.Inactive ]}\n hasMore={props.hasMoreUsers}\n isFetching={props.isFetchingUsers}\n fetchNext={props.fetchNextUserPage}\n userType={props.userType}\n userCount={props.userCount}\n />\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsYearGroupRolloverConfirmation } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmation';\nimport { BulkUserActionsWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/layout/BulkUserActionsWizardLayout';\nimport { useFetchAggregation } from 'libs/shared/apps/user-manager/hooks/useFetchAggregation';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BatchJob, Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useBulkActionsUsersWrapper } from 'apps/user-manager/hooks/useBulkActionsUsersWrapper';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nexport function BulkUserActionsYearGroupRolloverConfirmationView(props: UserWizardParams): JSX.Element {\n const {\n users,\n count,\n isFetching,\n hasMore,\n fetchNext\n } = useBulkActionsUsersWrapper(props.userType);\n\n const [viewModel] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(!!currentUser.data &&\n UserManagerRequests.yearGroups(currentUser.data.customerId));\n\n const aggregation = useFetchAggregation({\n userType: props.userType,\n field: AggregateSearchField.YearGroupValues,\n getSearchAggregation: UserManagerRequests.getSearchAggregation\n });\n\n const appLinks = getUserManagerAppLinks(props.userType);\n\n const dispatch = useDispatch();\n\n const onCreateJobError = BulkUserActionsHelper.useCreateJobErrorAlert();\n function startBulkAction(): void {\n if (!viewModel)\n return;\n\n const data = BulkUserActionsHelper.getCreateJobRequestData(\n viewModel,\n currentUser.data.customerId,\n props.userType\n );\n\n Flight.fetch(dispatch, JobRequests.createJob(data, onCreateJob, onCreateJobError));\n }\n\n function onCreateJob(job: BatchJob): void {\n Core.AppLinkHelper.trigger({\n ...appLinks.bulkActionsStatus.polling,\n params: {\n userType: props.userType,\n jobId: job.id\n }\n });\n }\n\n const loaded = !!yearGroups.data && !!config.data && !!aggregation;\n\n return (\n <BulkUserActionsWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n users={users}\n currentStep='confirmation'\n userCount={count}\n loaded={loaded}\n >\n {loaded &&\n <BulkUserActionsYearGroupRolloverConfirmation\n users={users}\n imageCdnUrl={config.data?.imageCdnUrl}\n hasMoreUsers={hasMore}\n isFetchingUsers={isFetching}\n fetchNextUserPage={fetchNext}\n userType={props.userType}\n onClickConfirm={startBulkAction}\n userCount={count}\n yearGroups={yearGroups.data}\n countsByYearGroup={aggregation}\n editSsoHelpArticleUrl={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n />\n }\n </BulkUserActionsWizardLayout>\n );\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":["BulkUserActionsRolloverYearGroupInfo","props","value","className","xs","phrase","yearGroups","map","yearGroup","i","countForYearGroup","countsByYearGroup","isGraduating","graduatingYearGroup","nextYearGroup","fakeDeactivatedUser","status","id","key","name","options","smartCount","user","WhitePill","children","useFetchAggregation","viewModel","currentUser","userIdMap","data","getSearchAggregation","userId","customerId","userType","queryParams","params","userIds","keys","field","OnlineSupportArticle","LiteSupportArticle","namespace","BulkUserActionsYearGroupRolloverConfirmation","SharedViewModelKeys","BulkUserActionsHelper","onClickConfirm","WizardConfirmationHeader","Text","editSsoHelpArticleUrl","href","target","yearGroupList","graduatingYearGroups","filter","yg","length","lastYearGroup","splice","join","getYearGroupListString","BulkUserActionsConfirmationUserList","users","imageCdnUrl","statuses","ObjectStatus","hasMore","hasMoreUsers","isFetching","isFetchingUsers","fetchNext","fetchNextUserPage","userCount","BulkUserActionsYearGroupRolloverConfirmationView","useBulkActionsUsersWrapper","count","config","ConfigRequests","UserRequests","UserManagerRequests","aggregation","AggregateSearchField","appLinks","dispatch","onCreateJobError","onCreateJob","job","bulkActionsStatus","polling","jobId","loaded","BulkUserActionsWizardLayout","currentStep","JobRequests","ArticleHelper","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/2208-5fed507ca8-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/white-pill/WhitePill.tsx","file:///app/packages/libs/shared/src/apps/user-manager/hooks/useFetchAggregation.ts","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/bulk-user-actions-year-group-rollover-confirmation.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmation.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmationView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { UserStatusBadge } from 'libs/shared/apps/user-manager/components/user-list-items/components/UserStatusBadge';\nimport { WhitePill } from 'libs/shared/apps/user-manager/components/white-pill/WhitePill';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface BulkUserActionsRolloverYearGroupInfoProps {\n yearGroups: YearGroup[];\n graduatingYearGroup: YearGroup;\n countsByYearGroup: SearchAggregation;\n}\n\nexport function BulkUserActionsRolloverYearGroupInfo(props: BulkUserActionsRolloverYearGroupInfoProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value='userManager.bulkUserActionsYearGroupRolloverActionDetails'>\n <Row className='mb-2'>\n <Col xs={4}><Text phrase='yearGroupsList' /></Col>\n <Col xs={8}><Text phrase='rolloverTo' /></Col>\n </Row>\n\n {props.yearGroups.map((yearGroup, i) => {\n const countForYearGroup = props.countsByYearGroup[yearGroup.value] ?? 0;\n\n const isGraduating = yearGroup.value >= props.graduatingYearGroup?.value;\n const nextYearGroup = props.yearGroups[i + 1];\n\n const fakeDeactivatedUser = {\n status: ObjectStatus.Disabled,\n id: 'fake-deactivated-user' // Required or else the \"That's me\" badge will show up\n };\n\n return (\n <Row key={yearGroup.value} className='mb-2'>\n <Col xs={4}>\n <WhitePill>\n {yearGroup.name}\n </WhitePill>\n <div><Text phrase='count' options={{ smartCount: countForYearGroup }} /></div>\n </Col>\n <Col xs={8}>\n {isGraduating\n ? (\n <UserStatusBadge user={fakeDeactivatedUser as User} className='d-inline-block' />\n ) : (\n <WhitePill>\n {nextYearGroup?.name}\n </WhitePill>\n )\n }\n </Col>\n </Row>\n );\n })}\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\ninterface WhitePillProps {\n className?: string;\n}\n\nexport function WhitePill(props: React.PropsWithChildren<WhitePillProps>): JSX.Element {\n return (\n <span className={`${props.className} rounded-pill px-2 text-nowrap bg-white border border-dark`}>\n {props.children}\n </span>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface UseFetchAggregationOptions {\n userType: UserGroup;\n field: AggregateSearchField;\n getSearchAggregation: (options: {\n userId: string,\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams,\n userIds: string[],\n field: AggregateSearchField\n }) => Flight.Request;\n}\n\nexport function useFetchAggregation<T = SearchAggregation>(options: UseFetchAggregationOptions): T {\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n // We need to check viewModel here in case a user refreshes the page\n // This needs to not error out so that the layout can redirect back to userman\n const aggregation = Flight.useBasicFetch<T>(\n viewModel?.userIdMap &&\n currentUser.data &&\n options.getSearchAggregation({\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n userType: options.userType,\n queryParams: viewModel.params,\n userIds: [...viewModel.userIdMap.keys()],\n field: options.field\n })\n );\n\n return aggregation.data;\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"infoContainer\":\"rTJxq\"};","import React from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsConfirmationUserList } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/confirmation/user-list/BulkUserActionsConfirmationUserList';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { WizardConfirmationHeader } from 'libs/shared/components/wizard/confirmation-header/WizardConfirmationHeader';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\nimport { BulkUserActionsRolloverYearGroupInfo } from '../../action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo';\n\nimport styles from './bulk-user-actions-year-group-rollover-confirmation.scss';\n\nconst namespace = 'userManager.bulkUserActionsYearGroupRolloverConfirmation';\n\ninterface BulkUserActionsYearGroupRolloverConfirmationProps {\n users: User[];\n imageCdnUrl: string;\n fetchNextUserPage: () => void;\n hasMoreUsers: boolean;\n isFetchingUsers: boolean;\n userType: UserGroup;\n onClickConfirm: () => void;\n userCount: number;\n yearGroups: YearGroup[];\n countsByYearGroup: SearchAggregation;\n editSsoHelpArticleUrl?: string;\n}\n\nexport function BulkUserActionsYearGroupRolloverConfirmation(\n props: BulkUserActionsYearGroupRolloverConfirmationProps\n): JSX.Element {\n const [viewModel] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n BulkUserActionsHelper.useSetWizardConfirmationCallback(props.onClickConfirm);\n\n function getYearGroupListString(): string {\n const graduatingYearGroup = viewModel?.yearGroup;\n\n if (!graduatingYearGroup)\n return '';\n\n const graduatingYearGroups = props.yearGroups.filter(yg => yg.value >= graduatingYearGroup.value);\n\n if (graduatingYearGroups.length === 1)\n return graduatingYearGroup.name;\n\n if (graduatingYearGroups.length === 2)\n return `${graduatingYearGroups[0].name} and ${graduatingYearGroups[1].name}`;\n\n const lastYearGroup = graduatingYearGroups.splice(graduatingYearGroups.length - 1);\n\n return `${graduatingYearGroups.map(yg => yg.name).join(', ')}, and ${lastYearGroup[0].name}`;\n }\n\n return (\n <>\n <WizardConfirmationHeader>\n <p className='fw-semibold'>\n <Text namespace={namespace} phrase='heading' />\n </p>\n\n <ul>\n <li>\n <Text namespace={namespace} phrase='info' />\n </li>\n <li>\n <Text namespace={namespace} phrase='ssoWarning' />&nbsp;\n {!!props.editSsoHelpArticleUrl && (\n <a href={props.editSsoHelpArticleUrl} target='_blank' className='info-link'>\n <Text namespace={namespace} phrase='ssoWarningArticle' />\n </a>\n )}\n </li>\n <li className='text-danger'>\n <Text\n namespace={namespace}\n phrase='warning'\n options={{ yearGroupList: getYearGroupListString() }}\n />\n </li>\n </ul>\n\n <div className={`${styles.infoContainer} rounded-3 p-2`}>\n <BulkUserActionsRolloverYearGroupInfo\n yearGroups={props.yearGroups}\n graduatingYearGroup={viewModel?.yearGroup}\n countsByYearGroup={props.countsByYearGroup}\n />\n </div>\n </WizardConfirmationHeader>\n\n <BulkUserActionsConfirmationUserList\n users={props.users}\n imageCdnUrl={props.imageCdnUrl}\n statuses={[ ObjectStatus.Active, ObjectStatus.Inactive ]}\n hasMore={props.hasMoreUsers}\n isFetching={props.isFetchingUsers}\n fetchNext={props.fetchNextUserPage}\n userType={props.userType}\n userCount={props.userCount}\n />\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsYearGroupRolloverConfirmation } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/confirmation/year-group-rollover/BulkUserActionsYearGroupRolloverConfirmation';\nimport { BulkUserActionsWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/layout/BulkUserActionsWizardLayout';\nimport { useFetchAggregation } from 'libs/shared/apps/user-manager/hooks/useFetchAggregation';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BatchJob, Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useBulkActionsUsersWrapper } from 'apps/user-manager/hooks/useBulkActionsUsersWrapper';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nexport function BulkUserActionsYearGroupRolloverConfirmationView(props: UserWizardParams): JSX.Element {\n const {\n users,\n count,\n isFetching,\n hasMore,\n fetchNext\n } = useBulkActionsUsersWrapper(props.userType);\n\n const [viewModel] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(!!currentUser.data &&\n UserManagerRequests.yearGroups(currentUser.data.customerId));\n\n const aggregation = useFetchAggregation({\n userType: props.userType,\n field: AggregateSearchField.YearGroupValues,\n getSearchAggregation: UserManagerRequests.getSearchAggregation\n });\n\n const appLinks = getUserManagerAppLinks(props.userType);\n\n const dispatch = useDispatch();\n\n const onCreateJobError = BulkUserActionsHelper.useCreateJobErrorAlert();\n function startBulkAction(): void {\n if (!viewModel)\n return;\n\n const data = BulkUserActionsHelper.getCreateJobRequestData(\n viewModel,\n currentUser.data.customerId,\n props.userType\n );\n\n Flight.fetch(dispatch, JobRequests.createJob(data, onCreateJob, onCreateJobError));\n }\n\n function onCreateJob(job: BatchJob): void {\n Core.AppLinkHelper.trigger({\n ...appLinks.bulkActionsStatus.polling,\n params: {\n userType: props.userType,\n jobId: job.id\n }\n });\n }\n\n const loaded = !!yearGroups.data && !!config.data && !!aggregation;\n\n return (\n <BulkUserActionsWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n users={users}\n currentStep='confirmation'\n userCount={count}\n loaded={loaded}\n >\n {loaded &&\n <BulkUserActionsYearGroupRolloverConfirmation\n users={users}\n imageCdnUrl={config.data?.imageCdnUrl}\n hasMoreUsers={hasMore}\n isFetchingUsers={isFetching}\n fetchNextUserPage={fetchNext}\n userType={props.userType}\n onClickConfirm={startBulkAction}\n userCount={count}\n yearGroups={yearGroups.data}\n countsByYearGroup={aggregation}\n editSsoHelpArticleUrl={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n />\n }\n </BulkUserActionsWizardLayout>\n );\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":["BulkUserActionsRolloverYearGroupInfo","props","value","className","xs","phrase","yearGroups","map","yearGroup","i","countForYearGroup","countsByYearGroup","isGraduating","graduatingYearGroup","nextYearGroup","fakeDeactivatedUser","status","id","key","name","options","smartCount","user","WhitePill","children","useFetchAggregation","viewModel","currentUser","userIdMap","data","getSearchAggregation","userId","customerId","userType","queryParams","params","userIds","keys","field","OnlineSupportArticle","LiteSupportArticle","namespace","BulkUserActionsYearGroupRolloverConfirmation","SharedViewModelKeys","BulkUserActionsHelper","onClickConfirm","WizardConfirmationHeader","Text","editSsoHelpArticleUrl","href","target","yearGroupList","graduatingYearGroups","filter","yg","length","lastYearGroup","splice","join","getYearGroupListString","BulkUserActionsConfirmationUserList","users","imageCdnUrl","statuses","ObjectStatus","hasMore","hasMoreUsers","isFetching","isFetchingUsers","fetchNext","fetchNextUserPage","userCount","BulkUserActionsYearGroupRolloverConfirmationView","useBulkActionsUsersWrapper","count","config","ConfigRequests","UserRequests","UserManagerRequests","aggregation","AggregateSearchField","appLinks","dispatch","onCreateJobError","onCreateJob","job","bulkActionsStatus","polling","jobId","loaded","BulkUserActionsWizardLayout","currentStep","JobRequests","ArticleHelper","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}